Commit graph

1152 commits

Author SHA1 Message Date
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
076b15fd20 Rigging up do_color_sel() to offer immediate mode
The pick-a-color-from-the-canvas color selection feature
(the option in the color palette showing a pipette icon)
has been extended to support an immediate mode (return on
"mouse-up" event, don't show a "Back" button, and don't animate
the appearance of the color dialog at the bottom),
which will be used by a forthcoming feature that will offer
a keyboard shortcut to bring up this color selection option.
2022-02-01 00:36:11 +01:00
Bill Kendrick
a927f7287b Show "pipette"-shaped pointer when selecting colors 2022-02-01 00:32:26 +01:00
Bill Kendrick
20c0db88c3 Stamp performance improvements
+ Stamps are scaled before they are colorized or tinted,
   to increase performance.
 + The current stamp (in its current form: size, orientation,
   and color) is cached, so it may be applied to the canvas
   many times without having to re-render.
   (No longer scaling and tinting every time you click.)

Closes https://sourceforge.net/p/tuxpaint/bugs/147/
(h/t Andre Anckaert)
2022-02-01 00:31:59 +01:00
Pere Pujal i Carabantes
c49d2a6f68 Step 2 of Merge branch 'master' into sdl2.0 2022-02-01 00:19:27 +01:00
Pere Pujal i Carabantes
4107ae3ecd Step 1 of Merging branch 'master' into sdl2.0 in a try to minimize conflicts 2022-01-28 22:50:04 +01:00
Bill Kendrick
3518433808 Better onscreen keyboard button sizing
No longer restricted to "the same as other UI buttons"
(e.g., 48x48 default) or "1/4th that size" (e.g., 24x24).
Will scale, allowing for larger buttons when appropriate.
h/t Anat Caspi for pointing out the continuing issue.

Closes https://sourceforge.net/p/tuxpaint/feature-requests/212/
2022-01-25 00:52:14 -08:00
Bill Kendrick
16e7cb1f59 Showing aspect ratio of shapes when stretching them
...in the Tux tips area
2022-01-21 01:33:23 -08:00
Bill Kendrick
71c2404838 Added heptagon (7-sided) shape
Also, using floats more, allowing for proper heptagon support, as
well as a non-skewed starting angle for octagons (22.5 degrees).
2022-01-21 00:34:10 -08:00
Pere Pujal i Carabantes
e9ebd54db9 Merging brush spacing work into sdl2.0 2022-01-20 21:33:57 +01:00
Bill Kendrick
e8446d2902 Brush spacing controls work 2022-01-20 00:09:03 -08:00
Bill Kendrick
ccfe3bc074 FIXME about hand cursor over selector controls 2022-01-19 02:12:59 -08:00
Bill Kendrick
29eec0dcb7 Brush spacing ctrl proper position when no scrollbar
(e.g., when running in ~860px tall window with 32px buttonsize)
2022-01-19 02:04:47 -08:00
Bill Kendrick
145c35a95d Get brush selector down-scroll to grok brush spacing 2022-01-19 01:46:44 -08:00
Bill Kendrick
0b18aac985 Decided how brush spacing choice relates to spacing
Max option in the spacing widget will correspond to 2x the maximum
dimension of the brush.
2022-01-19 01:30:08 -08:00
Bill Kendrick
ce9e264713 Initial work to render brush spacing widget
Doesn't do anything yet, and click-detecting code is unaware of it
(so scrollbar click happens in the old location).  WIP! :-)
2022-01-19 00:38:03 -08:00
Bill Kendrick
176749ba9c Grok "[no]brushspacing" commandline/config option
For forthcoming feature
2022-01-19 00:29:05 -08:00
Bill Kendrick
e1a721fb9d Outline for circle-shaped erasers is now also circular
Closes https://sourceforge.net/p/tuxpaint/bugs/244/
2022-01-18 23:28:53 -08:00
Pere Pujal i Carabantes
88f689c744 Uppercase fix for Turkish. Make use of full allocated space of ustr. 2022-01-01 19:58:36 +01:00
Pere Pujal i Carabantes
35dd1fb4ce Correcting syntax. 2021-12-21 00:31:05 +01:00
Pere Pujal i Carabantes
7ea62cf0fe Better approach to mbstowcs and wcstombs by TOYAMA Shin-ichi. Makes --uppercase working too for accented letters, discarding mtw. 2021-12-16 20:29:10 +01:00
Pere Pujal i Carabantes
6b167caa74 Merge branch 'master' into sdl2.0 2021-11-16 20:16:33 +01:00
Bill Kendrick
af8fd5b8a1 Attempts to improve rotated brushes
* Rotating brush angle is now a double, not an int
 * Don't draw once on click; require some motion
   (does not affect directional brushes, which include
   a "no movement" shape in the middle of the brush bitmap)
2021-11-16 00:13:44 -08:00
Bill Kendrick
6a52e33d35 Improve canvas update w/ rotating brushes 2021-11-15 23:57:12 -08:00
Pere Pujal i Carabantes
32f05c3891 Need to declare tmp_char also for Android. 2021-11-09 00:09:45 +01:00
Pere Pujal i Carabantes
88d8252952 Merge branch 'master' into sdl2.0 2021-11-08 23:33:49 +01:00
Bill Kendrick
70795bffcd Translate new angle-showing tips (Lines, Shapes)
h/t Pere for noticing they weren't appearing
2021-11-08 13:18:38 -08:00
Pere Pujal i Carabantes
1afe9e155c Merge branch 'master' into sdl2.0
Tons of bugfixes and improvements for Windows by Toyama Shin-Ichi
Angle rotation and some magic tools by Bill.
2021-11-06 08:59:22 +01:00
dolphin6k
46dd77fdb5 Reverted to mtw(). (MultiByteToWideChar() was not safe for the labels on other versions of Windows.) 2021-11-06 01:00:18 +09:00
dolphin6k
1efedfa191 Windows Recycle Bin support seems to be stable. / Replaced mtw() with MultiByteToWideChar(). 2021-11-06 00:29:10 +09:00
dolphin6k
5c669730a9 Re-defined iswprint() using GetStringTypeW on windows. 2021-11-05 16:55:23 +09:00
Bill Kendrick
0a529cea96 Avoid crashing on config file lines lacking =
Instead, emit a warning to stdout (though really we may want to
exit cleanly, like parse.gperf does when coming across an
unrecognized option).
2021-11-04 21:30:07 -07:00
dolphin6k
7c8f6bca80 Addressed warnings when compiling on MinGW/MSYS
Following warnings still remain so far.

