Commit graph

1420 commits

Author SHA1 Message Date
Bill Kendrick
fb596fb887 Avoid crash on unexpected "saved dimensions" loading Labels 2022-04-06 01:32:21 -07:00
Bill Kendrick
7db784ce88 Tools' scroll buttons auto-repeat
The "Tools" section's up & down scroll buttons auto-repeat if
you click/tap and hold them.

For https://sourceforge.net/p/tuxpaint/feature-requests/173/
(Still to-do: The buttons in the Open & New dialogs.)
2022-04-02 21:15:35 -07:00
Bill Kendrick
565da81071 Remove a leftover debug printf 2022-04-02 20:53:18 -07:00
Bill Kendrick
347a9b5cc8 Sanity checks in load_info_about_label_surface()
Avoid crashes when coming across unexpected Label data stored within
a saved PNG image.
(h/t Donny Sianipar for the report & sample image)
2022-04-02 17:29:22 -07:00
Pere Pujal i Carabantes
ad6bf2ec83 Merge branch 'master' into sdl2.0 2022-03-17 20:22:04 +01:00
Bill Kendrick
c4ac0c9487 Tweak description of HSV rainbow color picker 2022-03-17 01:28:17 -07:00
Bill Kendrick
7856e7af6c Avoid color picker crosshairs blitting outside zones 2022-03-17 01:09:50 -07:00
Bill Kendrick
b568bf86d2 Color picker: Eat motion events to avoid over-rendering
...when spamming the event queue with motion events over the
value slider, while Tux Paint is busy re-rendering the
rainbow palette at the new Value level.

Also, convert a printf() in the new color picker crosshair sizing
function to DEBUG_PRINTF().
2022-03-17 00:54:49 -07:00
Bill Kendrick
1b9933b7c2 More appropriately-sized crosshairs on color picker
The corsshairs on the rainbow palette color picker are larger
(by default), and scale up or down based on the UI size
(--buttonsize setting).
2022-03-17 00:36:40 -07:00
Pere Pujal i Carabantes
41015efc73 Merge branch 'master' into sdl2.0 2022-03-16 23:42:49 +01:00
Bill Kendrick
8aeb022849 tuxpaint.c: replace some tabs with spaces 2022-03-16 00:38:37 -07:00
Bill Kendrick
491862d2da Color picker: Value slider: Interact on hover motion 2022-03-16 00:33:25 -07:00
Pere Pujal i Carabantes
a8ef746181 Use wcstombs() instead of doing the conversion in tuxpaint.c. Thanks to Shin-ichi TOYAMA. 2022-03-09 23:33:50 +01:00
Pere Pujal i Carabantes
c8963a3f1f Merge branch 'master' into sdl2.0 2022-03-04 23:23:54 +01:00
Bill Kendrick
adec3666f0 Color picker -> Back; don't 'forget' old crosshair positions 2022-03-02 01:38:04 -08:00
Bill Kendrick
0c858122b5 Color picker now offers full HSV selection
Added a slider to choose value, which re-renders the rainbow-colored
box on the left (which now only displays hue/saturation).
2022-03-02 01:30:36 -08:00
Bill Kendrick
6e98230a33 Ensure color mixer works in New dialog
and sync README docs to capture that it, and rainbow palette,
may be used.
2022-02-23 23:22:59 -08:00
Pere Pujal i Carabantes
a9661efe2b Merge branch 'master' into sdl2.0 2022-02-22 23:14:10 +01:00
Bill Kendrick
697253a4bd Fixed label position/render bug when selecting via keyboard
Bugfix: Positioning and rendering of labels selected for editing
via [Tab] cycling & the [Enter] key now works as expected.
2022-02-22 00:33:51 -08:00
Bill Kendrick
380e5455f9 Label->Apply->final label: Update screen correctly 2022-02-22 00:00:22 -08:00
Bill Kendrick
3e385f6a68 More work on Label apply feature
h/t Pere for adding the missing pieces.

