Commit graph

1132 commits

Author SHA1 Message Date
Bill Kendrick
8c3a07294b Beginning GIF export
Beginning addition of an option to export animated GIFs
from the Open -> Slideshow dialog, after choosing the images.

Non-operable at this time, but a button has been added (and will
provide a hint to select 2 or more images, when clicked).
2020-07-25 00:18:46 -07:00
Bill Kendrick
e87f36d9a7 Fix Haiku "unable to open saved files" bug
Appling patch from a92961004d
that fixes https://github.com/haikuports/haikuports/issues/3045
2020-06-22 23:04:13 -07:00
Bill Kendrick
10c833e565 Bump version date -> 2020-05-23 2020-05-23 23:32:49 -07:00
dolphin6k
99fb3f7dce Some systems require inluding librsvg-cairo.h explicitly. 2020-05-01 14:51:10 +09:00
Bill Kendrick
d172f38d4d Win32 build (& doc) tweaks
TOYAMA Shin-ichi noticed that when building for Win32 under mingw/msys,
an #include of "librsvg-cairo.h" was also necessary.

He also bumped the version # in win32/resources.rc
(and I put his credit in there).

I updated docs/RELEASE.txt to mention that .rc file also needing
updated when preparing a new release.
2020-04-10 19:05:52 -07:00
Bill Kendrick
91505fae8e Debug output clean-up
Wrapped some debug output in "#ifdef DEBUG" tests,
and made sure some warnings and errors were going to
STDERR, rather than STDOUT.

Motivation: Less noise while launching/using Tux Paint,
unless it matters.
2020-04-02 22:15:13 -07:00
Bill Kendrick
b9c929a0a1 Rework how progress bar shown with stamps
Was drawing progress bar while DRAWING stamps into the UI
(in https://sourceforge.net/p/tuxpaint/tuxpaint/ci/ad4bfde57c170082d93979a7073f7358872eca21/),
even if they were already loaded and thumbnailed.

Now only doing it when loading a new stamp.  Should hopefully
help with performance.  (h/t Pere for reporting slowness on Android)
2020-04-01 22:29:57 -07:00
Bill Kendrick
ad4bfde57c Show progress bar while loading (more) stamps 2020-03-15 13:06:13 -07:00
Bill Kendrick
6c5eb54c49 Update (c) to 2019
h/t Jonathan Carter
2019-10-05 14:00:41 -07:00
Pere Pujal i Carabantes
ca0420df40 Better solution for frame_heart.png being wrongly discarded as the .png version of frame_hearts.png. 2019-09-26 00:22:53 +02:00
Bill Kendrick
f7d30d3222 Added --nostereo option
Ability to disable stereo panning effect (e.g., paint brush, UI
elements sound effect feedback, etc.), useful for users with
hearing impairment in one ear, or situations where one speaker or
headphone is being used.  Use "--nostereo" command-line option
or "nostereo=yes" config. file option.
2019-09-21 16:33:55 -07:00
Bill Kendrick
850a3cd853 Squelch Starter save debugging
Wrap another loose printf() in #ifdef DEBUG...
2019-09-14 12:19:00 -07:00
Bill Kendrick
aade790b1c Remove unused x/y args to would_flood_fill()
Copy-pasta'd them
2019-09-14 12:10:26 -07:00
Bill Kendrick
a54dd570b4 Make sure Fill uses undo (but also intelligently)
"Fill", as a new main-toolbar tool, was not recording snapshots
of the image for the "Undo" tool.  Mended.

However, also updated the tool so that it doesn't _bother_ recording
into the undo buffer if the fill action is a no-op (e.g., clicking
the same spot a second time, or otherwise attempting to fill an
area with a color that's identical to what's already on the canvas).
2019-09-14 11:16:46 -07:00
Bill Kendrick
8f9ea4cb69 Remove starter/color/etc. debug from New dialog
Some printf() debugging belonged inside an #ifdef DEBUG...
2019-09-14 10:55:54 -07:00
Bill Kendrick
4c3ad460ee "New" dialog: fix bad dir: Starter/Template thumbs
Made sure "New" dialog created correct thumbnail subdirectories
for personal Starters & Templates (e.g., ~/.tuxpaint/starters/thumbs/)
2019-09-14 10:52:59 -07:00
Bill Kendrick
2117db234e Generate & install starter thumbnails again
I cannot recall[*] why we disabled the steps to generate thumbnails of
starters (".thumbs/STARTERNAME-t.png") and install them in the system
directory (e.g., /usr/local/share/tuxpaint/starters/.thumbs/),
but every time one goes to create a new image ("New"), it took a very
long time to show.

[*] If anyone remembers ~a decade ago, and has a good reason, let me know!

Also, remove "Makefile" as a prerequisite for some targets; if anything
major changes in there, it's expected one will run "make clean" or
remove the binary/etc. target and rebuild.  (Rebuilding "tuxpaint.o"
every time I edited something unrelated in Makefile was really annoying :) )
2019-09-14 09:33:22 -07:00
Bill Kendrick
2911b35a50 Elevate "Fill" from Magic Tool to real Tool
Replace the somewhat-recently-added "nothing" item in the tool bar
with the "Fill" tool, which has been converted back from a Magic tool
to a regular tool.