src/tuxpaint.c:199:2: warning: #warning "Attempting to define strcasestr(); if errors, build with -DHAVE_STRCASESTR" [-Wcpp]
  199 | #warning "Attempting to define strcasestr(); if errors, build with -DHAVE_STRCASESTR"
      |  ^~~~~~~

src/parse.gperf: In function 'parse_one_option':
src/parse.gperf:306:45: warning: argument to 'sizeof' in 'memcpy' call is the same pointer type 'char *' as the destination; expected 'char' or an explicit length [-Wsizeof-pointer-memaccess]
  306 |   memcpy(offset+(char*)tmpcfg, &opt, sizeof(char*)); /* FIXME: This causes a warning; should it be 'sizeof(char)', or do we need to have the warning suppressed? -bjk 2021.10.14 */
      |                                             ^~~~

src/dirwalk.c: In function 'tp_ftw':
src/dirwalk.c:348:2: warning: #warning Failed to see DT_UNKNOWN [-Wcpp]
  348 | #warning Failed to see DT_UNKNOWN
      |  ^~~~~~~

src/get_fname.c: In function 'get_fname':
src/get_fname.c💯3: warning: 'dir' may be used uninitialized in this function [-Wmaybe-uninitialized]
  100 |   snprintf(f, sizeof(f),
      |   ^~~~~~~~~~~~~~~~~~~~~~
  101 |            "%s%c%s",
      |            ~~~~~~~~~
  102 |     dir, (*name) ? '/' : '\0', /* Some mkdir()'s don't like trailing slashes */
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  103 |     name);
      |     ~~~~~

magic/src/cartoon.c:178:99: warning: unused parameter 'last' [-Wunused-parameter]
  178 | static void do_cartoon(void *ptr, int which ATTRIBUTE_UNUSED, SDL_Surface * canvas, SDL_Surface * last, int x, int y)
      |                                                                                     ~~~~~~~~~~~~~~^~~~
2021-11-05 12:23:09 +09:00
Bill Kendrick
19db5e1b4a Avoid compile-time warnings re: wchar_t comparison
When assembling UTF-8 in render_text_w() (to send to SDL_Pango),
we assumed `wchar_t` could encompass the entirety of Unicode
(up to U+10FFFF); however, on Windows `wchar_t` is only 16-bits,
meaning the test for characters <= U+FFFF was always true.

This reworks the if/elseif/else block, via some "#ifndef WIN32"
tests, to avoid this warning.

In the end, we need to replace our internal use of `wchar_t`
with something 32-bit, to allow for higher Unicode code points
(e.g., to support Emoji via the Text and Label tools).

Additonally, some work will need to be done to ensure that
text stored as Labels within saved Tux Paint images (PNGs) continued
to work correctly, and could be traded between platforms.
(Untested, but right now I assume a picture drawn on Linux where
`wchar_t` is 32-bit would break if you attempt to load it on Windows,
and possibly vice-versa?)

See https://sourceforge.net/p/tuxpaint/feature-requests/210/
2021-11-03 22:16:24 -07:00
Bill Kendrick
f46df76736 Clean up comment formatting re: UTF-8 stuff 2021-11-03 21:28:03 -07:00
dolphin6k
6145fb8bc2 Addressed some compile time warnings. 2021-11-03 22:04:24 +09:00
dolphin6k
2a6b55e3c2 "Move to recycle bin" for Windows is now ready for the tests. 2021-10-31 17:18:16 +09:00
dolphin6k
b667aa7d79 win32_trash() is still quite unstable. 2021-10-31 02:34:24 +09:00
Bill Kendrick
022e7cd4eb Remove FIXME re: Windows trash support
...since Shin-ichi is adding it :)
2021-10-29 16:25:09 -07:00
dolphin6k
8d23668589 UNLINK_ONLY macro to work correctly for windows. 2021-10-30 07:34:30 +09:00
dolphin6k
87ed5bc991 tweak for win32_trash() 2021-10-29 23:37:19 +09:00
dolphin6k
61ce0798d9 Initial implimentation of win32_trash() 2021-10-28 22:47:32 +09:00
Bill Kendrick
2e231b5adc switchout/switchin when changing Magic groups
Also, doc'ing Cartoon full-image mode
2021-10-27 22:56:29 -07:00
Bill Kendrick
af1bd0850e Lines/Shapes: Display angles in Tux tip text
When drawing lines or rotating a shape, the angle of rotation
is shown (in the instructions at the bottom).
2021-10-25 23:23:28 -07:00
Pere Pujal i Carabantes
e6cd8d7b30 Input Method working again in the sdl2.0 branch. 2021-10-24 12:12:53 +02:00
Pere Pujal i Carabantes
9cf77f684c Merge branch 'master' into sdl2.0
There are problems with im that should be investigated...
2021-10-24 11:47:54 +02:00