From 97f86f4334282a819681686ae392dc9851359d55 Mon Sep 17 00:00:00 2001 From: Mirek Fidler Date: Wed, 22 Jan 2025 14:35:28 +0100 Subject: [PATCH] .examples --- examples/BlueBar/UWord.cpp | 32 +++++++++++++------------- examples/Button/Button.cpp | 19 +++++---------- uppsrc/Core/src.tpp/Function_en-us.tpp | 4 +++- 3 files changed, 25 insertions(+), 30 deletions(-) diff --git a/examples/BlueBar/UWord.cpp b/examples/BlueBar/UWord.cpp index 4b2aad2d7..1d740f36a 100644 --- a/examples/BlueBar/UWord.cpp +++ b/examples/BlueBar/UWord.cpp @@ -61,42 +61,42 @@ public: void UWord::FileBar(Bar& bar) { - bar.Add("New", CtrlImg::new_doc(), THISBACK(New)) + bar.Add("New", CtrlImg::new_doc(), THISFN(New)) .Key(K_CTRL_N) .Help("Open new window"); - bar.Add("Open..", CtrlImg::open(), THISBACK(Open)) + bar.Add("Open..", CtrlImg::open(), THISFN(Open)) .Key(K_CTRL_O) .Help("Open existing document"); - bar.Add(editor.IsModified(), "Save", CtrlImg::save(), THISBACK(Save)) + bar.Add(editor.IsModified(), "Save", CtrlImg::save(), THISFN(Save)) .Key(K_CTRL_S) .Help("Save current document"); - bar.Add("SaveAs", CtrlImg::save_as(), THISBACK(SaveAs)) + bar.Add("SaveAs", CtrlImg::save_as(), THISFN(SaveAs)) .Help("Save current document with a new name"); bar.ToolGap(); bar.MenuSeparator(); - bar.Add("Print..", CtrlImg::print(), THISBACK(Print)) + bar.Add("Print..", CtrlImg::print(), THISFN(Print)) .Key(K_CTRL_P) .Help("Print document"); - bar.Add("Export to PDF..", UWordImg::pdf(), THISBACK(Pdf)) + bar.Add("Export to PDF..", UWordImg::pdf(), THISFN(Pdf)) .Help("Export document to PDF file"); if(bar.IsMenuBar()) { if(lrufile().GetCount()) - lrufile()(bar, THISBACK(OpenFile)); + lrufile()(bar, THISFN(OpenFile)); bar.Separator(); - bar.Add("Exit", THISBACK(Destroy)); + bar.Add("Exit", THISFN(Destroy)); } } void UWord::AboutMenu(Bar& bar) { - bar.Add("About..", THISBACK(About)); + bar.Add("About..", THISFN(About)); } void UWord::MainMenu(Bar& bar) { - bar.Add("File", THISBACK(FileBar)); - bar.Add("Window", callback(WindowsMenu)); - bar.Add("Help", THISBACK(AboutMenu)); + bar.Sub("File", THISFN(FileBar)); + bar.Sub("Window", [=](Bar& bar) { WindowsMenu(bar); }); + bar.Sub("Help", THISFN(AboutMenu)); } void UWord::New() @@ -219,7 +219,7 @@ void UWord::MainBar(Bar& bar) void UWord::SetBar() { - toolbar.Set(THISBACK(MainBar)); + toolbar.Set(THISFN(MainBar)); } UWord::UWord() @@ -229,16 +229,16 @@ UWord::UWord() AddFrame(toolbar); AddFrame(statusbar); Add(editor.SizePos()); - menubar.Set(THISBACK(MainMenu)); + menubar.Set(THISFN(MainMenu)); Sizeable().Zoomable(); - WhenClose = THISBACK(Destroy); + WhenClose = THISFN(Destroy); menubar.WhenHelp = toolbar.WhenHelp = statusbar; static int doc; Title(Format("Document%d", ++doc)); Icon(CtrlImg::File()); editor.ClearModify(); SetBar(); - editor.WhenRefreshBar = THISBACK(SetBar); + editor.WhenRefreshBar = THISFN(SetBar); OpenMain(); ActiveFocus(editor); } diff --git a/examples/Button/Button.cpp b/examples/Button/Button.cpp index 88308324c..4041c3988 100644 --- a/examples/Button/Button.cpp +++ b/examples/Button/Button.cpp @@ -5,7 +5,7 @@ using namespace Upp; struct ButtonApp : TopWindow { - int count; + int count = 0; Button button; Label label; @@ -13,21 +13,14 @@ struct ButtonApp : TopWindow { { label = Format("Number of button clicks %d", count); } - void Click() - { - ++count; - RefreshLabel(); - } - - typedef ButtonApp CLASSNAME; ButtonApp() { - count = 0; - button <<= THISBACK(Click); - button.SetLabel("&I'm an U++ button!"); - Add(button.VCenterPos(20).HCenterPos(200)); - Add(label.BottomPos(0, 20).HCenterPos(200)); + Title("Button example"); + button << [=] { ++count; RefreshLabel(); }; + button.SetLabel("Click me!"); + Add(button.VCenterPosZ(30).HCenterPosZ(200)); + Add(label.BottomPosZ(0, 20).HCenterPosZ(200)); label.SetAlign(ALIGN_CENTER); Sizeable().Zoomable(); RefreshLabel(); diff --git a/uppsrc/Core/src.tpp/Function_en-us.tpp b/uppsrc/Core/src.tpp/Function_en-us.tpp index 9d940fee9..4946562f5 100644 --- a/uppsrc/Core/src.tpp/Function_en-us.tpp +++ b/uppsrc/Core/src.tpp/Function_en-us.tpp @@ -83,7 +83,7 @@ es]_[* operator()]([*@4 ArgTypes][@(0.0.255) ...]_args)_[@(0.0.255) const]&] [s4; &] [s5;:Function` `:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&] [s2; Sets Function empty.&] -[s0; &] +[s3; &] [s0;%- &] [ {{10000@(113.42.0) [s0; [*@7;4 Event and Gate]]}}&] [s3;%- &] @@ -134,5 +134,7 @@ a class has member function&] [s2; &] [s2; [C menu.Set(`[`=`] (Bar`& bar) `{ Menu(bar); `});]&] [s2; [C menu.Set(THISFN(Menu));]&] +[s2;C &] +[s2; CLASSNAME must be defined as nested typedef of current class.&] [s3;%- &] [s0;@(0.0.255)3%- ]] \ No newline at end of file