summaryrefslogtreecommitdiff
path: root/src/window.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.h')
-rw-r--r--src/window.h110
1 files changed, 18 insertions, 92 deletions
diff --git a/src/window.h b/src/window.h
index 2e6fd8b94..8a4eaa93e 100644
--- a/src/window.h
+++ b/src/window.h
@@ -6,6 +6,8 @@
#include "macros.h"
#include "string.h"
#include "order.h"
+#include "rail.h"
+#include "airport.h"
typedef struct WindowEvent WindowEvent;
@@ -38,7 +40,7 @@ typedef void WindowProc(Window *w, WindowEvent *e);
w->resize.width or w->resize.height.
That was all.. good luck, and enjoy :) -- TrueLight */
-enum ResizeFlags {
+typedef enum ResizeFlags {
RESIZE_NONE = 0,
RESIZE_LEFT = 1,
@@ -77,12 +79,15 @@ typedef struct Widget {
} Widget;
typedef enum FrameFlags {
+ FR_NONE = 0x00,
FR_TRANSPARENT = 0x01, ///< Makes the background transparent if set
FR_BORDERONLY = 0x10, ///< Draw border only, no background
FR_LOWERED = 0x20, ///< If set the frame is lowered and the background color brighter (ie. buttons when pressed)
FR_DARKENED = 0x40, ///< If set the background is darker, allows for lowered frames with normal background color when used with FR_LOWERED (ie. dropdown boxes)
} FrameFlags;
+DECLARE_ENUM_AS_BIT_SET(FrameFlags);
+
void DrawFrameRect(int left, int top, int right, int bottom, int color, FrameFlags flags);
enum WindowEventCodes {
@@ -165,9 +170,9 @@ struct WindowEvent {
} keypress;
struct {
- uint msg; // message to be sent
- uint wparam; // additional message-specific information
- uint lparam; // additional message-specific information
+ int msg; // message to be sent
+ int wparam; // additional message-specific information
+ int lparam; // additional message-specific information
} message;
struct {
@@ -180,80 +185,6 @@ struct WindowEvent {
} we;
};
-enum WindowKeyCodes {
- WKC_SHIFT = 0x8000,
- WKC_CTRL = 0x4000,
- WKC_ALT = 0x2000,
- WKC_META = 0x1000,
-
- // Special ones
- WKC_NONE = 0,
- WKC_ESC = 1,
- WKC_BACKSPACE = 2,
- WKC_INSERT = 3,
- WKC_DELETE = 4,
-
- WKC_PAGEUP = 5,
- WKC_PAGEDOWN = 6,
- WKC_END = 7,
- WKC_HOME = 8,
-
- // Arrow keys
- WKC_LEFT = 9,
- WKC_UP = 10,
- WKC_RIGHT = 11,
- WKC_DOWN = 12,
-
- // Return & tab
- WKC_RETURN = 13,
- WKC_TAB = 14,
-
- // Numerical keyboard
- WKC_NUM_0 = 16,
- WKC_NUM_1 = 17,
- WKC_NUM_2 = 18,
- WKC_NUM_3 = 19,
- WKC_NUM_4 = 20,
- WKC_NUM_5 = 21,
- WKC_NUM_6 = 22,
- WKC_NUM_7 = 23,
- WKC_NUM_8 = 24,
- WKC_NUM_9 = 25,
- WKC_NUM_DIV = 26,
- WKC_NUM_MUL = 27,
- WKC_NUM_MINUS = 28,
- WKC_NUM_PLUS = 29,
- WKC_NUM_ENTER = 30,
- WKC_NUM_DECIMAL = 31,
-
- // Space
- WKC_SPACE = 32,
-
- // Function keys
- WKC_F1 = 33,
- WKC_F2 = 34,
- WKC_F3 = 35,
- WKC_F4 = 36,
- WKC_F5 = 37,
- WKC_F6 = 38,
- WKC_F7 = 39,
- WKC_F8 = 40,
- WKC_F9 = 41,
- WKC_F10 = 42,
- WKC_F11 = 43,
- WKC_F12 = 44,
-
- // backquote is the key left of "1"
- // we only store this key here, no matter what character is really mapped to it
- // on a particular keyboard. (US keyboard: ` and ~ ; German keyboard: ^ and °)
- WKC_BACKQUOTE = 45,
- WKC_PAUSE = 46,
-
- // 0-9 are mapped to 48-57
- // A-Z are mapped to 65-90
- // a-z are mapped to 97-122
-};
-
typedef struct WindowDesc {
int16 left, top, width, height;
WindowClass cls;
@@ -389,8 +320,8 @@ assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(tooltips_d));
typedef struct {
byte vehicle_type;
union {
- byte railtype;
- byte acc_planes; // AIRCRAFT_ONLY, ALL, HELICOPTERS_ONLY
+ RailTypeByte railtype;
+ AcceptPlanesByte acc_planes; // AIRCRAFT_ONLY, ALL, HELICOPTERS_ONLY
} filter;
byte sel_index; // deprecated value, used for 'unified' ship and road
bool descending_sort_order;
@@ -494,11 +425,15 @@ typedef struct {
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(scroller_d));
typedef enum SortListFlags {
+ VL_NONE = 0x00,
VL_DESC = 0x01, // sort descending or ascending
VL_RESORT = 0x02, // instruct the code to resort the list in the next loop
- VL_REBUILD = 0x04 // create sort-listing to use for qsort and friends
+ VL_REBUILD = 0x04, // create sort-listing to use for qsort and friends
+ VL_END = 0x08
} SortListFlags;
+DECLARE_ENUM_AS_BIT_SET(SortListFlags);
+
typedef struct Listing {
bool order; // Ascending/descending
byte criteria; // Sorting criteria
@@ -596,8 +531,8 @@ enum WindowFlags {
void CallWindowEventNP(Window *w, int event);
void CallWindowTickEvent(void);
void SetWindowDirty(const Window *w);
-void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, uint msg, uint wparam, uint lparam);
-void SendWindowMessageClass(WindowClass wnd_class, uint msg, uint wparam, uint lparam);
+void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, int msg, int wparam, int lparam);
+void SendWindowMessageClass(WindowClass wnd_class, int msg, int wparam, int lparam);
Window *FindWindowById(WindowClass cls, WindowNumber number);
void DeleteWindow(Window *w);
@@ -775,9 +710,6 @@ void UnInitWindowSystem(void);
void ResetWindowSystem(void);
int GetMenuItemIndex(const Window *w, int x, int y);
void InputLoop(void);
-void HandleKeypress(uint32 key);
-void HandleMouseEvents(void);
-void UpdateWindows(void);
void InvalidateWidget(const Window *w, byte widget_index);
void InvalidateThisWindowData(Window *w);
void InvalidateWindowData(WindowClass cls, WindowNumber number);
@@ -816,12 +748,6 @@ extern Window **_last_z_window;
VARDEF Point _cursorpos_drag_start;
-VARDEF bool _left_button_down;
-VARDEF bool _left_button_clicked;
-
-VARDEF bool _right_button_down;
-VARDEF bool _right_button_clicked;
-
VARDEF int _scrollbar_start_pos;
VARDEF int _scrollbar_size;
VARDEF byte _scroller_click_timeout;