mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-28 16:20:50 +00:00
Renamed some files and removed deprecated files.
Fixed a bug in fileview with i-search.
This commit is contained in:
parent
bcc221ab59
commit
78f879fa14
12
ChangeLog
12
ChangeLog
@ -1,5 +1,17 @@
|
||||
2008-09-29 David A. Capello <davidcapello@gmail.com>
|
||||
|
||||
* src/widgets/fileview.c (fileview_msg_proc): Fixed a bug when the
|
||||
user pressed a key to do an incremental-search but no item where
|
||||
selected.
|
||||
|
||||
* src/widgets/colsel.[ch]: Renamed from src/widgets/colsel2.[ch].
|
||||
|
||||
* data/jids/colsel.jid: Removed.
|
||||
|
||||
* src/script/: Removed.
|
||||
|
||||
* src/util/functions.c: From 'src/script/functions.c'.
|
||||
|
||||
* src/script/functions.c (FlattenLayers): Fixed a bug calling
|
||||
'layer_configure_as_background' without 'undo_move_layer' before.
|
||||
|
||||
|
@ -1,46 +0,0 @@
|
||||
<!-- ASE - Allegro Sprite Editor -->
|
||||
<!-- Copyright (C) 2001-2008 by David A. Capello -->
|
||||
<jinete>
|
||||
<window text="Color Selection" name="color_selection">
|
||||
<!-- <box horizontal> -->
|
||||
<box vertical expansive>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text="R" />
|
||||
<label text="G" />
|
||||
<label text="B" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="red" />
|
||||
<slider min="0" max="255" name="green" />
|
||||
<slider min="0" max="255" name="blue" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<label text="H" />
|
||||
<label text="S" />
|
||||
<label text="V" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="hue" />
|
||||
<slider min="0" max="255" name="saturation" />
|
||||
<slider min="0" max="255" name="value" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal>
|
||||
<label text="A" />
|
||||
<slider min="0" max="255" expansive name="alpha" />
|
||||
</box>
|
||||
<view name="palette_editor" expansive /> <!-- custom-widget -->
|
||||
<box name="colorviewer" expansive /> <!-- custom-widget -->
|
||||
<box horizontal homogeneous>
|
||||
<button text="&OK" name="button_ok" magnetic />
|
||||
<button text="&Cancel" />
|
||||
</box>
|
||||
</box>
|
||||
<!-- <box vertical> -->
|
||||
<!-- <view name="palette_editor" expansive /> <\!-- custom-widget -\-> -->
|
||||
<!-- <box name="color_viewer" expansive /> <\!-- custom-widget -\-> -->
|
||||
<!-- </box> -->
|
||||
<!-- </box> -->
|
||||
</window>
|
||||
</jinete>
|
@ -1,82 +0,0 @@
|
||||
======================================================================
|
||||
Format for .jid files
|
||||
======================================================================
|
||||
|
||||
General format:
|
||||
|
||||
<jinete>
|
||||
<widget_type [id="..."]
|
||||
[expansive]
|
||||
[width="percentage of screen width"]
|
||||
[height="percentage of screen height"]
|
||||
[magnet]
|
||||
[noborders]
|
||||
...>
|
||||
widgets children...
|
||||
</widget_type>
|
||||
</jinete>
|
||||
|
||||
======================================================================
|
||||
Supported widget types
|
||||
======================================================================
|
||||
|
||||
<box [horizontal | vertical]
|
||||
[homogeneous]>
|
||||
children...
|
||||
</box>
|
||||
|
||||
<button text="..."
|
||||
[left | center | right]
|
||||
[top | middle | bottom]>
|
||||
|
||||
<check text="..."
|
||||
[left | center | right]
|
||||
[top | middle | bottom]>
|
||||
|
||||
<entry max_size="..."
|
||||
[text="..."] />
|
||||
|
||||
<label text="..."
|
||||
[left | center | right]
|
||||
[top | middle | bottom]>
|
||||
|
||||
<listbox>
|
||||
<listitem text="...">
|
||||
children...
|
||||
</listbox>
|
||||
|
||||
<panel [horizontal | vertical]>
|
||||
children...
|
||||
</panel>
|
||||
|
||||
<radio text="..." group="..."
|
||||
[left | center | right]
|
||||
[top | middle | bottom] />
|
||||
|
||||
<separator [text="..."]
|
||||
[left | center | right]
|
||||
[top | middle | bottom]
|
||||
[horizontal | vertical]>
|
||||
children...
|
||||
</separator>
|
||||
|
||||
<slider min="..." max="..." />
|
||||
|
||||
<textbox [wordwrap]>
|
||||
text...
|
||||
</textbox>
|
||||
|
||||
<view [maxsize]>
|
||||
a viewable widget (like a listbox)
|
||||
</view>
|
||||
|
||||
<window text="..."
|
||||
[desktop]>
|
||||
children...
|
||||
</window>
|
||||
|
||||
======================================================================
|
||||
Example
|
||||
======================================================================
|
||||
|
||||
See the exfile.c file.
|
1549
docs/jinete-es._tx
1549
docs/jinete-es._tx
File diff suppressed because it is too large
Load Diff
1486
docs/jinete._tx
1486
docs/jinete._tx
File diff suppressed because it is too large
Load Diff
931
docs/script._tx
931
docs/script._tx
@ -1,931 +0,0 @@
|
||||
@#
|
||||
@# Documentation about how to program scripts with ASE
|
||||
@#
|
||||
@document_title=ASE Scripting Manual
|
||||
@html_footer=Back to contents
|
||||
@rtfh=ASE - Scripting
|
||||
@$\input texinfo
|
||||
@$@documentlanguage es
|
||||
@$@setfilename script.info
|
||||
@$@settitle ASE Scripting Manual
|
||||
@$@setchapternewpage odd
|
||||
@$@paragraphindent 0
|
||||
@$@setchapternewpage off
|
||||
@# This should remain commented at the moment (dvi output) @$@finalout
|
||||
@$
|
||||
@$@ifinfo
|
||||
@$This is the Info version of the ASE Scripting manual
|
||||
@$
|
||||
@$By David A. Capello
|
||||
@$@end ifinfo
|
||||
@$
|
||||
@$@node Top, , (dir), (dir)
|
||||
@titlepage
|
||||
@<pre>
|
||||
@!indent
|
||||
|
||||
ASE Scripting 0.6
|
||||
|
||||
By <a href="http://www.davidcapello.com.ar/">David A. Capello</a>, 2005.
|
||||
|
||||
@indent
|
||||
@</pre>
|
||||
|
||||
|
||||
#include <std_disclaimer.h>
|
||||
<blockquote class="text"><i>
|
||||
"I do not accept responsibility for any effects, adverse or otherwise,
|
||||
that this code may have on you, your computer, your sanity, your dog,
|
||||
and anything else that you can think of. Use it at your own risk."
|
||||
</i></blockquote>
|
||||
@!titlepage
|
||||
|
||||
|
||||
@!text
|
||||
@heading
|
||||
Contents
|
||||
|
||||
@contents
|
||||
|
||||
|
||||
|
||||
@text
|
||||
@text
|
||||
@heading
|
||||
Introduction
|
||||
|
||||
ASE has scripting facilities. You can make a script (a text file)
|
||||
with a set of routines to make images, effects, or anything you
|
||||
think. ASE uses Lua library to do this, so you should know program
|
||||
in Lua, anyway, it's really simple, so you'll not have any
|
||||
inconvenient.
|
||||
|
||||
The complete reference of Lua language is in <a href="lua-5.0.pdf">lua-5.0.pdf</a>. Also, you
|
||||
need a text editor to write Lua scripts (the Windows Notepad can
|
||||
be used).
|
||||
|
||||
@hnode Warning about Lua
|
||||
|
||||
You should known that ASE uses a patched version of Lua, where you
|
||||
can use the != operator instead of ~=
|
||||
<codeblock>
|
||||
if current_sprite != nil then
|
||||
-- we can use the current_sprite variable...
|
||||
end
|
||||
<endblock>
|
||||
|
||||
|
||||
@heading
|
||||
Basic Lua Programming
|
||||
|
||||
@hnode Comments
|
||||
|
||||
Comments start with --
|
||||
<codeblock>
|
||||
-- this line will be never parsed
|
||||
<endblock>
|
||||
Or you can comment multiple lines
|
||||
<codeblock>
|
||||
--[[
|
||||
blah blah blah...
|
||||
]]--
|
||||
<endblock>
|
||||
@hnode Example 1
|
||||
<codeblock>
|
||||
local a = 4
|
||||
local b = 5
|
||||
print ("a+b is: " .. (a+b))
|
||||
<endblock>
|
||||
|
||||
Here we define two variables "a" and "b" with the values "4" and "5"
|
||||
respectively. Then we print the string "a+b is: " follower by the
|
||||
result of the operation a+b (4+5) that is 9, so the final message is:
|
||||
<textblock>
|
||||
a+b is: 9
|
||||
<endblock>
|
||||
Also we could use:
|
||||
<codeblock>
|
||||
print (a.."+"..b.." is: "..(a+b))
|
||||
<endblock>
|
||||
To print:
|
||||
<textblock>
|
||||
4+5 is: 9
|
||||
<endblock>
|
||||
@hnode Example 2
|
||||
<codeblock>
|
||||
function add (a, b)
|
||||
return a+b
|
||||
end
|
||||
print ("1+2 = " .. add (1, 2))
|
||||
<endblock>
|
||||
With the "function" keyword you define a new function, in this case
|
||||
the "add" function, the names between parenthesis indicate the
|
||||
arguments (parameters) that you must give to that routine.
|
||||
|
||||
@hnode Example 3
|
||||
<codeblock>
|
||||
for c = 1, 10 do
|
||||
print (c)
|
||||
end
|
||||
<endblock>
|
||||
This repeat the block between the "do" keyword and the "end" keyword
|
||||
10 times (from 1 to 10 inclusive).
|
||||
|
||||
So this print:
|
||||
<textblock>
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
<endblock>
|
||||
@hnode Example 4
|
||||
<codeblock>
|
||||
for c = 1, 10 do
|
||||
if c == 5 then
|
||||
break
|
||||
end
|
||||
print (c)
|
||||
end
|
||||
<endblock>
|
||||
In this case when "c" come to 5 the for is breaked so the other
|
||||
iterations aren't made. This print:
|
||||
<textblock>
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
<endblock>
|
||||
@hnode Example 5
|
||||
<codeblock>
|
||||
for c = 1, 5 do
|
||||
if c != 3 then
|
||||
print ("c isn't 3 (c is " .. c .. ")")
|
||||
else
|
||||
print ("c is 3")
|
||||
end
|
||||
end
|
||||
<endblock>
|
||||
The != operator means "not equal" (negation of equality). You can
|
||||
use the original Lua operator ~= too.
|
||||
|
||||
This print:
|
||||
<textblock>
|
||||
c isn't 3 (c is 1)
|
||||
c isn't 3 (c is 2)
|
||||
c is 3
|
||||
c isn't 3 (c is 4)
|
||||
c isn't 3 (c is 5)
|
||||
<endblock>
|
||||
@hnode Example 6
|
||||
<codeblock>
|
||||
local done = false
|
||||
local a = 1
|
||||
while not done do
|
||||
print (a)
|
||||
if a == 3 then
|
||||
done = true
|
||||
end
|
||||
a = a + 1
|
||||
end
|
||||
<endblock>
|
||||
This print:
|
||||
<textblock>
|
||||
1
|
||||
2
|
||||
3
|
||||
<endblock>
|
||||
And can be implemented in this way too:
|
||||
<codeblock>
|
||||
local a = 1
|
||||
while a <= 3 do
|
||||
print (a)
|
||||
a = a + 1
|
||||
end
|
||||
<endblock>
|
||||
|
||||
|
||||
@heading
|
||||
ImgType
|
||||
|
||||
The imgtype (image-type) is the format of each pixel in a image.
|
||||
Sprites have a lot of images, but all images must have the same
|
||||
imgtype. The know imgtypes are: RGB, Grayscale, Indexed, Bitmap.
|
||||
|
||||
@hnode IMAGE_RGB
|
||||
|
||||
Means that the image have four components (channels or bytes) per
|
||||
pixel, where the values of these components can be between 0 and 255
|
||||
(256 differents tones), where 255 the maximum intensity.
|
||||
|
||||
RGB is RGBA really:
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
R: Red.
|
||||
<li>
|
||||
G: Green.
|
||||
<li>
|
||||
B: Blue.
|
||||
<li>
|
||||
A: Alpha (transparency or opacity).
|
||||
</ul>
|
||||
(0,0,0,0) is mask color, (0,0,0,255) is black, and (255,255,255,255)
|
||||
is white.
|
||||
|
||||
@hnode IMAGE_GRAYSCALE
|
||||
|
||||
The image has two channels (two bytes) per pixel.
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
K: Luminance (or black channel)
|
||||
<li>
|
||||
A: Alpha (transparency or opacity).
|
||||
</ul>
|
||||
(0,0) is mask color, (0,255) is black, (255,255) is white.
|
||||
|
||||
@hnode IMAGE_INDEXED
|
||||
|
||||
Image uses one byte per pixel:
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
Index: index of the color that we must use from the color-palette.
|
||||
</ul>
|
||||
|
||||
In this imgtype, each pixel hasn't the color information, only has a
|
||||
reference to the color-palette (from 0 to 255, 256 colors), so the
|
||||
RGB information about the color is found in the color-palette and
|
||||
not in the image.
|
||||
|
||||
The index=0 is the mask color.
|
||||
|
||||
@hnode IMAGE_BITMAP
|
||||
|
||||
An internal imgtype to handle masks, where a pixel is a bit, and 8
|
||||
pixels are a byte. 1 means selected, 0 deselected.
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Standard routines
|
||||
|
||||
@@double @MAX (double x, double y);
|
||||
Returns the maximum value.
|
||||
|
||||
@@double @MIN (double x, double y);
|
||||
Returns the minimum value.
|
||||
|
||||
@@double @MID (double x, double y, double z);
|
||||
Limits the y value to x and z.
|
||||
|
||||
@@void @include (const char *filename);
|
||||
@@void @dofile (const char *filename);
|
||||
Process the script that is in the file with the given filename. It's
|
||||
searched in the current and in the "data/scripts" directories.
|
||||
|
||||
@@void @print (const char *buf);
|
||||
Prints a message in the console, this is useful mainly to debug
|
||||
scripts or to show errors.
|
||||
|
||||
@@double @rand (double min, double max);
|
||||
Returns a random number between min and max values.
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
String routines
|
||||
|
||||
@@const char *@_ (const char *msgid);
|
||||
Tries to translate the string msgid to the current language, the
|
||||
entry must exists in the .po file.
|
||||
|
||||
@@int @strcmp (const char *s1, const char *s2);
|
||||
Compares the two strings s1 and s2. It returns an integer less than,
|
||||
equal to, or greater than zero if s1 is found, respectively, to be
|
||||
less than, to match, or be greater than s2.
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Math routines
|
||||
|
||||
@hnode Constants
|
||||
|
||||
PI: the ratio of a circle's circumference to its diameter (3.141592...).
|
||||
|
||||
@hnode Routines
|
||||
|
||||
@@double @fabs (double x);
|
||||
Return the absolute value of the number x.
|
||||
|
||||
@@double @ceil (double x);
|
||||
@xref floor
|
||||
This funtion rounds x up to the nearest integer.
|
||||
|
||||
@@double @floor (double x);
|
||||
@xref ceil
|
||||
This funtion rounds x down to the nearest integer.
|
||||
|
||||
@@double @exp (double x);
|
||||
@xref log
|
||||
Returns the value of e (the base of natural logarithms) raised to
|
||||
the power of x.
|
||||
|
||||
@@double @log (double x);
|
||||
@xref exp, log10
|
||||
Returns the natural logarithm of x.
|
||||
|
||||
@@double @log10 (double x);
|
||||
@xref log
|
||||
Returns the base-10 logarithm of x.
|
||||
|
||||
@@double @pow (double x, double y);
|
||||
@xref sqrt
|
||||
Returns the value of x raised to the power of y.
|
||||
|
||||
@@double @sqrt (double x);
|
||||
@xref hypot, pow
|
||||
Returns the non-negative square root of x.
|
||||
|
||||
@@double @hypot (double x, double y);
|
||||
@xref sqrt
|
||||
Returns the sqrt(x*x + y*y). This is the length of the hypotenuse
|
||||
of a right-angle triangle with sides of length x and y, or the
|
||||
distance of the point (x, y) from the origin.
|
||||
|
||||
@@double @cos (double x);
|
||||
@xref sin, tan, acos
|
||||
Returns the cosine of x, where x is given in radians.
|
||||
|
||||
@@double @sin (double x);
|
||||
@xref cos, tan, asin
|
||||
Returns the sine of x, where x is given in radians.
|
||||
|
||||
@@double @tan (double x);
|
||||
@xref cos, sin, atan
|
||||
Returns the tangent of x, where x is given in radians.
|
||||
|
||||
@@double @acos (double x);
|
||||
@xref cos
|
||||
Returns the arc cosine in radians and the value is mathematically
|
||||
defined to be between 0 and PI (inclusive).
|
||||
|
||||
@@double @asin (double x);
|
||||
@xref sin
|
||||
Returns the arc sine in radians and the value is mathematically
|
||||
defined to be between -PI/2 and PI/2 (inclusive).
|
||||
|
||||
@@double @atan (double x);
|
||||
@xref tan, atan2
|
||||
Returns the arc tangent in radians and the value is mathematically
|
||||
defined to be between -PI/2 and PI/2 (inclusive).
|
||||
|
||||
@@double @atan2 (double y, double x);
|
||||
@xref atan
|
||||
Returns the result in radians, which is between -PI and PI
|
||||
(inclusive).
|
||||
|
||||
@@double @cosh (double x);
|
||||
Returns the hyperbolic cosine of x, which is defined mathematically
|
||||
as (exp(x) + exp(-x)) / 2.
|
||||
|
||||
@@double @sinh (double x);
|
||||
Returns the hyperbolic sine of x, which is defined mathematically as
|
||||
(exp(x) - exp(-x)) / 2.
|
||||
|
||||
@@double @tanh (double x);
|
||||
Returns the hyperbolic tangent of x, which is defined mathematically
|
||||
as sinh(x) / cosh(x).
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
File routines
|
||||
|
||||
@@bool @file_exists (const char *filename);
|
||||
Checks whether a file matching the given name exists, returning true
|
||||
if it does.
|
||||
|
||||
@@char *@get_filename (const char *filename);
|
||||
When passed a completely specified file path, this returns a pointer
|
||||
to the filename portion. Both ´\´ and ´/´ are recognized as directory
|
||||
separators.
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Objects
|
||||
|
||||
There are a special type of variables in Lua scripts: objects
|
||||
(represented with user-data). Each object can be of some of these
|
||||
types:
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
Graphics objects: Image, Frame, Layer, Mask, Path, Sprite, Stock, Undo.
|
||||
<li>
|
||||
Effect objects: Effect, ConvMatr, Curve, CurvePoint.
|
||||
<li>
|
||||
GUI objects: JEvent, JList, JRect, JRegion, JWidget.
|
||||
</ul>
|
||||
|
||||
|
||||
@heading
|
||||
Image
|
||||
|
||||
An image, has width and height, an image-type (RGB, Grayscale, etc.),
|
||||
and contains the image data (pixels, pixmap, or bitmap).
|
||||
|
||||
@hnode Image fields
|
||||
<ul><li>
|
||||
[number] image.imgtype<br>
|
||||
See sprite.imgtype
|
||||
<li>
|
||||
[number] image.w<br>
|
||||
[number] image.h<br>
|
||||
The width and height (in pixels) of this image.
|
||||
</ul>
|
||||
@hnode Image methods
|
||||
|
||||
@@Image *@image_new (int imgtype, int w, int h);
|
||||
Creates a new image
|
||||
|
||||
@@Image *@image_new_copy (Image *image);
|
||||
|
||||
@@void @image_free (Image *image);
|
||||
|
||||
@@int @image_getpixel (Image *image, int x, int y);
|
||||
|
||||
@@void @image_putpixel (Image *image, int x, int y, int color);
|
||||
|
||||
@@void @image_clear (Image *image, int color);
|
||||
|
||||
@@void @image_copy (Image *dst, Image *src, int x, int y);
|
||||
|
||||
@@void @image_merge (Image *dst, Image *src, int x, int y, int opacity, int blend_mode);
|
||||
|
||||
@@Image *@image_crop (Image *image, int x, int y, int w, int h);
|
||||
|
||||
@@void @image_hline (Image *image, int x1, int y, int x2, int color);
|
||||
|
||||
@@void @image_vline (Image *image, int x, int y1, int y2, int color);
|
||||
|
||||
@@void @image_rect (Image *image, int x1, int y1, int x2, int y2, int color);
|
||||
|
||||
@@void @image_rectfill (Image *image, int x1, int y1, int x2, int y2, int color);
|
||||
|
||||
@@void @image_line (Image *image, int x1, int y1, int x2, int y2, int color);
|
||||
|
||||
@@void @image_ellipse (Image *image, int x1, int y1, int x2, int y2, int color);
|
||||
|
||||
@@void @image_ellipsefill (Image *image, int x1, int y1, int x2, int y2, int color);
|
||||
|
||||
@@void @image_convert (Image *dst, Image *src);
|
||||
|
||||
@@int @image_count_diff (Image *i1, Image *i2);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Frame
|
||||
|
||||
A frame of animation, it contains the position, opacity and a reference
|
||||
(by index) to some image in the image's stock of the layer where this
|
||||
frame is. Remember this, a frame doesn't contain the image, only a
|
||||
reference to it.
|
||||
|
||||
@@Frame *@frame_new (int frpos, int image, int x, int y, int opacity);
|
||||
|
||||
@@Frame *@frame_new_copy (Frame *frame);
|
||||
|
||||
@@void @frame_free (Frame *frame);
|
||||
|
||||
@@Frame *@frame_is_link (Frame *frame, Layer *layer);
|
||||
|
||||
@@void @frame_set_frpos (Frame *frame, int frpos);
|
||||
|
||||
@@void @frame_set_image (Frame *frame, int image);
|
||||
|
||||
@@void @frame_set_position (Frame *frame, int x, int y);
|
||||
|
||||
@@void @frame_set_opacity (Frame *frame, int opacity);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Layer
|
||||
|
||||
A layer can be two things: a normal layer (also called image layer),
|
||||
or a layer set. A layer set is a group of child layers (like
|
||||
"sprite.set"). A normal layer is a complete different thing.
|
||||
|
||||
A normal layer has a stock of images and a list of frames, each
|
||||
frame has a reference to the image's stock, so each frame uses some
|
||||
image of the stock. If two frames uses the same stock images, the
|
||||
first frame is called the "original frame" and all other frames are
|
||||
called "links".
|
||||
|
||||
@@Layer *@layer_new (int imgtype);
|
||||
|
||||
@@Layer *@layer_set_new (void);
|
||||
|
||||
@@Layer *@layer_new_copy (Layer *layer);
|
||||
|
||||
@\Layer *@layer_new_with_image (int imgtype, int x, int y, int w, int h,
|
||||
@@ int frpos);
|
||||
|
||||
@@void @layer_free (Layer *layer);
|
||||
|
||||
@@bool @layer_is_image (Layer *layer);
|
||||
|
||||
@@bool @layer_is_set (Layer *layer);
|
||||
|
||||
@@Layer *@layer_get_prev (Layer *layer);
|
||||
|
||||
@@Layer *@layer_get_next (Layer *layer);
|
||||
|
||||
@@void @layer_set_name (Layer *layer, const char *name);
|
||||
|
||||
@@void @layer_set_blend_mode (Layer *layer, int blend_mode);
|
||||
|
||||
@@void @layer_add_frame (Layer *layer, Frame *frame);
|
||||
|
||||
@@void @layer_remove_frame (Layer *layer, Frame *frame);
|
||||
|
||||
@@Frame *@layer_get_frame (Layer *layer, int frpos);
|
||||
|
||||
@@void @layer_add_layer (Layer *set, Layer *layer);
|
||||
|
||||
@@void @layer_remove_layer (Layer *set, Layer *layer);
|
||||
|
||||
@@void @layer_move_layer (Layer *set, Layer *layer, Layer *after);
|
||||
|
||||
@@void @layer_render (Layer *layer, Image *image, int x, int y, int frpos);
|
||||
|
||||
@\Layer *@layer_flatten (Layer *layer, int imgtype, int x, int y, int w, int h,
|
||||
@@ int frmin, int frmax);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Mask
|
||||
|
||||
@@Mask *@mask_new (void);
|
||||
|
||||
@@Mask *@mask_new_copy (Mask *mask);
|
||||
|
||||
@@void @mask_free (Mask *mask);
|
||||
|
||||
@@bool @mask_is_empty (Mask *mask);
|
||||
|
||||
@@void @mask_set_name (Mask *mask, const char *name);
|
||||
|
||||
@@void @mask_move (Mask *mask, int x, int y);
|
||||
|
||||
@@void @mask_none (Mask *mask);
|
||||
|
||||
@@void @mask_invert (Mask *mask);
|
||||
|
||||
@@void @mask_replace (Mask *mask, int x, int y, int w, int h);
|
||||
|
||||
@@void @mask_union (Mask *mask, int x, int y, int w, int h);
|
||||
|
||||
@@void @mask_subtract (Mask *mask, int x, int y, int w, int h);
|
||||
|
||||
@@void @mask_intersect (Mask *mask, int x, int y, int w, int h);
|
||||
|
||||
@@void @mask_merge (Mask *dst, Mask *src);
|
||||
|
||||
@@void @mask_by_color (Mask *mask, Image *image, int color, int fuzziness);
|
||||
|
||||
@@void @mask_crop (Mask *mask, Image *image);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Path
|
||||
|
||||
@@Path *@path_new (const char *name);
|
||||
|
||||
@@void @path_free (Path *path);
|
||||
|
||||
@@void @path_set_join (Path *path, int join);
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
PATH_JOIN_MITER<br>
|
||||
<li>
|
||||
PATH_JOIN_ROUND<br>
|
||||
<li>
|
||||
PATH_JOIN_BEVEL<br>
|
||||
</ul>
|
||||
|
||||
@@void @path_set_cap (Path *path, int cap);
|
||||
@tallbullets
|
||||
<ul><li>
|
||||
PATH_CAP_BUTT<br>
|
||||
<li>
|
||||
PATH_CAP_ROUND<br>
|
||||
<li>
|
||||
PATH_CAP_SQUARE<br>
|
||||
</ul>
|
||||
|
||||
@@void @path_moveto (Path *path, double x, double y);
|
||||
|
||||
@@void @path_lineto (Path *path, double x, double y);
|
||||
|
||||
@@void @path_curveto (Path *path, double control_x1, double control_y1, double control_x2, double control_y2, double end_x, double end_y);
|
||||
|
||||
@@void @path_close (Path *path);
|
||||
|
||||
@@void @path_move (Path *path, double x, double y);
|
||||
|
||||
@@void @path_stroke (Path *path, Image *image, int color, double brush_size);
|
||||
|
||||
@@void @path_fill (Path *path, Image *image, int color);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Sprite
|
||||
|
||||
The sprite is the main object of ASE (remember Allegro "Sprite"
|
||||
Editor), and it's the structure that contains all data: layers,
|
||||
frames, stocks, images, masks, paths, and undo information are
|
||||
inside the same sprite.
|
||||
|
||||
There are a global variable of Sprite type: current_sprite. This
|
||||
could be "nil" if there aren't a selected sprite in the moment.
|
||||
|
||||
You should known about the difference between the "current_sprite"
|
||||
in scripts and the sprite in the current editor. Because when you
|
||||
select a sprite with "set_current_sprite", only the "current_sprite"
|
||||
global pointer is set, but the sprite in the current editor is
|
||||
maintain intact. So when ASE runs a script, the "current_sprite"
|
||||
will be pointing to the sprite in the current editor, but if you
|
||||
change the "current_sprite" (with "set_current_sprite" routine)
|
||||
you'll not get that sprite in the editor (use "sprite_show" function
|
||||
instead).
|
||||
|
||||
@@Sprite *@sprite_new (int imgtype, int w, int h);
|
||||
|
||||
@@Sprite *@sprite_new_copy (Sprite *sprite);
|
||||
|
||||
@@Sprite *@sprite_new_flatten_copy (Sprite *sprite);
|
||||
|
||||
@@Sprite *@sprite_new_with_layer (int imgtype, int w, int h);
|
||||
|
||||
@@void @sprite_free (Sprite *sprite);
|
||||
|
||||
@@void @sprite_lock (Sprite *sprite);
|
||||
|
||||
@@void @sprite_unlock (Sprite *sprite);
|
||||
|
||||
@@bool @sprite_is_locked (Sprite *sprite);
|
||||
|
||||
@@bool @sprite_is_modified (Sprite *sprite);
|
||||
|
||||
@@bool @sprite_is_associated_to_file (Sprite *sprite);
|
||||
|
||||
@@void @sprite_mark_as_saved (Sprite *sprite);
|
||||
|
||||
@@void @sprite_set_filename (Sprite *sprite, const char *filename);
|
||||
|
||||
@@void @sprite_set_size (Sprite *sprite, int w, int h);
|
||||
|
||||
@@void @sprite_set_frames (Sprite *sprite, int frames);
|
||||
|
||||
@@void @sprite_set_speed (Sprite *sprite, int speed);
|
||||
|
||||
@@void @sprite_set_path (Sprite *sprite, Path *path);
|
||||
|
||||
@@void @sprite_set_mask (Sprite *sprite, Mask *mask);
|
||||
|
||||
@@void @sprite_set_layer (Sprite *sprite, Layer *layer);
|
||||
|
||||
@@void @sprite_set_frpos (Sprite *sprite, int frpos);
|
||||
|
||||
@@void @sprite_set_imgtype (Sprite *sprite, int imgtype, int dithering_method);
|
||||
|
||||
@@void @sprite_add_path (Sprite *sprite, Path *path);
|
||||
|
||||
@@void @sprite_remove_path (Sprite *sprite, Path *path);
|
||||
|
||||
@@void @sprite_add_mask (Sprite *sprite, Mask *mask);
|
||||
|
||||
@@void @sprite_remove_mask (Sprite *sprite, Mask *mask);
|
||||
|
||||
@@Mask *@sprite_request_mask (Sprite *sprite, const char *name);
|
||||
|
||||
@@void @sprite_render (Sprite *sprite, Image *image, int x, int y);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Stock
|
||||
|
||||
Stock of images. Each image layer has its own image's stock to
|
||||
provide images to its frames.
|
||||
|
||||
@@Stock *@stock_new (int imgtype);
|
||||
|
||||
@@Stock *@stock_new_copy (Stock *stock);
|
||||
|
||||
@@void @stock_free (Stock *stock);
|
||||
|
||||
@@int @stock_add_image (Stock *stock, Image *image);
|
||||
|
||||
@@void @stock_remove_image (Stock *stock, Image *image);
|
||||
|
||||
@@void @stock_replace_image (Stock *stock, int index, Image *image);
|
||||
|
||||
@@Image *@stock_get_image (Stock *stock, int index);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Undo
|
||||
|
||||
@@Undo *@undo_new (Sprite *sprite);
|
||||
|
||||
@@void @undo_free (Undo *undo);
|
||||
|
||||
@@void @undo_enable (Undo *undo);
|
||||
|
||||
@@void @undo_disable (Undo *undo);
|
||||
|
||||
@@bool @undo_is_enabled (Undo *undo);
|
||||
|
||||
@@bool @undo_is_disabled (Undo *undo);
|
||||
|
||||
@@bool @undo_can_undo (Undo *undo);
|
||||
|
||||
@@bool @undo_can_redo (Undo *undo);
|
||||
|
||||
@@void @undo_undo (Undo *undo);
|
||||
|
||||
@@void @undo_redo (Undo *undo);
|
||||
|
||||
@@void @undo_open (Undo *undo);
|
||||
|
||||
@@void @undo_close (Undo *undo);
|
||||
|
||||
@@void @undo_image (Undo *undo, Image *image, int x, int y, int w, int h);
|
||||
|
||||
@\void @undo_flip (Undo *undo, Image *image, int x1, int y1, int x2, int y2,
|
||||
@@ int horz);
|
||||
|
||||
@@void @undo_add_image (Undo *undo, Stock *stock, Image *image);
|
||||
|
||||
@@void @undo_remove_image (Undo *undo, Stock *stock, Image *image);
|
||||
|
||||
@@void @undo_replace_image (Undo *undo, Stock *stock, int index);
|
||||
|
||||
@@void @undo_add_frame (Undo *undo, Layer *layer, Frame *frame);
|
||||
|
||||
@@void @undo_remove_frame (Undo *undo, Layer *layer, Frame *frame);
|
||||
|
||||
@@void @undo_add_layer (Undo *undo, Layer *set, Layer *layer);
|
||||
|
||||
@@void @undo_remove_layer (Undo *undo, Layer *layer);
|
||||
|
||||
@@void @undo_move_layer (Undo *undo, Layer *layer);
|
||||
|
||||
@@void @undo_set_layer (Undo *undo, Sprite *sprite);
|
||||
|
||||
@@void @undo_set_mask (Undo *undo, Sprite *sprite);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Effect
|
||||
|
||||
@@Effect *@effect_new (Sprite *sprite, const char *name);
|
||||
|
||||
@@void @effect_free (Effect *effect);
|
||||
|
||||
@@void @effect_load_target (Effect *effect);
|
||||
|
||||
@@void @effect_set_target (Effect *effect, bool r, bool g, bool b, bool k, bool a, bool index);
|
||||
|
||||
@@void @effect_set_target_rgb (Effect *effect, bool r, bool g, bool b, bool a);
|
||||
|
||||
@@void @effect_set_target_grayscale (Effect *effect, bool k, bool a);
|
||||
|
||||
@@void @effect_set_target_indexed (Effect *effect, bool r, bool g, bool b, bool index);
|
||||
|
||||
@@void @effect_begin (Effect *effect);
|
||||
|
||||
@@void @effect_begin_for_preview (Effect *effect);
|
||||
|
||||
@@int @effect_apply_step (Effect *effect);
|
||||
|
||||
@@void @effect_apply (Effect *effect);
|
||||
|
||||
@@void @effect_flush (Effect *effect);
|
||||
|
||||
@@void @effect_apply_to_image (Effect *effect, Image *image, int x, int y);
|
||||
|
||||
@@void @effect_apply_to_target (Effect *effect);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
ConvMatr
|
||||
|
||||
@@ConvMatr *@convmatr_new (int w, int h);
|
||||
|
||||
@@ConvMatr *@convmatr_new_string (const char *format);
|
||||
|
||||
@@void @convmatr_free (ConvMatr *convmatr);
|
||||
|
||||
@hnode Convolution Matrix Effect
|
||||
|
||||
@@void @set_convmatr (ConvMatr *convmatr);
|
||||
|
||||
@@ConvMatr *@get_convmatr (void);
|
||||
|
||||
@@ConvMatr *@get_convmatr_by_name (const char *name);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
Curve
|
||||
|
||||
Curve is a type to represent a function y=f(x). It's mainly used in
|
||||
color-curve effect.
|
||||
|
||||
@@Curve *@curve_new (int type);
|
||||
Creates a new curve, type can be CURVE_LINEAR or CURVE_SPLINE.
|
||||
|
||||
@@void @curve_free (Curve *curve);
|
||||
|
||||
@@void @curve_add_point (Curve *curve, CurvePoint *point);
|
||||
|
||||
@@void @curve_remove_point (Curve *curve, CurvePoint *point);
|
||||
|
||||
@hnode Color Curve Effect
|
||||
|
||||
@@void @set_color_curve (Curve *curve);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
CurvePoint
|
||||
|
||||
@@CurvePoint *@curve_point_new (int x, int y);
|
||||
|
||||
@@void @curve_point_free (CurvePoint *point);
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
JEvent
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
JList
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
JRect
|
||||
|
||||
@hnode JRect fields
|
||||
<ul><li>
|
||||
[number] rect.x<br>
|
||||
[number] rect.y<br>
|
||||
Position of the upper-left corner of the rectangle.
|
||||
<li>
|
||||
[number] rect.w<br>
|
||||
[number] rect.h<br>
|
||||
Size of the rectangle (width and height).
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
JRegion
|
||||
|
||||
|
||||
|
||||
@heading
|
||||
JWidget
|
||||
|
||||
|
||||
|
||||
@!text
|
||||
@$@ifinfo
|
||||
@headingnocontent
|
||||
Index
|
||||
|
||||
@index
|
||||
@$@end ifinfo
|
||||
|
||||
@$@contents
|
||||
@$@bye
|
||||
|
||||
@text
|
@ -95,7 +95,6 @@ VPATH = src \
|
||||
src/modules \
|
||||
src/raster \
|
||||
src/raster/x86 \
|
||||
src/script \
|
||||
src/util \
|
||||
src/widgets \
|
||||
src/widgets/editor \
|
||||
|
@ -182,13 +182,13 @@ COMMON_SOURCES = \
|
||||
src/raster/sprite.c \
|
||||
src/raster/stock.c \
|
||||
src/raster/undo.c \
|
||||
src/script/functions.c \
|
||||
src/util/autocrop.c \
|
||||
src/util/boundary.c \
|
||||
src/util/celmove.c \
|
||||
src/util/clipbrd.c \
|
||||
src/util/col_file.c \
|
||||
src/util/filetoks.c \
|
||||
src/util/functions.c \
|
||||
src/util/hash.c \
|
||||
src/util/misc.c \
|
||||
src/util/msk_file.c \
|
||||
@ -199,7 +199,7 @@ COMMON_SOURCES = \
|
||||
src/util/thmbnail.c \
|
||||
src/widgets/colbar.c \
|
||||
src/widgets/colbut.c \
|
||||
src/widgets/colsel2.c \
|
||||
src/widgets/colsel.c \
|
||||
src/widgets/colview.c \
|
||||
src/widgets/curvedit.c \
|
||||
src/widgets/editor/click.c \
|
||||
|
@ -27,7 +27,6 @@ $GCC $CFLAGS \
|
||||
src/jinete/*.c \
|
||||
src/modules/*.c \
|
||||
src/raster/*.c \
|
||||
src/script/*.c \
|
||||
src/util/*.c \
|
||||
src/widgets/*.c \
|
||||
src/widgets/editor/*.c \
|
||||
|
@ -1,7 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
find data/scripts src third_party \
|
||||
\( -name '*.[ch]' -o \
|
||||
-name '*.lua' \) -print | \
|
||||
find src third_party \
|
||||
\( -name '*.[ch]' \) -print | \
|
||||
sed -e "/_old/D" | \
|
||||
etags -
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "raster/layer.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_background_from_layer_enabled(const char *argument)
|
||||
{
|
||||
|
@ -26,8 +26,8 @@
|
||||
#include "raster/mask.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/autocrop.h"
|
||||
#include "util/functions.h"
|
||||
#include "util/misc.h"
|
||||
|
||||
/* ======================== */
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/undo.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_flatten_layers_enabled(const char *argument)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "raster/layer.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_layer_from_background_enabled(const char *argument)
|
||||
{
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "raster/image.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
#include "util/misc.h"
|
||||
#include "widgets/colbar.h"
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/stock.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
#include "widgets/statebar.h"
|
||||
|
||||
static bool cmd_new_frame_enabled(const char *argument)
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "raster/layer.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_new_layer_enabled(const char *argument)
|
||||
{
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/layer.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_new_layer_set_enabled(const char *argument)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "raster/layer.h"
|
||||
#include "raster/undo.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_remove_cel_enabled(const char *argument)
|
||||
{
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "raster/layer.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_remove_frame_enabled(const char *argument)
|
||||
{
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
static bool cmd_remove_layer_enabled(const char *argument)
|
||||
{
|
||||
|
@ -34,8 +34,8 @@
|
||||
#include "modules/rootmenu.h"
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/raster.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/celmove.h"
|
||||
#include "util/functions.h"
|
||||
#include "util/thmbnail.h"
|
||||
|
||||
/*
|
||||
|
@ -21,8 +21,8 @@
|
||||
#include "raster/image.h"
|
||||
#include "raster/mask.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/autocrop.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
void autocrop_sprite(Sprite *sprite)
|
||||
{
|
||||
|
@ -34,8 +34,8 @@
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/stock.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/celmove.h"
|
||||
#include "util/functions.h"
|
||||
|
||||
/* these variables indicate what cel to move (and the current_sprite
|
||||
frame indicates to where move it) */
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "modules/gui.h"
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/raster.h"
|
||||
#include "script/functions.h"
|
||||
#include "util/functions.h"
|
||||
#include "util/misc.h"
|
||||
#include "widgets/colbar.h"
|
||||
|
@ -36,8 +36,8 @@
|
||||
#include "modules/palettes.h"
|
||||
#include "modules/sprites.h"
|
||||
#include "raster/raster.h"
|
||||
#include "util/functions.h"
|
||||
#include "util/misc.h"
|
||||
#include "script/functions.h"
|
||||
#include "widgets/editor.h"
|
||||
#include "widgets/statebar.h"
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/undo.h"
|
||||
#include "widgets/colbar.h"
|
||||
#include "widgets/colsel2.h"
|
||||
#include "widgets/colsel.h"
|
||||
#include "widgets/paledit.h"
|
||||
#include "widgets/statebar.h"
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "raster/sprite.h"
|
||||
#include "widgets/colbar.h"
|
||||
#include "widgets/colbut.h"
|
||||
#include "widgets/colsel2.h"
|
||||
#include "widgets/colsel.h"
|
||||
#include "widgets/editor.h"
|
||||
|
||||
typedef struct ColorButton
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "modules/palettes.h"
|
||||
#include "raster/image.h"
|
||||
#include "raster/palette.h"
|
||||
#include "widgets/colsel2.h"
|
||||
#include "widgets/colsel.h"
|
||||
#include "widgets/paledit.h"
|
||||
#include "widgets/tabs.h"
|
||||
|
@ -16,8 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef WIDGETS_COLSEL2_H
|
||||
#define WIDGETS_COLSEL2_H
|
||||
#ifndef WIDGETS_COLSEL_H
|
||||
#define WIDGETS_COLSEL_H
|
||||
|
||||
#include "jinete/jbase.h"
|
||||
|
||||
@ -33,4 +33,4 @@ color_t colorselector_get_color(JWidget widget);
|
||||
|
||||
JWidget colorselector_get_paledit(JWidget widget);
|
||||
|
||||
#endif /* WIDGETS_COLSEL2_H */
|
||||
#endif /* WIDGETS_COLSEL_H */
|
@ -7,7 +7,7 @@ Sprite's Editor
|
||||
|
||||
cursor.c
|
||||
Drawing-cursor routines: To control draw/clean the drawing cursor
|
||||
(that cursor that is inside the editor).
|
||||
(the cursor that is inside the editor).
|
||||
|
||||
editor.c
|
||||
The sprite's editor widget.
|
||||
|
@ -492,7 +492,7 @@ static bool fileview_msg_proc(JWidget widget, JMessage msg)
|
||||
JLink link = jlist_nth_link(fileview->list,
|
||||
(select >= 0) ? select: 0);
|
||||
|
||||
for (i=select; i<=bottom; ++i, link=link->next) {
|
||||
for (i=MAX(select, 0); i<=bottom; ++i, link=link->next) {
|
||||
FileItem *fi = link->data;
|
||||
if (ustrnicmp(fileitem_get_displayname(fi),
|
||||
fileview->isearch,
|
||||
|
Loading…
x
Reference in New Issue
Block a user