Difference between revisions of "CheckBox"
From uGFX Wiki
(Created page with "A checkbox is a small stand-alone GUI element which only knows the two states '''checked''' and '''unchecked'''. The text attribute of a checkbox gets drawn by default on the...") |
(→Custom Draw Routines) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | A checkbox is a small stand-alone GUI element which only knows the two states '''checked''' and '''unchecked'''. The text attribute of a checkbox gets drawn by default on the left side of the checkbox | + | A checkbox is a small stand-alone GUI element which only knows the two states '''checked''' and '''unchecked'''. The text attribute of a checkbox gets drawn by default on the left side of the checkbox. The width of the widget is supposed to be larger in order to contain the text. |
== API reference == | == API reference == | ||
− | The API reference of the checkbox widget can be found [http://ugfx.org | + | The API reference of the checkbox widget can be found [http://api.ugfx.org/group___checkbox.html here]. |
+ | |||
+ | == Custom Draw Routines == | ||
+ | The checkbox widget predefines a number of custom draw routines. They can be set using <code>gwinSetCustomDraw()</code> or by specifying the custom draw routine in the GWidgetInit structure during creation. The predefined custom draw routines are: | ||
+ | {| class="wikitable" | ||
+ | ! scope="col"|Custom Draw Routine | ||
+ | ! scope="col"|Description | ||
+ | |- | ||
+ | |gwinCheckboxDraw_CheckOnLeft | ||
+ | | The check is on the left of the text (default). | ||
+ | |- | ||
+ | |gwinCheckboxDraw_CheckOnRight | ||
+ | | The check is on the right of the text. | ||
+ | |- | ||
+ | |gwinCheckboxDraw_Button | ||
+ | | Draw like a pushbutton. This essentially makes a checkable pushbutton. | ||
+ | |} | ||
== Example == | == Example == | ||
Line 59: | Line 75: | ||
switch(pe->type) { | switch(pe->type) { | ||
case GEVENT_GWIN_CHECKBOX: | case GEVENT_GWIN_CHECKBOX: | ||
− | if (((GEventGWinCheckbox*)pe)-> | + | if (((GEventGWinCheckbox*)pe)->gwin== ghCheckbox1) { |
// The state of our checkbox has changed | // The state of our checkbox has changed | ||
printf("Checkbox state: %d\r\n", ((GEventGWinCheckbox*)pe)->isChecked); | printf("Checkbox state: %d\r\n", ((GEventGWinCheckbox*)pe)->isChecked); |
Latest revision as of 10:58, 7 November 2017
A checkbox is a small stand-alone GUI element which only knows the two states checked and unchecked. The text attribute of a checkbox gets drawn by default on the left side of the checkbox. The width of the widget is supposed to be larger in order to contain the text.
API reference
The API reference of the checkbox widget can be found here.
Custom Draw Routines
The checkbox widget predefines a number of custom draw routines. They can be set using gwinSetCustomDraw()
or by specifying the custom draw routine in the GWidgetInit structure during creation. The predefined custom draw routines are:
Custom Draw Routine | Description |
---|---|
gwinCheckboxDraw_CheckOnLeft | The check is on the left of the text (default). |
gwinCheckboxDraw_CheckOnRight | The check is on the right of the text. |
gwinCheckboxDraw_Button | Draw like a pushbutton. This essentially makes a checkable pushbutton. |
Example
The following example shows how to use the checkbox widget:
#include "gfx.h" static GListener gl; static GHandle ghCheckbox1; static void createWidgets(void) { GWidgetInit wi; // Apply some default values for GWIN wi.customDraw = 0; wi.customParam = 0; wi.customStyle = 0; wi.g.show = TRUE; // Apply the checkbox parameters wi.g.width = 100; // includes text wi.g.height = 20; wi.g.y = 10; wi.g.x = 10; wi.text = "Checkbox"; // Create the actual checkbox ghCheckbox1 = gwinCheckboxCreate(NULL, &wi); } int main(void) { GEvent* pe; // Initialize the display gfxInit(); // Set the widget defaults gwinSetDefaultFont(gdispOpenFont("UI2")); gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE); gdispClear(White); // Attach the mouse input gwinAttachMouse(0); // create the widget createWidgets(); // We want to listen for widget events geventListenerInit(&gl); gwinAttachListener(&gl); while(1) { // Get an Event pe = geventEventWait(&gl, TIME_INFINITE); switch(pe->type) { case GEVENT_GWIN_CHECKBOX: if (((GEventGWinCheckbox*)pe)->gwin== ghCheckbox1) { // The state of our checkbox has changed printf("Checkbox state: %d\r\n", ((GEventGWinCheckbox*)pe)->isChecked); } break; default: break; } } return 0; }