WIP b/c there's one minor side effect that needs addressing
(final label, highlighted red, does not lose its highlight)
2022-02-21 23:23:32 -08:00
Pere Pujal i Carabantes
27dd0f4db5 Merge branch 'master' into sdl2.0 2022-02-21 00:57:59 +01:00
Pere Pujal i Carabantes
b62a5f1094 Less flickering when selecting a label.
If you selected a label and the cursor was in another place, the label was displayed flashy in that another place.
2022-02-21 00:50:16 +01:00
Pere Pujal i Carabantes
7b53d1583e Making Android compile again, a curly brace displaced and still some problem with labels in Android. 2022-02-19 00:04:00 +01:00
Pere Pujal i Carabantes
701e033a58 Merge branch 'master' into sdl2.0 2022-02-18 22:31:59 +01:00
Bill Kendrick
5c2bcd44a2 OSK: Reposition if cursor overlap zone via [Enter]
Onscreen keyboard repositions itself to the top if you use [Enter]
to move the cursor down, and it begins overlapping the keyboard.

Also, play "carriage return" sound effect, even when entering
a blank 'line' of text.
2022-02-17 22:19:57 -08:00
Bill Kendrick
dfb36d7ef8 Mend OSK sizing bug in SDL 2.0 branch
s/screen/canvas/ in calls to osk_create()
2022-02-17 22:05:48 -08:00
Pere Pujal i Carabantes
b7414433cb Merge branch 'master' into sdl2.0
Catching up with latest devel
Still things to solve/do:
Apply label seems to not work, neither in master
Onscreen keyboard size doesn't perform as in master
Test on other OSs, Windows, Android, ...
2022-02-18 00:29:40 +01:00
Pere Pujal i Carabantes
eb7f55e289 Merge branch 'master' into sdl2.0
Some things are still WIP, they need to be tested and addressed later.
2022-02-17 23:57:28 +01:00
Mark Kim
c126eb92b5 macOS fix for backspace in text/label tools in some languages
Fixed the issue with the backspace not working in text and label tools
when in certain language modes in macOS.  Mac keyboards have the DELETE
key where PC keyboards have the BACKSPACE key, and the two keys have
different keycodes, so the backspace requires special handling on the
macOS in programs writtens for the PC.
2022-02-13 17:16:12 -05:00
dolphin6k
3d4dd494b5 WIN32: Use WideCharToMultiByte() insted of iconv() for label embeddiing. 2022-02-13 18:51:08 +09:00
Pere Pujal i Carabantes
63fbd45cd1 Merge branch 'master' into sdl2.0 2022-02-13 01:44:39 +01:00
dolphin6k
f4cc875861 Finally fixed space bug with labels on windows correctly 2022-02-12 10:20:18 +09:00
dolphin6k
599e616d13 Fixed space bug with labels also on windows. 2022-02-11 23:26:58 +09:00
Bill Kendrick
851f5ffbb7 Win32, loading Label text from drawings: Avoid leak
Avoid leaking memory when loading Label text strings from a saved drawing.

Also, a heck of a lot of comments to explain (as best I understand)
what load_info_about_label_surface() is doing.
2022-02-11 01:18:51 -08:00
dolphin6k
907c739679 Removed mtw() for windows.
Instead, defined windows native functions for mbstowcs()/wcstombs().
2022-02-11 09:40:59 +09:00
dolphin6k
7305768d38 Revert "Removed "#ifdef WIN32" block around label embedding."
This reverts commit c0da1f0e94.
2022-02-11 08:52:37 +09:00
dolphin6k
c0da1f0e94 Removed "#ifdef WIN32" block around label embedding.
It has likely become unneccessary by recent fix for the common part.

