Mercurial > dwindows
comparison dw.hpp @ 2908:1567f787b965
C++: Add Notebook class and add named event support to the Event class.
Also update the readme.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 27 Dec 2022 00:33:29 +0000 |
parents | afd2d900d1e9 |
children | f27fe14eef82 |
comparison
equal
deleted
inserted
replaced
2907:afd2d900d1e9 | 2908:1567f787b965 |
---|---|
1093 void SetEditable(int state) { dw_mle_set_editable(hwnd, state); } | 1093 void SetEditable(int state) { dw_mle_set_editable(hwnd, state); } |
1094 void SetVisible(int line) { dw_mle_set_visible(hwnd, line); } | 1094 void SetVisible(int line) { dw_mle_set_visible(hwnd, line); } |
1095 void SetWordWrap(int state) { dw_mle_set_word_wrap(hwnd, state); } | 1095 void SetWordWrap(int state) { dw_mle_set_word_wrap(hwnd, state); } |
1096 }; | 1096 }; |
1097 | 1097 |
1098 class Notebook : public Widget | |
1099 { | |
1100 public: | |
1101 // Constructors | |
1102 Notebook(unsigned long id, int top) { SetHWND(dw_notebook_new(id, top)); } | |
1103 Notebook(unsigned long id) { SetHWND(dw_notebook_new(id, TRUE)); } | |
1104 Notebook() { SetHWND(dw_notebook_new(0, TRUE)); } | |
1105 | |
1106 // User functions | |
1107 void Pack(unsigned long pageid, HWND page) { dw_notebook_pack(hwnd, pageid, page); } | |
1108 void PageDestroy(unsigned long pageid) { dw_notebook_page_destroy(hwnd, pageid); } | |
1109 unsigned long PageGet() { return dw_notebook_page_get(hwnd); } | |
1110 unsigned long PageNew(unsigned long flags, int front) { return dw_notebook_page_new(hwnd, flags, front); } | |
1111 void PageSet(unsigned long pageid) { dw_notebook_page_set(hwnd, pageid); } | |
1112 void PageSetStatusText(unsigned long pageid, const char *text) { dw_notebook_page_set_status_text(hwnd, pageid, text); } | |
1113 void PageSetText(unsigned long pageid, const char *text) { dw_notebook_page_set_text(hwnd, pageid, text); } | |
1114 }; | |
1115 | |
1098 class ObjectView : virtual public Widget | 1116 class ObjectView : virtual public Widget |
1099 { | 1117 { |
1100 private: | 1118 private: |
1101 bool ItemSelectConnected, ItemContextConnected; | 1119 bool ItemSelectConnected, ItemContextConnected; |
1102 #ifdef DW_LAMBDA | 1120 #ifdef DW_LAMBDA |
1413 }; | 1431 }; |
1414 | 1432 |
1415 class Event : public Handle | 1433 class Event : public Handle |
1416 { | 1434 { |
1417 private: | 1435 private: |
1418 HEV event; | 1436 HEV event, named; |
1419 public: | 1437 public: |
1420 // Constructors | 1438 // Constructors |
1421 Event() { event = dw_event_new(); SetHandle(reinterpret_cast<void *>(event)); } | 1439 Event() { event = dw_event_new(); named = DW_NULL; SetHandle(reinterpret_cast<void *>(event)); } |
1440 Event(const char *name) { | |
1441 // Try to attach to an existing event | |
1442 named = dw_named_event_get(name); | |
1443 if(!named) { | |
1444 // Otherwise try to create a new one | |
1445 named = dw_named_event_new(name); | |
1446 } | |
1447 event = DW_NULL; | |
1448 SetHandle(reinterpret_cast<void *>(named)); | |
1449 } | |
1422 // Destructor | 1450 // Destructor |
1423 virtual ~Event() { if(event) dw_event_close(&event); } | 1451 virtual ~Event() { if(event) { dw_event_close(&event); } if(named) { dw_named_event_close(named); } } |
1424 | 1452 |
1425 // User functions | 1453 // User functions |
1426 int Close() { int retval = dw_event_close(&event); delete this; return retval; } | 1454 int Close() { |
1427 int Post() { return dw_event_post(event); } | 1455 int retval = DW_ERROR_UNKNOWN; |
1428 int Reset() { return dw_event_reset(event); } | 1456 |
1429 int Wait(unsigned long timeout) { return dw_event_wait(event, timeout); } | 1457 if(event) { |
1458 retval = dw_event_close(&event); | |
1459 } else if(named) { | |
1460 retval = dw_named_event_close(named); | |
1461 named = DW_NULL; | |
1462 } | |
1463 delete this; | |
1464 return retval; | |
1465 } | |
1466 int Post() { return (named ? dw_named_event_post(named) : dw_event_post(event)); } | |
1467 int Reset() { return (named ? dw_named_event_reset(named) : dw_event_reset(event)); } | |
1468 int Wait(unsigned long timeout) { return (named ? dw_named_event_wait(named, timeout) : dw_event_wait(event, timeout)); } | |
1430 }; | 1469 }; |
1431 | 1470 |
1432 class Timer : public Handle | 1471 class Timer : public Handle |
1433 { | 1472 { |
1434 private: | 1473 private: |