Mercurial > dwindows
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 {