Difference between revisions of "CheckBox"

From uGFX Wiki
Jump to: navigation, search
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/images/resources/doxygen/master/group___checkbox.html here].
+
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)->checkbox == ghCheckbox1) {
+
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;
}