Also, change bash "==" to sh "=" in "if [ ... ]" tests in Makefile.

Also, link to math library (via "-lm") to make sure "max()" is available to
magic tools.

Also, add missing mention of "--newcolorslast" and "--newcolorsfirst" to manpage.
2019-09-12 23:04:13 -07:00
begasus
e5c3cdfcf5 Haiku fixes 2019-09-06 13:45:56 +02:00
Bill Kendrick
7938480174 Clean up GCC warnings (2019-08-29 edition)
Updated most parts of the code that were throwing warnings in GCC.
2019-08-30 00:01:00 -07:00
Pere Pujal i Carabantes
1f2c6c3c4e Starter frame_heart.png was wrongly discarded as being the .png version of frame_hearts.svg. 2019-06-22 00:22:36 +02:00
Bill Kendrick
e996746351 Funky function call indent fix
A word-wrapped line of code using an array to access a
function was confusing `indent` (causing it to change back & forth
everytime `indent` was invoked!)

Cleaned it up and wrapped in /* *INDENT-OFF* */.../* *INDENT-ON* */
to prevent further confusion.
2019-04-13 12:08:04 -07:00
Bill Kendrick
dd82fa06e3 Mended tuxpaint.c indent
Some commentary lines kept increasing indent every time
`indent` was ran!?  Wrapped in /* *INDENT-OFF* */ ... /* *INDENT-ON* */
to prevent this, and mended them.
2019-04-13 12:05:56 -07:00
Bill Kendrick
4e3a9fbc8c Re-ran indent on .c files
Also, added a few places where indent is disabled
(via `/* *INDENT-OFF* */`).

See https://sourceforge.net/p/tuxpaint/mailman/message/36077409/
from Oct. 2017.
2019-04-13 12:00:44 -07:00
Bill Kendrick
99b566ae26 Support SIGUSR1/2 for immediate(ish) quit-and-save
Respond to a SIGUSR1 or SIGUSR2 signal by configuring itself
for autosave, saving a new file, or overwriting the current,
respectively, and sending itself a SIGTERM (which _generally_
causes Tux Paint to quit, depending on where you are in the UI).

Closes https://sourceforge.net/p/tuxpaint/feature-requests/188/
2019-04-03 22:49:04 -07:00
Bill Kendrick
d70c587077 Mend crash bug in new "--newcolorslast" feature
The "New" dialog's new "--newcolorslast" option was not complete,
and caused crashes. (Sorry! Mended!)

Closes https://sourceforge.net/p/tuxpaint/bugs/219/
2019-04-03 22:05:05 -07:00
Bill Kendrick
f3965941aa Mend alloc bug introduced testing 'New colors last'
Didn't mean to stop alloc'ing space for the colors!
2018-12-18 22:45:52 -08:00
Bill Kendrick
5d9ceca076 "New colors last"; place colors at end of New
New option to place color palette items at the end of the "New"
dialog, rather than at the beginning.  Useful for when users
would want to pick from a set of Starters and/or Templates,
e.g., in a school or museum environment.

Available via command-line option "--newcolorslast", and
config file setting "newcolorslast=yes".  (And anti-option to
override config file settings, "--newcolorsfirst" and "...=no",
which represents the original behavior, which continues to be
the default).

Suggested by Bernard Verhaeghe.
2018-12-18 22:37:03 -08:00
Bill Kendrick
268e213e6d Bump to 0.9.24; improve usage output
Bumping to 0.9.24; going to add a new feature momentarily.

Improved usage output (e.g., that of "tuxpaint --help"); broke
the options into groups that match the tabs in Tux Paint Config.,
added some missing options.
2018-12-18 21:56:05 -08:00
Mark Kim
be99eb3844 Re-add print dialog access to macOS.
Ability to bring up the print dialog from the macOS build was removed in
Tux Paint 0.9.23 to support the new build mechanism.  It has been re-added.
To access it, option-click the print icon, or configure Tux Paint to always
bring up the dialog upon print.
2018-09-28 23:24:56 -04:00
Mark Kim
8d9e187cc9 More debugging features, performance and macOS update.
Added function name to the output of verbose logging.  Verbose logging is
the feature introduced in the previous git commit where a call to printf()
automatically adds the source filename and line from where the printf() is
called, and the runtime timestamp at which the call was made.  Now this
feature adds the functio name from which the printf() is called.  This
feature is enabled if and only if both DEBUG and VERBOSE are defined in
debug.h and the source is compiled with GCC.

Added a new macro DEBUG_PRINTF() that expands to printf() if and only if
DEBUG is defined in debug.h.  This feature works with verbose logging if
VERBOSE is also defined and the source is compiled with GCC.

