RadioButton
From uGFX Wiki
Revision as of 18:40, 1 July 2014 by Tectu (Talk | contribs) (Created page with "A radio button is a widget that only works together in a group of two or more radio buttons. Inside this group of radio buttons, only one button can be checked at a time. When...")
A radio button is a widget that only works together in a group of two or more radio buttons. Inside this group of radio buttons, only one button can be checked at a time. When you click on another raido button, the current one gets disabled and the new one becomes gets the checked state.
API reference
The API reference for the radio button widget can be found here.
Example
The following example shows how to use the radio button widget. In this example we create two groups where each group consists of three radio buttons:
#include "gfx.h" #define GROUP1 0 // this will be the first radio button group #define GROUP2 1 // this will be the second radio button group static GListener gl; static GHandle ghRadio11, ghRadio12, ghRadio13; // the first group static GHandle ghRadio21, ghRadio22, ghRadio23; // the second group 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; // create Radio11 wi.g.y = 10; wi.g.x = 10; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 1"; ghRadio11 = gwinRadioCreate(NULL, &wi, GROUP1); // create Radio12 wi.g.y = 50; wi.g.x = 10; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 2"; ghRadio12 = gwinRadioCreate(NULL, &wi, GROUP1); // create Radio13 wi.g.y = 90; wi.g.x = 10; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 3"; ghRadio13 = gwinRadioCreate(NULL, &wi, GROUP1); // create Radio21 wi.g.y = 10; wi.g.x = 120; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 1"; ghRadio21 = gwinRadioCreate(NULL, &wi, GROUP2); // create Radio22 wi.g.y = 50; wi.g.x = 120; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 2"; ghRadio22 = gwinRadioCreate(NULL, &wi, GROUP2); // create Radio23 wi.g.y = 90; wi.g.x = 120; wi.g.width = 80; wi.g.height = 20; wi.text = "Radio 3"; ghRadio23 = gwinRadioCreate(NULL, &wi, GROUP2); // Check the first radio buttons gwinRadioPress(ghRadio11); gwinRadioPress(ghRadio21); } 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_RADIO: printf("group: %u radio: %s\n", ((GEventGWinRadio *)pe)->group, gwinGetText(((GEventGWinRadio *)pe)->radio) ); break; default: break; } } return 0; }