From 284c96a72aae6122744f60ab192e758fb1b29284 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 27 Nov 2015 10:05:13 -0500 Subject: [PATCH] Started migrating this experiment from WPF to WinForms. Maybe this will be more featureful. --- {wpf => winforms}/alloc.c | 0 {wpf => winforms}/area.cpp | 2 +- {wpf => winforms}/box.cpp | 2 +- {wpf => winforms}/button.cpp | 2 +- {wpf => winforms}/checkbox.cpp | 2 +- {wpf => winforms}/combobox.cpp | 2 +- {wpf => winforms}/control.cpp | 8 +-- {wpf => winforms}/datetimepicker.cpp | 2 +- {wpf => winforms}/debug.c | 0 {wpf => winforms}/draw.cpp | 2 +- {wpf => winforms}/entry.cpp | 2 +- {wpf => winforms}/group.cpp | 2 +- {wpf => winforms}/init.c | 0 {wpf => winforms}/label.cpp | 2 +- {wpf => winforms}/libui.msbuild | 0 winforms/main.cpp | 26 ++++++++++ {wpf => winforms}/menu.cpp | 2 +- {wpf => winforms}/progressbar.cpp | 2 +- {wpf => winforms}/radiobuttons.cpp | 2 +- {wpf => winforms}/separator.cpp | 2 +- {wpf => winforms}/slider.cpp | 2 +- {wpf => winforms}/spinbox.cpp | 2 +- {wpf => winforms}/stddialogs.cpp | 2 +- {wpf => winforms}/tab.cpp | 2 +- {wpf => winforms}/text.cpp | 2 +- wpf/ui_wpf.hpp => winforms/ui_winforms.hpp | 2 +- .../uipriv_winforms.hpp | 12 ++--- {wpf => winforms}/unmanaged.h | 4 +- {wpf => winforms}/util.c | 0 {wpf => winforms}/winapi.h | 0 {wpf => winforms}/window.cpp | 50 +++++++++---------- wpf/main.cpp | 26 ---------- 32 files changed, 80 insertions(+), 86 deletions(-) rename {wpf => winforms}/alloc.c (100%) rename {wpf => winforms}/area.cpp (94%) rename {wpf => winforms}/box.cpp (99%) rename {wpf => winforms}/button.cpp (97%) rename {wpf => winforms}/checkbox.cpp (97%) rename {wpf => winforms}/combobox.cpp (97%) rename {wpf => winforms}/control.cpp (85%) rename {wpf => winforms}/datetimepicker.cpp (96%) rename {wpf => winforms}/debug.c (100%) rename {wpf => winforms}/draw.cpp (98%) rename {wpf => winforms}/entry.cpp (97%) rename {wpf => winforms}/group.cpp (98%) rename {wpf => winforms}/init.c (100%) rename {wpf => winforms}/label.cpp (96%) rename {wpf => winforms}/libui.msbuild (100%) create mode 100644 winforms/main.cpp rename {wpf => winforms}/menu.cpp (96%) rename {wpf => winforms}/progressbar.cpp (94%) rename {wpf => winforms}/radiobuttons.cpp (94%) rename {wpf => winforms}/separator.cpp (93%) rename {wpf => winforms}/slider.cpp (96%) rename {wpf => winforms}/spinbox.cpp (95%) rename {wpf => winforms}/stddialogs.cpp (89%) rename {wpf => winforms}/tab.cpp (98%) rename {wpf => winforms}/text.cpp (96%) rename wpf/ui_wpf.hpp => winforms/ui_winforms.hpp (96%) rename wpf/uipriv_wpf.hpp => winforms/uipriv_winforms.hpp (61%) rename {wpf => winforms}/unmanaged.h (81%) rename {wpf => winforms}/util.c (100%) rename {wpf => winforms}/winapi.h (100%) rename {wpf => winforms}/window.cpp (73%) delete mode 100644 wpf/main.cpp diff --git a/wpf/alloc.c b/winforms/alloc.c similarity index 100% rename from wpf/alloc.c rename to winforms/alloc.c diff --git a/wpf/area.cpp b/winforms/area.cpp similarity index 94% rename from wpf/area.cpp rename to winforms/area.cpp index 9a4d2484..247cb34c 100644 --- a/wpf/area.cpp +++ b/winforms/area.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiArea { uiWindowsControl c; diff --git a/wpf/box.cpp b/winforms/box.cpp similarity index 99% rename from wpf/box.cpp rename to winforms/box.cpp index 590495ad..b81f0b30 100644 --- a/wpf/box.cpp +++ b/winforms/box.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" using namespace System::Collections::Generic; diff --git a/wpf/button.cpp b/winforms/button.cpp similarity index 97% rename from wpf/button.cpp rename to winforms/button.cpp index eedea042..16fccdf9 100644 --- a/wpf/button.cpp +++ b/winforms/button.cpp @@ -1,5 +1,5 @@ // 25 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiButton { uiWindowsControl c; diff --git a/wpf/checkbox.cpp b/winforms/checkbox.cpp similarity index 97% rename from wpf/checkbox.cpp rename to winforms/checkbox.cpp index f19ec2b1..d2b23794 100644 --- a/wpf/checkbox.cpp +++ b/winforms/checkbox.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiCheckbox { uiWindowsControl c; diff --git a/wpf/combobox.cpp b/winforms/combobox.cpp similarity index 97% rename from wpf/combobox.cpp rename to winforms/combobox.cpp index 892d3e95..be4461da 100644 --- a/wpf/combobox.cpp +++ b/winforms/combobox.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiCombobox { uiWindowsControl c; diff --git a/wpf/control.cpp b/winforms/control.cpp similarity index 85% rename from wpf/control.cpp rename to winforms/control.cpp index dc4c9e52..b21526c3 100644 --- a/wpf/control.cpp +++ b/winforms/control.cpp @@ -1,5 +1,5 @@ // 16 august 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" static uintmax_t type_uiWindowsControl = 0; @@ -10,11 +10,11 @@ uintmax_t uiWindowsControlType(void) return type_uiWindowsControl; } -UIElement ^genericHandle(uiControl *c) +Control ^genericHandle(uiControl *c) { - gcroot *h; + gcroot *h; - h = (gcroot *) uiControlHandle(c); + h = (gcroot *) uiControlHandle(c); return *h; } diff --git a/wpf/datetimepicker.cpp b/winforms/datetimepicker.cpp similarity index 96% rename from wpf/datetimepicker.cpp rename to winforms/datetimepicker.cpp index cb620e0c..eebf822d 100644 --- a/wpf/datetimepicker.cpp +++ b/winforms/datetimepicker.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" // TODO TODO TODO AVAILABLE SINCE 4.0 TODO TODO TODO diff --git a/wpf/debug.c b/winforms/debug.c similarity index 100% rename from wpf/debug.c rename to winforms/debug.c diff --git a/wpf/draw.cpp b/winforms/draw.cpp similarity index 98% rename from wpf/draw.cpp rename to winforms/draw.cpp index 87160762..d7f69bdd 100644 --- a/wpf/draw.cpp +++ b/winforms/draw.cpp @@ -1,5 +1,5 @@ // 19 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" uiDrawPath *uiDrawNewPath(uiDrawFillMode fillMode) { diff --git a/wpf/entry.cpp b/winforms/entry.cpp similarity index 97% rename from wpf/entry.cpp rename to winforms/entry.cpp index d6359f18..51c3c95e 100644 --- a/wpf/entry.cpp +++ b/winforms/entry.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiEntry { uiWindowsControl c; diff --git a/wpf/group.cpp b/winforms/group.cpp similarity index 98% rename from wpf/group.cpp rename to winforms/group.cpp index 2d3bb30f..62efb7c3 100644 --- a/wpf/group.cpp +++ b/winforms/group.cpp @@ -1,5 +1,5 @@ // 18 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiGroup { uiWindowsControl c; diff --git a/wpf/init.c b/winforms/init.c similarity index 100% rename from wpf/init.c rename to winforms/init.c diff --git a/wpf/label.cpp b/winforms/label.cpp similarity index 96% rename from wpf/label.cpp rename to winforms/label.cpp index 78b39579..270e84ef 100644 --- a/wpf/label.cpp +++ b/winforms/label.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" // TODO alignment // TODO lots of padding diff --git a/wpf/libui.msbuild b/winforms/libui.msbuild similarity index 100% rename from wpf/libui.msbuild rename to winforms/libui.msbuild diff --git a/winforms/main.cpp b/winforms/main.cpp new file mode 100644 index 00000000..29290969 --- /dev/null +++ b/winforms/main.cpp @@ -0,0 +1,26 @@ +// 25 november 2015 +#include "uipriv_winforms.hpp" + +void initWinForms(void) +{ + // TODO anything else? + // TODO return value + // TODO needed? +// Application::EnableVisualStyles(); +} + +void uninitWinForms(void) +{ + // TODO +} + +void uiMain(void) +{ + Application::Run(); +} + +void uiQuit(void) +{ + // TODO does this run later? + Application::Exit(); +} diff --git a/wpf/menu.cpp b/winforms/menu.cpp similarity index 96% rename from wpf/menu.cpp rename to winforms/menu.cpp index 06fdcd9b..a459e8fd 100644 --- a/wpf/menu.cpp +++ b/winforms/menu.cpp @@ -1,5 +1,5 @@ // 19 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" void uiMenuItemEnable(uiMenuItem *m) { diff --git a/wpf/progressbar.cpp b/winforms/progressbar.cpp similarity index 94% rename from wpf/progressbar.cpp rename to winforms/progressbar.cpp index 5bc8df87..f240c9eb 100644 --- a/wpf/progressbar.cpp +++ b/winforms/progressbar.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiProgressBar { uiWindowsControl c; diff --git a/wpf/radiobuttons.cpp b/winforms/radiobuttons.cpp similarity index 94% rename from wpf/radiobuttons.cpp rename to winforms/radiobuttons.cpp index 8277b9c9..35617cdc 100644 --- a/wpf/radiobuttons.cpp +++ b/winforms/radiobuttons.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiRadioButtons { uiWindowsControl c; diff --git a/wpf/separator.cpp b/winforms/separator.cpp similarity index 93% rename from wpf/separator.cpp rename to winforms/separator.cpp index 07cb306e..b49026b1 100644 --- a/wpf/separator.cpp +++ b/winforms/separator.cpp @@ -1,5 +1,5 @@ // 18 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiSeparator { uiWindowsControl c; diff --git a/wpf/slider.cpp b/winforms/slider.cpp similarity index 96% rename from wpf/slider.cpp rename to winforms/slider.cpp index 217d8681..240c2219 100644 --- a/wpf/slider.cpp +++ b/winforms/slider.cpp @@ -1,5 +1,5 @@ // 18 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiSlider { uiWindowsControl c; diff --git a/wpf/spinbox.cpp b/winforms/spinbox.cpp similarity index 95% rename from wpf/spinbox.cpp rename to winforms/spinbox.cpp index ee128d69..7cac727c 100644 --- a/wpf/spinbox.cpp +++ b/winforms/spinbox.cpp @@ -1,5 +1,5 @@ // 18 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" struct uiSpinbox { uiWindowsControl c; diff --git a/wpf/stddialogs.cpp b/winforms/stddialogs.cpp similarity index 89% rename from wpf/stddialogs.cpp rename to winforms/stddialogs.cpp index 388176fd..0abdf2c1 100644 --- a/wpf/stddialogs.cpp +++ b/winforms/stddialogs.cpp @@ -1,5 +1,5 @@ // 26 june 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" char *uiOpenFile(void) { diff --git a/wpf/tab.cpp b/winforms/tab.cpp similarity index 98% rename from wpf/tab.cpp rename to winforms/tab.cpp index e1b52d0b..ffc14714 100644 --- a/wpf/tab.cpp +++ b/winforms/tab.cpp @@ -1,5 +1,5 @@ // 26 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" // TODO save child alignments? // TODO scroll tabs instead of multiline tabs diff --git a/wpf/text.cpp b/winforms/text.cpp similarity index 96% rename from wpf/text.cpp rename to winforms/text.cpp index 313a1cda..ba7ad03d 100644 --- a/wpf/text.cpp +++ b/winforms/text.cpp @@ -1,5 +1,5 @@ // 25 november 2015 -#include "uipriv_wpf.hpp" +#include "uipriv_winforms.hpp" #include using namespace System::Text; diff --git a/wpf/ui_wpf.hpp b/winforms/ui_winforms.hpp similarity index 96% rename from wpf/ui_wpf.hpp rename to winforms/ui_winforms.hpp index dfee82fb..4cd128f4 100644 --- a/wpf/ui_wpf.hpp +++ b/winforms/ui_winforms.hpp @@ -8,7 +8,7 @@ This file assumes that you have included and "ui.h" beforehand, as wel #define __LIBUI_UI_WINDOWS_H__ #ifndef __cplusplus_cli -#error Sorry; ui_wpf.hpp can currently only be used from C++/CLI code. +#error Sorry; ui_winforms.hpp can currently only be used from C++/CLI code. #endif extern "C" { diff --git a/wpf/uipriv_wpf.hpp b/winforms/uipriv_winforms.hpp similarity index 61% rename from wpf/uipriv_wpf.hpp rename to winforms/uipriv_winforms.hpp index 62021ab5..0c72ba78 100644 --- a/wpf/uipriv_wpf.hpp +++ b/winforms/uipriv_winforms.hpp @@ -1,24 +1,20 @@ // 25 november 2015 #include #include "../ui.h" -#include "ui_wpf.hpp" +#include "ui_winforms.hpp" #include "../common/uipriv.h" #include "unmanaged.h" #using -#using -#using -#using +#using using namespace System; -using namespace System::ComponentModel; -using namespace System::Windows; -using namespace System::Windows::Controls; +using namespace System::Windows::Forms; // text.cpp extern String ^fromUTF8(const char *); // control.cpp -extern UIElement ^genericHandle(uiControl *c); +extern Control ^genericHandle(uiControl *c); typedef gcroot