Skip to content

Commit 6bb13b4

Browse files
committed
conditional compile classes
this is sort of RTTI used in MENU_FMT_WRAPS
1 parent 56a9653 commit 6bb13b4

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

src/menu.h

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ for correcting unsigned values validation
4444
// Menu objects and data
4545
//////////////////////////////////////////////////////////////////////////
4646

47-
enum classes {noClass=0,promptClass,textFieldClass,fieldClass,toggleClass,selectClass,chooseClass,valueClass,menuClass};
47+
#ifdef MENU_FMT_WRAPS
48+
enum classes {noClass=0,promptClass,textFieldClass,fieldClass,toggleClass,selectClass,chooseClass,valueClass,menuClass};
49+
#endif
4850

4951
class prompt {
5052
friend class navNode;
@@ -61,7 +63,9 @@ for correcting unsigned values validation
6163
}
6264
virtual void clearChanged(const navNode &nav,const menuOut& out,bool sub)
6365
{dirty=false;}
64-
virtual classes type() const {return promptClass;}
66+
#ifdef MENU_FMT_WRAPS
67+
virtual classes type() const {return promptClass;}
68+
#endif
6569
inline prompt(constMEM promptShadow& shadow):shadow(&shadow) {}
6670
inline prompt(constMEM char* t,action a=doNothing,eventMask e=noEvent,styles s=noStyle,systemStyles ss=_noStyle)
6771
:shadow(new promptShadow(t,a,e,s,ss)) {}
@@ -163,7 +167,9 @@ for correcting unsigned values validation
163167
public:
164168
bool tunning=false;
165169
fieldBase(constMEM promptShadow& shadow):navTarget(shadow) {}
166-
virtual classes type() const {return fieldClass;}
170+
#ifdef MENU_FMT_WRAPS
171+
virtual classes type() const {return fieldClass;}
172+
#endif
167173
#ifdef MENU_ASYNC
168174
bool async(const char *uri,navRoot& root,idx_t lvl) override;
169175
#endif
@@ -242,7 +248,9 @@ for correcting unsigned values validation
242248
// #endif
243249
//inline T getTypeValue(const T* from) const {return &((menuValueShadow<T>*)shadow)->getTypeValue(from);}
244250
inline T target() const {return ((menuValueShadow<T>*)shadow)->target();}
245-
virtual classes type() const {return valueClass;}
251+
#ifdef MENU_FMT_WRAPS
252+
virtual classes type() const {return valueClass;}
253+
#endif
246254
};
247255

248256
//--------------------------------------------------------------------------
@@ -251,7 +259,9 @@ for correcting unsigned values validation
251259
menuNode(constMEM menuNodeShadow& s):navTarget(s) {}
252260
menuNode(constMEM char* text,idx_t sz,prompt* constMEM data[],action a=noAction,eventMask e=noEvent,styles style=wrapStyle,systemStyles ss=(systemStyles)(_menuData|_canNav))
253261
:navTarget(*new menuNodeShadow(text,sz,data,a,e,style,ss)) {}
254-
virtual classes type() const {return menuClass;}
262+
#ifdef MENU_FMT_WRAPS
263+
virtual classes type() const {return menuClass;}
264+
#endif
255265
inline prompt& operator[](idx_t i) const {return ((menuNodeShadow*)shadow)->operator[](i);}
256266
bool changed(const navNode &nav,const menuOut& out,bool sub=true) override;
257267
void clearChanged(const navNode &nav,const menuOut& out,bool sub) override;
@@ -331,7 +341,9 @@ for correcting unsigned values validation
331341
styles style=noStyle,
332342
systemStyles ss=((systemStyles)(Menu::_menuData|Menu::_canNav|Menu::_isVariant|Menu::_parentDraw))
333343
):menuVariant<T>(*new menuVariantShadow<T>(text,target,sz,data,a,e,style,ss)) {}
334-
virtual classes type() const {return selectClass;}
344+
#ifdef MENU_FMT_WRAPS
345+
virtual classes type() const {return selectClass;}
346+
#endif
335347
};
336348

337349
template<typename T>//-------------------------------------------
@@ -348,7 +360,9 @@ for correcting unsigned values validation
348360
styles style=noStyle,
349361
systemStyles ss=((systemStyles)(Menu::_menuData|Menu::_isVariant))
350362
):menuVariant<T>(*new menuVariantShadow<T>(text,target,sz,data,a,e,style,ss)) {}
351-
virtual classes type() const {return toggleClass;}
363+
#ifdef MENU_FMT_WRAPS
364+
virtual classes type() const {return toggleClass;}
365+
#endif
352366
Used printTo(navRoot &root,bool sel,menuOut& out, idx_t idx,idx_t len,idx_t panelNr=0) override;
353367
result sysHandler(SYS_FUNC_PARAMS) override {
354368
switch(event) {
@@ -381,7 +395,9 @@ for correcting unsigned values validation
381395
styles style=noStyle,
382396
systemStyles ss=((systemStyles)(Menu::_menuData|Menu::_canNav|Menu::_isVariant))
383397
):menuVariant<T>(*new menuVariantShadow<T>(text,target,sz,data,a,e,style,ss)) {}
384-
virtual classes type() const {return chooseClass;}
398+
#ifdef MENU_FMT_WRAPS
399+
virtual classes type() const {return chooseClass;}
400+
#endif
385401
result sysHandler(SYS_FUNC_PARAMS) override;
386402
bool changed(const navNode &nav,const menuOut& out,bool sub=true) override {
387403
return menuVariant<T>::changed(nav,out)||menuNode::changed(nav,out);

0 commit comments

Comments
 (0)