• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

examples/H03-May-2022-420340

src/H25-Jun-2003-2,7432,208

AUTHORSH A D12-Jun-200333 21

COPYINGH A D03-Apr-200317.6 KiB341281

ChangeLogH A D25-Jun-20032 KiB7042

INSTALLH A D03-Apr-20039 KiB230175

Makefile.amH A D12-Jun-200322 11

Makefile.inH A D03-May-202215.7 KiB503422

READMEH A D25-Jun-20037.8 KiB284204

TODOH A D12-Jun-2003155 53

aclocal.m4H A D25-Jun-200332.7 KiB911764

config.h.inH A D25-Jun-2003471 1711

configureH A D25-Jun-2003124.9 KiB4,1323,320

configure.acH A D25-Jun-2003660 3526

depcompH A D03-Apr-200313 KiB465298

install-shH A D03-Apr-20036.2 KiB277169

missingH A D03-Apr-200310 KiB337263

mkinstalldirsH A D03-Apr-20031.9 KiB11285

README

1Introduction
2============
3
4icon-slicer is a utility for generating icon themes and libXcursor
5cursor themes.
6
7The inputs to icon-slicer are conceptually:
8
9 A) A set of multi-layer images, one for each size.
10 B) A XML theme description file
11
12Each image contains all the cursors arranged in a grid; For
13cursors the layers are:
14
15 - A layer with a dot for the hotspot of each cursor
16 - The main image or first animation frame for multi-frame
17   animated cursors
18 - The second animation frame for multi-frame animated cursors
19 - ...
20
21For icons, the layers are:
22
23 - A layer with the images
24 - An optional layer with attachment points for emblems
25 - An optional layer with boxes for embedding text into
26   icons.
27
28In practice, since loading of multilayer images is not supported by
29standard image libraries, each layer is input as a separate image
30file.
31
32The theme description file contains, among other things, information about
33the source  images to read, the location of each named cursor or icon
34within the grid, and a set of aliases from names to other names.
35
36
37Installation
38============
39
40icon-slicer requires GTK+-2.0 or newer for the gdk-pixbuf image
41manipulation library. It probably is already on your system; if not,
42it is available from ftp://ftp.gtk.org. It also requires the
43popt library from the RPM distribution. (Should be commonly
44available on most Linux distributions, even if they don't use RPM.)
45
46Once you have those installed, building icon-slicer is a simple
47./configure ; make ; make install. If you installed GTK+ in a
48non-standard location, say /opt/gtk, then you will need to set
49PKG_CONFIG_PATH to include /opt/gtk/lib/pkgconfig.
50
51
52Invocation
53==========
54
55icon-slicer takes some number of theme description files as input,
56along with options:
57
58  --output-dir=DIRECTORY
59    The directory into which to write output. Mandatory.
60
61  --image-dir=DIRECTORY
62    The directory in which to find source images. If not
63    specified, the current working directory is used.
64
65
66Theme file format
67=================
68
69The tags in the Theme file format are:
70
71<theme>: The toplevel element. There must be
72  exactly one of these.
73
74  Attributes:
75    name: The name of the theme. Required.
76
77    typedir: default type portion of output directory for icons
78      in this theme.
79
80  Child elements:
81    <alias>, <layout>, <source>
82
83<alias>: The alias element defines an alias of  one cursor name to
84  another cursor or of one icon name to an another icon. An icon
85  alias can also have a display name associated which overrides the
86  display name of the target alias.
87
88  Attributes:
89   name: The name of the alias. Required.
90   target: The name cursor (or alias) to which the
91      alias points. Required.
92    typedir: type portion of output directory. Optional
93
94  Child elements:
95    DisplayName
96
97<source>: Defines a multilayer source
98
99 Attributes:
100    size: The nominal size of the cursors in the
101      this source. This is used when selecting a
102      cursor. Required.
103
104    sizedir: size portion of output directory name for
105      icons. Optional.
106
107    gridsize: The size of the grid used for this
108      source. Defaults to the same as 'size'.
109      Optional.
110
111    margin: border around the entire source outside of
112     all grid cells. Optional.
113
114    spacing: spacing between the cells of the grid. Optional.
115
116 Child elements:
117    <image>
118
119<image>: One layer in a multilayer source
120
121  Attributes:
122    file: The filename to get the image from. Required.
123    use: Either an integer indicating what animation
124     frame this is (0, 1, ...) or "hotspot" to
125     indicate that this frame contains hotspots. If not
126     present, the same as giving '0'
127
128  Child elements:
129    None
130
131<layout>: Defines the layout of cursors or icons within the grid.
132
133  Attributes:
134    None
135
136  Child elements:
137    <row>
138
139<row>: Defines one row of cursors or icons within the grid
140
141  Attributes:
142    None
143
144  Child elements:
145    <cursor>
146    <icon>
147
148<cursor>: Defines a single cursor. If there are no
149  child <frame> elements, it is assumed to be a non-animated
150  cursor with a single frame in it. Otherwise, one
151  or more frames is specified with child <frame> elements.
152
153  Attributes:
154    name: The name of the cursor. Required.
155
156  Child elements:
157    <frame>
158
159<frame>: Defines one frame of a multiframe cursor.
160
161  Attributes:
162    delay: The delay before the next frame is shown in
163    milliseconds. Optional. (If you don't specify the delays
164    for a multiframe animation, the result is undefined.)
165
166  Child elements:
167    None
168
169<icon>: Defines a single icon.
170
171  Attributes:
172    name: The name of the icon. Required.
173
174    typedir: type portion of output directory. Optional
175
176  Child elements:
177    displayname
178
179<displayname>: Defines a possibly translated display name
180   for an icon or an alias.
181
182  Attributes:
183    str: The untranslated value of the display name
184
185  Child elements:
186    locale
187
188<locale>: Defines one translated value for a <displayname> element
189
190  Attributes:
191    lang: Language for which this is a translation
192    str: The translated value of the display name
193
194  Child elements:
195    None
196
197Note that icon-slicer doesn't actually use a full XML parser, but
198the XML-subset GMarkup parser from GLib, so some less common XML
199constructs may not work.
200
201
202Note about icon output location
203===============================
204
205Cursors are always output in [outputdir]/cursors; for icons
206and icon aliases, it's a bit more complicated.
207
208Define [sizedir] to be the 'sizedir' attribute of
209the applicable <source> element, if any. [typedir] to be
210the 'typedir' attribute of the icon or alias, if any,
211or the 'typedir' attribute specified for the <theme>
212element if not specified for the icon or alias. Then
213the output directory is:
214
215 [outputdir]/[sizedir]/[typedir]
216
217Where either sizedir or typedir is allowed to be empty,
218but not both.
219
220
221Makefile example
222================
223
224Makefile rules for generating and installing a theme look like:
225
226sample_sources =				\
227	sample.cursortheme			\
228	sample-cursors-24-1.png			\
229	sample-cursors-24-hotspot.png		\
230	sample.icontheme			\
231	sample-icons-24.png			\
232	sample-icons-16.png
233
234Sample.stamp: $(sample_sources) $(icon_slicer)
235	rm -rf Sample					\
236	&& mkdir Sample					\
237	&& icon_slicer					\
238		--output-dir=Sample			\
239		--image-dir=$(srcdir) 			\
240		$(srcdir)/sample.cursortheme 		\
241		$(srcdir)/sample.icontheme		\
242	&& touch Sample.stamp
243
244install:
245	rm -rf $(datadir)/icons/Sample
246	dirs=`find Sample -type d -print` ; \
247	for d in $$dirs ; do                \
248	  mkdir -p $(datadir)/icons/$$d ;   \
249        done
250	files=`find Sample -type f -print` ;         \
251	for f in $$files ; do                        \
252	  install -m 0644 $$f $(datadir)/icons/$$f ; \
253        done
254	links=`find Sample -type l -print` ; \
255	for l in $$links ; do                \
256	  cp -d $$l $(datadir)/icons/$$l ;   \
257        done
258
259uninstall:
260	rm -rf $(datadir)/icons/Sample
261
262License
263=======
264
265Copyright © 2003 Red Hat, Inc.
266
267Permission to use, copy, modify, distribute, and sell this software and its
268documentation for any purpose is hereby granted without fee, provided that
269the above copyright notice appear in all copies and that both that
270copyright notice and this permission notice appear in supporting
271documentation, and that the name of Red Hat not be used in advertising or
272publicity pertaining to distribution of the software without specific,
273written prior permission.  Red Hat makes no representations about the
274suitability of this software for any purpose.  It is provided "as is"
275without express or implied warranty.
276
277RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
278IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
279BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
280WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
281OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
282CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
283
284