mGNCS API Reference  v1.5.0
A new control set and a new framework for MiniGUI apps
mbuttongroup.h
Go to the documentation of this file.
1 //
3 // IMPORTANT NOTICE
4 //
5 // The following open source license statement does not apply to any
6 // entity in the Exception List published by FMSoft.
7 //
8 // For more information, please visit:
9 //
10 // https://www.fmsoft.cn/exception-list
11 //
13 
54 #ifndef _MGUI_NCSCTRL_BTNGRP_H
55 #define _MGUI_NCSCTRL_BTNGRP_H
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif /* __cplusplus */
60 
70 #define NCSCTRL_BUTTONGROUP NCSCLASSNAME("buttongroup")
71 
72 typedef struct _mButtonGroup mButtonGroup;
73 typedef struct _mButtonGroupClass mButtonGroupClass;
74 typedef struct _mButtonGroupRenderer mButtonGroupRenderer;
75 
76 typedef struct _mButtonNode mButtonNode;
88 {
89  mWidget *pbtn;
90  mButtonNode *next;
91 };
92 
93 #define mButtonGroupHeader(clsName) \
94  mGroupBoxHeader(clsName) \
95  mButtonNode *pBtnList;
96 
105 struct _mButtonGroup
106 {
107  mButtonGroupHeader(mButtonGroup)
108 };
109 
110 #define mButtonGroupClassHeader(clsName, parentClass) \
111  mGroupBoxClassHeader(clsName, parentClass) \
112 /*private*/ \
113  BOOL (*addButton)(clsName *group, mWidget *button); \
114  BOOL (*checkBtn)(clsName *group, mWidget *btn_to_check);
115 
134 struct _mButtonGroupClass
135 {
136  mButtonGroupClassHeader(mButtonGroup, mGroupBox)
137 };
138 
139 #define mButtonGroupRendererHeader(clsName, parentClass) \
140  mGroupBoxRendererHeader(clsName, parentClass) \
141  void (*drawButtongroup)(clsName *self, HDC, const RECT*);
142 
154 /* define the render of image static */
155 struct _mButtonGroupRenderer {
156  mButtonGroupRendererHeader(mButtonGroup, mGroupBox)
157 };
158 
163 MGNCS_EXPORT extern mButtonGroupClass g_stmButtonGroupCls;
164 
177  NCSP_BTNGRP_SELID = NCSP_GRPBOX_MAX + 1,
195  NCSP_BTNGRP_MAX
196 };
197 
198 #define NCSS_BTNGRP_SHIFT NCSS_GRPBOX_SHIFT
199 
211  NCSN_BTNGRP_SELCHANGED = NCSN_GRPBOX_MAX + 1,
212  NCSN_BTNGRP_MAX
213 };
214 
218 #ifdef __cplusplus
219 }
220 #endif /* __cplusplus */
221 
222 #endif /* _MGUI_NCSCTRL_BTNGRP_H */
223 
g_stmButtonGroupCls
MGNCS_EXPORT mButtonGroupClass g_stmButtonGroupCls
global mButtonGroupClass
mGroupBox
groupbox class, derived from mStatic
NCSP_BTNGRP_SELID
@ NCSP_BTNGRP_SELID
get/set selected id of button
Definition: mbuttongroup.h:177
mButtonGroup
A group control, mamanger a list of buttons, in which only one button can be selected....
NCSP_BTNGRP_SELIDX
@ NCSP_BTNGRP_SELIDX
set/set selected index
Definition: mbuttongroup.h:186
mWidget
define the mWidget members, inherit from mComponent
mButtonGroupRenderer
mButtonGroup renderer interface, derived from mGroupBoxRenderer
_mButtonNode
the list node include member button
Definition: mbuttongroup.h:87
NCSP_BTNGRP_SELOBJ
@ NCSP_BTNGRP_SELOBJ
set/get selected object
Definition: mbuttongroup.h:194
enumButtonGroupNotify
enumButtonGroupNotify
notification code of mButtonGroup
Definition: mbuttongroup.h:204
mButtonGroupClass
struct of mButtonGroupClass control, derived from mGroupBoxClass
mButtonGroupProp
mButtonGroupProp
properties of mButtonGroup
Definition: mbuttongroup.h:169
NCSN_BTNGRP_SELCHANGED
@ NCSN_BTNGRP_SELCHANGED
raised when the current button changed
Definition: mbuttongroup.h:211