Reduced the launch time.  A user reported an issue with Tux Paint taking 7
minutes to launch; an investigation showed that launching Tux Paint with
all stamps and the screen width set wide (~1500 pixels) can cause the
slowdown during the progress bar drawing sequence because progress bar
takes a long time to draw on screens with a wide screen, and it is called
~10 thousand times during the stamp loading process.  The issue has been
addressed by calling the progress bar less frequently.

Updated the macOS build version and date, under which these features were
tested.
2018-09-24 23:00:04 -04:00
Bill Kendrick
8b84d51d00 Update & simplify credits
Update (c) date to 2018 on title screen.
Simplify and update (c) info in most documentation.
2018-08-28 09:36:38 -07:00
Mark K. Kim
1db3d431f5 Add debugging output for playing sounds. 2018-06-26 22:59:24 -04:00
Mark K. Kim
19ae36662b Add more debugging messages.
Also update macOS build date in the Info.plist file.
2018-06-26 02:13:41 -04:00
Bill Kendrick
e56067d202 Beginning to doc every func in tuxpaint.c
Beginning to document functions in src/tuxpaint.c, Docbook style
(description, @param's, @return).  Also removed a few dead bits
of code.

Eventually, hoping to break this beastly file into pieces.
(Maybe for Tux Paint 0.9.24?)
2018-05-14 23:56:44 -07:00
Mark K. Kim
912cd2e625 Fix text not displaying on systems without Fontconfig installed. 2017-12-20 23:19:19 -05:00
Mark K. Kim
558b74b7fc In the macOS build, load stamps from within the app path where the 2009.06.28
stamps collection installer installs the stamps.
2017-11-27 01:16:57 -05:00
Mark K. Kim
472bf79bb9 Trying again... 2017-11-27 01:02:41 -05:00
Bill Kendrick
1576935455 More compiler warnings
* Adding a missing local function definition.
 * Ensured a var only used during certain #ifdef was only declared under
   that situation.
2017-10-15 15:05:20 -07:00
Bill Kendrick
41e9fbd0c4 More compiler warning cleanup
Mostly removing some unused variables, but also "using" some
of the new temp vars (e.g., "tmp = fgets(...); (void)tmp;")
2017-10-15 15:00:48 -07:00
Bill Kendrick
5907713cdd Remove unused reset_brush_counter_and_frame()
reset_brush_counter() gets called, but reset_brush_counter_and_frame()
never does; removing it.
2017-10-15 14:45:22 -07:00
Bill Kendrick
b693003b14 Remove some unused funcs & declarations
Removing more unused functions, and moving a declaration in fonts.h
to fonts.c, since it's not used externally (reliable_read()).
2017-10-15 14:38:52 -07:00
Bill Kendrick
502edda2b1 Remove unused in_circle() func
in_circle() isn't used; in_circle_rad() is.
2017-10-15 14:33:11 -07:00
Bill Kendrick
dc167b4c52 Remove unused funcs remove_slash, replace_tilde
Remove unused funcs remove_slash() (an identical one exists
in win32_print.c) and replace_tilde().
2017-10-15 14:29:12 -07:00
Bill Kendrick
1ae588baf8 More compiler warning cleanup (WIP)
Picking at more compiler warnings.
2017-10-15 13:09:05 -07:00
Bill Kendrick
284a64a08f tuxpaint.c code & warning clean-up (WIP)
- Replace any C++ style comments (// ...) with C style (/* ... */).
 - Improve calls to fgets() to avoid "ignoring return value
   of ‘fscanf’, declared with attribute warn_unused_result
   [-Wunused-result]" errors (WIP).
 - Removed some unused, commented-out code.
2017-10-15 12:57:43 -07:00
Bill Kendrick
f03785e532 indent tuxpaint.c -- the whopper!
The big one we've all been waiting for -- ran indent on tuxpaint.c
(which itself is ~25K lines long, and really needs to be split up).

Hopefully the code will look less atrocious now :-)
2017-10-15 12:16:05 -07:00
Bill Kendrick
5e0d51c771 Sanitized some grid_dims assignments
A number of assignments of grid_dims structs were of the form of
(ignoring some carriage returns, which undoubtedly added to the
confusion):

  gd_controls = (grid_dims) { 3, 2 };

which confused `indent`, causing it to think certain if/else blocks
were being ended early.

Turning these into assignments, like so, to avoid this:

  gd_controls.rows = 3;
  gd_controls.cols = 2;
2017-10-15 12:06:27 -07:00
Bill Kendrick
3e96684bde Pointer assignment syntax tweak
Correcting for a warning given by indent:

  Warning:old style assignment ambiguity in "=*".  Assuming "= *"
2017-10-15 11:55:50 -07:00
Karl Ove Hufthammer
6698b5e844 Fixed spelling mistake. 2017-07-29 13:46:08 +00:00