Also backported a fix for uppercase issue from sdl2.0 branch (Define Windows native
function for mbstowcs/wcstombs).
2022-02-11 08:33:29 +09:00
Pere Pujal i Carabantes
18c6835a2d Adapting latest cherry-pick to SDL2. I am later 2022-02-11 00:28:11 +01:00
Bill Kendrick
dc6a7f2244 Color mixer working okay now!
I'd like to add undo/redo, and the trash button needs a label,
but it's usable!
2022-02-11 00:09:08 +01:00
Bill Kendrick
59965e83fe WIP More work on color mixer
Tweaks to icon. Further modularized how color button rendering works,
so it can handle selector (pipette) and mixer overlay icons.
Mixer function is basically identical to color picker (rainbow palette)
as a placeholder. WORK IN PROGRESS.
2022-02-11 00:08:45 +01:00
Bill Kendrick
0a8f18050c WIP Starting to make a color mixer tool
Also, modularize color picker's & color selector's method of
generating a fresh version of their active/inactive buttons,
after a color has been chosen by their tool.
2022-02-11 00:07:15 +01:00
Pere Pujal i Carabantes
0f7054d118 Adapting/curing previous cherry-pic for SDL2. 2022-02-10 23:44:05 +01:00
Bill Kendrick
3b4d2fc8f2 Ctrl+click to pick colors immediately
A keyboard shortcut is now available for picking colors from
the canvas more quickly.  Hold either (left or right) [Ctrl] key
while clicking, and the color selector option will appear.
Release the mouse button over a color on the canvas to choose it
(or outside the canvas to abort).
Closes https://sourceforge.net/p/tuxpaint/feature-requests/209/

Also,
 * Don't play 'bubble' paint sound when color picker or selector
   are aborted (e.g., via their "Back" buttons).
 * Replace many instances of "NUM_COLOR - 1" and "NUM_COLOR - 2"
   (which correspond to color chose via picker (palette) and
   selector (canvas), respectively) with #define's that
   represent them. (Avoid magic numbers.)
2022-02-10 23:42:23 +01:00
Bill Kendrick
4ec43dcff2 Address fscanf eating space at beginning of Labels
When reading label text (on non-Windows, at least), fscanf("%lc")
was being used.  It seemed to be skipping the initial space,
causing strings to be shifted left one, and end up with garbage
bytes at the far right.

Fixes https://sourceforge.net/p/tuxpaint/bugs/247/ I hope!
2022-02-10 02:28:50 -08:00
Bill Kendrick
5d064297d4 WIP: More work on Apply Label functionality
"Apply Label" mode of Label tool can be activated/deactivated,
though it doesn't currently do the work yet.

Also

* Modularized routine to select a Label (via click or [Enter] key):
   `select_label_node()`

 * Starting routine for applying a Label to the canvas
   (via click or [Enter] key): `apply_label_node()`

 * Modularized routine for repositioning the on-screen keyboard based on
   where we're typing: `reposition_onscreen_keyboard()`

Seems likely that I broke some things.
2022-02-10 01:01:40 -08:00
Bill Kendrick
e0922a14e1 WIP Apply label: Show apply label button 2022-02-09 23:25:46 -08:00
Bill Kendrick
d682044ce0 Commentary for text input handling routines
Also, sound effect when deleting a Label (select existing label (node),
[Backspace] to delete every character, then [Enter] or [Tab] to commit).
2022-02-09 22:58:54 -08:00
Bill Kendrick
f787cb0f75 WIP Label "apply" option
Starting work towards
https://sourceforge.net/p/tuxpaint/feature-requests/213/

The ability to 'apply' a label to the canvas, making it permanent
(as if added using the "Text" tool instead).

Removed unused "label rotate" option's code (and hence addressed
a bug we didn't relalize when choosing the "Label" tool while in
in "--nostampcontrols" mode; the unused "rotate" button would appear).
2022-02-09 22:41:13 -08:00
dolphin6k
d0699bdbc9 Redirect stdout and stderror to User's save directory. 2022-02-10 12:24:46 +09:00