diff --git a/uppdev/ArrayCtrlCtrls/main.cpp b/uppdev/ArrayCtrlCtrls/main.cpp index fb6ed2a52..3109a12ab 100644 --- a/uppdev/ArrayCtrlCtrls/main.cpp +++ b/uppdev/ArrayCtrlCtrls/main.cpp @@ -2,44 +2,24 @@ using namespace Upp; -struct EditStringSpecial : EditString { - ArrayCtrl *GetArrayCtrl() { - for(Ctrl *q = GetParent(); q; q = q->GetParent()) - if(ArrayCtrl *a = dynamic_cast(q)) - return a; - return NULL; - } - - static void DoMenu(EditStringSpecial *x) { - MenuBar bar; - x->StdBar(bar); - ArrayCtrl *a = x->GetArrayCtrl(); - if(a) { - bar.Separator(); - a->WhenBar(bar); - } - bar.Execute(); - } - - void MyBar(Bar& bar) - { - PostCallback(callback1(DoMenu, this)); - } - - typedef EditStringSpecial CLASSNAME; - - EditStringSpecial() { - WhenBar = THISBACK(MyBar); - } -}; +void WidgetFactory(int line, One& x) +{ + if(line & 1) + x.Create(); + else + x.Create