1 /*
2 Copyright (C) 2019-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: WxdkdrawDlgLayerManager.cpt
12 */
13 
14 #ifndef WXDKDRAWDLGLAYERMANAGER_H_INCLUDED
15 /** Avoid multiple inclusions. */
16 #define WXDKDRAWDLGLAYERMANAGER_H_INCLUDED 1
17 
18 
19 
20 /**	@file WxdkdrawDlgLayerManager.h Header file for the WxdkdrawDlgLayerManager
21 	module.
22 */
23 
24 
25 #ifndef	WXDKDRAW_H_INCLUDED
26 #include <wxdkdraw/wxdkdraw.h>
27 #endif
28 
29 #ifndef	WXDKDRAWFRAME_H_INCLUDED
30 #include <wxdkdraw/WxdkdrawFrame.h>
31 #endif
32 
33 
34 /**	Dialog to change layer visibility.
35 */
36 class WxdkdrawDlgLayerManager : public wxDialog
37 {
38 
39 	private:
40 
41 		/**	Events to handle
42 		*/
43 #if	wxCHECK_VERSION(3,0,0)
44 		wxDECLARE_EVENT_TABLE();
45 #else
46 		DECLARE_EVENT_TABLE()
47 #endif
48 
49 	protected:
50 
51 		/**	Applications main frame.
52 		*/
53 		WxdkdrawFrame				*m_pParent;
54 
55 		/**	Drawing to modify.
56 		*/
57 		Wxd_drawing_t				*m_pDrw;
58 
59 		/**	Localized text fragments.
60 		*/
61 		wxChar const * const		*m_pTexts;
62 
63 		/**	Layer structures containing checkbox pointers and previous value.
64 		*/
65 		Wxd_layer_cb_t				*m_pLayerCb;
66 
67 		/**	Number of layers in drawing.
68 		*/
69 		size_t						 m_sLayerCb;
70 
71 		/**	Flag: GUI ok.
72 		*/
73 		bool dkctGUILayoutOK;
74 
75 		/**	GUI element sizerHorizontal.
76 		*/
77 		wxBoxSizer *sizerHorizontal;
78 
79 		/**	GUI element sizerVertical.
80 		*/
81 		wxBoxSizer *sizerVertical;
82 
83 		/**	GUI element scwContents.
84 		*/
85 		wxScrolledWindow *scwContents;
86 
87 		/**	GUI element sizerButtons.
88 		*/
89 		wxStdDialogButtonSizer *sizerButtons;
90 
91 		/**	GUI element sizerScwContents.
92 		*/
93 		wxBoxSizer *sizerScwContents;
94 
95 		/**	GUI element panelContents.
96 		*/
97 		wxPanel *panelContents;
98 
99 		/**	GUI element sizerContents.
100 		*/
101 		wxBoxSizer *sizerContents;
102 
103 #if	0
104 		/**	GUI element b00.
105 		*/
106 		wxCheckBox *b00;
107 #endif
108 
109 		/**	GUI element buttonOK.
110 		*/
111 		wxButton *buttonOK;
112 
113 		/**	GUI element buttonCancel.
114 		*/
115 		wxButton *buttonCancel;
116 
117 
118 	public:
119 
120 		/**	Window IDs for events.
121 		*/
122 		enum {
123 			/**	Start ID for layer checkboxes.
124 			*/
125 			WXD_ID_LAYER_START	= (wxID_HIGHEST + 1)
126 		};
127 
128 		/**	Constructor.
129 			@param	pParent		Applications main frame.
130 			@param	pDrw		Drawing to modify.
131 			@param	pTexts		Localized text fragments.
132 			@param	pLayerCb	Layer information structures.
133 			@param	sLayerCb	Number of layers in drawing and in pLayerCb.
134 		*/
135 		WxdkdrawDlgLayerManager(
136 			WxdkdrawFrame			*pParent,
137 			Wxd_drawing_t			*pDrw,
138 			wxChar const * const	*pTexts,
139 			Wxd_layer_cb_t			*pLayerCb,
140 			size_t					 sLayerCb
141 		);
142 
143 		/**	Handler for OK button.
144 			@param	event	Event to process.
145 		*/
146 		void
147 		OnOK(wxCommandEvent & event);
148 
149 		/**	Handler for Cancel button.
150 			@param	event	Event to process.
151 		*/
152 		void
153 		OnCancel(wxCommandEvent & event);
154 
155 		/**	Handler for checkbox state change.
156 			@param	event	Event to process.
157 		*/
158 		void
159 		OnCheckBox(wxCommandEvent & event);
160 
161 	protected:
162 
163 		/**	Unconnect event handler from all checkboxes.
164 		*/
165 		void
166 		UnconnectCheckBoxEvents(void);
167 
168 };
169 
170 
171 
172 /* vim: set ai sw=4 ts=4 : */
173 
174 
175 #endif
176