Kp
9280187833
Rename ui_radio_do to UI_GADGET_RADIO::event_handler
2020-10-12 03:28:26 +00:00
Kp
43c30bd6b3
Rename ui_scrollbar_do to UI_GADGET_SCROLLBAR::event_handler
2020-10-12 03:28:26 +00:00
Kp
8a4879a7e7
Rename ui_listbox_do to UI_GADGET_LISTBOX::event_handler
2020-10-12 03:28:26 +00:00
Kp
422ee41626
Rename ui_button_do to UI_GADGET_BUTTON::event_handler
2020-10-12 03:28:26 +00:00
Kp
26cb111bc0
Pass UI_DIALOG& to ui_mouse_on_gadget
2020-10-12 03:28:26 +00:00
Kp
a21d89ea6c
Pass UI_DIALOG& to ui_draw_button
2020-10-12 03:28:26 +00:00
Kp
a563b5edf7
Pass UI_DIALOG& to ui_add_gadget_button
2020-10-12 03:28:26 +00:00
Kp
dd2a60de69
Pass UI_DIALOG& to ui_dialog_set_current_canvas
2020-10-12 03:28:26 +00:00
Kp
6dce3f90c2
Pass UI_DIALOG& to ui_close_dialog
2020-10-12 03:28:26 +00:00
Kp
564f699002
Pass UI_DIALOG& to ui_gadget_get_next, ui_gadget_get_prev
2020-10-12 03:28:26 +00:00
Kp
b6a7f63e5d
Pass UI_DIALOG& to ui_gadget_calc_keys
2020-10-12 03:28:26 +00:00
Kp
d7bff3daf3
Pass UI_DIALOG& to ui_dialog_do_gadgets
2020-10-12 03:28:25 +00:00
Kp
f79e0343d9
Pass UI_DIALOG& to ui_gadget_send_event
2020-10-12 03:28:25 +00:00
Kp
6ff47e2a18
Pass UI_DIALOG& to ui_add_gadget_listbox
2020-10-12 03:28:25 +00:00
Kp
33beedc9fd
Pass UI_DIALOG& to ui_draw_listbox
2020-10-12 03:28:25 +00:00
Kp
b30d60a521
Pass UI_DIALOG& to ui_gadget_add
2020-10-12 03:28:25 +00:00
Kp
b19e0698a1
Simplify out ui_dialog_get_window
...
UI_DIALOG now extends window, so the conversion is implicit.
2020-10-12 03:28:25 +00:00
Kp
8547c918c2
Make ui_file_browser inherit from UI_DIALOG
2020-10-12 03:28:25 +00:00
Kp
563ac19708
Make menu.cpp menu inherit from UI_DIALOG
2020-10-12 03:28:25 +00:00
Kp
1864f2dfdf
Remove unnecessary UI menu member button
2020-10-12 03:28:25 +00:00
Kp
46dc19f539
Make messagebox inherit from UI_DIALOG
2020-10-12 03:28:25 +00:00
Kp
7fb4f7b396
Use std::array for editor mine filename
2020-10-12 03:28:25 +00:00
Kp
1fc8663eff
Improve ui_add_gadget_inputbox length handling
...
Fix potential buffer overflow if `length` (now `length_of_initial_text`)
is less than the `strlen` computed length of text.
Rename variables to clarify usage.
Eliminate the unnecessary use of `strlen`.
2020-09-28 03:32:15 +00:00
Kp
88ab83c354
Remove write-only field UI_GADGET_INPUTBOX::slength
2020-09-28 03:32:15 +00:00
Kp
9a5e968646
Use std::unique_ptr for UI_GADGET_INPUTBOX::text
2020-09-28 03:32:15 +00:00
Kp
5cdd562244
Move UI_DIALOG callback handling to virtual function
2020-09-21 03:18:12 +00:00
Kp
8760387188
Make UI_DIALOG inherit from window
2020-09-21 03:18:12 +00:00
Kp
b9f3e8a40a
Remove unused UI_DIALOG fields
2020-09-21 03:18:12 +00:00
Kp
d056daa162
Remove obsolete UI_DIALOG constructor, macros
2020-09-21 03:18:12 +00:00
Kp
a069daae41
Remove unused DF_BORDER
2020-09-21 03:18:12 +00:00
Kp
1d3e546848
Inline window_get_canvas
...
The helper returns a reference to a mutable canvas, so there is no
isolation provided by using the helper.
2020-08-28 00:18:45 +00:00
Kp
0f89331924
Inline window_set_modal
2020-08-28 00:18:45 +00:00
Kp
6285878c4c
Add color_palette_index type alias, to note palette-related uint8_t
2020-07-16 02:31:04 +00:00
Kp
db7b4b3f88
Refer to <memory> directly, not through "compiler-make_unique.h"
2020-05-02 21:18:43 +00:00
Kp
cc38cdf4b8
Qualify uses of std::make_unique
2020-05-02 21:18:42 +00:00
Kp
8839f538e0
Refer to <array> directly, not through "compiler-array.h"
2020-05-02 21:18:42 +00:00
Kp
53761500f1
Qualify uses of std::array
2020-05-02 21:18:42 +00:00
Kp
9cee93abb1
Require support for C++14 std::exchange
2020-05-02 21:18:42 +00:00
Kp
2243cd7f58
Use xrange for loops with zero start and constant numerical end
...
s/for\s*(\s*\(\w\+\)\s\+\(\w\+\)\s*=\s*0\+u\?\s*;\s*\2\s*\(!=\|<\)\s*\([0-9]\+\)u\?\s*;\s*\(++\s*\2\|\2\s*++\s*\))/range_for (const \1 \2, xrange(\4u))/
2019-05-04 18:27:36 +00:00
Kp
063bf29225
Enable -Wimplicit-fallthrough=5; fix resulting breaks
...
This enables using -Wimplicit-fallthrough with ccache+distcc, which
strip the fallthrough comments, but do not strip the attribute
annotationns.
2019-04-04 04:29:03 +00:00
Kp
ec1cf005b6
Enable -Wformat-truncation
...
Add macro cf_assert ("control flow" assert) to hint to gcc that certain
conditions are impossible. Use it to avoid generating range checks for
situations that never happen. If the event did happen, the only
consequence would be truncated UI text, rather than a correctness
problem.
2018-08-26 18:10:36 +00:00
Kp
08446f0ab6
Pass font to gr_string,gr_printf
2018-05-19 23:21:42 +00:00
Kp
e63bbe8c52
Set d_event type at construction
2018-05-12 18:24:19 +00:00
Kp
d049f738c8
Convert various gr_set_current_canvas calls to reference form
2017-11-05 20:49:08 +00:00
Kp
49c0cdae2e
Simplify calls to gr_set_default_canvas
...
Rather than use an inline wrapper and rely on the compiler optimizer to
redirect gr_set_current_canvas(nullptr) to gr_set_default_canvas,
rewrite all relevant calls directly in the source.
git grep -l 'gr_set_current_canvas' | xargs sed -i -e 's:gr_set_current_canvas(\s*NULL\|nullptr\s*);:gr_set_default_canvas();:'
2017-11-05 20:49:08 +00:00
Kp
4cfd5f3324
Pass canvas to menubar_init
2017-09-26 04:15:50 +00:00
Kp
adcf02e454
Expand tt:: indirection to std::
...
All supported compilers have an acceptable <type_traits>. Commit
4cb3d46148
("Move <type_traits> test to Cxx11RequiredFeature") made
<type_traits> support mandatory in August and no one has objected.
Remove the indirection and use namespace std directly for type_traits
members.
2017-06-25 20:46:03 +00:00
Kp
b0cb681ae7
Add gcc-7 /*-fallthrough*/ comments for obvious cases
...
For switch cases where existing comments or code flow logic obviously
intended to fall through, add a gcc-7 /*-fallthrough*/ comment to
silence warnings about this. Some cases which are less obvious are not
converted, so the code does not yet compile clean with
-Wimplicit-fallthrough.
Reported-by: parkerlreed <https://github.com/dxx-rebirth/dxx-rebirth/issues/338 >
2017-06-07 02:44:54 +00:00
Kp
c725a6cb88
Pass canvas to gr_init_font
2017-03-11 19:56:22 +00:00
Kp
c50756c958
Cache canvas in radio.cpp
2017-03-10 01:22:25 +00:00
Kp
5be6b53d16
Fold calls in ui_draw_radio
2017-03-10 01:22:25 +00:00
Kp
0f93dc6e34
Cache canvas in message.cpp
2017-03-10 01:22:25 +00:00
Kp
4d9541d776
Cache canvas in menubar.cpp
2017-03-10 01:22:25 +00:00
Kp
a730f68e0b
Cache canvas in listbox.cpp
2017-03-10 01:22:25 +00:00
Kp
6ff14b7688
Cache canvas in keypad.cpp
2017-03-10 01:22:25 +00:00
Kp
dff67dad1b
Cache canvas in inputbox.cpp
2017-03-10 01:22:24 +00:00
Kp
8d5ca033e1
Cache canvas in icon.cpp
2017-03-10 01:22:24 +00:00
Kp
9d4e1e307c
Shorten ui_dialog_do_gadgets
2017-03-10 01:22:24 +00:00
Kp
0dc59ab3f2
Simplify ui_dialog_handler switch
2017-03-10 01:22:24 +00:00
Kp
97cf921b72
Cache canvas in ui_draw_checkbox
2017-02-11 21:42:46 +00:00
Kp
2725ea02c2
Cache canvas in ui_draw_button
2017-02-11 21:42:46 +00:00
Kp
69a4857ba5
Pass canvas to ui_draw_box_in1
2017-02-11 21:42:44 +00:00
Kp
d4aa43c17e
Cache canvas in ui_draw_scrollbar
2017-02-11 21:42:37 +00:00
Kp
7a6818eb01
Fold ui_draw_checkbox calls
2017-02-11 21:42:36 +00:00
Kp
842bd7a649
Pass canvas to ui_string_centered
2017-02-11 21:42:36 +00:00
Kp
aa9b9a8346
Pass canvas to ui_draw_box_in
2017-02-11 21:42:36 +00:00
Kp
04c7f7c790
Pass canvas to ui_draw_box_out
2017-02-11 21:42:35 +00:00
Kp
a51b071053
Pass canvas to ui_draw_frame
2017-02-11 21:42:35 +00:00
Kp
5636a85f3c
Pass canvas to ui_draw_shad
2017-02-11 21:42:35 +00:00
Kp
cf1f5df3cc
Pass canvas to Vline
2017-02-11 21:42:35 +00:00
Kp
f9cb598b0f
Pass canvas to Hline
2017-02-11 21:42:35 +00:00
Kp
13320c8011
Fold ui_draw_button calls to gr_rect
2017-02-11 21:42:34 +00:00
Kp
e765f8b744
Reorder ui_draw_button to support folding
2017-02-11 21:42:34 +00:00
Kp
f28a5e77f1
Fold ui_draw_button calls to gr_set_fontcolor
2017-02-11 21:42:34 +00:00
Kp
554daa61cc
Pass font to ui_get_button_size
2017-02-11 21:42:34 +00:00
Kp
ae33aaafc1
Pass canvas to gr_set_fontcolor
2017-02-11 21:42:32 +00:00
Kp
c16b7763e9
Remove unused ui_draw_line_in
2017-02-08 23:34:41 +00:00
Kp
5da784dbed
Pass canvas to gr_{,u}string
2017-01-08 22:32:00 +00:00
Kp
1ef6b9d5bc
Pass font to gr_get_string_size
2017-01-08 22:31:59 +00:00
Kp
0480ba8030
Pass canvas to gr_string(int,int,const char*,int,int)
2017-01-08 22:31:59 +00:00
Kp
0905aefa0a
Pass canvas to gr_rect
2017-01-01 00:45:45 +00:00
Kp
794dcce327
Pass canvas to gr_urect
2017-01-01 00:45:44 +00:00
Kp
dac1a69f7c
Pass canvas to gr_ubox
2017-01-01 00:45:44 +00:00
Kp
7439949595
Pass canvas to gr_uline
2016-12-29 03:27:10 +00:00
Kp
dc881ec12d
Merge pull #266 into master
2016-11-19 18:09:26 +00:00
Kp
6db96d1a6d
Fix file.cpp -Wunused-but-set-variable
...
Commit 1c8ad24
removed all reads of `wind`, but did not remove its
assignment or declaration. This breaks the build with gcc due to
-Wunused-but-set-variable.
Fixes: 1c8ad24da3
("Check for window_event_result::deleted for ui_get_filename polling loop")
2016-11-19 17:24:51 +00:00
Kp
98afafb80f
Fix gadget.cpp -Wunused-but-set-variable
...
Commit 917f079
removed all reads of `wind`, but did not remove its
assignment or declaration. This breaks the build with gcc due to
-Wunused-but-set-variable.
Fixes: 917f079f02
("Check for window_event_result::deleted in ui_dialog_do_gadgets")
2016-11-19 17:24:51 +00:00
Chris Taylor
cc3f35649f
Change all occurrences of "Couldn't" to "Could not" for consistency ("Could not" is more common and wins).
...
Not touching TXT_COULDNT because it's stored separately in hog file.
2016-11-13 13:27:18 +08:00
Chris Taylor
1761d696fe
Check if dir is empty string the more efficient way in file_getdirlist
2016-11-13 12:49:08 +08:00
Chris Taylor
5f19a3cba9
Remove redundant checks and initialisations recently added for editor
2016-11-13 12:44:53 +08:00
Chris Taylor
2d5d24cedc
Fix freeze when clicking on 'Help' menu in editor
...
The functions med-mark-start and med-mark-end don't exist - that's fine, still read the rest of the menus, so it can actually properly 'hide' the help menu after it's clicked on.
2016-11-11 18:11:14 +08:00
Chris Taylor
ac438f4cc2
Allow the user to carry on as usual if any of the editor files are missing (i.e. before editor was loaded).
...
If a game was playing, continue playing. If it was in the main menu, return to the main menu. (If all files are put in place the editor can load again.)
2016-11-11 16:09:57 +08:00
Chris Taylor
e29a4513b6
Allow empty string to be passed to file_getdirlist
...
This allows the open/save dialogs to work in the editor when a filename without a path separator is passed (which is the default)
2016-11-11 16:09:57 +08:00
Chris Taylor
46297c151e
Remove ui_gadget_delete_all
...
As the UI_DIALOG client is now responsible for freeing all gadgets (via unique_ptr's), this function now causes issues where it attempts to access freed gadgets (resulting in std::runtime_error("unknown gadget kind") exception when closing the AI Properties dialog on my Macbook, for example). Removing the offending function fixes the issue.
2016-11-11 16:09:57 +08:00
Chris Taylor
9511f65a90
Declare some local window_event_result vars later (clarity)
2016-10-31 14:58:34 +08:00
Chris Taylor
7ac820248c
Use new event_process_all() for event loops that check for window_event_result::deleted (which is most of them)
2016-10-29 20:06:01 +08:00
Chris Taylor
1c8ad24da3
Check for window_event_result::deleted for ui_get_filename polling loop
...
This is instead of using window_exists, which could give a false positive if a new window was allocated with the same pointer value as a deleted one.
2016-10-28 15:25:25 +08:00
Chris Taylor
917f079f02
Check for window_event_result::deleted in ui_dialog_do_gadgets
...
This is instead of using window_exists, which could give a false positive if a new window was allocated with the same pointer value as a deleted one.
2016-10-28 08:40:50 +08:00
Chris Taylor
7b83123010
Pass window_event_result from a dialog handler all the way to the event system
...
In particular, window_event_result::deleted so the event system doesn't have to rely on the somewhat problematic window_exists. If a gadget is manipulated, it still returns at least window_event_result::handled so all the other gadgets in all the other windows don't have to be checked (that weren't already checked).
2016-10-27 19:42:48 +08:00
Chris Taylor
18062bf812
Make browser_handler (editor file opening dialog) return window_event_result::close instead of closing itself
...
This ensures the event system will know what's going on.
2016-10-27 17:38:20 +08:00