Merge work in autoscroll from 'master' into sdl2.0
This commit is contained in:
commit
bf73b3679b
75 changed files with 34464 additions and 43544 deletions
3
data/brushes/dog.dat
Normal file
3
data/brushes/dog.dat
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
frames=2
|
||||
directional
|
||||
spacing=48
|
||||
BIN
data/brushes/dog.png
Normal file
BIN
data/brushes/dog.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -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
1312
docs/en/OPTIONS.txt
1312
docs/en/OPTIONS.txt
File diff suppressed because it is too large
Load diff
|
|
@ -5,9 +5,7 @@
|
|||
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
|
||||
https://tuxpaint.org/
|
||||
|
||||
January 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
March 31, 2022
|
||||
|
||||
About PNGs
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
January 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
About SVGs
|
||||
|
||||
SVG (Scalable Vector Graphics) is an open standard used to describe
|
||||
|
|
@ -22,13 +20,17 @@ About 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
|
|
@ -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 & Krita</h3>
|
||||
<dl>
|
||||
<dt>GIMP & 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 @@
|
|||
—
|
||||
<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 @@
|
|||
—
|
||||
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 © 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>
|
||||
|
|
|
|||
|
|
@ -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">💡</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">💡</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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
—
|
||||
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
|
||||
</li>
|
||||
<li> <cite>Karbon</cite>
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
|
||||
</li>
|
||||
<li> <cite>Boxy SVG</cite>
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
<li> <cite>Sketch</cite>
|
||||
(Sketch B.V.)
|
||||
—
|
||||
<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
|
|
@ -5,9 +5,7 @@
|
|||
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
|
||||
https://tuxpaint.org/
|
||||
|
||||
enero 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
marzo 31, 2022
|
||||
|
||||
About PNGs
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
enero 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
About SVGs
|
||||
|
||||
SVG (Scalable Vector Graphics) is an open standard used to describe
|
||||
|
|
@ -22,13 +20,17 @@ About 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
|
|
@ -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 & Krita</h3>
|
||||
<dl>
|
||||
<dt>GIMP & 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 @@
|
|||
—
|
||||
<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 @@
|
|||
—
|
||||
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 © 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>
|
||||
|
|
|
|||
|
|
@ -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">💡</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">💡</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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
—
|
||||
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
|
||||
</li>
|
||||
<li> <cite>Karbon</cite>
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
|
||||
</li>
|
||||
<li> <cite>Boxy SVG</cite>
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
<li> <cite>Sketch</cite>
|
||||
(Sketch B.V.)
|
||||
—
|
||||
<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
|
|
@ -5,9 +5,7 @@
|
|||
Copyright © 2007-2022 by divers contributeurs; see AUTHORS.txt.
|
||||
https://tuxpaint.org/
|
||||
|
||||
janvier 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
mars 31, 2022
|
||||
|
||||
À propos des PNG
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
janvier 20, 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
À propos de SVG
|
||||
|
||||
SVG (Scalable Vector Graphics) est un standard ouvert utilisé pour décrire
|
||||
|
|
@ -22,16 +20,18 @@
|
|||
|
||||
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
|
|
@ -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 & Krita</h3>
|
||||
<dl>
|
||||
<dt>GIMP & 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 @@
|
|||
—
|
||||
<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 @@
|
|||
—
|
||||
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 © 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>
|
||||
|
|
|
|||
|
|
@ -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">💡</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">💡</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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
—
|
||||
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
|
||||
</li>
|
||||
<li> <cite>Karbon</cite>
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
|
||||
</li>
|
||||
<li> <cite>Boxy SVG</cite>
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
<li> <cite>Sketch</cite>
|
||||
(Sketch B.V.)
|
||||
—
|
||||
<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
|
|
@ -5,9 +5,7 @@
|
|||
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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
20 de Xaneiro de 2022
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Sobre os SVG
|
||||
|
||||
SVG (Scalable Vector Graphics — Gráficos Vectoriais Escalábeis) é un
|
||||
|
|
@ -22,15 +20,18 @@ Sobre os 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
|
|
@ -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 & Krita</h3>
|
||||
<dl>
|
||||
<dt>GIMP & 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 @@
|
|||
—
|
||||
<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 @@
|
|||
—
|
||||
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 © 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>
|
||||
|
|
|
|||
|
|
@ -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">💡</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">💡</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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
—
|
||||
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
|
||||
</li>
|
||||
<li> <cite>Karbon</cite>
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
|
||||
</li>
|
||||
<li> <cite>Boxy SVG</cite>
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
<li> <cite>Sketch</cite>
|
||||
(Sketch B.V.)
|
||||
—
|
||||
<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
|
|
@ -5,9 +5,7 @@
|
|||
Copyright © 2007-2022 by various contributors; see AUTHORS.txt.
|
||||
https://tuxpaint.org/
|
||||
|
||||
2022年1月20日
|
||||
|
||||
----------------------------------------------------------------------
|
||||
2022年3月31日
|
||||
|
||||
About PNGs
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
2022年1月20日
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
About SVGs
|
||||
|
||||
SVG (Scalable Vector Graphics) is an open standard used to describe
|
||||
|
|
@ -22,13 +20,17 @@ About 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
|
|
@ -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 & Krita</h3>
|
||||
<dl>
|
||||
<dt>GIMP & 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 @@
|
|||
—
|
||||
<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 @@
|
|||
—
|
||||
<a href="http://www.adobe.com/products/photoshop.html">http://www.adobe.com/products/photoshop.html</a>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</section>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
|||
|
|
@ -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 © 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>
|
||||
|
|
|
|||
|
|
@ -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">💡</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">💡</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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
—
|
||||
<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>
|
||||
</li>
|
||||
<li> <cite>Karbon</cite>
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<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)
|
||||
—
|
||||
<a href="http://www.adobe.com/products/illustrator.html">http://www.adobe.com/products/illustrator.html</a>
|
||||
</li>
|
||||
<li> <cite>Boxy SVG</cite>
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
<li> <cite>Sketch</cite>
|
||||
(Sketch B.V.)
|
||||
—
|
||||
<a href="https://boxy-svg.com/">https://boxy-svg.com/</a>
|
||||
</li>
|
||||
</ul>
|
||||
</dl>
|
||||
</section>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -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*));
|
||||
}
|
||||
|
|
|
|||
475
src/tuxpaint.c
475
src/tuxpaint.c
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue