Move GWIN widget internal flags into the public header so that all the state flags are available for custom draw routines.
This commit is contained in:
parent
0f0964da99
commit
addbf47bdb
16 changed files with 93 additions and 47 deletions
|
@ -23,9 +23,6 @@
|
||||||
#define BTN_TOP_FADE 50 // (BTN_TOP_FADE/255)% fade to white for top of button
|
#define BTN_TOP_FADE 50 // (BTN_TOP_FADE/255)% fade to white for top of button
|
||||||
#define BTN_BOTTOM_FADE 25 // (BTN_BOTTOM_FADE/255)% fade to black for bottom of button
|
#define BTN_BOTTOM_FADE 25 // (BTN_BOTTOM_FADE/255)% fade to black for bottom of button
|
||||||
|
|
||||||
// Our pressed state
|
|
||||||
#define GBUTTON_FLG_PRESSED (GWIN_FIRST_CONTROL_FLAG<<0)
|
|
||||||
|
|
||||||
#if GINPUT_NEED_MOUSE
|
#if GINPUT_NEED_MOUSE
|
||||||
// A mouse down has occurred over the button
|
// A mouse down has occurred over the button
|
||||||
static void ButtonMouseDown(GWidgetObject *gw, coord_t x, coord_t y) {
|
static void ButtonMouseDown(GWidgetObject *gw, coord_t x, coord_t y) {
|
||||||
|
|
|
@ -39,6 +39,14 @@
|
||||||
*/
|
*/
|
||||||
typedef GEventGWin GEventGWinButton;
|
typedef GEventGWin GEventGWinButton;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal button flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GBUTTON_FLG_PRESSED (GWIN_FIRST_CONTROL_FLAG<<0)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The button widget structure
|
* @brief The button widget structure
|
||||||
* @note Do not use the members directly - treat it as a black-box.
|
* @note Do not use the members directly - treat it as a black-box.
|
||||||
|
|
|
@ -20,9 +20,6 @@
|
||||||
#define CHK_TOP_FADE 50 // (CHK_TOP_FADE/255)% fade to white for top of button
|
#define CHK_TOP_FADE 50 // (CHK_TOP_FADE/255)% fade to white for top of button
|
||||||
#define CHK_BOTTOM_FADE 25 // (CHK_BOTTOM_FADE/255)% fade to black for bottom of button
|
#define CHK_BOTTOM_FADE 25 // (CHK_BOTTOM_FADE/255)% fade to black for bottom of button
|
||||||
|
|
||||||
// Our checked state
|
|
||||||
#define GCHECKBOX_FLG_CHECKED (GWIN_FIRST_CONTROL_FLAG<<0)
|
|
||||||
|
|
||||||
// Send the checkbox event
|
// Send the checkbox event
|
||||||
static void SendCheckboxEvent(GWidgetObject *gw) {
|
static void SendCheckboxEvent(GWidgetObject *gw) {
|
||||||
GSourceListener * psl;
|
GSourceListener * psl;
|
||||||
|
|
|
@ -45,6 +45,14 @@ typedef struct GEventGWinCheckbox {
|
||||||
bool_t isChecked; // Is the checkbox currently checked or unchecked?
|
bool_t isChecked; // Is the checkbox currently checked or unchecked?
|
||||||
} GEventGWinCheckbox;
|
} GEventGWinCheckbox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal checkbox flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GCHECKBOX_FLG_CHECKED (GWIN_FIRST_CONTROL_FLAG<<0)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
/* A Checkbox window */
|
/* A Checkbox window */
|
||||||
typedef struct GCheckboxObject {
|
typedef struct GCheckboxObject {
|
||||||
GWidgetObject w;
|
GWidgetObject w;
|
||||||
|
|
|
@ -29,10 +29,7 @@
|
||||||
|
|
||||||
/* Internal state flags */
|
/* Internal state flags */
|
||||||
#define GWIN_FRAME_USER_FLAGS (GWIN_FRAME_CLOSE_BTN|GWIN_FRAME_MINMAX_BTN|GWIN_FRAME_KEEPONCLOSE)
|
#define GWIN_FRAME_USER_FLAGS (GWIN_FRAME_CLOSE_BTN|GWIN_FRAME_MINMAX_BTN|GWIN_FRAME_KEEPONCLOSE)
|
||||||
#define GWIN_FRAME_CLOSE_PRESSED (GWIN_FRAME_KEEPONCLOSE << 1)
|
|
||||||
#define GWIN_FRAME_MIN_PRESSED (GWIN_FRAME_KEEPONCLOSE << 2)
|
|
||||||
#define GWIN_FRAME_MAX_PRESSED (GWIN_FRAME_KEEPONCLOSE << 3)
|
|
||||||
#define GWIN_FRAME_REDRAW_FRAME (GWIN_FRAME_KEEPONCLOSE << 4) // Only redraw the frame
|
|
||||||
#if GWIN_FRAME_CLOSE_BTN < GWIN_FIRST_CONTROL_FLAG
|
#if GWIN_FRAME_CLOSE_BTN < GWIN_FIRST_CONTROL_FLAG
|
||||||
#error "GWIN Frame: - Flag definitions don't match"
|
#error "GWIN Frame: - Flag definitions don't match"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,6 +37,17 @@
|
||||||
#define GWIN_FRAME_KEEPONCLOSE 0x00000004 /**< Don't automatically destroy the frame on close */
|
#define GWIN_FRAME_KEEPONCLOSE 0x00000004 /**< Don't automatically destroy the frame on close */
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal frame flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GWIN_FRAME_CLOSE_PRESSED 0x00000008
|
||||||
|
#define GWIN_FRAME_MIN_PRESSED 0x00000010
|
||||||
|
#define GWIN_FRAME_MAX_PRESSED 0x00000020
|
||||||
|
#define GWIN_FRAME_REDRAW_FRAME 0x00000040 // Only redraw the frame
|
||||||
|
/** @} */
|
||||||
|
|
||||||
typedef GContainerObject GFrameObject;
|
typedef GContainerObject GFrameObject;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -17,12 +17,6 @@
|
||||||
#include "gwin_class.h"
|
#include "gwin_class.h"
|
||||||
#include "gwin_keyboard_layout.h"
|
#include "gwin_keyboard_layout.h"
|
||||||
|
|
||||||
|
|
||||||
#define GKEYBOARD_FLG_REVERTSET (GWIN_FIRST_CONTROL_FLAG<<0)
|
|
||||||
#define GKEYBOARD_FLG_QUICKUPDATE (GWIN_FIRST_CONTROL_FLAG<<1)
|
|
||||||
|
|
||||||
#define GKEY_BAD_ROWCOL 255
|
|
||||||
|
|
||||||
typedef uint8_t utf8;
|
typedef uint8_t utf8;
|
||||||
typedef uint16_t utf16;
|
typedef uint16_t utf16;
|
||||||
typedef uint32_t utf32;
|
typedef uint32_t utf32;
|
||||||
|
|
|
@ -39,6 +39,16 @@
|
||||||
*/
|
*/
|
||||||
typedef GEventGWin GEventGWinKeyboard;
|
typedef GEventGWin GEventGWinKeyboard;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal keyboard flags and other defines
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GKEYBOARD_FLG_REVERTSET (GWIN_FIRST_CONTROL_FLAG<<0)
|
||||||
|
#define GKEYBOARD_FLG_QUICKUPDATE (GWIN_FIRST_CONTROL_FLAG<<1)
|
||||||
|
#define GKEY_BAD_ROWCOL 255
|
||||||
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The keyboard widget structure
|
* @brief The keyboard widget structure
|
||||||
* @note Do not use the members directly - treat it as a black-box.
|
* @note Do not use the members directly - treat it as a black-box.
|
||||||
|
|
|
@ -20,11 +20,6 @@
|
||||||
#define gh2obj ((GLabelObject *)gh)
|
#define gh2obj ((GLabelObject *)gh)
|
||||||
#define gw2obj ((GLabelObject *)gw)
|
#define gw2obj ((GLabelObject *)gw)
|
||||||
|
|
||||||
// flags for the GLabelObject
|
|
||||||
#define GLABEL_FLG_WAUTO (GWIN_FIRST_CONTROL_FLAG << 0)
|
|
||||||
#define GLABEL_FLG_HAUTO (GWIN_FIRST_CONTROL_FLAG << 1)
|
|
||||||
#define GLABEL_FLG_BORDER (GWIN_FIRST_CONTROL_FLAG << 2)
|
|
||||||
|
|
||||||
// simple: single line with no wrapping
|
// simple: single line with no wrapping
|
||||||
static coord_t getwidth(const char *text, font_t font, coord_t maxwidth) {
|
static coord_t getwidth(const char *text, font_t font, coord_t maxwidth) {
|
||||||
(void) maxwidth;
|
(void) maxwidth;
|
||||||
|
|
|
@ -33,6 +33,16 @@
|
||||||
|
|
||||||
// This file is included within "src/gwin/gwin_widget.h"
|
// This file is included within "src/gwin/gwin_widget.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal label flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GLABEL_FLG_WAUTO (GWIN_FIRST_CONTROL_FLAG << 0)
|
||||||
|
#define GLABEL_FLG_HAUTO (GWIN_FIRST_CONTROL_FLAG << 1)
|
||||||
|
#define GLABEL_FLG_BORDER (GWIN_FIRST_CONTROL_FLAG << 2)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
// An label window
|
// An label window
|
||||||
typedef struct GLabelObject {
|
typedef struct GLabelObject {
|
||||||
GWidgetObject w;
|
GWidgetObject w;
|
||||||
|
|
|
@ -31,27 +31,6 @@
|
||||||
#define qix2li ((ListItem *)qix)
|
#define qix2li ((ListItem *)qix)
|
||||||
#define ple ((GEventGWinList *)pe)
|
#define ple ((GEventGWinList *)pe)
|
||||||
|
|
||||||
// Flags for the GListObject
|
|
||||||
#define GLIST_FLG_MULTISELECT (GWIN_FIRST_CONTROL_FLAG << 0)
|
|
||||||
#define GLIST_FLG_HASIMAGES (GWIN_FIRST_CONTROL_FLAG << 1)
|
|
||||||
#define GLIST_FLG_SCROLLALWAYS (GWIN_FIRST_CONTROL_FLAG << 2)
|
|
||||||
#define GLIST_FLG_SCROLLSMOOTH (GWIN_FIRST_CONTROL_FLAG << 3)
|
|
||||||
#define GLIST_FLG_ENABLERENDER (GWIN_FIRST_CONTROL_FLAG << 4)
|
|
||||||
|
|
||||||
// Flags on a ListItem.
|
|
||||||
#define GLIST_FLG_SELECTED 0x0001
|
|
||||||
|
|
||||||
typedef struct ListItem {
|
|
||||||
gfxQueueASyncItem q_item; // This must be the first member in the struct
|
|
||||||
|
|
||||||
uint16_t flags;
|
|
||||||
uint16_t param; // A parameter the user can specify himself
|
|
||||||
const char* text;
|
|
||||||
#if GWIN_NEED_LIST_IMAGES
|
|
||||||
gdispImage* pimg;
|
|
||||||
#endif
|
|
||||||
} ListItem;
|
|
||||||
|
|
||||||
static void sendListEvent(GWidgetObject *gw, int item) {
|
static void sendListEvent(GWidgetObject *gw, int item) {
|
||||||
GSourceListener* psl;
|
GSourceListener* psl;
|
||||||
GEvent* pe;
|
GEvent* pe;
|
||||||
|
|
|
@ -76,6 +76,35 @@ typedef struct GListObject {
|
||||||
*/
|
*/
|
||||||
typedef enum scroll_t { scrollAlways, scrollAuto, scrollSmooth } scroll_t;
|
typedef enum scroll_t { scrollAlways, scrollAuto, scrollSmooth } scroll_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal list object flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GLIST_FLG_MULTISELECT (GWIN_FIRST_CONTROL_FLAG << 0)
|
||||||
|
#define GLIST_FLG_HASIMAGES (GWIN_FIRST_CONTROL_FLAG << 1)
|
||||||
|
#define GLIST_FLG_SCROLLALWAYS (GWIN_FIRST_CONTROL_FLAG << 2)
|
||||||
|
#define GLIST_FLG_SCROLLSMOOTH (GWIN_FIRST_CONTROL_FLAG << 3)
|
||||||
|
#define GLIST_FLG_ENABLERENDER (GWIN_FIRST_CONTROL_FLAG << 4)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal list item structure
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
*/
|
||||||
|
typedef struct ListItem {
|
||||||
|
gfxQueueASyncItem q_item; // This must be the first member in the struct
|
||||||
|
|
||||||
|
uint16_t flags;
|
||||||
|
#define GLIST_FLG_SELECTED 0x0001
|
||||||
|
uint16_t param; // A parameter the user can specify himself
|
||||||
|
const char* text;
|
||||||
|
#if GWIN_NEED_LIST_IMAGES
|
||||||
|
gdispImage* pimg;
|
||||||
|
#endif
|
||||||
|
} ListItem;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
#define GRADIO_BOTTOM_FADE 25 // (GRADIO_BOTTOM_FADE/255)% fade to black for bottom of tab/button
|
#define GRADIO_BOTTOM_FADE 25 // (GRADIO_BOTTOM_FADE/255)% fade to black for bottom of tab/button
|
||||||
#define GRADIO_OUTLINE_FADE 128 // (GRADIO_OUTLINE_FADE/255)% fade to background for active tab edge
|
#define GRADIO_OUTLINE_FADE 128 // (GRADIO_OUTLINE_FADE/255)% fade to background for active tab edge
|
||||||
|
|
||||||
// Our pressed state
|
|
||||||
#define GRADIO_FLG_PRESSED (GWIN_FIRST_CONTROL_FLAG<<0)
|
|
||||||
|
|
||||||
// Send the button event
|
// Send the button event
|
||||||
static void SendRadioEvent(GWidgetObject *gw) {
|
static void SendRadioEvent(GWidgetObject *gw) {
|
||||||
GSourceListener * psl;
|
GSourceListener * psl;
|
||||||
|
|
|
@ -45,6 +45,14 @@ typedef struct GEventGWinRadio {
|
||||||
uint16_t group; // The group for this radio button
|
uint16_t group; // The group for this radio button
|
||||||
} GEventGWinRadio;
|
} GEventGWinRadio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal radio button object flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GRADIO_FLG_PRESSED (GWIN_FIRST_CONTROL_FLAG<<0)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The radio button widget structure
|
* @brief The radio button widget structure
|
||||||
* @note Do not use the members directly - treat it as a black-box.
|
* @note Do not use the members directly - treat it as a black-box.
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
|
|
||||||
#include "gwin_class.h"
|
#include "gwin_class.h"
|
||||||
|
|
||||||
#define GSLIDER_FLG_EXTENDED_EVENTS (GWIN_FIRST_CONTROL_FLAG<<0)
|
|
||||||
|
|
||||||
// Calculate the slider position from the display position
|
// Calculate the slider position from the display position
|
||||||
static int SliderCalcPosFromDPos(GSliderObject *gsw) {
|
static int SliderCalcPosFromDPos(GSliderObject *gsw) {
|
||||||
int halfbit;
|
int halfbit;
|
||||||
|
|
|
@ -45,6 +45,14 @@ typedef struct GEventGWinSlider {
|
||||||
|
|
||||||
// There are currently no GEventGWinSlider listening flags - use 0
|
// There are currently no GEventGWinSlider listening flags - use 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The internal slider object flags
|
||||||
|
* @note Used only for writing a custom draw routine.
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
#define GSLIDER_FLG_EXTENDED_EVENTS (GWIN_FIRST_CONTROL_FLAG<<0)
|
||||||
|
/** @} */
|
||||||
|
|
||||||
// A slider window
|
// A slider window
|
||||||
typedef struct GSliderObject {
|
typedef struct GSliderObject {
|
||||||
GWidgetObject w;
|
GWidgetObject w;
|
||||||
|
|
Loading…
Add table
Reference in a new issue