src/window_gui.h
changeset 9165 6f26cc347e7a
parent 9164 18e971e0b44f
child 9166 dce886fc5eeb
equal deleted inserted replaced
9164:18e971e0b44f 9165:6f26cc347e7a
   129 	WE_PLACE_DRAG,
   129 	WE_PLACE_DRAG,
   130 	WE_PLACE_MOUSEUP,
   130 	WE_PLACE_MOUSEUP,
   131 	WE_PLACE_PRESIZE,
   131 	WE_PLACE_PRESIZE,
   132 	WE_DROPDOWN_SELECT,
   132 	WE_DROPDOWN_SELECT,
   133 	WE_RESIZE,          ///< Request to resize the window, @see WindowEvent.we.resize
   133 	WE_RESIZE,          ///< Request to resize the window, @see WindowEvent.we.resize
   134 	WE_MESSAGE,         ///< Receipt of a message from another window. @see WindowEvent.we.message, SendWindowMessage(), SendWindowMessageClass()
       
   135 	WE_SCROLL,
   134 	WE_SCROLL,
   136 	WE_INVALIDATE_DATA, ///< Notification that data displayed by the window is obsolete
   135 	WE_INVALIDATE_DATA, ///< Notification that data displayed by the window is obsolete
   137 	WE_CTRL_CHANGED,    ///< CTRL key has changed state
   136 	WE_CTRL_CHANGED,    ///< CTRL key has changed state
   138 };
   137 };
   139 
   138 
   190 			uint16 key;     ///< 16-bit Unicode value of the key
   189 			uint16 key;     ///< 16-bit Unicode value of the key
   191 			uint16 keycode; ///< untranslated key (including shift-state)
   190 			uint16 keycode; ///< untranslated key (including shift-state)
   192 		} keypress;
   191 		} keypress;
   193 
   192 
   194 		struct {
   193 		struct {
   195 			int msg;      ///< message to be sent
   194 			int data;
   196 			int wparam;   ///< additional message-specific information
   195 		} invalidate;
   197 			int lparam;   ///< additional message-specific information
       
   198 		} message;
       
   199 
   196 
   200 		struct {
   197 		struct {
   201 			Point delta;   ///< delta position against position of last call
   198 			Point delta;   ///< delta position against position of last call
   202 		} scroll;
   199 		} scroll;
   203 
   200 
   272 	uint step_width;  ///< Step-size of width resize changes
   269 	uint step_width;  ///< Step-size of width resize changes
   273 	uint step_height; ///< Step-size of height resize changes
   270 	uint step_height; ///< Step-size of height resize changes
   274 };
   271 };
   275 
   272 
   276 /**
   273 /**
   277  * Message data structure for messages sent between winodows
       
   278  * @see SendWindowMessageW()
       
   279  */
       
   280 struct WindowMessage {
       
   281 	int msg;
       
   282 	int wparam;
       
   283 	int lparam;
       
   284 };
       
   285 
       
   286 /**
       
   287  * Data structure for an opened window
   274  * Data structure for an opened window
   288  */
   275  */
   289 struct Window : ZeroedMemoryAllocator {
   276 struct Window : ZeroedMemoryAllocator {
   290 private:
   277 private:
   291 	WindowProc *wndproc;   ///< Event handler function for the window. Do not use directly, call HandleWindowEvent() instead.
   278 	WindowProc *wndproc;   ///< Event handler function for the window. Do not use directly, call HandleWindowEvent() instead.
   320 	const Widget *original_widget; ///< Original widget layout, copied from WindowDesc
   307 	const Widget *original_widget; ///< Original widget layout, copied from WindowDesc
   321 	Widget *widget;        ///< Widgets of the window
   308 	Widget *widget;        ///< Widgets of the window
   322 	uint widget_count;     ///< Number of widgets of the window
   309 	uint widget_count;     ///< Number of widgets of the window
   323 	uint32 desc_flags;     ///< Window/widgets default flags setting, @see WindowDefaultFlag
   310 	uint32 desc_flags;     ///< Window/widgets default flags setting, @see WindowDefaultFlag
   324 
   311 
   325 	WindowMessage message; ///< Buffer for storing received messages (for communication between different window events)
       
   326 	Window *parent;        ///< Parent window
   312 	Window *parent;        ///< Parent window
   327 	byte custom[WINDOW_CUSTOM_SIZE]; ///< Additional data depending on window type
   313 	byte custom[WINDOW_CUSTOM_SIZE]; ///< Additional data depending on window type
   328 
   314 
   329 	void HandleButtonClick(byte widget);
   315 	void HandleButtonClick(byte widget);
   330 
   316