Merge work in autoscroll from 'master' into sdl2.0

This commit is contained in:
Pere Pujal i Carabantes 2022-04-26 00:25:29 +02:00
commit bf73b3679b
75 changed files with 34464 additions and 43544 deletions

3
data/brushes/dog.dat Normal file
View file

@ -0,0 +1,3 @@
frames=2
directional
spacing=48

BIN
data/brushes/dog.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -7,7 +7,7 @@ Various contributors (see below, and AUTHORS.txt)
http://www.tuxpaint.org/
2022.March.17 (0.9.28)
2022.April.14 (0.9.28)
* Improvements to "Paint" and "Lines" tools:
------------------------------------------
* Brush spacing may now be altered within Tux Paint.
@ -128,6 +128,20 @@ http://www.tuxpaint.org/
you scale down (similar to "Panels", but with non-integer scaling).
Bill Kendrick <bill@newbreedsoftware.com>
* New Brushes:
------------
* "Dog" animated directional brush.
(Modified version of art from the "oneko" package by Tatsuya Kato.
https://github.com/tie/oneko)
Brushified by Bill Kendrick <bill@newbreedsoftware.com>
* Other Improvements:
-------------------
* The up & down scroll buttons now auto-repeat if you click/tap and
hold them in the "Tools" section, and "Open", "New", and "Slideshow"
dialogs. (For https://sourceforge.net/p/tuxpaint/feature-requests/173/)
Bill Kendrick <bill@newbreedsoftware.com>
* Localization Updates:
---------------------
* Albanian translation
@ -196,6 +210,12 @@ http://www.tuxpaint.org/
saved drawing. (Affected Windows only.)
Bill Kendrick <bill@newbreedsoftware.com>
* Avoid crashes when coming across unexpected Label data stored within
a saved PNG image.
(h/t Donny Sianipar for the report & sample image)
Bill Kendrick <bill@newbreedsoftware.com> and
TOYAMA Shin-ichi <dolphin6k@wmail.plala.or.jp>
* Ports & Building:
-----------------
* Windows
@ -238,7 +258,8 @@ http://www.tuxpaint.org/
* Documentation updates:
---------------------
* Added some styling, use of HTML semantic tags, call-outs for notes,
improved printed output, and other improvements to the README docs.
improved printed output, and other improvements to the README and
OPTIONS docs.
Bill Kendrick <bill@newbreedsoftware.com>
* macOS Apple Silicon and Universal Binary build instructions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,9 @@
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
January 20, 2022
March 31, 2022
----------------------------------------------------------------------
About PNGs
About PNGs
PNG is the Portable Network Graphic format. It is an open standard, not
burdened by patents (like GIFs). It is a highly compressed format (though
@ -35,48 +33,56 @@ How To Make PNGs
GIMP & Krita
Excellent tools with which to create PNG images for use in Tux Paint are
GIMP and Krita, both high-quality Open Source interactive drawing and
photo editing programs.
Excellent tools with which to create PNG images for use in Tux
Paint are GIMP and Krita, both high-quality Open Source
interactive drawing and photo editing programs.
It is likely that one or both are already installed on your system. If
not, they should be readily available from your Linux distribution's
software repository. If not, or to learn more, visit http://www.gimp.org/
and http://www.krita.org/, respectively.
It is likely that one or both are already installed on your
system. If not, they should be readily available from your Linux
distribution's software repository. If not, or to learn more,
visit http://www.gimp.org/ and http://www.krita.org/,
respectively.
Command-line Tools
NetPBM
The Portable Bitmap tools (collectively known as "NetPBM") is a collection
of Open Source command-line tools which convert to and from various
formats, including GIF, TIFF, BMP, PNG, and many more.
The Portable Bitmap tools (collectively known as
"NetPBM") is a collection of Open Source command-line
tools which convert to and from various formats,
including GIF, TIFF, BMP, PNG, and many more.
It is possible that it's already installed on your system. If not, they it
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://netpbm.sourceforge.net/.
It is possible that it's already installed on your
system. If not, they it be readily available from
your Linux distribution's software repository. If
not, or to learn more, visit
http://netpbm.sourceforge.net/.
cjpeg/djpeg
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM
Portable Any Map (PNM) format and JPEGs. It is possible that it's already
installed on your system. If not, they it be readily available from your
Linux distribution's software repository. If not, or to learn more, visit
The "cjpeg" and "djpeg" command-line programs convert
between the NetPBM Portable Any Map (PNM) format and
JPEGs. It is possible that it's already installed on
your system. If not, they it be readily available
from your Linux distribution's software repository.
If not, or to learn more, visit
https://jpegclub.org/.
Windows Users
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Macintosh Users
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

View file

@ -6,8 +6,9 @@
Copyright © 2002-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
@TuxPaintTweets on Twitter
Tux Paint on Tumblr
March 1, 2022
March 18, 2022
+----------------------------------------------------+
|Table of Contents |
@ -1089,3 +1090,4 @@ Importing Pictures Manually
* "Microsoft" and "Windows" are registered trademarks of Microsoft Corp.
* "Apple" and "macOS" are registered trademarks of Apple Inc.
* "Twitter" is a registered trademark of Twitter, Inc.
* "Tumblr" is a registered trademark of Tumblr, Inc.

View file

@ -5,9 +5,7 @@
Copyright © 2019-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
January 20, 2022
----------------------------------------------------------------------
March 31, 2022
Tux Paint responds to the following signals (which can be sent to the
program's process via `kill` or `killall`, for example).
@ -27,13 +25,13 @@
respectively), whether or not to overwrite the existing drawing,
or save to a new file.
Note: From other parts of the interface, the signal is currently
Example: killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
Example: killall tuxpaint
SIGUSR1 & SIGUSR2
Tux Paint responds by setting its auto-save option (as if it had
@ -47,9 +45,9 @@
So, from the main interface, Tux Paint should quit almost
immediately, with no questions asked.
Note: From other parts of the interface, unfortunately, Tux Paint
will go back one level in the interface. Therefore, at this time,
it may be necessary to send this signal to Tux Paint a few times,
for it to quit completely.
Example: killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

View file

@ -7,9 +7,7 @@
January 20, 2022
----------------------------------------------------------------------
About SVGs
About SVGs
SVG (Scalable Vector Graphics) is an open standard used to describe
two-dimensional vector graphics. It is great for diagrams and shapes,
@ -19,16 +17,20 @@ About SVGs
For more information, visit: https://www.w3.org/Graphics/SVG/
How to make SVGs
How to make SVGs
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program.
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
It is likely that is already installed on your system. If not, it should
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://www.inkscape.org/, respectively.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Mac and Windows users
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,82 @@
Tux Paint PNG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -26,12 +96,15 @@
</p>
<p>
January 20, 2022 </p>
March 31, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>About PNGs</h2>
<section class="indent">
<header>
<h1>About PNGs</h1>
</header>
<p>
PNG is the Portable Network Graphic format. It is an open standard, not burdened by patents (like GIFs). It is a highly compressed format (though not "lossy" like JPEGs - lossiness allows files to be much smaller, but introduces 'mistakes' in the image when saved), and supports 24-bit color (16.7 million colors) as well as a full "alpha channel" - that is, each pixel can have a varying degree of transparency. </p>
@ -44,32 +117,47 @@
<p>
Support for many colors allows photo-quality "rubber stamp" images to be used in Tux Paint, and alpha transparency allows for high-quality brushes. </p>
</section>
<section class="indent">
<header>
<h2>How To Make PNGs</h2>
</header>
<p>The following is a very <em>brief</em> list of ways to create PNGs or convert existing images into PNGs.
<h3>GIMP &amp; Krita</h3>
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
Excellent tools with which to create PNG images for use in Tux Paint are GIMP and Krita, both high-quality Open Source interactive drawing and photo editing programs. </p>
<p>
It is likely that one or both are already installed on your system. If not, they should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.gimp.org/">http://www.gimp.org/</a> and <a href="http://www.krita.org/">http://www.krita.org/</a>, respectively. </p>
</dd>
<h3>Command-line Tools</h3>
<h4>NetPBM</h4>
<dt>Command-line Tools</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
The Portable Bitmap tools (collectively known as "NetPBM") is a collection of Open Source command-line tools which convert to and from various formats, including GIF, TIFF, BMP, PNG, and many more. </p>
<p>
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<h4>cjpeg/djpeg</h4>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM Portable Any Map (PNM) format and JPEGs.
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<h3>Windows Users</h3>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -92,8 +180,10 @@
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<h3>Macintosh Users</h3>
<dt>Macintosh Users</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -112,6 +202,9 @@
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -21,15 +21,17 @@
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4 { font-family: sans; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
@ -60,6 +62,9 @@
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
@ -92,11 +97,12 @@
<p>
Copyright &copy; 2002-2022 by various contributors; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br/>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a><br/>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a><br/>
<a href="https://tuxpaint.tumblr.com/">Tux Paint on Tumblr</a>
</p>
<p>
March 1, 2022 </p>
March 18, 2022 </p>
</center>
</header>
<table border="2"
@ -1602,6 +1608,7 @@
<li>"Microsoft" and "Windows" are registered trademarks of Microsoft Corp.</li>
<li>"Apple" and "macOS" are registered trademarks of Apple Inc.</li>
<li>"Twitter" is a registered trademark of Twitter, Inc.</li>
<li>"Tumblr" is a registered trademark of Tumblr, Inc.</li>
</ul>
</section>
</footer>

View file

@ -5,13 +5,83 @@
Tux Paint Signals Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
@ -26,11 +96,12 @@
</p>
<p>
January 20, 2022 </p>
March 31, 2022 </p>
</header>
</center>
</section>
<hr>
<section>
<p>
Tux Paint responds to the following signals (which can be sent to the program's process via `<code>kill</code>` or `<code>killall</code>`, for example). </p>
@ -46,11 +117,11 @@
<p>
From the main interface, Tux Paint will prompt whether or not you wish to quit, and (unless overridden by the auto-save option, e.g. "<code>--autosave</code>") if you'd like to save the current drawing (if unsaved), and if so, and it's a modified version of an existing drawing (unless overridden by the options to save over old images, or always save new images; e.g. "<code>--saveover</code>" and "<code>--saveovernew</code>", respectively), whether or not to overwrite the existing drawing, or save to a new file. </p>
<p>
<b>Note:</b> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
<p>
Example: <code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
@ -64,12 +135,13 @@
<p>
So, from the main interface, Tux Paint should quit almost immediately, with no questions asked. </p>
<p>
<b>Note:</b> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
<p>
Example: <code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -5,12 +5,84 @@
Tux Paint SVG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -28,36 +100,68 @@
<p>
January 20, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>About SVGs</h2>
<section class="indent">
<header>
<h1>About SVGs</h1>
</header>
<p>
SVG (Scalable Vector Graphics) is an open standard used to describe two-dimensional vector graphics. It is great for diagrams and shapes, while PNGs are better for photographs. SVG files are a bit like instructions on how to make an image. This means that they can be resized without looking pixelated or blocky. </p>
<p>
For more information, visit: <a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<h2>How to make SVGs</h2>
<section class="indent">
<header>
<h1>How to make SVGs</h1>
</header>
<p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program. </p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<p>
It is likely that is already installed on your system. If not, it should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>, respectively. </p>
<h2>Mac and Windows users</h2>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,9 @@
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
enero 20, 2022
marzo 31, 2022
----------------------------------------------------------------------
About PNGs
About PNGs
PNG is the Portable Network Graphic format. It is an open standard, not
burdened by patents (like GIFs). It is a highly compressed format (though
@ -35,48 +33,56 @@ How To Make PNGs
GIMP & Krita
Excellent tools with which to create PNG images for use in Tux Paint are
GIMP and Krita, both high-quality Open Source interactive drawing and
photo editing programs.
Excellent tools with which to create PNG images for use in Tux
Paint are GIMP and Krita, both high-quality Open Source
interactive drawing and photo editing programs.
It is likely that one or both are already installed on your system. If
not, they should be readily available from your Linux distribution's
software repository. If not, or to learn more, visit http://www.gimp.org/
and http://www.krita.org/, respectively.
It is likely that one or both are already installed on your
system. If not, they should be readily available from your Linux
distribution's software repository. If not, or to learn more,
visit http://www.gimp.org/ and http://www.krita.org/,
respectively.
Command-line Tools
NetPBM
The Portable Bitmap tools (collectively known as "NetPBM") is a collection
of Open Source command-line tools which convert to and from various
formats, including GIF, TIFF, BMP, PNG, and many more.
The Portable Bitmap tools (collectively known as
"NetPBM") is a collection of Open Source command-line
tools which convert to and from various formats,
including GIF, TIFF, BMP, PNG, and many more.
It is possible that it's already installed on your system. If not, they it
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://netpbm.sourceforge.net/.
It is possible that it's already installed on your
system. If not, they it be readily available from
your Linux distribution's software repository. If
not, or to learn more, visit
http://netpbm.sourceforge.net/.
cjpeg/djpeg
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM
Portable Any Map (PNM) format and JPEGs. It is possible that it's already
installed on your system. If not, they it be readily available from your
Linux distribution's software repository. If not, or to learn more, visit
The "cjpeg" and "djpeg" command-line programs convert
between the NetPBM Portable Any Map (PNM) format and
JPEGs. It is possible that it's already installed on
your system. If not, they it be readily available
from your Linux distribution's software repository.
If not, or to learn more, visit
https://jpegclub.org/.
Windows Users
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Macintosh Users
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

View file

@ -6,8 +6,9 @@
Copyright © 2002-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
@TuxPaintTweets on Twitter
Tux Paint on Tumblr
marzo 1, 2022
marzo 18, 2022
+----------------------------------------------------+
|Table of Contents |
@ -1089,3 +1090,4 @@ Importing Pictures Manually
* "Microsoft" and "Windows" are registered trademarks of Microsoft Corp.
* "Apple" and "macOS" are registered trademarks of Apple Inc.
* "Twitter" is a registered trademark of Twitter, Inc.
* "Tumblr" is a registered trademark of Tumblr, Inc.

View file

@ -5,9 +5,7 @@
Copyright © 2019-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
enero 20, 2022
----------------------------------------------------------------------
marzo 31, 2022
Tux Paint responds to the following signals (which can be sent to the
program's process via `kill` or `killall`, for example).
@ -27,13 +25,13 @@
respectively), whether or not to overwrite the existing drawing,
or save to a new file.
Note: From other parts of the interface, the signal is currently
Example: killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
Example: killall tuxpaint
SIGUSR1 & SIGUSR2
Tux Paint responds by setting its auto-save option (as if it had
@ -47,9 +45,9 @@
So, from the main interface, Tux Paint should quit almost
immediately, with no questions asked.
Note: From other parts of the interface, unfortunately, Tux Paint
will go back one level in the interface. Therefore, at this time,
it may be necessary to send this signal to Tux Paint a few times,
for it to quit completely.
Example: killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

View file

@ -7,9 +7,7 @@
enero 20, 2022
----------------------------------------------------------------------
About SVGs
About SVGs
SVG (Scalable Vector Graphics) is an open standard used to describe
two-dimensional vector graphics. It is great for diagrams and shapes,
@ -19,16 +17,20 @@ About SVGs
For more information, visit: https://www.w3.org/Graphics/SVG/
How to make SVGs
How to make SVGs
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program.
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
It is likely that is already installed on your system. If not, it should
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://www.inkscape.org/, respectively.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Mac and Windows users
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,82 @@
Tux Paint PNG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -26,12 +96,15 @@
</p>
<p>
enero 20, 2022 </p>
marzo 31, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>About PNGs</h2>
<section class="indent">
<header>
<h1>About PNGs</h1>
</header>
<p>
PNG is the Portable Network Graphic format. It is an open standard, not burdened by patents (like GIFs). It is a highly compressed format (though not "lossy" like JPEGs - lossiness allows files to be much smaller, but introduces 'mistakes' in the image when saved), and supports 24-bit color (16.7 million colors) as well as a full "alpha channel" - that is, each pixel can have a varying degree of transparency. </p>
@ -44,32 +117,47 @@
<p>
Support for many colors allows photo-quality "rubber stamp" images to be used in Tux Paint, and alpha transparency allows for high-quality brushes. </p>
</section>
<section class="indent">
<header>
<h2>How To Make PNGs</h2>
</header>
<p>The following is a very <em>brief</em> list of ways to create PNGs or convert existing images into PNGs.
<h3>GIMP &amp; Krita</h3>
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
Excellent tools with which to create PNG images for use in Tux Paint are GIMP and Krita, both high-quality Open Source interactive drawing and photo editing programs. </p>
<p>
It is likely that one or both are already installed on your system. If not, they should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.gimp.org/">http://www.gimp.org/</a> and <a href="http://www.krita.org/">http://www.krita.org/</a>, respectively. </p>
</dd>
<h3>Command-line Tools</h3>
<h4>NetPBM</h4>
<dt>Command-line Tools</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
The Portable Bitmap tools (collectively known as "NetPBM") is a collection of Open Source command-line tools which convert to and from various formats, including GIF, TIFF, BMP, PNG, and many more. </p>
<p>
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<h4>cjpeg/djpeg</h4>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM Portable Any Map (PNM) format and JPEGs.
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<h3>Windows Users</h3>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -92,8 +180,10 @@
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<h3>Macintosh Users</h3>
<dt>Macintosh Users</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -112,6 +202,9 @@
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -21,15 +21,17 @@
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4 { font-family: sans; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
@ -60,6 +62,9 @@
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
@ -92,11 +97,12 @@
<p>
Copyright &copy; 2002-2022 by various contributors; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br/>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a><br/>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a><br/>
<a href="https://tuxpaint.tumblr.com/">Tux Paint on Tumblr</a>
</p>
<p>
marzo 1, 2022 </p>
marzo 18, 2022 </p>
</center>
</header>
<table border="2"
@ -1602,6 +1608,7 @@
<li>"Microsoft" and "Windows" are registered trademarks of Microsoft Corp.</li>
<li>"Apple" and "macOS" are registered trademarks of Apple Inc.</li>
<li>"Twitter" is a registered trademark of Twitter, Inc.</li>
<li>"Tumblr" is a registered trademark of Tumblr, Inc.</li>
</ul>
</section>
</footer>

View file

@ -5,13 +5,83 @@
Tux Paint Signals Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
@ -26,11 +96,12 @@
</p>
<p>
enero 20, 2022 </p>
marzo 31, 2022 </p>
</header>
</center>
</section>
<hr>
<section>
<p>
Tux Paint responds to the following signals (which can be sent to the program's process via `<code>kill</code>` or `<code>killall</code>`, for example). </p>
@ -46,11 +117,11 @@
<p>
From the main interface, Tux Paint will prompt whether or not you wish to quit, and (unless overridden by the auto-save option, e.g. "<code>--autosave</code>") if you'd like to save the current drawing (if unsaved), and if so, and it's a modified version of an existing drawing (unless overridden by the options to save over old images, or always save new images; e.g. "<code>--saveover</code>" and "<code>--saveovernew</code>", respectively), whether or not to overwrite the existing drawing, or save to a new file. </p>
<p>
<b>Note:</b> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
<p>
Example: <code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
@ -64,12 +135,13 @@
<p>
So, from the main interface, Tux Paint should quit almost immediately, with no questions asked. </p>
<p>
<b>Note:</b> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
<p>
Example: <code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -5,12 +5,84 @@
Tux Paint SVG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -28,36 +100,68 @@
<p>
enero 20, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>About SVGs</h2>
<section class="indent">
<header>
<h1>About SVGs</h1>
</header>
<p>
SVG (Scalable Vector Graphics) is an open standard used to describe two-dimensional vector graphics. It is great for diagrams and shapes, while PNGs are better for photographs. SVG files are a bit like instructions on how to make an image. This means that they can be resized without looking pixelated or blocky. </p>
<p>
For more information, visit: <a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<h2>How to make SVGs</h2>
<section class="indent">
<header>
<h1>How to make SVGs</h1>
</header>
<p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program. </p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<p>
It is likely that is already installed on your system. If not, it should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>, respectively. </p>
<h2>Mac and Windows users</h2>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,9 @@
Copyright © 2007-2022 by divers contributeurs; see AUTHORS.txt.
https://tuxpaint.org/
janvier 20, 2022
mars 31, 2022
----------------------------------------------------------------------
À propos des PNG
À propos des PNG
PNG veut dire Portable Network Portable (format graphique portable pour
réseau). C'est un standard ouvert, qui n'est pas sous le poids des brevets
@ -38,51 +36,58 @@ Comment créer des PNG
GIMP & Krita
D'excellents outils pour créer des images PNG utilisables dans Tux Paint
sont Gimp et Krita, tous deux programmes interactifs de dessin et
d'édition de photos Open Source et de grande qualité.
D'excellents outils pour créer des images PNG utilisables dans Tux
Paint sont Gimp et Krita, tous deux programmes interactifs de
dessin et d'édition de photos Open Source et de grande qualité.
Un des deux, ou les deux, sont probablement déjà installés sur votre
système Linux. Sinon, ils sont certainement disponibles depuis le site de
téléchargement de votre distribution. Sinon, ou pour en apprendre plus,
visitez respectivement http://www.gimp.org/ et http://www.krita.org/.
Un des deux, ou les deux, sont probablement déjà installés sur
votre système Linux. Sinon, ils sont certainement disponibles
depuis le site de téléchargement de votre distribution. Sinon, ou
pour en apprendre plus, visitez respectivement
http://www.gimp.org/ et http://www.krita.org/.
Outils en ligne de commande
NetPBM
Les outils Bitmap portables (appelés généralement «NetPBM») sont une
collection d'outils de ligne de commande Open Source qui convertissent
vers et depuis différents formats tels que GIF, TIFF, BMP, PNG et beaucoup
d'autres.
Les outils Bitmap portables (appelés généralement
«NetPBM») sont une collection d'outils de ligne de
commande Open Source qui convertissent vers et depuis
différents formats tels que GIF, TIFF, BMP, PNG et
beaucoup d'autres.
Ils sont probablement déjà installés sur votre système. Sinon, ils sont
certainement disponibles depuis le site de téléchargement de votre
distribution Linux. Sinon, ou pour en apprendre plus, visitez
http://netpbm.sourceforge.net/.
Ils sont probablement déjà installés sur votre
système. Sinon, ils sont certainement disponibles
depuis le site de téléchargement de votre
distribution Linux. Sinon, ou pour en apprendre plus,
visitez http://netpbm.sourceforge.net/.
cjpeg/djpeg
Les programmes en ligne de commande "cjpeg" et "djpeg" font la conversion
entre le format PNM (Portable Any Map) de NetPBM et les JPEG. Ils sont
probablement déjà installés sur votre système. Sinon, ils sont
certainement disponibles depuis le site de téléchargement de votre
distribution Linux. Sinon, ou pour en apprendre plus, visitez
Les programmes en ligne de commande "cjpeg" et
"djpeg" font la conversion entre le format PNM
(Portable Any Map) de NetPBM et les JPEG. Ils sont
probablement déjà installés sur votre système. Sinon,
ils sont certainement disponibles depuis le site de
téléchargement de votre distribution Linux. Sinon, ou
pour en apprendre plus, visitez
https://jpegclub.org/.
Utilisateurs de Windows
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Utilisateurs de Macintosh
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

View file

@ -6,8 +6,9 @@
Copyright © 2002-2022 by divers contributeurs; see AUTHORS.txt.
https://tuxpaint.org/
@TuxPaintTweets on Twitter
Tux Paint on Tumblr
mars 1, 2022
mars 18, 2022
+----------------------------------------------------------+
|Table des matières |
@ -1147,3 +1148,4 @@ Importer des images manuellement
* "Microsoft" and "Windows" are registered trademarks of Microsoft Corp.
* "Apple" and "macOS" are registered trademarks of Apple Inc.
* "Twitter" is a registered trademark of Twitter, Inc.
* "Tumblr" is a registered trademark of Tumblr, Inc.

View file

@ -5,9 +5,7 @@
Copyright © 2019-2022 by divers contributeurs; see AUTHORS.txt.
https://tuxpaint.org/
janvier 20, 2022
----------------------------------------------------------------------
mars 31, 2022
Tux Paint répond aux signaux suivants (qui peuvent être envoyé au
processus du programme via `kill` ou`killall`, par exemple).
@ -28,14 +26,13 @@
sauvegarder avec un nouveau nom (par ex. "--saveover" ou
"--saveovernew") vers un nouveau fichier.
Remarque :Sur d'autres parties de l'interface, le signal est en
fait interprété comme une demande de retour en arrière (par
exemple, de la boîte de dialogue "Nouveau" pour revenir sur
l'interface principale), comme si un bouton "Retour" dans Tux
Paint a été cliqué, ou la touche [Esc] enfoncée.
Exemple: killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
SIGUSR1 & SIGUSR2
Tux Paint répond en définissant son option "autosave" (comme si
@ -50,10 +47,9 @@
Ainsi, à partir de l'interface principale, Tux Paint devrait se
fermer presque immédiatement, sans poser de questions.
À partir d'autres parties de l'interface, malheureusement, Tux
Paint ne reviendra que d'un niveau dans l'interface. Par
conséquent, à ce moment, il peut être nécessaire d'envoyer ce
signal à Tux Paint plusieurs fois pour qu'il s'arrête
complètement.
Exemple: killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

View file

@ -7,9 +7,7 @@
janvier 20, 2022
----------------------------------------------------------------------
À propos de SVG
À propos de SVG
SVG (Scalable Vector Graphics) est un standard ouvert utilisé pour décrire
des graphiques vectoriels en deux dimensions. C'est parfait pour les
@ -20,18 +18,20 @@
Pour plus d'informations, voir : https://www.w3.org/Graphics/SVG/
Comment fabriquer des SVG
Comment fabriquer des SVG
Un excellent outil pouvant servir à créer des images SVG pour Tux Paint
est Inkscape, un programme de dessin interactif d'excellente qualité, et
Open Source.
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
Il est probablement déjà installé sur votre système. Sinon, il est
certainement disponible depuis le site de téléchargement de votre
distribution Linux. Sinon, ou pour en apprendre plus, visitez
http://www.inkscape.org/.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Utilisateurs de Mac et Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,82 @@
Documentation sur PNG pour Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -26,12 +96,15 @@
</p>
<p>
janvier 20, 2022 </p>
mars 31, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>À propos des PNG</h2>
<section class="indent">
<header>
<h1>À propos des PNG</h1>
</header>
<p>
PNG veut dire Portable Network Portable (format graphique portable pour réseau). C'est un standard ouvert, qui n'est pas sous le poids des brevets (comme les GIF). C'est un format hautement compressé (mais pas "avec perte" comme les JPEG - la perte permet aux fichiers d'être plus petit, mais introduit des "erreurs" dans l'image lors de l'enregistrement), et prend en charge la couleur 24 bits (16,7 millions de couleurs) ainsi qu'un "canal alpha", c'est-à-dire que chaque pixel peut avoir un degré variable de transparence. </p>
@ -44,32 +117,47 @@
<p>
La prise en charge de nombreuses couleurs permet aux images "tampons de caoutchouc" de qualité photo d'être utilisable dans Tux Paint, et la transparence alpha permet une haute qualité pour les pinceaux. </p>
</section>
<section class="indent">
<header>
<h2>Comment créer des PNG</h2>
</header>
<p>Ce qui suit est une très <em>brève</em> liste de méthodes pour créer des PNG ou convertir des images existantes en PNG.
<h3>GIMP &amp; Krita</h3>
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
D'excellents outils pour créer des images PNG utilisables dans Tux Paint sont Gimp et Krita, tous deux programmes interactifs de dessin et d'édition de photos Open Source et de grande qualité. </p>
<p>
Un des deux, ou les deux, sont probablement déjà installés sur votre système Linux. Sinon, ils sont certainement disponibles depuis le site de téléchargement de votre distribution. Sinon, ou pour en apprendre plus, visitez respectivement <a href="http://www.gimp.org/">http://www.gimp.org/</a> et <a href="http://www.krita.org/">http://www.krita.org/</a>. </p>
</dd>
<h3>Outils en ligne de commande</h3>
<h4>NetPBM</h4>
<dt>Outils en ligne de commande</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
Les outils Bitmap portables (appelés généralement «NetPBM») sont une collection d'outils de ligne de commande Open Source qui convertissent vers et depuis différents formats tels que GIF, TIFF, BMP, PNG et beaucoup d'autres. </p>
<p>
Ils sont probablement déjà installés sur votre système. Sinon, ils sont certainement disponibles depuis le site de téléchargement de votre distribution Linux. Sinon, ou pour en apprendre plus, visitez <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<h4>cjpeg/djpeg</h4>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
Les programmes en ligne de commande "cjpeg" et "djpeg" font la conversion entre le format PNM (Portable Any Map) de NetPBM et les JPEG.
Ils sont probablement déjà installés sur votre système. Sinon, ils sont certainement disponibles depuis le site de téléchargement de votre distribution Linux. Sinon, ou pour en apprendre plus, visitez <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<h3>Utilisateurs de Windows</h3>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -92,8 +180,10 @@
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<h3>Utilisateurs de Macintosh</h3>
<dt>Utilisateurs de Macintosh</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -112,6 +202,9 @@
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -21,15 +21,17 @@
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4 { font-family: sans; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
@ -60,6 +62,9 @@
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
@ -92,11 +97,12 @@
<p>
Copyright &copy; 2002-2022 by divers contributeurs; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br/>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a><br/>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a><br/>
<a href="https://tuxpaint.tumblr.com/">Tux Paint on Tumblr</a>
</p>
<p>
mars 1, 2022 </p>
mars 18, 2022 </p>
</center>
</header>
<table border="2"
@ -1602,6 +1608,7 @@
<li>"Microsoft" and "Windows" are registered trademarks of Microsoft Corp.</li>
<li>"Apple" and "macOS" are registered trademarks of Apple Inc.</li>
<li>"Twitter" is a registered trademark of Twitter, Inc.</li>
<li>"Tumblr" is a registered trademark of Tumblr, Inc.</li>
</ul>
</section>
</footer>

View file

@ -5,13 +5,83 @@
Documentation sur les signaux pour Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
@ -26,11 +96,12 @@
</p>
<p>
janvier 20, 2022 </p>
mars 31, 2022 </p>
</header>
</center>
</section>
<hr>
<section>
<p>
Tux Paint répond aux signaux suivants (qui peuvent être envoyé au processus du programme via `<code>kill</code>` ou`<code>killall</code>`, par exemple). </p>
@ -46,11 +117,11 @@
<p>
Depuis l'interface principale, Tux Paint vous demandera si vous souhaitez quitter ou non, et (sauf si remplacé par l'option autosave, par ex. "<code>--autosave</code>") si vous souhaitez enregistrer le dessin courant (s'il n'est pas enregistré), et si c'est le cas, et c'est une version modifiée d'un dessin existant (sauf si remplacé par les options pour écraser les images anciennes, ou bien sauvegarder avec un nouveau nom (par ex. "<code>--saveover</code>" ou "<code>--saveovernew</code>") vers un nouveau fichier. </p>
<p>
<b>Remarque :</b>Sur d'autres parties de l'interface, le signal est en fait interprété comme une demande de retour en arrière (par exemple, de la boîte de dialogue "Nouveau" pour revenir sur l'interface principale), comme si un bouton "Retour" dans Tux Paint a été cliqué, ou la touche <b><code>[Esc]</code></b> enfoncée. </p>
<p>
Exemple: <code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
@ -64,12 +135,13 @@
<p>
Ainsi, à partir de l'interface principale, Tux Paint devrait se fermer presque immédiatement, sans poser de questions. </p>
<p>
À partir d'autres parties de l'interface, malheureusement, Tux Paint ne reviendra que d'un niveau dans l'interface. Par conséquent, à ce moment, il peut être nécessaire d'envoyer ce signal à Tux Paint plusieurs fois pour qu'il s'arrête complètement. </p>
<p>
Exemple: <code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -5,12 +5,84 @@
Documentation sur SVG pour Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -28,36 +100,68 @@
<p>
janvier 20, 2022 </p>
</center>
</header>
</section>
<hr>
<h2>À propos de SVG</h2>
<section class="indent">
<header>
<h1>À propos de SVG</h1>
</header>
<p>
SVG (Scalable Vector Graphics) est un standard ouvert utilisé pour décrire des graphiques vectoriels en deux dimensions. C'est parfait pour les diagrammes et les formes, tandis que les PNG sont meilleurs pour les photographies. Les fichiers SVG sont un peu comme des instructions sur la façon de créer une image. Cela signifie qu'ils peuvent être redimensionnés sans paraître pixélisés ou avec des blocs. </p>
<p>
Pour plus d'informations, voir : <a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<h2>Comment fabriquer des SVG</h2>
<section class="indent">
<header>
<h1>Comment fabriquer des SVG</h1>
</header>
<p>
Un excellent outil pouvant servir à créer des images SVG pour Tux Paint est Inkscape, un programme de dessin interactif d'excellente qualité, et Open Source. </p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<p>
Il est probablement déjà installé sur votre système. Sinon, il est certainement disponible depuis le site de téléchargement de votre distribution Linux. Sinon, ou pour en apprendre plus, visitez <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>. </p>
<h2>Utilisateurs de Mac et Windows</h2>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,9 @@
Copyright © 2007-2022 by varios colaboradores; see AUTHORS.txt.
https://tuxpaint.org/
20 de Xaneiro de 2022
31 de Marzo de 2022
----------------------------------------------------------------------
Sobre os PNG
Sobre os PNG
PNG é o formato de Gráficos de Rede Portátiles. É un estándar aberto, non
lastrado polas patentes (como os GIF). É un formato moi comprimido (aínda
@ -37,49 +35,57 @@ Como facer imaxes PNG
GIMP & Krita
GIMP e Krita son dúas excelentes ferramentas coas que crear imaxes PNG
para usar en Tux Paint , ambos son programas de debuxo interactivo e
edición de fotos de código aberto de alta calidade.
GIMP e Krita son dúas excelentes ferramentas coas que crear imaxes
PNG para usar en Tux Paint , ambos son programas de debuxo
interactivo e edición de fotos de código aberto de alta calidade.
É probábel que un ou ambos xa estean instalados no seu sistema. Se non,
deberían estar dispoñíbeis no repositorio de software da súa distribución
Linux. Se non é así, ou para obter máis información, visite
http://www.gimp.org/ e http://www.krita.org/ respectivamente.
É probábel que un ou ambos xa estean instalados no seu sistema. Se
non, deberían estar dispoñíbeis no repositorio de software da súa
distribución Linux. Se non é así, ou para obter máis información,
visite http://www.gimp.org/ e http://www.krita.org/
respectivamente.
Ferramentas da liña de ordes
NetPBM
As ferramentas de Mapas de bits Portátil Portable Bitmap (coñecidas
colectivamente como «NetPBM») son unha colección de ferramentas de liña de
ordes de código aberto que converten a e dende varios formatos, incluíndo
GIF, TIFF, BMP, PNG e moitos máis.
As ferramentas de Mapas de bits Portátil Portable
Bitmap (coñecidas colectivamente como «NetPBM») son
unha colección de ferramentas de liña de ordes de
código aberto que converten a e dende varios
formatos, incluíndo GIF, TIFF, BMP, PNG e moitos
máis.
É posíbel que xa estea instalado no seu sistema. Se non, estarán
dispoñíbeis no repositorio de software da súa distribución Linux. Se non é
así, ou para saber máis, visite http://netpbm.sourceforge.net/.
É posíbel que xa estea instalado no seu sistema. Se
non, estarán dispoñíbeis no repositorio de software
da súa distribución Linux. Se non é así, ou para
saber máis, visite http://netpbm.sourceforge.net/.
cjpeg/djpeg
Os programas de liña de ordes «cjpeg» e «djpeg» converten entre o formato
NetPBM Calquera mapa portátil Portable Any Map (PNM) e os JPEG. É
posíbel que xa estea instalado no seu sistema. Se non, estarán dispoñíbeis
no repositorio de software da súa distribución Linux. Se non é así, ou
para saber máis, visite https://jpegclub.org/.
Usuarios de Windows
Os programas de liña de ordes «cjpeg» e «djpeg»
converten entre o formato NetPBM Calquera mapa
portátil Portable Any Map (PNM) e os JPEG. É
posíbel que xa estea instalado no seu sistema. Se
non, estarán dispoñíbeis no repositorio de software
da súa distribución Linux. Se non é así, ou para
saber máis, visite https://jpegclub.org/.
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Usuarios de Macintosh
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

View file

@ -6,8 +6,9 @@
Copyright © 2002-2022 by varios colaboradores; see AUTHORS.txt.
https://tuxpaint.org/
@TuxPaintTweets on Twitter
Tux Paint on Tumblr
1 de Marzo de 2022
18 de Marzo de 2022
+-----------------------------------------------------------+
|Índice |
@ -1113,3 +1114,4 @@ Importar imaxes manualmente
* "Microsoft" and "Windows" are registered trademarks of Microsoft Corp.
* "Apple" and "macOS" are registered trademarks of Apple Inc.
* "Twitter" is a registered trademark of Twitter, Inc.
* "Tumblr" is a registered trademark of Tumblr, Inc.

View file

@ -5,9 +5,7 @@
Copyright © 2019-2022 by varios colaboradores; see AUTHORS.txt.
https://tuxpaint.org/
20 de Xaneiro de 2022
----------------------------------------------------------------------
31 de Marzo de 2022
Tux Paint responde aos seguintes sinais (que poden enviarse ao proceso do
programa a través de «kill» ou «killall», por exemplo).
@ -29,13 +27,13 @@
quere ou non sobreescribir o debuxo existente ou gardalo nun novo
ficheiro.
Nota: Dende outras partes da interface, o sinal interprétase
actualmente como unha solicitude de retroceso (por exemplo, dende
o diálogo «Novo» de volta á interface principal), coma se se
premera un botón «Atrás» en Tux Paint ou se premera a tecla [Esc].
Exemplo: killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
SIGUSR1 & SIGUSR2
Tux Paint responde axustando a súa opción de gardar
@ -49,9 +47,9 @@
Así, dende a interface principal, Tux Paint debería saír case de
inmediato, sen facer preguntas.
Nota: Dende outras partes da interface, por desgraza, Tux Paint
retrocederá un nivel na interface. Polo tanto, neste momento pode
que sexa necesario enviar este sinal a Tux Paint unhas cantas
veces para que saia completamente.
Exemplo: killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

View file

@ -7,9 +7,7 @@
20 de Xaneiro de 2022
----------------------------------------------------------------------
Sobre os SVG
Sobre os SVG
SVG (Scalable Vector Graphics — Gráficos Vectoriais Escalábeis) é un
estándar aberto usado para describir gráficos vectoriais bidimensionais. É
@ -20,17 +18,20 @@ Sobre os SVG
Para obter máis información, visite:https://www.w3.org/Graphics/SVG/
Como facer imaxes SVG
Como facer imaxes SVG
Unha excelente ferramenta coa que crear imaxes SVG para o seu uso en Tux
Paint é Inkscape, un programa de debuxo interactivo de código aberto de
alta calidade.
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
É probable que xa estea instalado no seu sistema. Se non, debería estar
dispoñíbel no repositorio de software da súa distribución Linux. Se non,
ou para saber máis, visite http://www.inkscape.org/, respectivamente.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Usuarios de Mac e Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,82 @@
Documentación PNG de Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -26,12 +96,15 @@
</p>
<p>
20 de Xaneiro de 2022 </p>
31 de Marzo de 2022 </p>
</center>
</header>
</section>
<hr>
<h2>Sobre os PNG</h2>
<section class="indent">
<header>
<h1>Sobre os PNG</h1>
</header>
<p>
PNG é o formato de Gráficos de Rede Portátiles. É un estándar aberto, non lastrado polas patentes (como os GIF). É un formato moi comprimido (aínda que non é «con perda» como os JPEG: a perda permite que os ficheiros sexan moito máis pequenos, mais introduce «erros» na imaxe cando se gardan) e admite cores de 24 bits (16,7 millóns de cores), así como unha «canle alfa» completo, é dicir, cada píxel pode ter un grao de transparencia variábel. </p>
@ -44,32 +117,47 @@
<p>
A compatibilidade con moitas cores permite utilizar imaxes de «selo de caucho» de calidade fotográfica en Tux Paint e a transparencia alfa permite pinceis de alta calidade. </p>
</section>
<section class="indent">
<header>
<h2>Como facer imaxes PNG</h2>
</header>
<p>A continuación amosarase unha lista moi <em>breve</em> de xeitos de crear PNG ou converter as imaxes existentes a PNG.
<h3>GIMP &amp; Krita</h3>
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
GIMP e Krita son dúas excelentes ferramentas coas que crear imaxes PNG para usar en Tux Paint , ambos son programas de debuxo interactivo e edición de fotos de código aberto de alta calidade. </p>
<p>
É probábel que un ou ambos xa estean instalados no seu sistema. Se non, deberían estar dispoñíbeis no repositorio de software da súa distribución Linux. Se non é así, ou para obter máis información, visite <a href="http://www.gimp.org/">http://www.gimp.org/</a> e <a href="http://www.krita.org/">http://www.krita.org/</a> respectivamente. </p>
</dd>
<h3>Ferramentas da liña de ordes</h3>
<h4>NetPBM</h4>
<dt>Ferramentas da liña de ordes</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
As ferramentas de Mapas de bits Portátil Portable Bitmap (coñecidas colectivamente como «NetPBM») son unha colección de ferramentas de liña de ordes de código aberto que converten a e dende varios formatos, incluíndo GIF, TIFF, BMP, PNG e moitos máis. </p>
<p>
É posíbel que xa estea instalado no seu sistema. Se non, estarán dispoñíbeis no repositorio de software da súa distribución Linux. Se non é así, ou para saber máis, visite <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<h4>cjpeg/djpeg</h4>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
Os programas de liña de ordes «cjpeg» e «djpeg» converten entre o formato NetPBM Calquera mapa portátil Portable Any Map (PNM) e os JPEG.
É posíbel que xa estea instalado no seu sistema. Se non, estarán dispoñíbeis no repositorio de software da súa distribución Linux. Se non é así, ou para saber máis, visite <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<h3>Usuarios de Windows</h3>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -92,8 +180,10 @@
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<h3>Usuarios de Macintosh</h3>
<dt>Usuarios de Macintosh</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -112,6 +202,9 @@
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -21,15 +21,17 @@
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4 { font-family: sans; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
@ -60,6 +62,9 @@
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
@ -92,11 +97,12 @@
<p>
Copyright &copy; 2002-2022 by varios colaboradores; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br/>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a><br/>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a><br/>
<a href="https://tuxpaint.tumblr.com/">Tux Paint on Tumblr</a>
</p>
<p>
1 de Marzo de 2022 </p>
18 de Marzo de 2022 </p>
</center>
</header>
<table border="2"
@ -1602,6 +1608,7 @@
<li>"Microsoft" and "Windows" are registered trademarks of Microsoft Corp.</li>
<li>"Apple" and "macOS" are registered trademarks of Apple Inc.</li>
<li>"Twitter" is a registered trademark of Twitter, Inc.</li>
<li>"Tumblr" is a registered trademark of Tumblr, Inc.</li>
</ul>
</section>
</footer>

View file

@ -5,13 +5,83 @@
Documentación de sinais de Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
@ -26,11 +96,12 @@
</p>
<p>
20 de Xaneiro de 2022 </p>
31 de Marzo de 2022 </p>
</header>
</center>
</section>
<hr>
<section>
<p>
Tux Paint responde aos seguintes sinais (que poden enviarse ao proceso do programa a través de «<code>kill</code>» ou «<code>killall</code>», por exemplo). </p>
@ -46,11 +117,11 @@
<p>
Dende a interface principal, Tux Paint preguntará se quere ou non saír e (a non ser que sexa anulado pol a opción de gardado automático, p. ex.: «<code>--autosave</code>x) se quere gardar o debuxo actual (se non está gardado) , e se é así, e é unha versión modificada dun debuxo existente (a non ser que sexa anulado polas opcións de gardar sobre imaxes antigas ou gardar sempre imaxes novas; por exemplo, «<code>--saveover</code>« e «<code>--saveovernew</code>», respectivamente), se quere ou non sobreescribir o debuxo existente ou gardalo nun novo ficheiro. </p>
<p>
<b>Nota:</b> Dende outras partes da interface, o sinal interprétase actualmente como unha solicitude de retroceso (por exemplo, dende o diálogo «Novo» de volta á interface principal), coma se se premera un botón «Atrás» en Tux Paint ou se premera a tecla <b><code>[Esc]</code></b>. </p>
<p>
Exemplo: <code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
@ -64,12 +135,13 @@
<p>
Así, dende a interface principal, Tux Paint debería saír case de inmediato, sen facer preguntas. </p>
<p>
<b>Nota:</b> Dende outras partes da interface, por desgraza, Tux Paint retrocederá un nivel na interface. Polo tanto, neste momento pode que sexa necesario enviar este sinal a Tux Paint unhas cantas veces para que saia completamente. </p>
<p>
Exemplo: <code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -5,12 +5,84 @@
Documentación SVG de Tux Paint </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -28,36 +100,68 @@
<p>
20 de Xaneiro de 2022 </p>
</center>
</header>
</section>
<hr>
<h2>Sobre os SVG</h2>
<section class="indent">
<header>
<h1>Sobre os SVG</h1>
</header>
<p>
SVG (Scalable Vector Graphics — Gráficos Vectoriais Escalábeis) é un estándar aberto usado para describir gráficos vectoriais bidimensionais. É xenial para diagramas e formas, mentres que PNG son mellores para fotografías. Os ficheiros SVG son un pouco como instrucións sobre como facer unha imaxe. Isto significa que poden cambiarse de sen que aparezan pixelados ou bloques. </p>
<p>
Para obter máis información, visite:<a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<h2>Como facer imaxes SVG</h2>
<section class="indent">
<header>
<h1>Como facer imaxes SVG</h1>
</header>
<p>
Unha excelente ferramenta coa que crear imaxes SVG para o seu uso en Tux Paint é Inkscape, un programa de debuxo interactivo de código aberto de alta calidade. </p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<p>
É probable que xa estea instalado no seu sistema. Se non, debería estar dispoñíbel no repositorio de software da súa distribución Linux. Se non, ou para saber máis, visite <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>, respectivamente. </p>
<h2>Usuarios de Mac e Windows</h2>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,11 +5,9 @@
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
2022年1月20
2022年3月31
----------------------------------------------------------------------
About PNGs
About PNGs
PNG is the Portable Network Graphic format. It is an open standard, not
burdened by patents (like GIFs). It is a highly compressed format (though
@ -35,48 +33,56 @@ How To Make PNGs
GIMP & Krita
Excellent tools with which to create PNG images for use in Tux Paint are
GIMP and Krita, both high-quality Open Source interactive drawing and
photo editing programs.
Excellent tools with which to create PNG images for use in Tux
Paint are GIMP and Krita, both high-quality Open Source
interactive drawing and photo editing programs.
It is likely that one or both are already installed on your system. If
not, they should be readily available from your Linux distribution's
software repository. If not, or to learn more, visit http://www.gimp.org/
and http://www.krita.org/, respectively.
It is likely that one or both are already installed on your
system. If not, they should be readily available from your Linux
distribution's software repository. If not, or to learn more,
visit http://www.gimp.org/ and http://www.krita.org/,
respectively.
Command-line Tools
NetPBM
The Portable Bitmap tools (collectively known as "NetPBM") is a collection
of Open Source command-line tools which convert to and from various
formats, including GIF, TIFF, BMP, PNG, and many more.
The Portable Bitmap tools (collectively known as
"NetPBM") is a collection of Open Source command-line
tools which convert to and from various formats,
including GIF, TIFF, BMP, PNG, and many more.
It is possible that it's already installed on your system. If not, they it
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://netpbm.sourceforge.net/.
It is possible that it's already installed on your
system. If not, they it be readily available from
your Linux distribution's software repository. If
not, or to learn more, visit
http://netpbm.sourceforge.net/.
cjpeg/djpeg
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM
Portable Any Map (PNM) format and JPEGs. It is possible that it's already
installed on your system. If not, they it be readily available from your
Linux distribution's software repository. If not, or to learn more, visit
The "cjpeg" and "djpeg" command-line programs convert
between the NetPBM Portable Any Map (PNM) format and
JPEGs. It is possible that it's already installed on
your system. If not, they it be readily available
from your Linux distribution's software repository.
If not, or to learn more, visit
https://jpegclub.org/.
Windows のユーザー
Proprietary Software for Windows
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Paint Shop Pro (Corel) — https://www.paintshoppro.com/
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html
* PIXresizer (Bluefive software) —
http://bluefive.pair.com/pixresizer.htm
Macintosh Users
* CorelDRAW (Corel) — http://www.corel.com/
* GraphicConverter (Lemke Software) —
https://www.lemkesoft.de/mac-fotobearbeitung-mac-diashow-mac-grafikprogramm-mac-bildbetrachter/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) — http://www.adobe.com/products/photoshop.html
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Photoshop (Adobe) —
http://www.adobe.com/products/photoshop.html

View file

@ -6,8 +6,9 @@
Copyright © 2002-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
@TuxPaintTweets on Twitter
Tux Paint on Tumblr
2022年3月 1日
2022年3月18
+-----------------------------------------------+
|目次 |
@ -841,3 +842,4 @@ Tux Paint の起動
* "Microsoft" and "Windows" are registered trademarks of Microsoft Corp.
* "Apple" and "macOS" are registered trademarks of Apple Inc.
* "Twitter" is a registered trademark of Twitter, Inc.
* "Tumblr" is a registered trademark of Tumblr, Inc.

View file

@ -5,9 +5,7 @@
Copyright © 2019-2022 by various contributors; see AUTHORS.txt.
https://tuxpaint.org/
2022年1月20日
----------------------------------------------------------------------
2022年3月31日
Tux Paint responds to the following signals (which can be sent to the
program's process via `kill` or `killall`, for example).
@ -27,13 +25,13 @@
respectively), whether or not to overwrite the existing drawing,
or save to a new file.
Note: From other parts of the interface, the signal is currently
killall tuxpaint
💡 Note: From other parts of the interface, the signal is currently
interpreted as a request to go back (e.g., from the "New" dialog
back to the main interface), as if a "Back" button in Tux Paint
were clicked, or the [Esc] was key pressed.
killall tuxpaint
SIGUSR1 & SIGUSR2
Tux Paint responds by setting its auto-save option (as if it had
@ -47,9 +45,9 @@
So, from the main interface, Tux Paint should quit almost
immediately, with no questions asked.
Note: From other parts of the interface, unfortunately, Tux Paint
will go back one level in the interface. Therefore, at this time,
it may be necessary to send this signal to Tux Paint a few times,
for it to quit completely.
killall -s SIGUSR1 tuxpaint
💡 Note: From other parts of the interface, unfortunately, Tux
Paint will go back one level in the interface. Therefore, at this
time, it may be necessary to send this signal to Tux Paint a few
times, for it to quit completely.

View file

@ -7,9 +7,7 @@
2022年1月20日
----------------------------------------------------------------------
About SVGs
About SVGs
SVG (Scalable Vector Graphics) is an open standard used to describe
two-dimensional vector graphics. It is great for diagrams and shapes,
@ -19,16 +17,20 @@ About SVGs
For more information, visit: https://www.w3.org/Graphics/SVG/
How to make SVGs
How to make SVGs
An excellent tool with which to create SVG images for use in Tux Paint is
Inkscape, a high-quality Open Source interactive drawing program.
Inkscape, a high-quality Open Source interactive drawing program available
for Windows, macOS, and Linux. There are also other applications that can
produce SVGs, both free/open source, and commerical/proprietary.
It is likely that is already installed on your system. If not, it should
be readily available from your Linux distribution's software repository.
If not, or to learn more, visit http://www.inkscape.org/, respectively.
Open Source
* Inkscape — http://www.inkscape.org/
* Karbon — https://calligra.org/karbon/
Mac and Windows users
* CorelDRAW (Corel) — http://www.corel.com/
* Illustrator (Adobe) — http://www.adobe.com/products/illustrator.html
Proprietary
* CorelDRAW (Corel) — https://www.coreldraw.com/en/
* Illustrator (Adobe) —
http://www.adobe.com/products/illustrator.html
* Boxy SVG — https://boxy-svg.com/
* Sketch (Sketch B.V.) — https://boxy-svg.com/

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,12 +5,82 @@
Tux Paint PNG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -26,12 +96,15 @@
</p>
<p>
2022年1月20日 </p>
2022年3月31日 </p>
</center>
</header>
</section>
<hr>
<h2>About PNGs</h2>
<section class="indent">
<header>
<h1>About PNGs</h1>
</header>
<p>
PNG is the Portable Network Graphic format. It is an open standard, not burdened by patents (like GIFs). It is a highly compressed format (though not "lossy" like JPEGs - lossiness allows files to be much smaller, but introduces 'mistakes' in the image when saved), and supports 24-bit color (16.7 million colors) as well as a full "alpha channel" - that is, each pixel can have a varying degree of transparency. </p>
@ -44,32 +117,47 @@
<p>
Support for many colors allows photo-quality "rubber stamp" images to be used in Tux Paint, and alpha transparency allows for high-quality brushes. </p>
</section>
<section class="indent">
<header>
<h2>How To Make PNGs</h2>
</header>
<p>The following is a very <em>brief</em> list of ways to create PNGs or convert existing images into PNGs.
<h3>GIMP &amp; Krita</h3>
<dl>
<dt>GIMP &amp; Krita</dt>
<dd>
<p>
Excellent tools with which to create PNG images for use in Tux Paint are GIMP and Krita, both high-quality Open Source interactive drawing and photo editing programs. </p>
<p>
It is likely that one or both are already installed on your system. If not, they should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.gimp.org/">http://www.gimp.org/</a> and <a href="http://www.krita.org/">http://www.krita.org/</a>, respectively. </p>
</dd>
<h3>Command-line Tools</h3>
<h4>NetPBM</h4>
<dt>Command-line Tools</dt>
<dd>
<dl>
<dt>NetPBM</dt>
<dd>
<p>
The Portable Bitmap tools (collectively known as "NetPBM") is a collection of Open Source command-line tools which convert to and from various formats, including GIF, TIFF, BMP, PNG, and many more. </p>
<p>
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://netpbm.sourceforge.net/">http://netpbm.sourceforge.net/</a>. </p>
</dd>
<h4>cjpeg/djpeg</h4>
<dt>cjpeg/djpeg</dt>
<dd>
<p>
The "cjpeg" and "djpeg" command-line programs convert between the NetPBM Portable Any Map (PNM) format and JPEGs.
It is possible that it's already installed on your system. If not, they it be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="https://jpegclub.org/">https://jpegclub.org/</a>. </p>
</dd>
</dl>
</dd>
<h3>Windows のユーザー</h3>
<dt>Proprietary Software for Windows</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -92,8 +180,10 @@
&mdash;
<a href="http://bluefive.pair.com/pixresizer.htm">http://bluefive.pair.com/pixresizer.htm</a>
</ul>
</dd>
<h3>Macintosh Users</h3>
<dt>Macintosh Users</dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
@ -112,6 +202,9 @@
&mdash;
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
</ul>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -21,15 +21,17 @@
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4 { font-family: sans; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
@ -60,6 +62,9 @@
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
@ -92,11 +97,12 @@
<p>
Copyright &copy; 2002-2022 by various contributors; see <a href="../../AUTHORS.txt">AUTHORS.txt</a>.<br/>
<a href="https://tuxpaint.org/">https://tuxpaint.org/</a><br/>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a>
<a href="https://twitter.com/TuxPaintTweets">@TuxPaintTweets on Twitter</a><br/>
<a href="https://tuxpaint.tumblr.com/">Tux Paint on Tumblr</a>
</p>
<p>
2022年3月 1日 </p>
2022年3月18</p>
</center>
</header>
<table border="2"
@ -1602,6 +1608,7 @@
<li>"Microsoft" and "Windows" are registered trademarks of Microsoft Corp.</li>
<li>"Apple" and "macOS" are registered trademarks of Apple Inc.</li>
<li>"Twitter" is a registered trademark of Twitter, Inc.</li>
<li>"Tumblr" is a registered trademark of Tumblr, Inc.</li>
</ul>
</section>
</footer>

View file

@ -5,13 +5,83 @@
Tux Paint Signals Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<section class="outer">
<center>
<header>
<h1>
<img src="../../html/images/tuxpaint-title.png"
width="205"
@ -26,11 +96,12 @@
</p>
<p>
2022年1月20日 </p>
2022年3月31日 </p>
</header>
</center>
</section>
<hr>
<section>
<p>
Tux Paint responds to the following signals (which can be sent to the program's process via `<code>kill</code>` or `<code>killall</code>`, for example). </p>
@ -46,11 +117,11 @@
<p>
From the main interface, Tux Paint will prompt whether or not you wish to quit, and (unless overridden by the auto-save option, e.g. "<code>--autosave</code>") if you'd like to save the current drawing (if unsaved), and if so, and it's a modified version of an existing drawing (unless overridden by the options to save over old images, or always save new images; e.g. "<code>--saveover</code>" and "<code>--saveovernew</code>", respectively), whether or not to overwrite the existing drawing, or save to a new file. </p>
<p>
<b>Note:</b> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
<p>
例:<code>killall tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, the signal is currently interpreted as a request to go back (e.g., from the "New" dialog back to the main interface), as if a "Back" button in Tux Paint were clicked, or the <b><code>[Esc]</code></b> was key pressed. </p>
</dd>
<dt>
@ -64,12 +135,13 @@
<p>
So, from the main interface, Tux Paint should quit almost immediately, with no questions asked. </p>
<p>
<b>Note:</b> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
<p>
例:<code>killall -s SIGUSR1 tuxpaint</code> </p>
<p class="note">
<span title="Information">&#128161;</span> <strong>Note:</strong> From other parts of the interface, unfortunately, Tux Paint will go back one level in the interface. Therefore, at this time, it may be necessary to send this signal to Tux Paint a few times, for it to quit completely. </p>
</dd>
</dl>
</section>
</body>
</html>

View file

@ -5,12 +5,84 @@
Tux Paint SVG Documentation </title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<style>
body { font-size: large; }
table { font-size: large; }
div.screenshot-center {
text-align: center;
}
div.screenshot-right {
float: right;
margin-left: 1em;
margin-bottom: 1em;
}
div.screenshot-right-after {
clear: both;
}
div.keeptogether { page-break-inside: avoid; }
section h1 { font-size: 2em; }
h1, h2, h3, h4, h5 { font-family: sans; }
h1 { color: #800; page-break-before: always; break-before: always; }
h2 { color: #440; page-break-after: avoid; break-after: avoid; }
h3 { color: #080; page-break-after: avoid; break-after: avoid; }
h4 { color: #008; page-break-after: avoid; break-after: avoid; }
h5 { color: #808; page-break-after: avoid; break-after: avoid; }
h1 + p { page-break-inside: avoid; }
h2 + p { page-break-inside: avoid; }
h3 + p { page-break-inside: avoid; }
h4 + p { page-break-inside: avoid; }
h5 + p { page-break-inside: avoid; }
dt {
font-size: large;
color: #404;
font-family: sans;
margin-top: 1em;
margin-bottom: 0.25em;
}
dd, blockquote {
border-left: 1px solid #888;
padding-left: 1em;
border-radius: 0 0 0 1em;
}
p.note {
border: 1px solid #000;
background-color: #eee;
border-radius: 0.5em;
padding: 0.5em;
display: inline-block;
margin-right: 3em;
}
section.outer {
padding-bottom: 1em;
border-bottom: 2px solid #000;
}
section.indent p,dl {
margin-left: 2em;
}
section.indent dl p {
margin-left: 0;
}
p + ul {
margin-left: 2em;
}
@media print {
p {
orphans: 3;
widows: 3;
}
}
</style>
</head>
<body bgcolor="#FFFFFF"
text="#000000"
link="#0000FF"
vlink="#FF0000"
alink="#FF00FF">
<!-- Title -->
<section class="outer">
<header>
<center>
<h1>
<img src="../../html/images/tuxpaint-title.png"
@ -28,36 +100,68 @@
<p>
2022年1月20日 </p>
</center>
</header>
</section>
<hr>
<h2>About SVGs</h2>
<section class="indent">
<header>
<h1>About SVGs</h1>
</header>
<p>
SVG (Scalable Vector Graphics) is an open standard used to describe two-dimensional vector graphics. It is great for diagrams and shapes, while PNGs are better for photographs. SVG files are a bit like instructions on how to make an image. This means that they can be resized without looking pixelated or blocky. </p>
<p>
For more information, visit: <a href="https://www.w3.org/Graphics/SVG/">https://www.w3.org/Graphics/SVG/</a> </p>
</section>
<h2>How to make SVGs</h2>
<section class="indent">
<header>
<h1>How to make SVGs</h1>
</header>
<p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program. </p>
An excellent tool with which to create SVG images for use in Tux Paint is Inkscape, a high-quality Open Source interactive drawing program available for Windows, macOS, and Linux. There are also other applications that can produce SVGs, both free/open source, and commerical/proprietary. </p>
<p>
It is likely that is already installed on your system. If not, it should be readily available from your Linux distribution's software repository. If not, or to learn more, visit <a href="http://www.inkscape.org/">http://www.inkscape.org/</a>, respectively. </p>
<h2>Mac and Windows users</h2>
<dl>
<dt><strong>Open Source</strong></dt>
<dd>
<ul>
<li> <cite>Inkscape</cite>
&mdash;
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
</li>
<li> <cite>Karbon</cite>
&mdash;
<a href="https://calligra.org/karbon/">https://calligra.org/karbon/</a>
</li>
</ul>
</dd>
<dt><strong>Proprietary</strong></dt>
<dd>
<ul>
<li> <cite>CorelDRAW</cite>
(Corel)
&mdash;
<a href="http://www.corel.com/">http://www.corel.com/</a>
<a href="https://www.coreldraw.com/en/">https://www.coreldraw.com/en/</a>
</li>
<li> <cite>Illustrator</cite>
(Adobe)
&mdash;
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
</li>
<li> <cite>Boxy SVG</cite>
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
<li> <cite>Sketch</cite>
(Sketch B.V.)
&mdash;
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
</li>
</ul>
</dl>
</section>
</body>
</html>

View file

@ -304,5 +304,5 @@ void parse_one_option(struct cfginfo *restrict tmpcfg, const char *str, const ch
exit(53);
}
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 */
memcpy((char**) (offset + (char*) tmpcfg), &opt, sizeof(char*));
}

View file

@ -22,7 +22,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(See COPYING.txt)
June 14, 2002 - March 17, 2022
June 14, 2002 - April 18, 2022
*/
#include "platform.h"
@ -1346,7 +1346,7 @@ static int wheely = 1;
static int keymouse = 0;
static int no_button_distinction;
static int button_down;
static int scrolling;
static int scrolling_selector, scrolling_tool, scrolling_dialog;
static int promptless_save = SAVE_OVER_UNSET;
static int _promptless_save_over, _promptless_save_over_ask, _promptless_save_over_new;
@ -1991,7 +1991,7 @@ typedef enum
#define NUM_EDGES 4
static SDL_Event scrolltimer_event;
static SDL_Event scrolltimer_selector_event, scrolltimer_tool_event, scrolltimer_dialog_event;
int non_left_click_count = 0;
@ -2166,7 +2166,9 @@ static wchar_t *uppercase_w(const wchar_t * restrict const str);
static char *textdir(const char *const str);
static SDL_Surface *do_render_button_label(const char *const label);
static void create_button_labels(void);
static Uint32 scrolltimer_callback(Uint32 interval, void *param);
static Uint32 scrolltimer_selector_callback(Uint32 interval, void *param);
static Uint32 scrolltimer_tool_callback(Uint32 interval, void *param);
static Uint32 scrolltimer_dialog_callback(Uint32 interval, void *param);
static Uint32 drawtext_callback(Uint32 interval, void *param);
static void control_drawtext_timer(Uint32 interval, const char *const text, Uint8 locale_text);
static const char *great_str(void);
@ -2370,7 +2372,8 @@ SDL_Rect kbd_rect;
int brushflag, xnew, ynew, eraflag, lineflag, magicflag, keybd_flag, keybd_position, keyglobal, initial_y, gen_key_flag,
ide, activeflag, old_x, old_y;
int cur_thing;
SDL_TimerID scrolltimer_dialog = NULL; /* Used by Open, Open->Slideshow, and New dialogs */
Uint32 TP_SDL_MOUSEBUTTONSCROLL;
/**
* --- MAIN LOOP! ---
*/
@ -2399,8 +2402,8 @@ static void mainloop(void)
FILE *fi;
#endif
Uint32 TP_SDL_MOUSEBUTTONSCROLL = SDL_RegisterEvents(1);
SDL_TimerID scrolltimer = NULL;
TP_SDL_MOUSEBUTTONSCROLL = SDL_RegisterEvents(1);
SDL_TimerID scrolltimer_selector = NULL, scrolltimer_tool = NULL;
SDL_Event event;
SDLKey key;
SDLMod mod;
@ -2432,8 +2435,12 @@ static void mainloop(void)
button_down = 0;
last_cursor_blink = cur_toggle_count = 0;
texttool_len = 0;
scrolling = 0;
scrolltimer = 0;
scrolling_selector = 0;
scrolltimer_selector = 0;
scrolling_tool = 0;
scrolltimer_tool = 0;
scrolling_dialog = 0;
scrolltimer_dialog = 0;
val_x = 0;
val_y = 0;
valhat_x = 0;
@ -3305,8 +3312,6 @@ static void mainloop(void)
{
if (HIT(r_tools))
{
if (HIT(real_r_tools))
{
/* A tool on the left has been pressed! */
@ -3746,7 +3751,14 @@ static void mainloop(void)
if (!done)
magic_switchin(canvas);
}
else if ((event.button.y < r_tools.y + button_h / 2) && tool_scroll > 0)
else if (
((event.button.y < r_tools.y + button_h / 2) && tool_scroll > 0) ||
((event.button.y > real_r_tools.y + real_r_tools.h)
&& (tool_scroll < NUM_TOOLS - buttons_tall * gd_tools.cols + gd_tools.cols))
) {
/* Tool up or down scroll buttons */
if (event.button.y < r_tools.y + button_h / 2)
{
/* Tool up scroll button */
tool_scroll -= gd_tools.cols;
@ -3754,10 +3766,8 @@ static void mainloop(void)
draw_toolbar();
update_screen_rect(&r_tools);
}
else if ((event.button.y > real_r_tools.y + real_r_tools.h)
&& (tool_scroll < NUM_TOOLS - buttons_tall * gd_tools.cols + gd_tools.cols))
else
{
/* Tool down scroll button */
tool_scroll += gd_tools.cols;
@ -3765,7 +3775,32 @@ static void mainloop(void)
playsound(screen, 1, SND_SCROLL, 1, SNDPOS_CENTER, SNDDIST_NEAR);
update_screen_rect(&r_tools);
}
if (!scrolling_tool && event.type == SDL_MOUSEBUTTONDOWN)
{
DEBUG_PRINTF("Starting scrolling\n");
memcpy(&scrolltimer_tool_event, &event, sizeof(SDL_Event));
scrolltimer_tool_event.type = TP_SDL_MOUSEBUTTONSCROLL;
/*
* We enable the timer subsystem only when needed (e.g., to use SDL_AddTimer() needed
* for scrolling) then disable it immediately after (e.g., after the timer has fired or
* after SDL_RemoveTimer()) because enabling the timer subsystem in SDL1 has a high
* energy impact on the Mac.
*/
scrolling_tool = 1;
SDL_InitSubSystem(SDL_INIT_TIMER);
scrolltimer_tool =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_tool_callback, (void *)&scrolltimer_tool_event);
}
else
{
DEBUG_PRINTF("Continuing scrolling\n");
scrolltimer_tool =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_tool_callback, (void *)&scrolltimer_tool_event);
}
}
}
@ -4536,17 +4571,17 @@ static void mainloop(void)
do_draw = 1;
playsound(screen, 1, SND_SCROLL, 1, SNDPOS_RIGHT, SNDDIST_NEAR);
if (scrolltimer != NULL)
if (scrolltimer_selector != NULL)
{
SDL_RemoveTimer(scrolltimer);
scrolltimer = NULL;
SDL_RemoveTimer(scrolltimer_selector);
scrolltimer_selector = NULL;
}
if (!scrolling && event.type == SDL_MOUSEBUTTONDOWN)
if (!scrolling_selector && event.type == SDL_MOUSEBUTTONDOWN)
{
DEBUG_PRINTF("Starting scrolling\n");
memcpy(&scrolltimer_event, &event, sizeof(SDL_Event));
scrolltimer_event.type = TP_SDL_MOUSEBUTTONSCROLL;
memcpy(&scrolltimer_selector_event, &event, sizeof(SDL_Event));
scrolltimer_selector_event.type = TP_SDL_MOUSEBUTTONSCROLL;
/*
* We enable the timer subsystem only when needed (e.g., to use SDL_AddTimer() needed
@ -4555,29 +4590,29 @@ static void mainloop(void)
* energy impact on the Mac.
*/
scrolling = 1;
scrolling_selector = 1;
SDL_InitSubSystem(SDL_INIT_TIMER);
scrolltimer =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_callback, (void *)&scrolltimer_event);
scrolltimer_selector =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_selector_callback, (void *)&scrolltimer_selector_event);
}
else
{
DEBUG_PRINTF("Continuing scrolling\n");
scrolltimer =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_callback, (void *)&scrolltimer_event);
scrolltimer_selector =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_selector_callback, (void *)&scrolltimer_selector_event);
}
if (*thing_scroll == 0 || *thing_scroll / gd_items.cols == num_rows_needed - gd_items.rows)
{
do_setcursor(cursor_arrow);
if (scrolling)
if (scrolling_selector)
{
if (scrolltimer != NULL)
if (scrolltimer_selector != NULL)
{
SDL_RemoveTimer(scrolltimer);
scrolltimer = NULL;
SDL_RemoveTimer(scrolltimer_selector);
scrolltimer_selector = NULL;
}
scrolling = 0;
scrolling_selector = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
}
}
@ -4714,7 +4749,7 @@ static void mainloop(void)
/* Enable or disable color selector: */
draw_colors(stamp_colorable(cur_stamp[stamp_group])
|| stamp_tintable(cur_stamp[stamp_group]));
if (!scrolling)
if (!scrolling_selector)
{
stamp_xor(canvas->w / 2, canvas->h / 2);
stamp_xored = 1;
@ -5316,7 +5351,7 @@ static void mainloop(void)
cur_tool == TOOL_FILL)
{
/* Left tools scroll */
/* Left tools scroll (via scroll wheel) */
if (hit_test(&r_tools, xpos, ypos) && NUM_TOOLS > most + TOOLOFFSET)
{
int is_upper = (event.wheel.y > 0);
@ -5363,7 +5398,7 @@ static void mainloop(void)
update_screen_rect(&r_tools);
}
/* Right tool options scroll */
/* Right tool options scroll (via scroll wheel) */
else
{
grid_dims gd_controls; /* might become 2-by-2 */
@ -5585,18 +5620,32 @@ static void mainloop(void)
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
if (scrolling)
if (scrolling_selector)
{
if (scrolltimer != NULL)
if (scrolltimer_selector != NULL)
{
SDL_RemoveTimer(scrolltimer);
scrolltimer = NULL;
SDL_RemoveTimer(scrolltimer_selector);
scrolltimer_selector = NULL;
}
scrolling = 0;
scrolling_selector = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
/* printf("Killing scrolling\n"); */
DEBUG_PRINTF("Killing selector scrolling\n");
}
else if (scrolling_tool)
{
if (scrolltimer_tool != NULL)
{
SDL_RemoveTimer(scrolltimer_tool);
scrolltimer_tool = NULL;
}
scrolling_tool = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
DEBUG_PRINTF("Killing tool scrolling\n");
}
/* Erase the xor drawed at click */
else if (cur_tool == TOOL_STAMP && stamp_xored && event.button.button < 4)
{
@ -16336,7 +16385,8 @@ static int do_open(void)
want_erase = 1;
}
}
else if (event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button))
else if ((event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button)) ||
event.type == TP_SDL_MOUSEBUTTONSCROLL)
{
if (event.button.x >= r_ttools.w && event.button.x < WINDOW_WIDTH - r_ttoolopt.w &&
event.button.y >= img_scroll_up->h && event.button.y < (button_h * buttons_tall + r_ttools.h) - button_h)
@ -16371,9 +16421,15 @@ static int do_open(void)
else if (event.button.x >= (WINDOW_WIDTH - img_scroll_up->w) / 2 &&
event.button.x <= (WINDOW_WIDTH + img_scroll_up->w) / 2)
{
if (event.button.y < img_scroll_up->h ||
(event.button.y >= (button_h * buttons_tall + r_ttools.h) - button_h &&
event.button.y < (button_h * buttons_tall + r_ttools.h) - img_scroll_up->h))
{
/* Up or down scroll button in Open dialog: */
if (event.button.y < img_scroll_up->h)
{
/* Up scroll button: */
/* Up scroll button in Open dialog: */
if (cur > 0)
{
@ -16391,7 +16447,7 @@ static int do_open(void)
else if (event.button.y >= (button_h * buttons_tall + r_ttools.h) - button_h &&
event.button.y < (button_h * buttons_tall + r_ttools.h) - img_scroll_up->h)
{
/* Down scroll button: */
/* Down scroll button in Open dialog: */
if (cur < num_files - 16)
{
@ -16406,6 +16462,38 @@ static int do_open(void)
if (which < cur)
which = which + 4;
}
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
if (!scrolling_dialog && event.type == SDL_MOUSEBUTTONDOWN)
{
DEBUG_PRINTF("Starting scrolling\n");
memcpy(&scrolltimer_dialog_event, &event, sizeof(SDL_Event));
scrolltimer_dialog_event.type = TP_SDL_MOUSEBUTTONSCROLL;
/*
* We enable the timer subsystem only when needed (e.g., to use SDL_AddTimer() needed
* for scrolling) then disable it immediately after (e.g., after the timer has fired or
* after SDL_RemoveTimer()) because enabling the timer subsystem in SDL1 has a high
* energy impact on the Mac.
*/
scrolling_dialog = 1;
SDL_InitSubSystem(SDL_INIT_TIMER);
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
else
{
DEBUG_PRINTF("Continuing scrolling\n");
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
}
}
else if (event.button.x >= r_ttools.w && event.button.x < r_ttools.w + button_w &&
event.button.y >= (button_h * buttons_tall + r_ttools.h) - button_h &&
@ -16459,12 +16547,6 @@ static int do_open(void)
}
#ifdef __ANDROID__
start_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEWHEEL && wheely)
@ -16557,6 +16639,24 @@ static int do_open(void)
oldpos_y = event.button.y;
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
if (scrolling_dialog)
{
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
scrolling_dialog = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
DEBUG_PRINTF("Killing dialog scrolling\n");
}
}
else if (event.type == SDL_JOYAXISMOTION)
handle_joyaxismotion(event, &motioner, &val_x, &val_y);
@ -16568,7 +16668,7 @@ static int do_open(void)
else if (event.type == SDL_JOYBUTTONDOWN || event.type == SDL_JOYBUTTONUP)
handle_joybuttonupdown(event, oldpos_x, oldpos_y);
}
} /* while (SDL_PollEvent(&event)) */
if (motioner | hatmotioner)
handle_motioners(oldpos_x, oldpos_y, motioner, hatmotioner, old_hat_ticks, val_x, val_y, valhat_x,
@ -17350,7 +17450,8 @@ static int do_slideshow(void)
playsound(screen, 1, SND_CLICK, 1, SNDPOS_RIGHT, SNDDIST_NEAR);
}
}
else if (event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button))
else if ((event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button)) ||
event.type == TP_SDL_MOUSEBUTTONSCROLL)
{
if (event.button.x >= r_ttools.w && event.button.x < WINDOW_WIDTH - r_ttoolopt.w &&
event.button.y >= img_scroll_up->h && event.button.y < (button_h * buttons_tall + r_ttools.h - button_h))
@ -17394,6 +17495,13 @@ static int do_slideshow(void)
else if (event.button.x >= (WINDOW_WIDTH - img_scroll_up->w) / 2 &&
event.button.x <= (WINDOW_WIDTH + img_scroll_up->w) / 2)
{
if (event.button.y < img_scroll_up->h ||
(event.button.y >= (button_h * buttons_tall + r_ttools.h - button_h) &&
event.button.y < (button_h * buttons_tall + r_ttools.h - img_scroll_down->h))
)
{
/* Up or Down scroll button in Slideshow dialog: */
if (event.button.y < img_scroll_up->h)
{
/* Up scroll button: */
@ -17430,6 +17538,38 @@ static int do_slideshow(void)
which = which + 4;
}
}
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
if (!scrolling_dialog && event.type == SDL_MOUSEBUTTONDOWN)
{
DEBUG_PRINTF("Starting scrolling\n");
memcpy(&scrolltimer_dialog_event, &event, sizeof(SDL_Event));
scrolltimer_dialog_event.type = TP_SDL_MOUSEBUTTONSCROLL;
/*
* We enable the timer subsystem only when needed (e.g., to use SDL_AddTimer() needed
* for scrolling) then disable it immediately after (e.g., after the timer has fired or
* after SDL_RemoveTimer()) because enabling the timer subsystem in SDL1 has a high
* energy impact on the Mac.
*/
scrolling_dialog = 1;
SDL_InitSubSystem(SDL_INIT_TIMER);
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
else
{
DEBUG_PRINTF("Continuing scrolling\n");
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
}
else if (event.button.x >= r_ttools.w && event.button.x < r_ttools.w + button_w &&
event.button.y >= (button_h * buttons_tall + r_ttools.h) - button_h &&
event.button.y < (button_h * buttons_tall + r_ttools.h))
@ -17552,12 +17692,6 @@ static int do_slideshow(void)
}
#ifdef __ANDROID__
start_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEWHEEL && wheely)
@ -17645,6 +17779,26 @@ static int do_slideshow(void)
oldpos_x = event.button.x;
oldpos_y = event.button.y;
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
if (scrolling_dialog)
{
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
scrolling_dialog = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
DEBUG_PRINTF("Killing dialog scrolling\n");
}
}
else if (event.type == SDL_JOYAXISMOTION)
handle_joyaxismotion(event, &motioner, &val_x, &val_y);
@ -18799,19 +18953,59 @@ static char *textdir(const char *const str)
/**
* FIXME
*/
/* Scroll Timer */
static Uint32 scrolltimer_callback(Uint32 interval, void *param)
/* Scroll Timer for Tools */
static Uint32 scrolltimer_selector_callback(Uint32 interval, void *param)
{
/* printf("scrolltimer_callback(%d) -- ", interval); */
if (scrolling)
/* printf("scrolltimer_selector_callback(%d) -- ", interval); */
if (scrolling_selector)
{
DEBUG_PRINTF("(Still scrolling)\n");
DEBUG_PRINTF("(Still scrolling selector)\n");
SDL_PushEvent((SDL_Event *) param);
return interval;
}
else
{
DEBUG_PRINTF("(all done scrolling)\n");
DEBUG_PRINTF("(all done scrolling selector)\n");
return 0;
}
}
/**
* FIXME
*/
/* Scroll Timer for Selector */
static Uint32 scrolltimer_tool_callback(Uint32 interval, void *param)
{
/* printf("scrolltimer_tool_callback(%d)\n", interval); */
if (scrolling_tool)
{
DEBUG_PRINTF("(Still scrolling tool)\n");
SDL_PushEvent((SDL_Event *) param);
return interval;
}
else
{
DEBUG_PRINTF("(all done scrolling tool)\n");
return 0;
}
}
/**
* FIXME
*/
/* Scroll Timer for Dialogs (Open & New) */
static Uint32 scrolltimer_dialog_callback(Uint32 interval, void *param)
{
if (scrolling_dialog)
{
DEBUG_PRINTF("(Still scrolling dialog)\n");
SDL_PushEvent((SDL_Event *) param);
return interval;
}
else
{
DEBUG_PRINTF("(all done scrolling dialog)\n");
return 0;
}
}
@ -21393,7 +21587,8 @@ static int do_new_dialog(void)
playsound(screen, 1, SND_CLICK, 1, SNDPOS_RIGHT, SNDDIST_NEAR);
}
}
else if (event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button))
else if ((event.type == SDL_MOUSEBUTTONDOWN && valid_click(event.button.button)) ||
event.type == TP_SDL_MOUSEBUTTONSCROLL)
{
if (event.button.x >= r_ttools.w && event.button.x < WINDOW_WIDTH - r_ttoolopt.w &&
event.button.y >= img_scroll_up->h && event.button.y < (button_h * buttons_tall + r_ttools.h - button_h))
@ -21424,6 +21619,13 @@ static int do_new_dialog(void)
else if (event.button.x >= (WINDOW_WIDTH - img_scroll_up->w) / 2 &&
event.button.x <= (WINDOW_WIDTH + img_scroll_up->w) / 2)
{
if (event.button.y < img_scroll_up->h ||
(event.button.y >= (button_h * buttons_tall + r_ttools.h - button_h) &&
event.button.y < (button_h * buttons_tall + r_ttools.h - img_scroll_up->h))
)
{
/* Up or Down scroll button in New dialog: */
if (event.button.y < img_scroll_up->h)
{
/* Up scroll button: */
@ -21459,6 +21661,38 @@ static int do_new_dialog(void)
if (which < cur)
which = which + 4;
}
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
if (!scrolling_dialog && event.type == SDL_MOUSEBUTTONDOWN)
{
DEBUG_PRINTF("Starting scrolling\n");
memcpy(&scrolltimer_dialog_event, &event, sizeof(SDL_Event));
scrolltimer_dialog_event.type = TP_SDL_MOUSEBUTTONSCROLL;
/*
* We enable the timer subsystem only when needed (e.g., to use SDL_AddTimer() needed
* for scrolling) then disable it immediately after (e.g., after the timer has fired or
* after SDL_RemoveTimer()) because enabling the timer subsystem in SDL1 has a high
* energy impact on the Mac.
*/
scrolling_dialog = 1;
SDL_InitSubSystem(SDL_INIT_TIMER);
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
else
{
DEBUG_PRINTF("Continuing scrolling\n");
scrolltimer_dialog =
SDL_AddTimer(REPEAT_SPEED / 3, scrolltimer_dialog_callback, (void *)&scrolltimer_dialog_event);
}
}
}
else if (event.button.x >= r_ttools.w && event.button.x < r_ttools.w + button_w &&
event.button.y >= (button_h * buttons_tall + r_ttools.h) - button_h &&
@ -21482,12 +21716,6 @@ static int do_new_dialog(void)
}
#ifdef __ANDROID__
start_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
}
else if (event.type == SDL_MOUSEWHEEL && wheely)
@ -21577,6 +21805,25 @@ static int do_new_dialog(void)
oldpos_y = event.button.y;
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
#ifdef __ANDROID__
stop_motion_convert(event);
#endif
if (scrolling_dialog)
{
if (scrolltimer_dialog != NULL)
{
SDL_RemoveTimer(scrolltimer_dialog);
scrolltimer_dialog = NULL;
}
scrolling_dialog = 0;
SDL_QuitSubSystem(SDL_INIT_TIMER);
DEBUG_PRINTF("Killing dialog scrolling\n");
}
}
else if (event.type == SDL_JOYAXISMOTION)
handle_joyaxismotion(event, &motioner, &val_x, &val_y);
@ -24640,10 +24887,9 @@ static void load_info_about_label_surface(FILE * lfi)
char *tmp_fgets_return;
Uint8 a;
#ifdef WIN32
char *tmpstr;
wchar_t *wtmpstr;
#endif
char *tmpstr;
/* Clear label surface */
@ -24665,6 +24911,13 @@ static void load_info_about_label_surface(FILE * lfi)
/* Read count of label nodes: */
tmp_fscanf_return = fscanf(lfi, "%d\n", &list_ctr);
if (list_ctr <= 0)
{
fprintf(stderr, "Unexpected! Count of label notes is <= 0 (%d)!\n", list_ctr);
fclose(lfi);
return;
}
/* Read saved canvas width/height, so we can scale to the current canvas
(in case it changed due to window size / fullscreen resolution changes,
larger UI button size, etc. */
@ -24672,6 +24925,13 @@ static void load_info_about_label_surface(FILE * lfi)
tmp_fscanf_return = fscanf(lfi, "%d\n\n", &tmp_scale_h);
(void)tmp_fscanf_return;
if (tmp_scale_w <= 0 || tmp_scale_h <= 0)
{
fprintf(stderr, "Unexpected! Saved canvas dimensions %d x %d!\n", tmp_scale_w, tmp_scale_h);
fclose(lfi);
return;
}
/* Calculate canvas aspect ratios & such */
old_width = tmp_scale_w;
old_height = tmp_scale_h;
@ -24684,26 +24944,27 @@ static void load_info_about_label_surface(FILE * lfi)
else
new_to_old_ratio = (float)new_height / old_height;
/* Read the labels' text: */
size_t nwchar;
#ifdef WIN32
tmpstr = malloc(1024);
wtmpstr = malloc(1024);
#endif
tmpstr = malloc(1024);
/* Read the labels' text: */
for (k = 0; k < list_ctr; k++)
{
new_node = malloc(sizeof(struct label_node));
tmp_fscanf_return = fscanf(lfi, "%u\n", &new_node->save_texttool_len);
new_node->save_texttool_len = atoi(fgets(tmpstr, 5, lfi));
#ifdef DEBUG
printf("Reading %d wide chars\n", new_node->save_texttool_len); fflush(stdout);
#endif
if (new_node->save_texttool_len >= 1024)
{
fprintf(stderr, "Unexpected! Saved text length is >= 1024 (%u!)\n", new_node->save_texttool_len);
free(new_node);
#ifdef WIN32
/* Using fancy "%[]" operator to scan until the end of a line */
tmp_fscanf_return = fscanf(lfi, "%[^\n]\n", tmpstr);
@ -24711,6 +24972,8 @@ static void load_info_about_label_surface(FILE * lfi)
for (l = 0; l < new_node->save_texttool_len; l++)
new_node->save_texttool_str[l] = wtmpstr[l];
new_node->save_texttool_str[l] = L'\0';
free(tmpstr);
free(wtmpstr);
#elif defined(__ANDROID__)
wchar_t tmp_char;
for (l = 0; l < new_node->save_texttool_len; l++)
@ -24727,31 +24990,26 @@ static void load_info_about_label_surface(FILE * lfi)
#ifdef DEBUG
printf("Read: \"%ls\"\n", new_node->save_texttool_str); fflush(stdout);
#endif
/* If the string is shorter than what we expect (new_node->save_texttool_len),
then it must have been prefixed with spaces that we lost. */
nwchar = wcslen(new_node->save_texttool_str);
if (nwchar < new_node->save_texttool_len)
fclose(lfi);
return;
}
else
{
wchar_t *wtmpstr;
size_t diff, i;
wtmpstr = malloc(1024);
diff = new_node->save_texttool_len - nwchar;
for (i = 0; i < diff; i++)
wtmpstr[i] = L' ';
for (i = 0; i <= nwchar; i++)
wtmpstr[i + diff] = new_node->save_texttool_str[i];
memcpy(new_node->save_texttool_str, wtmpstr, sizeof(wchar_t) * (new_node->save_texttool_len + 1));
free(wtmpstr);
#ifdef WIN32
/* Using fancy "%[]" operator to scan until the end of a line */
tmp_fscanf_return = fscanf(lfi, "%[^\n]\n", tmpstr);
mbstowcs(wtmpstr, tmpstr, 1024);
for (l = 0; l < new_node->save_texttool_len; l++)
new_node->save_texttool_str[l] = wtmpstr[l];
new_node->save_texttool_str[l] = L'\0';
#else
/* Using fancy "%[]" operator to scan until the end of a line */
tmp_fscanf_return = fscanf(lfi, "%l[^\n]\n", new_node->save_texttool_str);
#endif
#ifdef DEBUG
printf("Fixed \"%ls\"\n", new_node->save_texttool_str); fflush(stdout);
printf("Read: \"%ls\"\n", new_node->save_texttool_str); fflush(stdout);
#endif
}
/* Read the label's color (RGB) */
tmp_fscanf_return = fscanf(lfi, "%u\n", &l);
@ -24793,9 +25051,21 @@ static void load_info_about_label_surface(FILE * lfi)
#ifdef DEBUG
printf("Original label size %dx%d\n", new_node->save_width, new_node->save_height);
#endif
if (new_node->save_width > 8192 || new_node->save_height > 8192)
{
fprintf(stderr, "Unexpected! Save dimensions are (%u x %u!)\n", new_node->save_width, new_node->save_height);
free(new_node);
free(tmpstr);
#ifdef WIN32
free(wtmpstr);
#endif
fclose(lfi);
return;
}
/* Read the label's font */
tmp_fscanf_return = fscanf(lfi, "%d\n", &new_node->save_cur_font);
/* FIXME: This seems wrong! -bjk 2022.04.02 */
new_node->save_cur_font = 0;
new_node->save_font_type = malloc(64);
@ -24871,16 +25141,17 @@ static void load_info_about_label_surface(FILE * lfi)
highlighted_label_node = current_label_node;
simply_render_node(current_label_node);
}
}
first_label_node_in_redo_stack = NULL;
fclose(lfi);
#ifdef WIN32
free(tmpstr);
#ifdef WIN32
free(wtmpstr);
#endif
if (font_thread_done)
set_label_fonts();
}