changeset 2899:425dc0126818

C++: Implement SplitBar and Dialog classes.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 24 Dec 2022 01:43:38 +0000
parents d53fee198085
children fe31d4535270
files dw.hpp
diffstat 1 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dw.hpp	Sat Dec 24 00:52:45 2022 +0000
+++ b/dw.hpp	Sat Dec 24 01:43:38 2022 +0000
@@ -1309,6 +1309,34 @@
     }
 };
 
+class SplitBar : public Widget
+{
+public:
+    // Constructors
+    SplitBar(int orient, Widget *topleft, Widget *bottomright, unsigned long id) { 
+            SetHWND(dw_splitbar_new(orient, topleft ? topleft->GetHWND() : DW_NOHWND, bottomright ? bottomright->GetHWND() : DW_NOHWND, id)); }
+    SplitBar(int orient, Widget *topleft, Widget *bottomright) { 
+            SetHWND(dw_splitbar_new(orient, topleft ? topleft->GetHWND() : DW_NOHWND, bottomright ? bottomright->GetHWND() : DW_NOHWND, 0)); }
+
+    // User functions
+    float Get() { return dw_splitbar_get(hwnd); }
+    void Set(float percent) { dw_splitbar_set(hwnd, percent); }
+};
+
+class Dialog : public Handle
+{
+private:
+    DWDialog *dialog;
+public:
+    // Constructors
+    Dialog(void *data) { dialog = dw_dialog_new(data); SetHandle(reinterpret_cast<void *>(dialog)); }
+    Dialog() { dialog = dw_dialog_new(DW_NULL); SetHandle(reinterpret_cast<void *>(dialog)); }
+
+    // User functions
+    void *Wait() { void *retval = dw_dialog_wait(dialog); delete this; return retval; }
+    int Dismiss(void *data) { return dw_dialog_dismiss(dialog, data); }
+    int Dismiss() { return dw_dialog_dismiss(dialog, NULL); }
+};
 
 class App
 {