author | rubidium |
Fri, 16 May 2008 07:34:48 +0000 | |
changeset 9251 | bee6451d87a7 |
parent 9242 | 787ddde2b852 |
child 9263 | 29488e715050 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
8106
e6790dd9e750
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8102
diff
changeset
|
3 |
/** @file window_gui.h Functions, definitions and such used only by the GUI. */ |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
4 |
|
8106
e6790dd9e750
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8102
diff
changeset
|
5 |
#ifndef WINDOW_GUI_H |
e6790dd9e750
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8102
diff
changeset
|
6 |
#define WINDOW_GUI_H |
0 | 7 |
|
8222
ce0457729295
(svn r11785) -Codechange: remove some unneeded includes.
rubidium
parents:
8214
diff
changeset
|
8 |
#include "core/bitmath_func.hpp" |
9127
14f21c5954ee
(svn r12987) -Codechange: split viewport and tile selection.
rubidium
parents:
9117
diff
changeset
|
9 |
#include "core/geometry_type.hpp" |
8139
4e91c448c409
(svn r11701) -Codechange: removal unnecessary inclusions of map.h (and split map.h).
rubidium
parents:
8113
diff
changeset
|
10 |
#include "vehicle_type.h" |
8224
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8223
diff
changeset
|
11 |
#include "viewport_type.h" |
8254
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8224
diff
changeset
|
12 |
#include "player_type.h" |
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
13 |
#include "strings_type.h" |
8925
e0d37ce1eba8
(svn r12695) -Codechange: only allocate window structs when needed. Based on a patch by Alberth.
rubidium
parents:
8923
diff
changeset
|
14 |
#include "core/alloc_type.hpp" |
9127
14f21c5954ee
(svn r12987) -Codechange: split viewport and tile selection.
rubidium
parents:
9117
diff
changeset
|
15 |
#include "window_type.h" |
14f21c5954ee
(svn r12987) -Codechange: split viewport and tile selection.
rubidium
parents:
9117
diff
changeset
|
16 |
#include "tile_type.h" |
4299
91f5d2bedcff
(svn r5944) -Merge TGP (r5578, r5579, r5724, r5726): -Feature: filter for textboxes to only
truelight
parents:
4266
diff
changeset
|
17 |
|
8068
41569ce2d1d9
(svn r11629) -Fix [FS#1527]: many viewports could crash the scenario editor.
rubidium
parents:
8036
diff
changeset
|
18 |
/** |
41569ce2d1d9
(svn r11629) -Fix [FS#1527]: many viewports could crash the scenario editor.
rubidium
parents:
8036
diff
changeset
|
19 |
* The maximum number of windows that can be opened. |
41569ce2d1d9
(svn r11629) -Fix [FS#1527]: many viewports could crash the scenario editor.
rubidium
parents:
8036
diff
changeset
|
20 |
*/ |
41569ce2d1d9
(svn r11629) -Fix [FS#1527]: many viewports could crash the scenario editor.
rubidium
parents:
8036
diff
changeset
|
21 |
static const int MAX_NUMBER_OF_WINDOWS = 25; |
41569ce2d1d9
(svn r11629) -Fix [FS#1527]: many viewports could crash the scenario editor.
rubidium
parents:
8036
diff
changeset
|
22 |
|
0 | 23 |
typedef void WindowProc(Window *w, WindowEvent *e); |
24 |
||
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
25 |
/* How the resize system works: |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
26 |
First, you need to add a WWT_RESIZEBOX to the widgets, and you need |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
27 |
to add the flag WDF_RESIZABLE to the window. Now the window is ready |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
28 |
to resize itself. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
29 |
As you may have noticed, all widgets have a RESIZE_XXX in their line. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
30 |
This lines controls how the widgets behave on resize. RESIZE_NONE means |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
31 |
it doesn't do anything. Any other option let's one of the borders |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
32 |
move with the changed width/height. So if a widget has |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
33 |
RESIZE_RIGHT, and the window is made 5 pixels wider by the user, |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
34 |
the right of the window will also be made 5 pixels wider. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
35 |
Now, what if you want to clamp a widget to the bottom? Give it the flag |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
36 |
RESIZE_TB. This is RESIZE_TOP + RESIZE_BOTTOM. Now if the window gets |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
37 |
5 pixels bigger, both the top and bottom gets 5 bigger, so the whole |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
38 |
widgets moves downwards without resizing, and appears to be clamped |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
39 |
to the bottom. Nice aint it? |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
40 |
You should know one more thing about this system. Most windows can't |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
41 |
handle an increase of 1 pixel. So there is a step function, which |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
42 |
let the windowsize only be changed by X pixels. You configure this |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
43 |
after making the window, like this: |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
44 |
w->resize.step_height = 10; |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
45 |
Now the window will only change in height in steps of 10. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
46 |
You can also give a minimum width and height. The default value is |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
47 |
the default height/width of the window itself. You can change this |
8969
6d1c74e0e2cd
(svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators.
rubidium
parents:
8957
diff
changeset
|
48 |
AFTER window - creation, with: |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
49 |
w->resize.width or w->resize.height. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
50 |
That was all.. good luck, and enjoy :) -- TrueLight */ |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
51 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
52 |
enum ResizeFlag { |
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
53 |
RESIZE_NONE = 0, ///< no resize required |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
54 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
55 |
RESIZE_LEFT = 1, ///< left resize flag |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
56 |
RESIZE_RIGHT = 2, ///< rigth resize flag |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
57 |
RESIZE_TOP = 4, ///< top resize flag |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
58 |
RESIZE_BOTTOM = 8, ///< bottom resize flag |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
59 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
60 |
RESIZE_LR = RESIZE_LEFT | RESIZE_RIGHT, ///< combination of left and right resize flags |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
61 |
RESIZE_RB = RESIZE_RIGHT | RESIZE_BOTTOM, ///< combination of right and bottom resize flags |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
62 |
RESIZE_TB = RESIZE_TOP | RESIZE_BOTTOM, ///< combination of top and bottom resize flags |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
63 |
RESIZE_LRB = RESIZE_LEFT | RESIZE_RIGHT | RESIZE_BOTTOM, ///< combination of left, right and bottom resize flags |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
64 |
RESIZE_LRTB = RESIZE_LEFT | RESIZE_RIGHT | RESIZE_TOP | RESIZE_BOTTOM, ///< combination of all resize flags |
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
65 |
RESIZE_RTB = RESIZE_RIGHT | RESIZE_TOP | RESIZE_BOTTOM, ///< combination of right, top and bottom resize flag |
4749
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
66 |
|
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
67 |
/* The following flags are used by the system to specify what is disabled, hidden, or clicked |
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
68 |
* They are used in the same place as the above RESIZE_x flags, Widget visual_flags. |
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
69 |
* These states are used in exceptions. If nothing is specified, they will indicate |
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
70 |
* Enabled, visible or unclicked widgets*/ |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
71 |
WIDG_DISABLED = 4, ///< widget is greyed out, not available |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
72 |
WIDG_HIDDEN = 5, ///< widget is made invisible |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
73 |
WIDG_LOWERED = 6, ///< widget is paint lowered, a pressed button in fact |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
74 |
}; |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
75 |
|
4755
9ebcb0db6c06
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
glx
parents:
4749
diff
changeset
|
76 |
enum { |
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
77 |
WIDGET_LIST_END = -1, ///< indicate the end of widgets' list for vararg functions |
4755
9ebcb0db6c06
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
glx
parents:
4749
diff
changeset
|
78 |
}; |
9ebcb0db6c06
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
glx
parents:
4749
diff
changeset
|
79 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
80 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
81 |
* Window widget data structure |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
82 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
83 |
struct Widget { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
84 |
byte type; ///< Widget type, see WindowWidgetTypes |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
85 |
byte display_flags; ///< Resize direction, alignment, etc. during resizing, see ResizeFlags |
4547
d37c2d172ad4
(svn r6379) -Codechange: cast 'remove babel' on widget's unkA and rename it to 'data'.
Darkvater
parents:
4542
diff
changeset
|
86 |
byte color; ///< Widget colour, see docs/ottd-colourtext-palette.png |
5973
b371612e3dbf
(svn r8662) -Fix r8661: don't try to put negative values in unsigned vars
bjarni
parents:
5944
diff
changeset
|
87 |
int16 left, right, top, bottom; ///< The position offsets inside the window |
4547
d37c2d172ad4
(svn r6379) -Codechange: cast 'remove babel' on widget's unkA and rename it to 'data'.
Darkvater
parents:
4542
diff
changeset
|
88 |
uint16 data; ///< The String/Image or special code (list-matrixes) of a widget |
d37c2d172ad4
(svn r6379) -Codechange: cast 'remove babel' on widget's unkA and rename it to 'data'.
Darkvater
parents:
4542
diff
changeset
|
89 |
StringID tooltips; ///< Tooltips that are shown when rightclicking on a widget |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
90 |
}; |
0 | 91 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
92 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
93 |
* Flags to describe the look of the frame |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
94 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
95 |
enum FrameFlags { |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
96 |
FR_NONE = 0, |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
97 |
FR_TRANSPARENT = 1 << 0, ///< Makes the background transparent if set |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
98 |
FR_BORDERONLY = 1 << 4, ///< Draw border only, no background |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
99 |
FR_LOWERED = 1 << 5, ///< If set the frame is lowered and the background color brighter (ie. buttons when pressed) |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
100 |
FR_DARKENED = 1 << 6, ///< If set the background is darker, allows for lowered frames with normal background color when used with FR_LOWERED (ie. dropdown boxes) |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
101 |
}; |
4437
49e79e135539
(svn r6209) Move DrawFrameRect() out of gfx.[ch], because it uses data (_color_list) which the renderer shouldn't have know about
tron
parents:
4434
diff
changeset
|
102 |
|
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
103 |
DECLARE_ENUM_AS_BIT_SET(FrameFlags); |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
104 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
105 |
/* wiget.cpp */ |
4437
49e79e135539
(svn r6209) Move DrawFrameRect() out of gfx.[ch], because it uses data (_color_list) which the renderer shouldn't have know about
tron
parents:
4434
diff
changeset
|
106 |
void DrawFrameRect(int left, int top, int right, int bottom, int color, FrameFlags flags); |
1938
70baf462aff1
(svn r2444) - CodeChange: Add an enum for demagicifying the values of the 'flags' parameter of DrawFrameRect(). (_Abraxa_)
hackykid
parents:
1648
diff
changeset
|
107 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
108 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
109 |
* Available window events |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
110 |
*/ |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
111 |
enum WindowEventCodes { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
112 |
WE_CREATE, ///< Initialize the Window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
113 |
WE_DESTROY, ///< Prepare for deletion of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
114 |
WE_PAINT, ///< Repaint the window contents |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
115 |
WE_KEYPRESS, ///< Key pressed |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
116 |
WE_CLICK, ///< Left mouse button click |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
117 |
WE_DOUBLE_CLICK, ///< Left mouse button double click |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
118 |
WE_RCLICK, ///< Right mouse button click |
5413 | 119 |
WE_MOUSEOVER, |
120 |
WE_MOUSEWHEEL, |
|
9161
fda175383e87
(svn r13024) -Codechange: do not use WE_MOUSELOOP when WE_TICK suffices, rename WE_4 to something more descriptive and correct some (completely incorrect) comments.
rubidium
parents:
9153
diff
changeset
|
121 |
WE_MOUSELOOP, ///< Event for each mouse event in the game (at least once every game tick) |
fda175383e87
(svn r13024) -Codechange: do not use WE_MOUSELOOP when WE_TICK suffices, rename WE_4 to something more descriptive and correct some (completely incorrect) comments.
rubidium
parents:
9153
diff
changeset
|
122 |
WE_TICK, ///< Regularly occurring event (every game tick) |
fda175383e87
(svn r13024) -Codechange: do not use WE_MOUSELOOP when WE_TICK suffices, rename WE_4 to something more descriptive and correct some (completely incorrect) comments.
rubidium
parents:
9153
diff
changeset
|
123 |
WE_100_TICKS, ///< Regularly occurring event (every 100 game ticks, approximatelly 3 seconds) |
5413 | 124 |
WE_TIMEOUT, |
125 |
WE_PLACE_OBJ, |
|
126 |
WE_ABORT_PLACE_OBJ, |
|
127 |
WE_ON_EDIT_TEXT, |
|
128 |
WE_DRAGDROP, |
|
129 |
WE_PLACE_DRAG, |
|
130 |
WE_PLACE_MOUSEUP, |
|
131 |
WE_PLACE_PRESIZE, |
|
132 |
WE_DROPDOWN_SELECT, |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
133 |
WE_RESIZE, ///< Request to resize the window, @see WindowEvent.we.resize |
5413 | 134 |
WE_SCROLL, |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
135 |
WE_INVALIDATE_DATA, ///< Notification that data displayed by the window is obsolete |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
136 |
WE_CTRL_CHANGED, ///< CTRL key has changed state |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
137 |
}; |
0 | 138 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
139 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
140 |
* Data structures for additional data associated with a window event |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
141 |
* @see WindowEventCodes |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
142 |
*/ |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
143 |
struct WindowEvent { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
144 |
byte event; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
145 |
union { |
7367
cafca0510781
(svn r10730) -Codechange: allow (some) arbitrary data to be send to the WE_CREATE event.
rubidium
parents:
7341
diff
changeset
|
146 |
struct { |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
147 |
Point pt; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
148 |
int widget; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
149 |
} click; |
543
946badd71033
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
424
diff
changeset
|
150 |
|
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
151 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
152 |
Point pt; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
153 |
TileIndex tile; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
154 |
TileIndex starttile; |
7888
a28f4cfff934
(svn r11439) -Codechange: replace some magic numbers by a ViewportPlaceMethod enumified constant. Patch by SmatZ.
rubidium
parents:
7734
diff
changeset
|
155 |
ViewportPlaceMethod select_method; |
6669
bb48a810a509
(svn r9900) -Codechange: Separate the variables for how to highlight a land area and what to do with it afterwards.
maedhros
parents:
6666
diff
changeset
|
156 |
byte select_proc; |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
157 |
} place; |
1648
41c3d5de9994
(svn r2152) - Fix: Chatbar in MP games is now on-top of the news window.
darkvater
parents:
1570
diff
changeset
|
158 |
|
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
159 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
160 |
Point pt; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
161 |
int widget; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
162 |
} dragdrop; |
4335
02934874f33d
(svn r6036) -Codechange: do not handle SCROLL in a central function, but let windows handle them theirself. Added WE_SCROLL for this.
truelight
parents:
4318
diff
changeset
|
163 |
|
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
164 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
165 |
Point size; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
166 |
Point diff; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
167 |
} sizing; |
4337
e705eef174bf
(svn r6038) -Codechange: move mousewheel code to event WE_MOUSEWHEEL instead of a general function that handles that
truelight
parents:
4335
diff
changeset
|
168 |
|
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
169 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
170 |
char *str; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
171 |
} edittext; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
172 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
173 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
174 |
int button; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
175 |
int index; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
176 |
} dropdown; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
177 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
178 |
struct { |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
179 |
Point pt; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
180 |
int widget; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
181 |
} mouseover; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
182 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
183 |
struct { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
184 |
bool cont; ///< continue the search? (default true) |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
185 |
uint16 key; ///< 16-bit Unicode value of the key |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
186 |
uint16 keycode; ///< untranslated key (including shift-state) |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
187 |
} keypress; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
188 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
189 |
struct { |
9165
6f26cc347e7a
(svn r13028) -Codechange: WE_MESSAGE and WE_INVALIDATE_DATA were doing the same thing.
rubidium
parents:
9164
diff
changeset
|
190 |
int data; |
6f26cc347e7a
(svn r13028) -Codechange: WE_MESSAGE and WE_INVALIDATE_DATA were doing the same thing.
rubidium
parents:
9164
diff
changeset
|
191 |
} invalidate; |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
192 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
193 |
struct { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
194 |
Point delta; ///< delta position against position of last call |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
195 |
} scroll; |
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
196 |
|
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
197 |
struct { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
198 |
int wheel; ///< how much was 'wheel'd' |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
199 |
} wheel; |
8586
cb0e7e00f1d2
(svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed
smatz
parents:
8418
diff
changeset
|
200 |
|
cb0e7e00f1d2
(svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed
smatz
parents:
8418
diff
changeset
|
201 |
struct { |
cb0e7e00f1d2
(svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed
smatz
parents:
8418
diff
changeset
|
202 |
bool cont; ///< continue the search? (default true) |
cb0e7e00f1d2
(svn r12167) -Feature(tte): change colour of autorail and autoroad selection when Ctrl is pressed
smatz
parents:
8418
diff
changeset
|
203 |
} ctrl; |
4634
07699ac2bf37
(svn r6499) -Codechange: Finally, got "byte event" outside of the union WindowEvent, which is now a struct
belugas
parents:
4547
diff
changeset
|
204 |
} we; |
0 | 205 |
}; |
206 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
207 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
208 |
* High level window description |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
209 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
210 |
struct WindowDesc { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
211 |
int16 left; ///< Prefered x position of left edge of the window, @see WindowDefaultPosition() |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
212 |
int16 top; ///< Prefered y position of the top of the window, @see WindowDefaultPosition() |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
213 |
int16 minimum_width; ///< Minimal width of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
214 |
int16 minimum_height; ///< Minimal height of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
215 |
int16 default_width; ///< Prefered initial width of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
216 |
int16 default_height; ///< Prefered initial height of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
217 |
WindowClass cls; ///< Class of the window, @see WindowClass |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
218 |
WindowClass parent_cls; ///< Class of the parent window, @see WindowClass |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
219 |
uint32 flags; ///< Flags, @see WindowDefaultFlags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
220 |
const Widget *widgets; ///< List of widgets with their position and size for the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
221 |
WindowProc *proc; ///< Window event handler function for the window |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
222 |
}; |
0 | 223 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
224 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
225 |
* Window default widget/window handling flags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
226 |
*/ |
5413 | 227 |
enum WindowDefaultFlag { |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
228 |
WDF_STD_TOOLTIPS = 1 << 0, ///< use standard routine when displaying tooltips |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
229 |
WDF_DEF_WIDGET = 1 << 1, ///< Default widget control for some widgets in the on click event, @see DispatchLeftClickEvent() |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
230 |
WDF_STD_BTN = 1 << 2, ///< Default handling for close and titlebar widgets (widget no 0 and 1) |
8019
fc0e94dee165
(svn r11579) -Revert(r11578): some cases of key propagation are not handled correctly.
belugas
parents:
8018
diff
changeset
|
231 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
232 |
WDF_UNCLICK_BUTTONS = 1 << 4, ///< Unclick buttons when the window event times out |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
233 |
WDF_STICKY_BUTTON = 1 << 5, ///< Set window to sticky mode; they are not closed unless closed with 'X' (widget 2) |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
234 |
WDF_RESIZABLE = 1 << 6, ///< Window can be resized |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
235 |
WDF_MODAL = 1 << 7, ///< The window is a modal child of some other window, meaning the parent is 'inactive' |
0 | 236 |
}; |
237 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
238 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
239 |
* Special values for 'left' and 'top' to cause a specific placement |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
240 |
*/ |
5413 | 241 |
enum WindowDefaultPosition { |
5072
69195f96a23a
(svn r7130) -Codechange: Handle the positioning of windows through the desc->left/top settings with
Darkvater
parents:
5071
diff
changeset
|
242 |
WDP_AUTO = -1, ///< Find a place automatically |
69195f96a23a
(svn r7130) -Codechange: Handle the positioning of windows through the desc->left/top settings with
Darkvater
parents:
5071
diff
changeset
|
243 |
WDP_CENTER = -2, ///< Center the window (left/right or top/bottom) |
69195f96a23a
(svn r7130) -Codechange: Handle the positioning of windows through the desc->left/top settings with
Darkvater
parents:
5071
diff
changeset
|
244 |
WDP_ALIGN_TBR = -3, ///< Align the right side of the window with the right side of the main toolbar |
69195f96a23a
(svn r7130) -Codechange: Handle the positioning of windows through the desc->left/top settings with
Darkvater
parents:
5071
diff
changeset
|
245 |
WDP_ALIGN_TBL = -4, ///< Align the left side of the window with the left side of the main toolbar |
0 | 246 |
}; |
247 |
||
8082
63240e1bd6cc
(svn r11643) -Codechange: conform with the coding style for the WP macro uses.
rubidium
parents:
8068
diff
changeset
|
248 |
#define WP(ptr, str) (*(str*)(ptr)->custom) |
0 | 249 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
250 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
251 |
* Scrollbar data structure |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
252 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
253 |
struct Scrollbar { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
254 |
uint16 count; ///< Number of elements in the list |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
255 |
uint16 cap; ///< Number of visible elements of the scroll bar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
256 |
uint16 pos; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
257 |
}; |
0 | 258 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
259 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
260 |
* Data structure for resizing a window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
261 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
262 |
struct ResizeInfo { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
263 |
uint width; ///< Minimum allowed width of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
264 |
uint height; ///< Minimum allowed height of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
265 |
uint step_width; ///< Step-size of width resize changes |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
266 |
uint step_height; ///< Step-size of height resize changes |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
267 |
}; |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
268 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
269 |
/** |
9184 | 270 |
* Data structure for a window viewport |
271 |
*/ |
|
272 |
struct ViewportData : ViewPort { |
|
273 |
VehicleID follow_vehicle; |
|
274 |
int32 scrollpos_x; |
|
275 |
int32 scrollpos_y; |
|
276 |
int32 dest_scrollpos_x; |
|
277 |
int32 dest_scrollpos_y; |
|
278 |
}; |
|
279 |
||
280 |
/** |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
281 |
* Data structure for an opened window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
282 |
*/ |
8925
e0d37ce1eba8
(svn r12695) -Codechange: only allocate window structs when needed. Based on a patch by Alberth.
rubidium
parents:
8923
diff
changeset
|
283 |
struct Window : ZeroedMemoryAllocator { |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
284 |
private: |
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
285 |
WindowProc *wndproc; ///< Event handler function for the window. Do not use directly, call HandleWindowEvent() instead. |
9166
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
286 |
void HandleWindowEvent(WindowEvent *e); |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
287 |
|
9142
858a058aa730
(svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor.
rubidium
parents:
9127
diff
changeset
|
288 |
protected: |
9178
3235f895bf12
(svn r13041) -Fix: calling a virtual function on a not fully constructed object is bound to cause errors.
rubidium
parents:
9168
diff
changeset
|
289 |
void Initialize(int x, int y, int min_width, int min_height, |
9203
082fbf0500c4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
9188
diff
changeset
|
290 |
WindowProc *proc, WindowClass cls, const Widget *widget, int window_number); |
9178
3235f895bf12
(svn r13041) -Fix: calling a virtual function on a not fully constructed object is bound to cause errors.
rubidium
parents:
9168
diff
changeset
|
291 |
void FindWindowPlacementAndResize(int def_width, int def_height); |
3235f895bf12
(svn r13041) -Fix: calling a virtual function on a not fully constructed object is bound to cause errors.
rubidium
parents:
9168
diff
changeset
|
292 |
void FindWindowPlacementAndResize(const WindowDesc *desc); |
9142
858a058aa730
(svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor.
rubidium
parents:
9127
diff
changeset
|
293 |
|
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
294 |
public: |
9203
082fbf0500c4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
9188
diff
changeset
|
295 |
Window(int x, int y, int width, int height, WindowProc *proc, WindowClass cls, const Widget *widget); |
082fbf0500c4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
9188
diff
changeset
|
296 |
Window(const WindowDesc *desc, WindowNumber number = 0); |
9142
858a058aa730
(svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor.
rubidium
parents:
9127
diff
changeset
|
297 |
|
9115
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
298 |
virtual ~Window(); |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
299 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
300 |
uint16 flags4; ///< Window flags, @see WindowFlags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
301 |
WindowClass window_class; ///< Window class |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
302 |
WindowNumber window_number; ///< Window number within the window class |
0 | 303 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
304 |
int left; ///< x position of left edge of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
305 |
int top; ///< y position of top edge of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
306 |
int width; ///< width of the window (number of pixels to the right in x direction) |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
307 |
int height; ///< Height of the window (number of pixels down in y direction) |
0 | 308 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
309 |
Scrollbar hscroll; ///< Horizontal scroll bar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
310 |
Scrollbar vscroll; ///< First vertical scroll bar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
311 |
Scrollbar vscroll2; ///< Second vertical scroll bar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
312 |
ResizeInfo resize; ///< Resize information |
0 | 313 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
314 |
byte caption_color; ///< Background color of the window caption, contains PlayerID |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
315 |
|
9184 | 316 |
ViewportData *viewport; ///< Pointer to viewport data, if present |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
317 |
const Widget *original_widget; ///< Original widget layout, copied from WindowDesc |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
318 |
Widget *widget; ///< Widgets of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
319 |
uint widget_count; ///< Number of widgets of the window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
320 |
uint32 desc_flags; ///< Window/widgets default flags setting, @see WindowDefaultFlag |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
321 |
|
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
322 |
Window *parent; ///< Parent window |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
323 |
byte custom[WINDOW_CUSTOM_SIZE]; ///< Additional data depending on window type |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
324 |
|
8035
8c76ea0d84ab
(svn r11595) -Codechange: add a new member to Window struct, based on its function counterpart HandleButtonClick.
belugas
parents:
8032
diff
changeset
|
325 |
void HandleButtonClick(byte widget); |
8c76ea0d84ab
(svn r11595) -Codechange: add a new member to Window struct, based on its function counterpart HandleButtonClick.
belugas
parents:
8032
diff
changeset
|
326 |
|
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
327 |
void SetWidgetDisabledState(byte widget_index, bool disab_stat); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
328 |
void DisableWidget(byte widget_index); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
329 |
void EnableWidget(byte widget_index); |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
330 |
bool IsWidgetDisabled(byte widget_index) const; |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
331 |
void SetWidgetHiddenState(byte widget_index, bool hidden_stat); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
332 |
void HideWidget(byte widget_index); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
333 |
void ShowWidget(byte widget_index); |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
334 |
bool IsWidgetHidden(byte widget_index) const; |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
335 |
void SetWidgetLoweredState(byte widget_index, bool lowered_stat); |
7996
809895d51e05
(svn r11554) -Codechange: be more consistent with the naming of the widget functions.
rubidium
parents:
7995
diff
changeset
|
336 |
void ToggleWidgetLoweredState(byte widget_index); |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
337 |
void LowerWidget(byte widget_index); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
338 |
void RaiseWidget(byte widget_index); |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
339 |
bool IsWidgetLowered(byte widget_index) const; |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
340 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
341 |
void RaiseButtons(); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
342 |
void CDECL SetWidgetsDisabledState(bool disab_stat, int widgets, ...); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
343 |
void CDECL SetWidgetsHiddenState(bool hidden_stat, int widgets, ...); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
344 |
void CDECL SetWidgetsLoweredState(bool lowered_stat, int widgets, ...); |
8026
a188ea8201ce
(svn r11586) -Fix: make another widget 'accessor' function const when it should be const.
glx
parents:
8019
diff
changeset
|
345 |
void InvalidateWidget(byte widget_index) const; |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
346 |
|
9115
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
347 |
void SetDirty() const; |
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
348 |
|
9166
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
349 |
/*** Event handling ***/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
350 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
351 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
352 |
* This window is currently being repainted. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
353 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
354 |
virtual void OnPaint(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
355 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
356 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
357 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
358 |
* A key has been pressed. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
359 |
* @param key the Unicode value of the key. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
360 |
* @param keycode the untranslated key code including shift state. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
361 |
* @return true if the key press has been handled and no other |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
362 |
* window should receive the event. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
363 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
364 |
virtual bool OnKeyPress(uint16 key, uint16 keycode); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
365 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
366 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
367 |
* The state of the control key has changed |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
368 |
* @return true if the change has been handled and no other |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
369 |
* window should receive the event. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
370 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
371 |
virtual bool OnCTRLStateChange(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
372 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
373 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
374 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
375 |
* A click with the left mouse button has been made on the window. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
376 |
* @param pt the point inside the window that has been clicked. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
377 |
* @param widget the clicked widget. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
378 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
379 |
virtual void OnClick(Point pt, int widget); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
380 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
381 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
382 |
* A double click with the left mouse button has been made on the window. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
383 |
* @param pt the point inside the window that has been clicked. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
384 |
* @param widget the clicked widget. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
385 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
386 |
virtual void OnDoubleClick(Point pt, int widget); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
387 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
388 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
389 |
* A click with the right mouse button has been made on the window. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
390 |
* @param pt the point inside the window that has been clicked. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
391 |
* @param widget the clicked widget. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
392 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
393 |
virtual void OnRightClick(Point pt, int widget); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
394 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
395 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
396 |
* A dragged 'object' has been released. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
397 |
* @param pt the point inside the window where the release took place. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
398 |
* @param widget the widget where the release took place. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
399 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
400 |
virtual void OnDragDrop(Point pt, int widget); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
401 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
402 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
403 |
* Handle the request for (viewport) scrolling. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
404 |
* @param delta the amount the viewport must be scrolled. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
405 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
406 |
virtual void OnScroll(Point delta); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
407 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
408 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
409 |
* The mouse is currently moving over the window or has just moved outside |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
410 |
* of the window. In the latter case pt is (-1, -1). |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
411 |
* @param pt the point inside the window that the mouse hovers over. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
412 |
* @param widget the widget the mouse hovers over. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
413 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
414 |
virtual void OnMouseOver(Point pt, int widget); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
415 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
416 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
417 |
* The mouse wheel has been turned. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
418 |
* @param wheel the amount of movement of the mouse wheel. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
419 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
420 |
virtual void OnMouseWheel(int wheel); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
421 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
422 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
423 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
424 |
* Called for every mouse loop run, which is at least once per (game) tick. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
425 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
426 |
virtual void OnMouseLoop(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
427 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
428 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
429 |
* Called once per (game) tick. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
430 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
431 |
virtual void OnTick(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
432 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
433 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
434 |
* Called once every 100 (game) ticks. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
435 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
436 |
virtual void OnHundredthTick(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
437 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
438 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
439 |
* Called when this window's timeout has been reached. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
440 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
441 |
virtual void OnTimeout(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
442 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
443 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
444 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
445 |
* Called when the window got resized. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
446 |
* @param new_size the new size of the window. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
447 |
* @param delta the amount of which the window size changed. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
448 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
449 |
virtual void OnResize(Point new_size, Point delta); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
450 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
451 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
452 |
* A dropdown option associated to this window has been selected. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
453 |
* @param widget the widget (button) that the dropdown is associated with. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
454 |
* @param index the element in the dropdown that is selected. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
455 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
456 |
virtual void OnDropdownSelect(int widget, int index); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
457 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
458 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
459 |
* The query window opened from this window has closed. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
460 |
* @param str the new value of the string or NULL if the window |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
461 |
* was cancelled. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
462 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
463 |
virtual void OnQueryTextFinished(char *str); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
464 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
465 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
466 |
* Some data on this window has become invalid. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
467 |
* @param data information about the changed data. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
468 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
469 |
virtual void OnInvalidateData(int data = 0); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
470 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
471 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
472 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
473 |
* The user clicked some place on the map when a tile highlight mode |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
474 |
* has been set. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
475 |
* @param pt the exact point on the map that has been clicked. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
476 |
* @param tile the tile on the map that has been clicked. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
477 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
478 |
virtual void OnPlaceObject(Point pt, TileIndex tile); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
479 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
480 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
481 |
* The user cancelled a tile highlight mode that has been set. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
482 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
483 |
virtual void OnPlaceObjectAbort(); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
484 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
485 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
486 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
487 |
* The user is dragging over the map when the tile highlight mode |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
488 |
* has been set. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
489 |
* @param select_method the method of selection (allowed directions) |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
490 |
* @param select_proc what will be created when the drag is over. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
491 |
* @param pt the exact point on the map where the mouse is. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
492 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
493 |
virtual void OnPlaceDrag(ViewportPlaceMethod select_method, byte select_proc, Point pt); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
494 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
495 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
496 |
* The user has dragged over the map when the tile highlight mode |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
497 |
* has been set. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
498 |
* @param select_method the method of selection (allowed directions) |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
499 |
* @param select_proc what should be created. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
500 |
* @param pt the exact point on the map where the mouse was released. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
501 |
* @param start_tile the begin tile of the drag. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
502 |
* @param end_tile the end tile of the drag. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
503 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
504 |
virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, byte select_proc, Point pt, TileIndex start_tile, TileIndex end_tile); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
505 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
506 |
/** |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
507 |
* The user moves over the map when a tile highlight mode has been set |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
508 |
* when the special mouse mode has been set to 'PRESIZE' mode. An |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
509 |
* example of this is the tile highlight for dock building. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
510 |
* @param pt the exact point on the map where the mouse is. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
511 |
* @param tile the tile on the map where the mouse is. |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
512 |
*/ |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
513 |
virtual void OnPlacePresize(Point pt, TileIndex tile); |
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
514 |
|
dce886fc5eeb
(svn r13029) -Codechange: more work in the road to getting the WP macros and byte[WINDOW_CUSTOM_SIZE] removed. This step changes the event handling to work directly on the Window class instead of via a function pointer and big switches while keeping backward compatability while we're rewriting the Windows to the new scheme.
rubidium
parents:
9165
diff
changeset
|
515 |
/*** End of the event handling ***/ |
0 | 516 |
}; |
517 |
||
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
518 |
enum SortListFlags { |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
519 |
VL_NONE = 0, ///< no sort |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
520 |
VL_DESC = 1 << 0, ///< sort descending or ascending |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
521 |
VL_RESORT = 1 << 1, ///< instruct the code to resort the list in the next loop |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
522 |
VL_REBUILD = 1 << 2, ///< create sort-listing to use for qsort and friends |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
523 |
VL_END = 1 << 3, |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
524 |
}; |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
525 |
DECLARE_ENUM_AS_BIT_SET(SortListFlags); |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
526 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
527 |
struct Listing { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
528 |
bool order; ///< Ascending/descending |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
529 |
byte criteria; ///< Sorting criteria |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
530 |
}; |
588 | 531 |
|
9182
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
532 |
template <typename T> |
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
533 |
struct GUIList { |
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
534 |
T* sort_list; ///< The items to sort. |
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
535 |
SortListFlags flags; ///< used to control sorting/resorting/etc. |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
536 |
uint16 list_length; ///< length of the list being sorted |
9182
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
537 |
uint16 resort_timer; ///< resort list after a given amount of ticks if set |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
538 |
byte sort_type; ///< what criteria to sort on |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
539 |
}; |
6643
f81bee57bc09
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
6638
diff
changeset
|
540 |
|
0 | 541 |
/****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/ |
542 |
enum WindowWidgetBehaviours { |
|
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
543 |
WWB_PUSHBUTTON = 1 << 5, |
4938
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
544 |
|
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
545 |
WWB_MASK = 0xE0, |
0 | 546 |
}; |
547 |
||
548 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
549 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
550 |
* Window widget types |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
551 |
*/ |
0 | 552 |
enum WindowWidgetTypes { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
553 |
WWT_EMPTY, ///< Empty widget, place holder to reserve space in widget array |
4938
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
554 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
555 |
WWT_PANEL, ///< Simple depressed panel |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
556 |
WWT_INSET, ///< Pressed (inset) panel, most commonly used as combo box _text_ area |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
557 |
WWT_IMGBTN, ///< Button with image |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
558 |
WWT_IMGBTN_2, ///< Button with diff image when clicked |
0 | 559 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
560 |
WWT_TEXTBTN, ///< Button with text |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
561 |
WWT_TEXTBTN_2, ///< Button with diff text when clicked |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
562 |
WWT_LABEL, ///< Centered label |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
563 |
WWT_TEXT, ///< Pure simple text |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
564 |
WWT_MATRIX, ///< List of items underneath each other |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
565 |
WWT_SCROLLBAR, ///< Vertical scrollbar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
566 |
WWT_FRAME, ///< Frame |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
567 |
WWT_CAPTION, ///< Window caption (window title between closebox and stickybox) |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
568 |
|
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
569 |
WWT_HSCROLLBAR, ///< Horizontal scrollbar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
570 |
WWT_STICKYBOX, ///< Sticky box (normally at top-right of a window) |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
571 |
WWT_SCROLL2BAR, ///< 2nd vertical scrollbar |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
572 |
WWT_RESIZEBOX, ///< Resize box (normally at bottom-right of a window) |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
573 |
WWT_CLOSEBOX, ///< Close box (at top-left of a window) |
8335
09a2e049b3a8
(svn r11901) -Add: add two widgets for dropdowns, one raised and one inset, to eventually replace use of two widgets for each dropdown control.
peter1138
parents:
8284
diff
changeset
|
574 |
WWT_DROPDOWN, ///< Raised drop down list (regular) |
09a2e049b3a8
(svn r11901) -Add: add two widgets for dropdowns, one raised and one inset, to eventually replace use of two widgets for each dropdown control.
peter1138
parents:
8284
diff
changeset
|
575 |
WWT_DROPDOWNIN, ///< Inset drop down list (used on game options only) |
8737
4405e2e80db6
(svn r12425) -Feature [FS#1846]: On Screen Keyboard for input fields so someone without a keyboard can enter text too. Patch by Dominik.
rubidium
parents:
8586
diff
changeset
|
576 |
WWT_EDITBOX, ///< a textbox for typing (don't forget to call ShowOnScreenKeyboard() when clicked) |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
577 |
WWT_LAST, ///< Last Item. use WIDGETS_END to fill up padding!! |
4939
bef7c24a6027
(svn r6926) -Codechange: Rename WWT_4 to WWT_TEXTBTN_2 and WWT_6 to WWT_INSET (credits to peter1138
Darkvater
parents:
4938
diff
changeset
|
578 |
|
bef7c24a6027
(svn r6926) -Codechange: Rename WWT_4 to WWT_TEXTBTN_2 and WWT_6 to WWT_INSET (credits to peter1138
Darkvater
parents:
4938
diff
changeset
|
579 |
WWT_MASK = 0x1F, |
0 | 580 |
|
4938
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
581 |
WWT_PUSHBTN = WWT_PANEL | WWB_PUSHBUTTON, |
4434
a08cb4b5c179
(svn r6204) -Cleanup: replace non-indentation with spaces; like '}<TAB>else {' -> '} else {', tabs between code and comment, etc.
rubidium
parents:
4345
diff
changeset
|
582 |
WWT_PUSHTXTBTN = WWT_TEXTBTN | WWB_PUSHBUTTON, |
a08cb4b5c179
(svn r6204) -Cleanup: replace non-indentation with spaces; like '}<TAB>else {' -> '} else {', tabs between code and comment, etc.
rubidium
parents:
4345
diff
changeset
|
583 |
WWT_PUSHIMGBTN = WWT_IMGBTN | WWB_PUSHBUTTON, |
0 | 584 |
}; |
585 |
||
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
586 |
#define WIDGETS_END WWT_LAST, RESIZE_NONE, 0, 0, 0, 0, 0, 0, STR_NULL |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
164
diff
changeset
|
587 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
588 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
589 |
* Window flags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
590 |
*/ |
0 | 591 |
enum WindowFlags { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
592 |
WF_TIMEOUT_SHL = 0, ///< Window timeout counter shift |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
593 |
WF_TIMEOUT_MASK = 7, ///< Window timeout counter bit mask (3 bits), @see WF_TIMEOUT_SHL |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
594 |
WF_DRAGGING = 1 << 3, ///< Window is being dragged |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
595 |
WF_SCROLL_UP = 1 << 4, ///< Upper scroll button has been pressed, @see ScrollbarClickHandler() |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
596 |
WF_SCROLL_DOWN = 1 << 5, ///< Lower scroll button has been pressed, @see ScrollbarClickHandler() |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
597 |
WF_SCROLL_MIDDLE = 1 << 6, ///< Scrollbar scrolling, @see ScrollbarClickHandler() |
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
598 |
WF_HSCROLL = 1 << 7, |
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
599 |
WF_SIZING = 1 << 8, |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
600 |
WF_STICKY = 1 << 9, ///< Window is made sticky by user |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
601 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
602 |
WF_DISABLE_VP_SCROLL = 1 << 10, ///< Window does not do autoscroll, @see HandleAutoscroll() |
0 | 603 |
|
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
604 |
WF_WHITE_BORDER_ONE = 1 << 11, |
5416
b9a3326da943
(svn r7619) -Feature (Internal): Add support for modal children. It's a window-child that
Darkvater
parents:
5415
diff
changeset
|
605 |
WF_WHITE_BORDER_MASK = 1 << 12 | WF_WHITE_BORDER_ONE, |
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
606 |
WF_SCROLL2 = 1 << 13, |
0 | 607 |
}; |
608 |
||
609 |
Window *BringWindowToFrontById(WindowClass cls, WindowNumber number); |
|
610 |
Window *FindWindowFromPt(int x, int y); |
|
611 |
||
4171 | 612 |
bool IsWindowOfPrototype(const Window *w, const Widget *widget); |
0 | 613 |
|
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
614 |
/** |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
615 |
* Open a new window. |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
616 |
* @param *desc The pointer to the WindowDesc to be created |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
617 |
* @param window_number the window number of the new window |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
618 |
* @param data arbitrary data that is send with the WE_CREATE message |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
619 |
* @return see Window pointer of the newly created window |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
620 |
*/ |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
621 |
template <typename Wcls> |
9203
082fbf0500c4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
9188
diff
changeset
|
622 |
Wcls *AllocateWindowDescFront(const WindowDesc *desc, int window_number) |
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
623 |
{ |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
624 |
if (BringWindowToFrontById(desc->cls, window_number)) return NULL; |
9203
082fbf0500c4
(svn r13069) -Codechange: it is no longer needed to pass a void *data pointer with the WE_CREATE message because nothing uses it anymore.
rubidium
parents:
9188
diff
changeset
|
625 |
return new Wcls(desc, window_number); |
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
626 |
} |
0 | 627 |
|
5120
1ff65e874ce3
(svn r7200) -Codechange: remove unneeded redraw (console.c), coding style, use FindWindowById
Darkvater
parents:
5108
diff
changeset
|
628 |
void DrawWindowViewport(const Window *w); |
0 | 629 |
|
630 |
void RelocateAllWindows(int neww, int newh); |
|
631 |
||
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
632 |
/* misc_gui.cpp */ |
7006
bfa3974da32b
(svn r10262) -Fix (r10258): some places that needed to be changed to uint64 were hidden/forgotten, which caused memory corruptions and that in caused all kinds of assertions to trigger.
rubidium
parents:
6730
diff
changeset
|
633 |
void GuiShowTooltipsWithArgs(StringID str, uint paramcount, const uint64 params[]); |
4834
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
634 |
static inline void GuiShowTooltips(StringID str) |
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
635 |
{ |
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
636 |
GuiShowTooltipsWithArgs(str, 0, NULL); |
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
637 |
} |
4719
fc6e14219f72
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4712
diff
changeset
|
638 |
|
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
639 |
/* widget.cpp */ |
2436
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2216
diff
changeset
|
640 |
int GetWidgetFromPos(const Window *w, int x, int y); |
7d5df545bd5d
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
Darkvater
parents:
2216
diff
changeset
|
641 |
void DrawWindowWidgets(const Window *w); |
0 | 642 |
|
8349
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
643 |
enum SortButtonState { |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
644 |
SBS_OFF, |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
645 |
SBS_DOWN, |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
646 |
SBS_UP, |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
647 |
}; |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
648 |
|
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
649 |
void DrawSortButtonState(const Window *w, int widget, SortButtonState state); |
e61105cb1f87
(svn r11915) -Codechange: Add a function to draw a sort button's up/down arrow. Arrows are now drawn in a consistent position based on the widget, instead of randomly positioned by pixel.
peter1138
parents:
8335
diff
changeset
|
650 |
|
0 | 651 |
|
652 |
||
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
653 |
/* window.cpp */ |
5124
2ca62776430e
(svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed with the actual window
Darkvater
parents:
5123
diff
changeset
|
654 |
extern Window *_z_windows[]; |
2ca62776430e
(svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed with the actual window
Darkvater
parents:
5123
diff
changeset
|
655 |
extern Window **_last_z_window; |
2ca62776430e
(svn r7205) -Fix [FS#350, SF#1560913]: Window allocation and deletion messed with the actual window
Darkvater
parents:
5123
diff
changeset
|
656 |
#define FOR_ALL_WINDOWS(wz) for (wz = _z_windows; wz != _last_z_window; wz++) |
0 | 657 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
658 |
extern Point _cursorpos_drag_start; |
0 | 659 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
660 |
extern int _scrollbar_start_pos; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
661 |
extern int _scrollbar_size; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
662 |
extern byte _scroller_click_timeout; |
0 | 663 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
664 |
extern bool _scrolling_scrollbar; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
665 |
extern bool _scrolling_viewport; |
0 | 666 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
667 |
extern byte _special_mouse_mode; |
0 | 668 |
enum SpecialMouseMode { |
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
669 |
WSM_NONE = 0, |
0 | 670 |
WSM_DRAGDROP = 1, |
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
671 |
WSM_SIZING = 2, |
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4337
diff
changeset
|
672 |
WSM_PRESIZE = 3, |
0 | 673 |
}; |
674 |
||
8995
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
675 |
Window *GetCallbackWnd(); |
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
676 |
Window **FindWindowZPosition(const Window *w); |
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
677 |
|
0 | 678 |
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y); |
679 |
||
5822
f71317de4ab6
(svn r8384) -Codechange: [GUI] instead of writing a resize button function for each window, a global ResizeButtons() is added
bjarni
parents:
5781
diff
changeset
|
680 |
void ResizeButtons(Window *w, byte left, byte right); |
f71317de4ab6
(svn r8384) -Codechange: [GUI] instead of writing a resize button function for each window, a global ResizeButtons() is added
bjarni
parents:
5781
diff
changeset
|
681 |
|
8418
afae92fe35f1
(svn r11988) -Codechange: Add a generic way of changing a widget's size and adjust the widgets around it to suit.
peter1138
parents:
8349
diff
changeset
|
682 |
void ResizeWindowForWidget(Window *w, int widget, int delta_x, int delta_y); |
afae92fe35f1
(svn r11988) -Codechange: Add a generic way of changing a widget's size and adjust the widgets around it to suit.
peter1138
parents:
8349
diff
changeset
|
683 |
|
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
684 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
685 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
686 |
* Sets the enabled/disabled status of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
687 |
* By default, widgets are enabled. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
688 |
* On certain conditions, they have to be disabled. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
689 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
690 |
* @param disab_stat : status to use ie: disabled = true, enabled = false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
691 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
692 |
inline void Window::SetWidgetDisabledState(byte widget_index, bool disab_stat) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
693 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
694 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
695 |
SB(this->widget[widget_index].display_flags, WIDG_DISABLED, 1, !!disab_stat); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
696 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
697 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
698 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
699 |
* Sets a widget to disabled. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
700 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
701 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
702 |
inline void Window::DisableWidget(byte widget_index) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
703 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
704 |
SetWidgetDisabledState(widget_index, true); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
705 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
706 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
707 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
708 |
* Sets a widget to Enabled. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
709 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
710 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
711 |
inline void Window::EnableWidget(byte widget_index) |
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
712 |
{ |
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
713 |
SetWidgetDisabledState(widget_index, false); |
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
714 |
} |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
715 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
716 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
717 |
* Gets the enabled/disabled status of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
718 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
719 |
* @return status of the widget ie: disabled = true, enabled = false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
720 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
721 |
inline bool Window::IsWidgetDisabled(byte widget_index) const |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
722 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
723 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
724 |
return HasBit(this->widget[widget_index].display_flags, WIDG_DISABLED); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
725 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
726 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
727 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
728 |
* Sets the hidden/shown status of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
729 |
* By default, widgets are visible. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
730 |
* On certain conditions, they have to be hidden. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
731 |
* @param widget_index index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
732 |
* @param hidden_stat status to use ie. hidden = true, visible = false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
733 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
734 |
inline void Window::SetWidgetHiddenState(byte widget_index, bool hidden_stat) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
735 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
736 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
737 |
SB(this->widget[widget_index].display_flags, WIDG_HIDDEN, 1, !!hidden_stat); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
738 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
739 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
740 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
741 |
* Sets a widget hidden. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
742 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
743 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
744 |
inline void Window::HideWidget(byte widget_index) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
745 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
746 |
SetWidgetHiddenState(widget_index, true); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
747 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
748 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
749 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
750 |
* Sets a widget visible. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
751 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
752 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
753 |
inline void Window::ShowWidget(byte widget_index) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
754 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
755 |
SetWidgetHiddenState(widget_index, false); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
756 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
757 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
758 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
759 |
* Gets the visibility of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
760 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
761 |
* @return status of the widget ie: hidden = true, visible = false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
762 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
763 |
inline bool Window::IsWidgetHidden(byte widget_index) const |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
764 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
765 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
766 |
return HasBit(this->widget[widget_index].display_flags, WIDG_HIDDEN); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
767 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
768 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
769 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
770 |
* Sets the lowered/raised status of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
771 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
772 |
* @param lowered_stat : status to use ie: lowered = true, raised = false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
773 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
774 |
inline void Window::SetWidgetLoweredState(byte widget_index, bool lowered_stat) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
775 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
776 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
777 |
SB(this->widget[widget_index].display_flags, WIDG_LOWERED, 1, !!lowered_stat); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
778 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
779 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
780 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
781 |
* Invert the lowered/raised status of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
782 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
783 |
*/ |
7996
809895d51e05
(svn r11554) -Codechange: be more consistent with the naming of the widget functions.
rubidium
parents:
7995
diff
changeset
|
784 |
inline void Window::ToggleWidgetLoweredState(byte widget_index) |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
785 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
786 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
787 |
ToggleBit(this->widget[widget_index].display_flags, WIDG_LOWERED); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
788 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
789 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
790 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
791 |
* Marks a widget as lowered. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
792 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
793 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
794 |
inline void Window::LowerWidget(byte widget_index) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
795 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
796 |
SetWidgetLoweredState(widget_index, true); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
797 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
798 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
799 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
800 |
* Marks a widget as raised. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
801 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
802 |
*/ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
803 |
inline void Window::RaiseWidget(byte widget_index) |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
804 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
805 |
SetWidgetLoweredState(widget_index, false); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
806 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
807 |
|
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
808 |
/** |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
809 |
* Gets the lowered state of a widget. |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
810 |
* @param widget_index : index of this widget in the window |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
811 |
* @return status of the widget ie: lowered = true, raised= false |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
812 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
813 |
inline bool Window::IsWidgetLowered(byte widget_index) const |
7993
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
814 |
{ |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
815 |
assert(widget_index < this->widget_count); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
816 |
return HasBit(this->widget[widget_index].display_flags, WIDG_LOWERED); |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
817 |
} |
8776e72bf3da
(svn r11551) -Codechange: Introduction of widget control members on struct Window. These "new" members have the exact same functionalities as their pure functions "genitors"
belugas
parents:
7932
diff
changeset
|
818 |
|
8106
e6790dd9e750
(svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps.
rubidium
parents:
8102
diff
changeset
|
819 |
#endif /* WINDOW_GUI_H */ |