# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1671846218 0 # Node ID 425dc0126818ba581fe604038e0f4367a4acea81 # Parent d53fee1980852283e679b33ef92b6e5781603390 C++: Implement SplitBar and Dialog classes. diff -r d53fee198085 -r 425dc0126818 dw.hpp --- 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(dialog)); } + Dialog() { dialog = dw_dialog_new(DW_NULL); SetHandle(reinterpret_cast(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 {