+ WIP Makefile updates to support building for OS/2
- TODO: Makefile needs SYSNAME test to detect OS/2 (Bill has asked Elbert)
+ Added "__declspec(dllexport)" (via new "TX_EXTERN" #define'd in
`tp_magic_api.h`) to public function definitions in Magic tools
- WIP: So far just "Mirror/Flip" plugin
- TODO: Add "TX_EXTERN" prefix to all other public Magic tool functions
+ Renamed long Magic tool source files to have shorter filenames
- WIP: So far just "Mirror/Flip" (`mirror_flip.c` -> `mirror_f.c`)
- TODO: Rename all other magic tool source files.
h/t Elbert Pol for providing info and some diffs!
e.g., for Chinese Traditional, try to use the full font (that
we supply as an optional download), then try the 'subset' font
that we ship with Tux Paint.
The requested font & actual font loaded will be echo'd to STDOUT
when specifying the `uifont` option.
This uses Pango library directly (I was unable to convice SDL2_Pango.h
to actually notice that pango.h was #include'd before it, and expose
its SDLPango_GetPangoFontDescription() function!). This is okay,
since we want to also add a "--uifont list" option (or similar),
that will list all of the available fonts, if a user wishes to
query them. (And similar code will be added to tuxpaint-config to make
the setting available as a pull-down, rather than (or as well as) a
freeform type-in field.)
If not specified, or "default" is specified (e.g., to override
a higher-up config file setting), it will fallback to what we
have #define'd in fonts.h as PANGO_DEFAULT_FONT, "DejaVu Sans".
It appears to fallback to this (or a reasonable fascimile) if
the font specified by the "uifont" option doesn't exist
(e.g., "tuxpaint --uifont=ABCD1234").
For https://sourceforge.net/p/tuxpaint/feature-requests/146/
Motivation - Without SDL2_Pango, languages like Japanese,
Arabic, and Thai do not render properly. Currently, Debian
(and hence Ubuntu) do not have SDL2_Pango, so Tux Paint 0.9.28
is adversely affected. Fedora DOES have SDL2_Pango, so works well.
This also allows us to delete a lot of ancient cruft code.
Closes https://sourceforge.net/p/tuxpaint/bugs/268/
h/t Pere
(INSTALL docs to be updated momentarily)
Also, add other social media accounts to list of places to
announce Tux Paint in RELEASE docs.
Also, list a ton more options missing from default example config file
"src/tuxpaint.conf"
Like so --
find . -name "*.c" -or -name "*.h" -exec indent -nbfda -npcs -npsl -bli0 --no-tabs {} \;
The `indent` invocation differs from the last one noted in
CHANGES.txt (from 2006!?), in that I've added "--no-tabs",
to ensure indents are all space-based.
Also disable VERBOSE DEBUG output.
Note - Still a pair of nasty warnings about the following
* ‘rsvg_handle_close’ is deprecated: Use
'rsvg_handle_read_stream_sync' instead
* passing argument 3 of ‘autoscale_copy_smear_free’ from incompatible
pointer type (SDL_BlitSurface)
They should be addressed.
* Made problemFonts[] not-Apple-specific
* Added a description to TuxPaint_Font struct
* Added debugging to show when a font is being closed
(currently causing crashes with some fonts, on Win7 with
Tux Paint 0.9.22beta01 and Kubuntu 14.04 with CVS)
even when FORKED_FONTS is not set.
* No longer undef'ing SDL_thread stuff when FORKED_FONTS is
used if we're ALSO not using SDL_Pango, since that now
uses a thread to let fontconfig generate its cache, and
still let Tux Paint be responsive to the OS and user.
(SF.net bug #2944951)
* Spawning a thread and rendering a dummy string with SDL_Pango,
to allow fontconfig to generate its cache.
(SF.net bug #2944951)
* Setting up 'busy' mouse cursor (watch-shaped) earlier
(so it can happen while fontconfig cache thread runs).
* Not spawning forked font scanner (FORKED_FONTS) as early, so
fontconfig can generate its cache first.
(I wasn't sure if calling an SDL_thread after a fork()
occured was safe or not; admittedly, I discovered that
SDL_thread spawning wasn't working due to the re-#defines
of those functions when FORKED_FONTS was set; see above.)
All of this only tested on Ubuntu 9.04. Forced disabling of FORKED_FONTS
by editing fonts.h, and Tux Paint still worked (it just took longer at
the splash screen while the fonts were loaded). Needs testing on various
Windows, Mac OS X and BeOS.
* Solve the 'FIXME: "finddir" ...' (The trick is to use "=" instead of ":=". That way, $(beos_PREFIX) will only be evaluated when it is actually used.)
* include "shlwapi.h" instead of "Shlwapi.h" (Otherwise, compiling for Windows will fail on a case sensitive file system. (e.g. a Unix file system when cross compiling))
* use FILENAME_MAX instead of NAME_MAX (FILENAME_MAX is more portable than NAME_MAX. Also, recent MinGW versions don't support NAME_MAX anymore.)
* Exposing font_thread_aborted via extern [tweak to Volker's patch which removed a logic test, which is probably not what we want]
* include parse.h (and thus compiler.h) after <stdio.h> (This ensures that the perror() macro of compiler.h won't confuse the perror() function declaration of <stdio.h>.)
* fix another compiling error about undefined variables (The tuxpaint.c uses printcommand/altprintcommand/papersize even when they aren't defined, i.e. when libpaper is not used. This patch solves the issue by using "#ifdef PAPER_H")
* call show_available_papersizes() only when libpaper is used
* permit cross compiling by using Make variables instead of hard-coded tools
Documented scottmc's Haiku improvements.
a library for layout and rendering of text, with an emphasis on
internationalization. (The hope is to improve support for languages
that SDL_ttf doesn't support well; e.g., Arabic and Telegu.)
TTF_Font structs and some functions were replaced by a new
TuxPaint_Font struct and function, which wraps around either TTF_Font
or SDLPango_Context, depending on whether SDL_Pango is being used.
Note: STILL NEEDS WORK!
Reordered font-loading to happen after locale switch occurs, to
pick up font-organizing string translations (e.g., "Aa", "qx", etc.).
Attempting to help address issue of Latin-only fonts being available
in non-Latin locales -- seemed to help with Norwegian.
Czech translation update.
Russian README documentation