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: WxdkdrawDlgLineJoin.wxc
12 */
13 
14 /**	@file WxdkdrawDlgLineJoin.h Header file for the WxdkdrawDlgLineJoin module.
15 */
16 
17 #ifndef WXDKDRAWDLGLINEJOIN_H_INCLUDED
18 /** Avoid multiple inclusions. */
19 #define WXDKDRAWDLGLINEJOIN_H_INCLUDED 1
20 
21 
22 #ifndef	WXDKDRAW_H_INCLUDED
23 #include <wxdkdraw/wxdkdraw.h>
24 #endif
25 
26 #ifndef	WXDKDRAWFRAME_H_INCLUDED
27 #include <wxdkdraw/WxdkdrawFrame.h>
28 #endif
29 
30 
31 
32 /**	Dialog to modify line join.
33 */
34 class WxdkdrawDlgLineJoin : public wxDialog
35 {
36 	private:
37 
38 		/**	Events to handle.
39 		*/
40 #if	wxCHECK_VERSION(3,0,0)
41 		wxDECLARE_EVENT_TABLE();
42 #else
43 		DECLARE_EVENT_TABLE()
44 #endif
45 
46 	protected:
47 
48 		/**	Application main window.
49 		*/
50 		WxdkdrawFrame			*m_pParent;
51 
52 		/**	Object to modify.
53 		*/
54 		Wxd_object_t			*m_pObject;
55 
56 		/**	Localized text fragments.
57 		*/
58 		wxChar const * const	*m_pTexts;
59 
60 		/**	Line join button images.
61 		*/
62 		const char ** const		*m_pImages;
63 
64 		/**	Line join from object.
65 		*/
66 		uint8_t					 m_uLineJoinOriginal;
67 
68 		/**	Line join selected in dialog.
69 		*/
70 		uint8_t					 m_uLineJoinCurrent;
71 
72 		/**	Drawing element (true) or default style object (false).
73 		*/
74 		bool					 m_bDrwElem;
75 
76 	public:
77 
78 		/**	Window IDs for line join buttons.
79 		*/
80 		enum {
81 			WXD_ID_LJ_MITERED = (wxID_HIGHEST + 1),	/**< Mitered line join. */
82 			WXD_ID_LJ_ROUNDED ,						/**< Rounded line join. */
83 			WXD_ID_LJ_BEVELED						/**< Beveled line join. */
84 		};
85 
86 		/**	Constructor.
87 			@param	pParent		Applications main frame.
88 			@param	pObject		Object to modify.
89 			@param	pTexts		Localized text fragments.
90 			@param	pImages		Images for line style buttons.
91 			@param	bDrwElem	Drawing element (true) or default obj (false).
92 		*/
93 		WxdkdrawDlgLineJoin(
94 			WxdkdrawFrame			*pParent,
95 			Wxd_object_t			*pObject,
96 			wxChar const * const	*pTexts,
97 			const char ** const		*pImages,
98 			bool					 bDrwElem
99 		);
100 
101 		/**	Handler for line join buttons.
102 			@param	event	Event to process.
103 		*/
104 		void
105 		OnJoinButton(wxCommandEvent & event);
106 
107 		/**	Handler for Cancel button.
108 			@param	event	Event to process.
109 		*/
110 		void
111 		OnCancel(wxCommandEvent & event);
112 
113     /**	Flag: GUI ok.
114     */
115     bool dkctGUILayoutOK;
116 
117     /**	GUI element sizerHorizontal.
118     */
119     wxBoxSizer *sizerHorizontal;
120 
121     /**	GUI element sizerVertical.
122     */
123     wxBoxSizer *sizerVertical;
124 
125     /**	GUI element sizerButtons.
126     */
127     wxBoxSizer *sizerButtons;
128 
129     /**	GUI element buttonCancel.
130     */
131     wxButton *buttonCancel;
132 
133     /**	GUI element buttonMitered.
134     */
135     wxBitmapButton *buttonMitered;
136 
137     /**	GUI element buttonRounded.
138     */
139     wxBitmapButton *buttonRounded;
140 
141     /**	GUI element buttonBeveled.
142     */
143     wxBitmapButton *buttonBeveled;
144 
145 };
146 
147 
148 /* vim: set ai sw=4 ts=4 : */
149 
150 
151 #endif
152