Commit Graph

18 Commits

Author SHA1 Message Date
Tamás Bálint Misius
69e0a8b0aa
Clean up OnMouseClick/Unclick madness
This is a prerequisite for making ScrollPanel work nicely on touch screens.

Engine used the terms MouseClick and MouseUnclick to refer to events that are traditionally called MouseDown and MouseUp, this was fixed with simple renaming.

Component and friends similarly used the terms MouseClick and MouseUnclick to refer to events that are traditionally called MouseDown and MouseUp and, succumbing to their own confusing terminology, also implemented behaviours associated with both the actual events MouseDown and MouseClick in code that was responsible for handling only the actual event MouseDown (i.e. what they called MouseClick).

This had been overlooked for a long time because nobody cares that a checkbox changes state when the mouse button is pressed on it rather than when it is released.

The fix is to migrate many pieces of code that run in response to MouseDown events, such as checkbox state change code, to MouseClick events, and to redefine a MouseClick to mean a sequence of MouseDown and MouseUp inside the component, rather than just a MouseDown. This is complicated by the fact that MouseClick events report mouse coordinates relative to the top left corner of the component, while MouseDown events report them relative to the top left corner of the container of the component.

Other pieces of code that make sense to be run in response to MouseDown events, such as label selection code, were left alone.
2024-02-06 13:25:53 +01:00
Tamás Bálint Misius
e4c2ec5a00
Preprocessor purge round 2: #pragma once 2023-01-27 09:26:38 +01:00
jacob1
3c9882598c
When air temp textbox is defocused, correct out of range temperatures 2021-06-18 23:07:17 -04:00
Tamás Bálint Misius
3dbf6d7810
Use SDL text input correctly, add basic composition support 2021-04-02 10:21:52 +02:00
Tamás Bálint Misius
7629c98f22
Get rid of tiny callback classes, round No.1
I say round No.1 because I'm not sure if there are any left.
Hopefully there aren't.
2019-12-16 21:20:33 +01:00
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
jacob1
dd3d9dfaad change a bunch of virtual to override (should fix annoying mac compile warnings) 2019-03-01 00:07:31 -05:00
jacob1
e5230b5b9f upgrade to SDL 2
Still currently in process, there are some issues:
Windows version doesn't work, mac version might not work, opengl might not work
Icon doesn't work (on Linux at least)
Lua will need some changes, there are some sdl 1.2 hacks in there
When entering fullscreen, the window loses focus
When holding down mouse out of bounds, mouse move events stop being sent
When letting go of mouse out of bounds, mouseup event doesn't take into account double scale mode
Clicking on startup without moving mouse will draw at 0,0 for a frame
Renderer probably won't compile because USE_SDL doesn't entirely work

... and maybe others

Some nice things were done though:
no more blit2, sdl can do the scaling itself
3d effect removed, no reason to support this joke any longer
No need to support copy/paste ourselves, sdl does it now
text handling done much better now, separate events for key presses and text input
when a new window is shown, all events ignored until next tick (ignore textinput event if window shown from key press event like console)
2018-05-25 21:19:44 -04:00
mniip
d404f4a538 Fix some C++14-isms.
Apparently C++11 is more strict regarding default argument and return
value conversions. Also return brace-initializer construction has had
little support.
2018-05-08 05:48:32 +03:00
mniip
ff27d69424 Switch from std::string to String/ByteString in most of the code
Also switch SimulationData from weird arrays to std::vector
2018-04-30 21:13:24 +03:00
jacob1
76aeef24a4 ctrl+a support in Labels 2015-12-18 00:33:40 -05:00
jacob1
85ce852cbc Auto scroll profile viewer when textbox expands, add 20000 character limit 2015-07-09 22:50:01 -04:00
jacob1
906b4a973f profile viewer now shows age, website, and save stats
Also, add Multiline type textboxes (allows pressing enter) and fix some other bugs
2015-07-09 20:17:04 -04:00
jacob1
ace9e36cc6 fix ALL the warnings
mostly just using more size_t. Also do some formatting around if statements
2015-01-16 22:35:32 -05:00
jacob1
d38b7b9b11 pressing tab switches between textboxes in the deco editor 2014-02-06 12:15:48 -05:00
jacob1
4e9a5bdaec make sure comment box height and cursor position don't go too far when it's resizing, fixes #82 2014-01-17 21:49:55 -05:00
Simon Robertshaw
9abe51526c Move all GUI source files into gui/ 2013-03-22 14:14:17 +00:00