comparison mde/gui/widget/miscContent.d @ 113:9824bee909fd

Popup menu; works for simple menus except that clicking an item doesn't close it. Revised popup support a bit; EnumContentWidget is broken and due to be replaced.
author Diggory Hardy <diggory.hardy@gmail.com>
date Fri, 19 Dec 2008 10:32:28 +0000
parents fe061009029d
children b16a534f5302
comparison
equal deleted inserted replaced
112:fe061009029d 113:9824bee909fd
65 return new EnumContentWidget(mgr,id,data,c); 65 return new EnumContentWidget(mgr,id,data,c);
66 else 66 else
67 return new AStringContentWidget(mgr,id,data,c); 67 return new AStringContentWidget(mgr,id,data,c);
68 } else if (cast(ContentList) c) 68 } else if (cast(ContentList) c)
69 return new ContentListWidget(mgr,id,data,c); 69 return new ContentListWidget(mgr,id,data,c);
70 else // generic uneditable option 70 else if (cast(EventContent) c)
71 return new ButtonContentWidget(mgr,id,data,c);
72 else // generic uneditable option
71 return new DisplayContentWidget(mgr,id,data,c); 73 return new DisplayContentWidget(mgr,id,data,c);
72 } 74 }
73 75
74 /// Editable boolean widget 76 /// Editable boolean widget
75 class BoolContentWidget : AButtonWidget 77 class BoolContentWidget : AButtonWidget
151 w = mw; 153 w = mw;
152 h = mh; 154 h = mh;
153 } 155 }
154 156
155 void activated () { 157 void activated () {
156 mgr.addPopup (x,y, internalWidg); 158 mgr.addPopup (this, internalWidg);
157 } 159 }
158 160
159 void draw () { 161 void draw () {
160 super.draw; 162 super.draw;
161 adapter.draw (x,y); 163 adapter.draw (x,y);
205 for (; i > 0; --i) 207 for (; i > 0; --i)
206 if (cy >= yPos[i]) 208 if (cy >= yPos[i])
207 break; 209 break;
208 logger.trace ("Setting value: {}", i); 210 logger.trace ("Setting value: {}", i);
209 content = i; 211 content = i;
210 mgr.removePopup (this); 212 //mgr.removePopup (this);
211 changeContent; 213 changeContent;
212 } 214 }
213 215
214 pushed = false; 216 pushed = false;
215 mgr.requestRedraw; 217 mgr.requestRedraw;