Commit Graph

116 Commits

Author SHA1 Message Date
Ian Bastos
bf0cc9ba5f
Implement keyboard hotkey bindings (heavily squashed)
- add keyboard bindings button to options
 - hooked keyboard binding panel to button
 - WIP bindings drawn in activity
 - keyboard binding keys finally appear
 - keyboard binding input widget
 - reserved keys logic working
 - removed debug logs
 - pref saved on key release
 - more reserved keys
 - fixed memory bad alloc error
 - modifier bindings
 - scroll panel for bindings view
 - added sdl id to bindings
 - cache sdl scan id into prefs
 - function ids are getting picked up
 - more keyboard mappings
 - more key bindings + reserved keys
 - keyboard bindings working
 - write keyboard bindings pref on load
 - sync new functions to prefs
 - final touches
 - Keep those include trees flat (see 0179cefc)
 - Fix tabs
 - WIP - many to one binding
 - WriteDefaultPrefs is now instance method
 - model add, remove and save methods
 - clear prefs before saving
 - added method for checking binding conflict
 - notify view on key combo change
 - route binding notification to gameview
 - view foundations for overhaul
 - fixed memory issue + has conflicting key issue
 - fixed prefs not being cleared before save
 - override text input to do nothing
 - fixed many complications due to duplicated hotkeys
 - missing index on new model caused problems
 - WIP - view adaptation
 - WIP - add and remove button layout
 - more patches
 - fixed empty textboxes problem
 - WIP - frontend overhaul
 - fixed ordering issue
 - binding removal - wip
 - function store to hold no shortcut data
 - reset to defaults button added
 - add from no shortcut works
 - error message on conflict
 - better summary for PopBindingByFunctionId
 - keyboard bindings hooked to gameview keypress
 - do not return correcty function id if no shortcut
 - flatten include trees
 - remove debug comment
 - spaces to tabs
