author | rubidium |
Sun, 25 May 2008 19:17:03 +0000 | |
changeset 9354 | 845e07db4549 |
parent 9338 | 3d6f9ddd431d |
child 9407 | 079a6bf07bae |
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 |
|
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
23 |
/* 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
|
24 |
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
|
25 |
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
|
26 |
to resize itself. |
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
27 |
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
|
28 |
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
|
29 |
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
|
30 |
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
|
31 |
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
|
32 |
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
|
33 |
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
|
34 |
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
|
35 |
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
|
36 |
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
|
37 |
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
|
38 |
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
|
39 |
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
|
40 |
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
|
41 |
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
|
42 |
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
|
43 |
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
|
44 |
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
|
45 |
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
|
46 |
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
|
47 |
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
|
48 |
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
|
49 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
50 |
enum ResizeFlag { |
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
51 |
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
|
52 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
53 |
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
|
54 |
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
|
55 |
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
|
56 |
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
|
57 |
|
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
58 |
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
|
59 |
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
|
60 |
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
|
61 |
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
|
62 |
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
|
63 |
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
|
64 |
|
65a49cfc922d
(svn r6661) Feature: Windows are not restricted to 32 widget items anymore.
belugas
parents:
4739
diff
changeset
|
65 |
/* 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
|
66 |
* 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
|
67 |
* 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
|
68 |
* 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
|
69 |
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
|
70 |
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
|
71 |
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
|
72 |
}; |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
73 |
|
4755
9ebcb0db6c06
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
glx
parents:
4749
diff
changeset
|
74 |
enum { |
6179
d19b0137d8e4
(svn r8950) -Cleanup: doxygen changes. Mostly @files missing tags and a few comments style.
belugas
parents:
6117
diff
changeset
|
75 |
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
|
76 |
}; |
9ebcb0db6c06
(svn r6669) -Add: vararg functions to set hidden/disabled/lowered state of multiple widgets in one call
glx
parents:
4749
diff
changeset
|
77 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
78 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
79 |
* Window widget data structure |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
80 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
81 |
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
|
82 |
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
|
83 |
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
|
84 |
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
|
85 |
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
|
86 |
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
|
87 |
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
|
88 |
}; |
0 | 89 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
90 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
91 |
* 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
|
92 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
93 |
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
|
94 |
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
|
95 |
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
|
96 |
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
|
97 |
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
|
98 |
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
|
99 |
}; |
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
|
100 |
|
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
101 |
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
|
102 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
103 |
/* 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
|
104 |
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
|
105 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
106 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
107 |
* High level window description |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
108 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
109 |
struct WindowDesc { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
110 |
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
|
111 |
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
|
112 |
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
|
113 |
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
|
114 |
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
|
115 |
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
|
116 |
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
|
117 |
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
|
118 |
uint32 flags; ///< Flags, @see WindowDefaultFlags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
119 |
const Widget *widgets; ///< List of widgets with their position and size for the window |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
120 |
}; |
0 | 121 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
122 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
123 |
* 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
|
124 |
*/ |
5413 | 125 |
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
|
126 |
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
|
127 |
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
|
128 |
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
|
129 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
130 |
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
|
131 |
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
|
132 |
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
|
133 |
WDF_MODAL = 1 << 7, ///< The window is a modal child of some other window, meaning the parent is 'inactive' |
0 | 134 |
}; |
135 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
136 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
137 |
* 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
|
138 |
*/ |
5413 | 139 |
enum WindowDefaultPosition { |
5072
69195f96a23a
(svn r7130) -Codechange: Handle the positioning of windows through the desc->left/top settings with
Darkvater
parents:
5071
diff
changeset
|
140 |
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
|
141 |
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
|
142 |
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
|
143 |
WDP_ALIGN_TBL = -4, ///< Align the left side of the window with the left side of the main toolbar |
0 | 144 |
}; |
145 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
146 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
147 |
* Scrollbar data structure |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
148 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
149 |
struct Scrollbar { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
150 |
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
|
151 |
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
|
152 |
uint16 pos; |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
153 |
}; |
0 | 154 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
155 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
156 |
* 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
|
157 |
*/ |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
158 |
struct ResizeInfo { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
159 |
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
|
160 |
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
|
161 |
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
|
162 |
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
|
163 |
}; |
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
164 |
|
9273
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
165 |
enum SortButtonState { |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
166 |
SBS_OFF, |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
167 |
SBS_DOWN, |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
168 |
SBS_UP, |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
169 |
}; |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
170 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
171 |
/** |
9184 | 172 |
* Data structure for a window viewport |
173 |
*/ |
|
174 |
struct ViewportData : ViewPort { |
|
175 |
VehicleID follow_vehicle; |
|
176 |
int32 scrollpos_x; |
|
177 |
int32 scrollpos_y; |
|
178 |
int32 dest_scrollpos_x; |
|
179 |
int32 dest_scrollpos_y; |
|
180 |
}; |
|
181 |
||
9267
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
182 |
/** |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
183 |
* 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
|
184 |
*/ |
8925
e0d37ce1eba8
(svn r12695) -Codechange: only allocate window structs when needed. Based on a patch by Alberth.
rubidium
parents:
8923
diff
changeset
|
185 |
struct Window : ZeroedMemoryAllocator { |
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
186 |
enum EventState { |
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
187 |
ES_HANDLED, |
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
188 |
ES_NOT_HANDLED, |
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
189 |
}; |
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
190 |
|
9142
858a058aa730
(svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor.
rubidium
parents:
9127
diff
changeset
|
191 |
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
|
192 |
void Initialize(int x, int y, int min_width, int min_height, |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
193 |
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
|
194 |
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
|
195 |
void FindWindowPlacementAndResize(const WindowDesc *desc); |
9142
858a058aa730
(svn r13004) -Codechange: replace AllocateWindow and AllocateWindowDesc with a Window constructor.
rubidium
parents:
9127
diff
changeset
|
196 |
|
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
197 |
public: |
9301
3b20dfb6c4e8
(svn r13169) -Codechange: remove a (now) unneeded parameter of one of the Window constructors.
rubidium
parents:
9293
diff
changeset
|
198 |
Window(int x, int y, int width, int height, WindowClass cls, const Widget *widget); |
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
|
199 |
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
|
200 |
|
9115
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
201 |
virtual ~Window(); |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
202 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
203 |
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
|
204 |
WindowClass window_class; ///< Window class |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
205 |
WindowNumber window_number; ///< Window number within the window class |
0 | 206 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
207 |
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
|
208 |
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
|
209 |
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
|
210 |
int height; ///< Height of the window (number of pixels down in y direction) |
0 | 211 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
212 |
Scrollbar hscroll; ///< Horizontal scroll bar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
213 |
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
|
214 |
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
|
215 |
ResizeInfo resize; ///< Resize information |
0 | 216 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
217 |
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
|
218 |
|
9184 | 219 |
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
|
220 |
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
|
221 |
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
|
222 |
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
|
223 |
|
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
224 |
Window *parent; ///< Parent window |
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
|
225 |
|
8035
8c76ea0d84ab
(svn r11595) -Codechange: add a new member to Window struct, based on its function counterpart HandleButtonClick.
belugas
parents:
8032
diff
changeset
|
226 |
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
|
227 |
|
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
|
228 |
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
|
229 |
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
|
230 |
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
|
231 |
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
|
232 |
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
|
233 |
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
|
234 |
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
|
235 |
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
|
236 |
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
|
237 |
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
|
238 |
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
|
239 |
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
|
240 |
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
|
241 |
|
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
|
242 |
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
|
243 |
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
|
244 |
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
|
245 |
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
|
246 |
void InvalidateWidget(byte widget_index) const; |
9082
8a28686aeff2
(svn r12941) -Codechange: don't access wndproc directly. Patch by Alberth.
rubidium
parents:
8995
diff
changeset
|
247 |
|
9273
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
248 |
void DrawWidgets() const; |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
249 |
void DrawViewport() const; |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
250 |
void DrawSortButtonState(int widget, SortButtonState state) const; |
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
251 |
|
9115
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
252 |
void SetDirty() const; |
47ae980bace3
(svn r12975) -Codechange: replace DeleteWindow(w) with delete w.
rubidium
parents:
9082
diff
changeset
|
253 |
|
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
|
254 |
/*** 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
|
255 |
|
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
|
256 |
/** |
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
|
257 |
* 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
|
258 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
259 |
virtual void OnPaint() {} |
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
|
260 |
|
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
|
261 |
|
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
|
262 |
/** |
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
|
263 |
* 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
|
264 |
* @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
|
265 |
* @param keycode the untranslated key code including shift state. |
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
266 |
* @return ES_HANDLED if the key press has been handled and no other |
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
|
267 |
* 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
|
268 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
269 |
virtual EventState OnKeyPress(uint16 key, uint16 keycode) { return ES_NOT_HANDLED; } |
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
|
270 |
|
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
|
271 |
/** |
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
|
272 |
* The state of the control key has changed |
9285
235e5e2d7f55
(svn r13151) -Codechange: use an enum instead of bool as return type of OnKeyPress/OnCTRLStateChange to make it obvious what the return values mean.
rubidium
parents:
9275
diff
changeset
|
273 |
* @return ES_HANDLED if the change has been handled and no other |
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
|
274 |
* 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
|
275 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
276 |
virtual EventState OnCTRLStateChange() { return ES_NOT_HANDLED; } |
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
|
277 |
|
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
|
278 |
|
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
|
279 |
/** |
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
|
280 |
* 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
|
281 |
* @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
|
282 |
* @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
|
283 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
284 |
virtual void OnClick(Point pt, int widget) {} |
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
|
285 |
|
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 |
/** |
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
|
287 |
* 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
|
288 |
* @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
|
289 |
* @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
|
290 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
291 |
virtual void OnDoubleClick(Point pt, int widget) {} |
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
|
292 |
|
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
|
293 |
/** |
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
|
294 |
* 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
|
295 |
* @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
|
296 |
* @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
|
297 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
298 |
virtual void OnRightClick(Point pt, int widget) {} |
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
|
299 |
|
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
|
300 |
/** |
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
|
301 |
* 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
|
302 |
* @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
|
303 |
* @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
|
304 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
305 |
virtual void OnDragDrop(Point pt, int widget) {} |
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
|
306 |
|
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
|
307 |
/** |
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
|
308 |
* 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
|
309 |
* @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
|
310 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
311 |
virtual void OnScroll(Point delta) {} |
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
|
312 |
|
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
|
313 |
/** |
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
|
314 |
* 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
|
315 |
* 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
|
316 |
* @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
|
317 |
* @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
|
318 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
319 |
virtual void OnMouseOver(Point pt, int widget) {} |
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
|
320 |
|
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
|
321 |
/** |
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
|
322 |
* 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
|
323 |
* @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
|
324 |
*/ |
9264
9380b4a14c92
(svn r13130) -Codechange: remove some of the (old) WindowEvent wrapper functions/enums/variables as they are not used anymore.
rubidium
parents:
9263
diff
changeset
|
325 |
virtual void OnMouseWheel(int wheel) {} |
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
|
326 |
|
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
|
327 |
|
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
|
328 |
/** |
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
|
329 |
* 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
|
330 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
331 |
virtual void OnMouseLoop() {} |
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
|
332 |
|
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
|
333 |
/** |
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
|
334 |
* 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
|
335 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
336 |
virtual void OnTick() {} |
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
|
337 |
|
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
|
338 |
/** |
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
|
339 |
* 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
|
340 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
341 |
virtual void OnHundredthTick() {} |
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
|
342 |
|
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
|
343 |
/** |
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
|
344 |
* 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
|
345 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
346 |
virtual void OnTimeout() {} |
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
|
347 |
|
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
|
348 |
|
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 |
/** |
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 |
* 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
|
351 |
* @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
|
352 |
* @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
|
353 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
354 |
virtual void OnResize(Point new_size, Point delta) {} |
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
|
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 |
* 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
|
358 |
* @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
|
359 |
* @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
|
360 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
361 |
virtual void OnDropdownSelect(int widget, int index) {} |
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
|
362 |
|
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 |
* 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
|
365 |
* @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
|
366 |
* 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
|
367 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
368 |
virtual void OnQueryTextFinished(char *str) {} |
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
|
369 |
|
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 |
* 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
|
372 |
* @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
|
373 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
374 |
virtual void OnInvalidateData(int data = 0) {} |
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
|
375 |
|
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 |
|
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 |
/** |
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 |
* 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
|
379 |
* 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
|
380 |
* @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
|
381 |
* @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
|
382 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
383 |
virtual void OnPlaceObject(Point pt, TileIndex tile) {} |
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
|
384 |
|
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 |
* 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
|
387 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
388 |
virtual void OnPlaceObjectAbort() {} |
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
|
389 |
|
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 |
|
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 |
/** |
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 |
* 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
|
393 |
* 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
|
394 |
* @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
|
395 |
* @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
|
396 |
* @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
|
397 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
398 |
virtual void OnPlaceDrag(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) {} |
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
|
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 |
/** |
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 |
* 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
|
402 |
* 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
|
403 |
* @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
|
404 |
* @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
|
405 |
* @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
|
406 |
* @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
|
407 |
* @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
|
408 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
409 |
virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) {} |
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
|
410 |
|
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 |
/** |
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 |
* 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
|
413 |
* 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
|
414 |
* 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
|
415 |
* @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
|
416 |
* @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
|
417 |
*/ |
9317
f14eb8815829
(svn r13185) -Codechange: remove everything related to the WindowProc callbacks.
rubidium
parents:
9301
diff
changeset
|
418 |
virtual void OnPlacePresize(Point pt, TileIndex tile) {} |
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
|
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 |
/*** End of the event handling ***/ |
0 | 421 |
}; |
422 |
||
9267
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
423 |
/** |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
424 |
* Data structure for a window opened from a toolbar |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
425 |
*/ |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
426 |
class PickerWindowBase : public Window { |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
427 |
|
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
428 |
public: |
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9317
diff
changeset
|
429 |
PickerWindowBase(const WindowDesc *desc, Window *parent) : Window(desc) |
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9317
diff
changeset
|
430 |
{ |
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9317
diff
changeset
|
431 |
this->parent = parent; |
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9317
diff
changeset
|
432 |
}; |
9267
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
433 |
|
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
434 |
virtual ~PickerWindowBase(); |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
435 |
}; |
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
436 |
|
0 | 437 |
/****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/ |
438 |
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
|
439 |
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
|
440 |
|
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
441 |
WWB_MASK = 0xE0, |
0 | 442 |
}; |
443 |
||
444 |
||
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
445 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
446 |
* Window widget types |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
447 |
*/ |
0 | 448 |
enum WindowWidgetTypes { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
449 |
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
|
450 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
451 |
WWT_PANEL, ///< Simple depressed panel |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
452 |
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
|
453 |
WWT_IMGBTN, ///< Button with image |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
454 |
WWT_IMGBTN_2, ///< Button with diff image when clicked |
0 | 455 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
456 |
WWT_TEXTBTN, ///< Button with text |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
457 |
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
|
458 |
WWT_LABEL, ///< Centered label |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
459 |
WWT_TEXT, ///< Pure simple text |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
460 |
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
|
461 |
WWT_SCROLLBAR, ///< Vertical scrollbar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
462 |
WWT_FRAME, ///< Frame |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
463 |
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
|
464 |
|
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
465 |
WWT_HSCROLLBAR, ///< Horizontal scrollbar |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
466 |
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
|
467 |
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
|
468 |
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
|
469 |
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
|
470 |
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
|
471 |
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
|
472 |
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
|
473 |
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
|
474 |
|
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
|
475 |
WWT_MASK = 0x1F, |
0 | 476 |
|
4938
0447845fd1b3
(svn r6925) -Codechange: Be more strict with widget distinctions. WWT_PANEL is only plain panel,
Darkvater
parents:
4884
diff
changeset
|
477 |
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
|
478 |
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
|
479 |
WWT_PUSHIMGBTN = WWT_IMGBTN | WWB_PUSHBUTTON, |
0 | 480 |
}; |
481 |
||
867
dffd33233237
(svn r1348) -Feature: resizable windows. Read the comment in window.h to find out
truelight
parents:
859
diff
changeset
|
482 |
#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
|
483 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
484 |
/** |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
485 |
* Window flags |
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
486 |
*/ |
0 | 487 |
enum WindowFlags { |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
488 |
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
|
489 |
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
|
490 |
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
|
491 |
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
|
492 |
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
|
493 |
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
|
494 |
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
|
495 |
WF_SIZING = 1 << 8, |
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
496 |
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
|
497 |
|
8857
7593af4962e6
(svn r12619) -Codechange: lots of documentation about window related stuff. Patch by Alberth.
rubidium
parents:
8771
diff
changeset
|
498 |
WF_DISABLE_VP_SCROLL = 1 << 10, ///< Window does not do autoscroll, @see HandleAutoscroll() |
0 | 499 |
|
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
|
500 |
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
|
501 |
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
|
502 |
WF_SCROLL2 = 1 << 13, |
0 | 503 |
}; |
504 |
||
505 |
Window *BringWindowToFrontById(WindowClass cls, WindowNumber number); |
|
506 |
Window *FindWindowFromPt(int x, int y); |
|
507 |
||
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
508 |
/** |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
509 |
* Open a new window. |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
510 |
* @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
|
511 |
* @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
|
512 |
* @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
|
513 |
* @return see Window pointer of the newly created window |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
514 |
*/ |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
515 |
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
|
516 |
Wcls *AllocateWindowDescFront(const WindowDesc *desc, int window_number) |
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
517 |
{ |
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
518 |
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
|
519 |
return new Wcls(desc, window_number); |
9143
029e126e3439
(svn r13005) -Codechange: prepare AllocateWindowDescFront for subclassing of Window.
rubidium
parents:
9142
diff
changeset
|
520 |
} |
0 | 521 |
|
522 |
void RelocateAllWindows(int neww, int newh); |
|
523 |
||
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
|
524 |
/* 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
|
525 |
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
|
526 |
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
|
527 |
{ |
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
528 |
GuiShowTooltipsWithArgs(str, 0, NULL); |
3c6e8a547174
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4800
diff
changeset
|
529 |
} |
4719
fc6e14219f72
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4712
diff
changeset
|
530 |
|
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
|
531 |
/* 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
|
532 |
int GetWidgetFromPos(const Window *w, int x, int y); |
0 | 533 |
|
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
|
534 |
/* 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
|
535 |
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
|
536 |
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
|
537 |
#define FOR_ALL_WINDOWS(wz) for (wz = _z_windows; wz != _last_z_window; wz++) |
0 | 538 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
539 |
extern Point _cursorpos_drag_start; |
0 | 540 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
541 |
extern int _scrollbar_start_pos; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
542 |
extern int _scrollbar_size; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
543 |
extern byte _scroller_click_timeout; |
0 | 544 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
545 |
extern bool _scrolling_scrollbar; |
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
546 |
extern bool _scrolling_viewport; |
0 | 547 |
|
8268
5027ad5e70a0
(svn r11832) -Codechange: get rid of (quite) some VARDEFs.
rubidium
parents:
8264
diff
changeset
|
548 |
extern byte _special_mouse_mode; |
0 | 549 |
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
|
550 |
WSM_NONE = 0, |
0 | 551 |
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
|
552 |
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
|
553 |
WSM_PRESIZE = 3, |
0 | 554 |
}; |
555 |
||
8995
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
556 |
Window *GetCallbackWnd(); |
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
557 |
Window **FindWindowZPosition(const Window *w); |
f6b859375e10
(svn r12790) -Codechange: code style fixes. Patch by Alberth.
rubidium
parents:
8969
diff
changeset
|
558 |
|
0 | 559 |
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y); |
560 |
||
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
|
561 |
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
|
562 |
|
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
|
563 |
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
|
564 |
|
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
|
565 |
|
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
|
566 |
/** |
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
|
567 |
* 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
|
568 |
* 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
|
569 |
* 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
|
570 |
* @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
|
571 |
* @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
|
572 |
*/ |
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
|
573 |
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
|
574 |
{ |
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
|
575 |
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
|
576 |
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
|
577 |
} |
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
|
578 |
|
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
|
579 |
/** |
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
|
580 |
* 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
|
581 |
* @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
|
582 |
*/ |
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
|
583 |
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
|
584 |
{ |
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
|
585 |
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
|
586 |
} |
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
|
587 |
|
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
|
588 |
/** |
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
|
589 |
* 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
|
590 |
* @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
|
591 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
592 |
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
|
593 |
{ |
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
594 |
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
|
595 |
} |
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
|
596 |
|
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
|
597 |
/** |
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
|
598 |
* 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
|
599 |
* @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
|
600 |
* @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
|
601 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
602 |
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
|
603 |
{ |
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
|
604 |
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
|
605 |
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
|
606 |
} |
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
|
607 |
|
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
|
608 |
/** |
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
|
609 |
* 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
|
610 |
* 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
|
611 |
* 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
|
612 |
* @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
|
613 |
* @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
|
614 |
*/ |
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
|
615 |
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
|
616 |
{ |
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
|
617 |
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
|
618 |
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
|
619 |
} |
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
|
620 |
|
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
|
621 |
/** |
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
|
622 |
* 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
|
623 |
* @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
|
624 |
*/ |
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
|
625 |
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
|
626 |
{ |
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
|
627 |
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
|
628 |
} |
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
|
629 |
|
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
|
630 |
/** |
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
|
631 |
* 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
|
632 |
* @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
|
633 |
*/ |
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
|
634 |
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
|
635 |
{ |
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
|
636 |
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
|
637 |
} |
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
|
638 |
|
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
|
639 |
/** |
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
|
640 |
* 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
|
641 |
* @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
|
642 |
* @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
|
643 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
644 |
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
|
645 |
{ |
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
|
646 |
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
|
647 |
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
|
648 |
} |
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
|
649 |
|
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
|
650 |
/** |
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
|
651 |
* 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
|
652 |
* @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
|
653 |
* @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
|
654 |
*/ |
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
|
655 |
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
|
656 |
{ |
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
|
657 |
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
|
658 |
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
|
659 |
} |
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
|
660 |
|
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
|
661 |
/** |
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
|
662 |
* 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
|
663 |
* @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
|
664 |
*/ |
7996
809895d51e05
(svn r11554) -Codechange: be more consistent with the naming of the widget functions.
rubidium
parents:
7995
diff
changeset
|
665 |
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
|
666 |
{ |
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
|
667 |
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
|
668 |
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
|
669 |
} |
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
|
670 |
|
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
|
671 |
/** |
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
|
672 |
* 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
|
673 |
* @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
|
674 |
*/ |
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
|
675 |
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
|
676 |
{ |
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
|
677 |
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
|
678 |
} |
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
|
679 |
|
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
|
680 |
/** |
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
|
681 |
* 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
|
682 |
* @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
|
683 |
*/ |
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 |
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
|
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 |
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
|
687 |
} |
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 |
|
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 |
/** |
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 |
* 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
|
691 |
* @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
|
692 |
* @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
|
693 |
*/ |
7995
36f4cc1839fb
(svn r11553) -Fix: make a few widget 'accessor' function const when they should be const.
rubidium
parents:
7993
diff
changeset
|
694 |
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
|
695 |
{ |
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 |
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
|
697 |
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
|
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 |
|
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
|
700 |
#endif /* WINDOW_GUI_H */ |