Difference between revisions of "CheckBox"
From uGFX Wiki
m (→Custom Draw Routines) |
(→Custom Draw Routines) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
== 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 == | == Custom Draw Routines == | ||
Line 15: | Line 15: | ||
|gwinCheckboxDraw_CheckOnRight | |gwinCheckboxDraw_CheckOnRight | ||
| The check is on the right of the text. | | The check is on the right of the text. | ||
+ | |- | ||
+ | |gwinCheckboxDraw_Button | ||
+ | | Draw like a pushbutton. This essentially makes a checkable pushbutton. | ||
|} | |} | ||
Line 72: | 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; }