Commit Graph

169 Commits

Author SHA1 Message Date
Tamás Bálint Misius
a2a8c876b3 Finalize latin-1 supplement changes
Swap both versions of O with acute and grave accents
Fix a few ASCII-isms
Fix intro text; the latin-1 changes broke the line under The Powder Toy
2020-03-09 23:44:18 +03:00
Tamás Bálint Misius
7330d0412a
Fix random warnings from clang 8.0.0 2020-01-21 14:43:22 +01: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
51e5f2bffa
Add option to make deco tools use sRGB colour space
Currently only affects the smudge tool. I'd have to look
into the others to decide if they need chaging. They probably
do though, they're not exactly intuitive.

I also fixed a bug with DropDowns where their popup would
show up in some random place if the parent window was a
ScrollPanel, and changed a few alignments here and there.
Notably, DropDowns now align the popup so that the currently
selected item is vertically centered and doesn't move when
the popup is opened.
2019-09-21 21:37:34 +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
jacob1
ecb08952e5 Add SDL_keysym.h, Use official SDL constants 2016-07-19 22:42:10 -04:00
Matthew Miller
083d488566 Added a favorites menu. (#298)
Added a favorites menu.
2016-06-25 11:55:18 -04:00
jacob1
aa99258101 more cleanup so that 3D can stay a more permanent thing 2016-04-02 00:10:15 -04:00
jacob1
535ade0ec4 InformationMessage expands like the other dialogs, "numeric" textboxes now allow negative numbers 2016-03-31 22:05:55 -04:00
jacob1
40c2ff27b0 Test using DownloadManager from my mod instead of RequestBroker
The crash when opening saves on mac is definitely something to do with the threading, and i'd rather just test this first to see if it fixes it

Copied from my mod almost entirely as-is, with the changes to HTTP.cpp included, also added locks into Download.cpp even though it is probably overkill
2016-03-27 11:41:36 -04:00
jacob1
76aeef24a4 ctrl+a support in Labels 2015-12-18 00:33:40 -05:00
jacob1
998f5a4cad fix infinite loop error message sometimes always coming up on startup 2015-11-29 01:59:36 -05:00
jacob1
a81a41b67f fix being able to change between box/line/flood fill while drawing (by releasing keys), a bunch of other extremely obscure fixes 2015-09-22 21:40:19 -04:00
jacob1
13a71b611a more tptmp mouse fixes, fix buttons and menusection buttons staying highlighted sometimes 2015-09-22 19:59:31 -04:00
jacob1
722b9d93d6 a few minor improvements so that stamps are more consistent in tpt++ / my mod 2015-09-19 21:19:17 -04:00
jacob1
81b2efaf5b fix textbox crash, fix ctrl+c / ctrl+x to not copy an empty string when the textbox is empty 2015-09-11 13:08:56 -04:00
jacob1
9048a3c50e new lua API: platform
you can get current OS / build information, exe name, restart tpt, open a link in the web browser, and use clipboard copy/paste functions

Also remove some older Platform.h file which wasn't really needed or used
2015-08-31 23:33:40 -04:00
jacob1
5caf8bc8e1 allow longer signs, add 'None' justification where the pointer line isn't drawn
signs have a longer width limit and hard 45 character limit from the textbox and when loading saves
2015-08-29 18:56:38 -04:00
jacob1
15537d4eff "Enabled" setting of button is now the old unused "Locked" setting of Components, also fix graphical bug with disabled buttons 2015-07-15 00:49:06 -04:00
jacob1
e990eead10 add CleanText function from my mod, used when copying / pasting / loading signs 2015-07-10 00:05:58 -04:00
jacob1
67bcd5e863 style improvements in Window.cpp / Window.h 2015-07-09 22:59:01 -04:00
jacob1
f65c4363b1 hovered / focused components are always drawn last 2015-07-09 22:58:19 -04: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
c786640c74 always use a ScrollPanel in the profile viewer
also fix Textbox autosize. TODO: add a bunch more info to the profile viewer
2015-07-09 14:25:01 -04:00
jacob1
6a88e42580 Add tooltip when hovering over any kind of link sign 2015-06-27 20:44:48 -04:00
Ryan Jacobs
55a30673c4 Remove unnecessary pointer checks.
There are *no* more spacing issues. I used tabs exclusively.
Also, I made changes off of the develop branch.

Here's the Ruby regex that I used:
text.gsub!(/(( |\t)*)if ?\((.*)\) ?{?\n?( |\t)*(free ?\(|delete |delete\[\] )(.*)\)?;/, "\\1\\5\\6;")
2015-02-14 22:13:26 -08:00
jacob1
b7fe998252 fix mouse coords at startup being 0,0, fix glitch that could make background windows fade completely to black 2015-01-31 14:09:50 -05: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
efd69b208d fix a ton more errors in the interface code, including all the -Wreorder ones 2015-01-16 19:58:39 -05:00
jacob1
dce874484a fix all the gcc warnings in the element files (except one in PSTN) + all the unused variable warnings 2015-01-10 22:43:33 -05:00
jacksonmj
236ff08da9 Fix some problems noted in http://www.viva64.com/en/b/0298/
I've left some of the less important items, like SearchView.cpp "'then' statement is equivalent to the 'else' statement", and RequestBroker::Request::~Request, because I don't feel like spending a few days entirely rewriting those files at the moment (which is what I'd end up doing if I started fixing minor problems and refactoring...)

GameSave::readOPS - not changed. At some point we may have to move to a larger type for element IDs (probably two or four bytes), but PT_NUM isn't likely to be raised to the maximum value of that type immediately, so this check will be needed then. There should be an elements[partsData[i]].Enabled check in there too, but it might be a bit difficult - I'm not sure how to access a Simulation object from GameSave::readOPS...

Notes on changes:

Graphics::textsize, Element_FRZW::Element_FRZW - typos

Button::Draw - the extra case was originally used to invert the icon (draw it in black instead of in white) when the button was clicked. However, the icon colour is now automatically set depending on the background colour. (Note similar conditions "if(Enabled) { if(isButtonDown || (isTogglable && toggle)) " near the start of the function - same logic but in a different place, setting icon colour indirectly).

Simulation::transform_save - unused redundant function, everything uses GameSave::Transform which does much the same thing.

PreviewView::NotifySaveChanged - should be height==YRES/2, it's checking whether the preview image is the correct size, and resizing it if it isn't.

Element_FWRK::update - no idea why that line was there, even though it was my commit that originally added it...
2014-12-25 17:09:35 +00:00
jacob1
1289465a2c update stamps.def when deleting stamps, missing stamps show up as "error loading save" and can be deleted 2014-11-11 23:48:36 -05:00
jacob1
a3d594c603 command key can be used instead of ctrl on OS X 2014-08-24 00:43:52 -04:00
jacob1
6749c2547f New SConscript (hopefully better)
Fixes a lot of bugs, also almost all options are no longer needed and are just auto-detected
2014-06-08 19:33:58 -04:00
jacob1
2e6b4242d6 don't resize save buttons in the online save browser, fix selection bug in console 2014-03-25 14:44:58 -04:00
jacksonmj
c6d6011337 An ugly fix for numpad, since it seems event.key.keysym.mod isn't entirely reliable for some unknown reason
Partial revert of 7ce9907f82
2014-03-12 15:05:54 +00:00
jacksonmj
1ca63b3813 Add more key definitions 2014-03-12 15:04:16 +00:00
jacob1
7dc5139b66 toolTips on search / save simulation buttons change when ctrl is held 2014-03-11 14:04:05 -04:00
jacob1
7ce9907f82 fix textbox key repeat issue, fix numpad issue (in two ways) 2014-03-11 12:53:42 -04:00
mniip
43bff37279 fix numpad behavior: movement keys are no longer triggered with numlock on 2014-02-27 20:39:16 +04:00
mniip
55284e6313 Fix most of clipboard-related memory leaks and potential crashes; Fixes jacob#23 2014-02-25 18:44:44 +04:00
mniip
a105ed9df8 Use system clock instead of used CPU time. Fixes key repeat and some
other stuff. close #206
2014-02-13 00:26:34 +04:00
jacob1
d38b7b9b11 pressing tab switches between textboxes in the deco editor 2014-02-06 12:15:48 -05:00
mniip
250b522221 map numpad keys to movement keys where applicable 2014-01-30 22:22:04 +04:00
jacob1
f66679e551 a little reorganization (maybe more later) 2014-01-20 13:52:53 -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
mniip
fdfaa3a29b add defines for window resolution
--amend
2013-12-29 20:12:50 +04:00
mniip
bc84326ca2 Got rid of debug fps counter, just added deltatime into usual fps counter 2013-12-21 05:26:54 +04:00
mniip
2be2b6b54b Adjust position of ContextMenu if it's too close to bottom or right edges #188 2013-11-10 12:28:29 +04:00
mniip
bf908bbfbf Fix various warnings, remove silly useless NO_INLINE system, remove the need for -fkeep-inline-functions 2013-10-30 04:47:07 +04:00
Simon Robertshaw
67c82ee283 Quick fix: Fix dummy key defs used by renderer and other non-input builds 2013-10-29 20:51:44 +00:00