2019-09-17 19:44:37 +02:00
Tamás Bálint Misius
0bdf7ad914
Prevent newlines from being needlessly appended (fixes #667)
That wrap_if_needed call would sometimes cause empty newlines
to appear under otherwise already well-wrapped blocks of text.

The idea is that whenever a new character is about to be appended,
the current line is checked for being too long with that character
included, and the character is only actually appended after the
wrapper makes sure that appending it won't overflow the line by
inserting a newline. This means that wrap_if_needed is only ever
called before pushing the current character to records, never
after, as was the case here.
2019-08-02 16:58:39 +02:00
Ian Bastos
4383de7ad5 Implement file drop handler (#666) 2019-07-24 00:04:41 -04:00
Tamás Bálint Misius
8223e06670
Fix selection background of formatted labels
The metrics of the rectangles comprising the selection background
were calculated based on the selected range and the unformatted
text, so these rectangles would be off when the formatted text
was different (i.e. had any formatting).
2019-07-19 11:28:51 +02:00
Tamás Bálint Misius
34b4665d4b
Purge the last traces of PositionAtCharIndex and CharIndexAtPosition
Also fix a bunch of other ugly things.
2019-07-19 09:47:15 +02:00
Tamás Bálint Misius
7c793020c6
Fix highlighting in ConsoleView 2019-07-19 09:22:55 +02:00
Tamás Bálint Misius
bea4576d89
Allow wrapping after certain punctuation characters 2019-07-19 08:58:47 +02:00
Tamás Bálint Misius
4bb85578a8
Fix text wrapping (fixes #166)
This breaks the syntax highlighting in ConsoleView.
I haven't yet thought of a way to fix that properly,
ideas anyone?
2019-07-19 02:53:54 +02:00
Tamás Bálint Misius
e1b3ddcbcb
Nuke using namespace std; 2019-04-20 17:03:23 +02:00
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02:00
Tamás Bálint Misius
2e76b10619
Use C++11 threads 2019-04-17 00:23:57 +02:00
Tamás Bálint Misius
06e2836726
Fix Lua reference leaks (fixes #638) 2019-04-09 15:28:40 +02:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
Tamás Bálint Misius
d3fe7e39a5 Turn ThumbnailRendererTask into an AbandonableTask 2019-03-09 20:40:11 -05:00
Tamás Bálint Misius
30c7f6ded7 Rename Download* to Request* and move HTTP stuff inside src/client/http 2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
af4d022087 Add RequestMonitor 2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
3a76a3a514 Turn RequestBroker::RetrieveThumbnail into a request derived from Download
Also start moving RenderThumbnail out of RequestBroker into its own Task. Add mutex to SaveRenderer to guard Render().
2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
53f2018c7e Turn RequestBroker::RetrieveAvatar into a request derived from Download
Also add http namespace because classes clashed a lot.
2019-03-07 22:56:08 -05:00
jacob1
772148900e Fix stamp and local save thumbnails being stretched 2019-03-03 23:45:33 -05:00
jacob1
d021cbb5cf USE_SDL is no longer used 2019-03-01 09:58:07 -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
08cd32abbe use scancode instead of keycode for most keyboard shortcuts
keys like 0-9, tab, enter, ctrl/shift/alt, ins, and del are still looking for keys instead of scan codes, just in case (but I expect them to be always equivalent anyway)
2019-02-19 21:46:56 -05:00
jacob1
0c6ce20880 Add "Force Integer Scaling" option for fullscreen
Also:
recreate the window when enabling resizable window, same workaround I applied to my mod for jacob1/The-Powder-Toy#24
recreate the window when toggling fullscreen, to work around some bugs where the window is sized incorrectly or the mouse position doesn't match where the cursor is
Don't capture mouse cursor when this is a debug build
2019-02-18 22:18:29 -05:00
jacob1
edba703aab don't allow right click -> select a save when you aren't logged in 2019-02-07 23:30:09 -05:00
Tamás Bálint Misius
5a57c37ae9 Make close event trigger consistently 2018-11-20 21:06:59 -05:00
jacob1
53f6807ea6 make fps update less often in hud 2018-06-04 23:48:40 -04:00
mniip
48a333f0de Fix some scrolling issues 2018-05-30 13:35:44 +03:00
jacob1
743ec98e3f add resizable window and original fullscreen options 2018-05-25 21:19:44 -04:00
jacob1
7ac7eec6cf more sdl2 fixes:
don't recreate window every scale / fullscreen change
better renderer handling, input scaling no longer needed even if window resizing is enabled
load/save window position (replaces old windows code to do this)
calculate initial mouse position on startup because sdl no longer does this for us
2018-05-25 21:19:44 -04:00
jacob1
bd8550c2d5 fix a few more sdl 2 bugs:
mouse movement captured outside the window when mouse is down
fullscreen now focuses the window (there is a bug where you have to click once to get mouse input, though)
add linux icon, will need to be redone properly because it's offcentered with a black border (mask isn't present)
allow typing ~ into the console + some other fixes
2018-05-25 21:19:44 -04: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
jacob1
6ef0f065a6 fix .what methods on exceptions 2018-05-17 20:55:29 -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
f8586ea3a2 Remove ByteString::Stream 2018-05-04 23:10:39 +03:00
mniip
1485ae5a21 Fix incorrect uses of String(char[]) 2018-05-04 20:05:26 +03:00
mniip
a121c62c3b Add some helper methods and rewrite some of the string manipulation code 2018-05-02 01:32:04 +03:00
mniip
833383b121 Move TPT's icons to the (real) Private Use Area of the unicode 2018-05-01 07:03:48 +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
wolfy1339
27f6a6b297 Strip whitespace from files in repo (#553) 2018-04-03 21:46:01 -04:00
jacob1
67bc12de97 Fix issue where TPT was bought by EA 2018-04-01 15:26:13 -04:00
jacob1
40d2850ff7 TPT has now gone free to play! Many elements are unlocked by default, but by using Powdercoins you can unlock new elements and promote your saves to front page! 2018-03-31 22:40:23 -04:00
jacob1
f2ac8a951c add ctrl+q shortcut to exit the game from anywhere 2018-03-10 16:01:14 -05:00
LBPHacker
a12785cd5d Use a dropdown instead of a textbox
Textboxes don't mix well with error messages fired from from keypress handlers.
2017-11-23 12:24:34 -05:00
wolfy1339
87f3ada7b0 Remove stuff from Config.h that doesn't belong 2017-11-23 00:12:48 -05:00
jacob1
5ee10d14e4 reduce unnecessary #include dependency chains
for example, elements no longer include Client.h or Graphics.h, and interface stuff won't include Window.h or Graphics.h unless requested
2017-07-13 23:24:35 -04:00
jacob1
0f40db4ef9 proper ctrl+backspace support 2017-05-08 23:45:18 -04:00
jacob1
cdc8f64896 fix clang compile warnings, fixes #406
also, sim.ambientAirTemp takes floats now
2017-04-27 23:08:06 -04:00
jacob1
6d6a615a37 msvc min/max fixes 2017-04-23 12:30:39 -04:00
jacob1
ca792f12b5 misc compiler warning fixes (multiple compilers) 2017-02-20 19:14:50 -05:00
jacob1
f0f104097d finish / fix ecb08952e5
must have accidentally reverted Keys.h halfway through making it?
2016-07-23 19:15:07 -04:00