Merge lp:~nathive-dev/nathive/0.870_experimental into lp:nathive

Proposed by Marcos Diaz
Status: Merged
Approved by: Marcos Diaz
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~nathive-dev/nathive/0.870_experimental
Merge into: lp:nathive
Diff against target: 11123 lines (+5370/-5124)
113 files modified
AUTHORS (+25/-0)
COPYING (+0/-674)
LICENSE (+674/-0)
LICENSE-BRIEF (+5/-0)
Makefile (+0/-12)
README (+80/-0)
TODO (+35/-0)
VERSION (+5/-0)
cfg/cfg.xml (+0/-21)
cfg/default.cfg (+23/-0)
gb/brush.c (+0/-33)
gb/dialog-new.c (+0/-46)
gb/global.c (+0/-64)
gui/colorbar.c (+0/-48)
gui/gui-main.c (+0/-65)
gui/headbar.c (+0/-48)
gui/menubar.c (+0/-52)
gui/sidebar-brush.c (+0/-102)
gui/sidebar-color.c (+0/-47)
gui/sidebar-mask.c (+0/-27)
gui/sidebar-object.c (+0/-68)
gui/sidebar-picker.c (+0/-27)
gui/sidebar-select.c (+0/-27)
gui/sidebar.c (+0/-50)
gui/tabs.c (+0/-22)
gui/toolbar.c (+0/-42)
lang/chinese.xml (+0/-59)
lang/english.xml (+0/-59)
lang/german.xml (+0/-59)
lang/hungarian.xml (+0/-58)
lang/polish.xml (+0/-59)
lang/spanish.xml (+0/-59)
lib/cfg.c (+0/-40)
lib/common.c (+0/-111)
lib/dom.c (+0/-159)
lib/gui/call.c (+0/-105)
lib/gui/clear.c (+0/-46)
lib/gui/color.c (+0/-165)
lib/gui/cursor.c (+0/-42)
lib/gui/dialog.c (+0/-521)
lib/gui/entry.c (+0/-281)
lib/gui/event.c (+0/-61)
lib/gui/menu.c (+0/-29)
lib/gui/misc.c (+0/-69)
lib/gui/object.c (+0/-210)
lib/gui/other.c (+0/-67)
lib/gui/scroll.c (+0/-55)
lib/gui/statusbar.c (+0/-66)
lib/gui/tab.c (+0/-193)
lib/itoa.c (+0/-38)
lib/language.c (+0/-45)
lib/n-tree.c (+0/-165)
lib/n-xml.c (+0/-36)
lib/over.c (+0/-79)
lib/pixel.c (+0/-22)
lib/rgbhex.c (+0/-72)
lib/rgbhsv.c (+0/-78)
lib/unit.c (+0/-47)
makefile (+125/-0)
nathive.c (+0/-132)
nathive.desktop (+12/-0)
nathive.py (+86/-0)
nathive.sh (+2/-0)
nathive/gui/canvas.py (+102/-0)
nathive/gui/colorbar.py (+82/-0)
nathive/gui/headbar.py (+52/-0)
nathive/gui/main.py (+93/-0)
nathive/gui/menu.py (+52/-0)
nathive/gui/multiwidget.py (+195/-0)
nathive/gui/open.py (+83/-0)
nathive/gui/sidebar.py (+72/-0)
nathive/gui/sidebar_color.py (+114/-0)
nathive/gui/statusbar.py (+32/-0)
nathive/gui/tabs.py (+120/-0)
nathive/gui/toolbar.py (+95/-0)
nathive/gui/utils.py (+44/-0)
nathive/lib/color.py (+105/-0)
nathive/lib/config.py (+65/-0)
nathive/lib/convert.py (+75/-0)
nathive/lib/document.py (+55/-0)
nathive/lib/documents.py (+78/-0)
nathive/lib/mygettext.py (+79/-0)
nathive/lib/plugs.py (+43/-0)
nathive/libc/core.c (+217/-0)
nathive/plugins/brush.py (+173/-0)
nathive/plugins/libc/brush.c (+182/-0)
nathive/plugins/open.py (+31/-0)
nathive/plugins/picker.py (+39/-0)
nathive/plugins/select.py (+39/-0)
palettes/01.xml (+0/-62)
palettes/02.xml (+0/-52)
palettes/default.pal (+45/-0)
po/de.po (+176/-0)
po/es.po (+176/-0)
po/fr.po (+176/-0)
po/hu.po (+176/-0)
po/it.po (+176/-0)
po/pl.po (+176/-0)
po/pt.po (+176/-0)
po/se.po (+176/-0)
po/zh_CN.po (+176/-0)
text/credits (+0/-16)
text/license (+0/-5)
tool/brush.c (+0/-155)
tool/picker.c (+0/-31)
tool/select.c (+0/-41)
utils/debbuild.py (+77/-0)
utils/debdata (+12/-0)
utils/extbuild.py (+56/-0)
utils/indenter.py (+80/-0)
utils/makeplugs.py (+32/-0)
utils/rpmbuild.py (+78/-0)
utils/rpmdata (+17/-0)
To merge this branch: bzr merge lp:~nathive-dev/nathive/0.870_experimental
Reviewer Review Type Date Requested Status
Marcos Diaz Pending
Review via email: mp+16072@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'AUTHORS'
2--- AUTHORS 1970-01-01 00:00:00 +0000
3+++ AUTHORS 2009-12-12 11:55:22 +0000
4@@ -0,0 +1,25 @@
5+CODE:
6+Marcos Díaz Mencía <markos@nathive.org>
7+Christopher Grebs <cg@webshox.org>
8+Sören Wegener <soerenwegener@t-online.de>
9+
10+TRANSLATIONS:
11+Dariusz Jakoniuk <pipaceliny@gmail.com>
12+Marco Neumann <marco_neu_@arcor.de>
13+Zoltan Hoppar <hopparz@gmail.com>
14+Xu Xiaodong <xxdlhy@gmail.com>
15+Nafergo Nafergo <nafergo@gmail.com>
16+David Sagnol <david.sagnol@wanadoo.fr>
17+Cristiano Vitorino <contatocristianovitorino@gmail.com>
18+Daniel Nylander <po@danielnylander.se>
19+Angelo Gemmi <angelo.gemmi@irk.ca>
20+
21+ART:
22+Ana del Cerro <anadebian@gmail.com>
23+
24+THANKS TO:
25+Free Software Foundation <http://www.fsf.org>
26+GTK+ team <http://www.gtk.org>
27+Python Software Foundation <http://www.python.org/>
28+PyGTK team <http://www.pygtk.org>
29+You, for being libre.
30
31=== removed file 'COPYING'
32--- COPYING 2008-11-26 01:33:49 +0000
33+++ COPYING 1970-01-01 00:00:00 +0000
34@@ -1,674 +0,0 @@
35- GNU GENERAL PUBLIC LICENSE
36- Version 3, 29 June 2007
37-
38- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
39- Everyone is permitted to copy and distribute verbatim copies
40- of this license document, but changing it is not allowed.
41-
42- Preamble
43-
44- The GNU General Public License is a free, copyleft license for
45-software and other kinds of works.
46-
47- The licenses for most software and other practical works are designed
48-to take away your freedom to share and change the works. By contrast,
49-the GNU General Public License is intended to guarantee your freedom to
50-share and change all versions of a program--to make sure it remains free
51-software for all its users. We, the Free Software Foundation, use the
52-GNU General Public License for most of our software; it applies also to
53-any other work released this way by its authors. You can apply it to
54-your programs, too.
55-
56- When we speak of free software, we are referring to freedom, not
57-price. Our General Public Licenses are designed to make sure that you
58-have the freedom to distribute copies of free software (and charge for
59-them if you wish), that you receive source code or can get it if you
60-want it, that you can change the software or use pieces of it in new
61-free programs, and that you know you can do these things.
62-
63- To protect your rights, we need to prevent others from denying you
64-these rights or asking you to surrender the rights. Therefore, you have
65-certain responsibilities if you distribute copies of the software, or if
66-you modify it: responsibilities to respect the freedom of others.
67-
68- For example, if you distribute copies of such a program, whether
69-gratis or for a fee, you must pass on to the recipients the same
70-freedoms that you received. You must make sure that they, too, receive
71-or can get the source code. And you must show them these terms so they
72-know their rights.
73-
74- Developers that use the GNU GPL protect your rights with two steps:
75-(1) assert copyright on the software, and (2) offer you this License
76-giving you legal permission to copy, distribute and/or modify it.
77-
78- For the developers' and authors' protection, the GPL clearly explains
79-that there is no warranty for this free software. For both users' and
80-authors' sake, the GPL requires that modified versions be marked as
81-changed, so that their problems will not be attributed erroneously to
82-authors of previous versions.
83-
84- Some devices are designed to deny users access to install or run
85-modified versions of the software inside them, although the manufacturer
86-can do so. This is fundamentally incompatible with the aim of
87-protecting users' freedom to change the software. The systematic
88-pattern of such abuse occurs in the area of products for individuals to
89-use, which is precisely where it is most unacceptable. Therefore, we
90-have designed this version of the GPL to prohibit the practice for those
91-products. If such problems arise substantially in other domains, we
92-stand ready to extend this provision to those domains in future versions
93-of the GPL, as needed to protect the freedom of users.
94-
95- Finally, every program is threatened constantly by software patents.
96-States should not allow patents to restrict development and use of
97-software on general-purpose computers, but in those that do, we wish to
98-avoid the special danger that patents applied to a free program could
99-make it effectively proprietary. To prevent this, the GPL assures that
100-patents cannot be used to render the program non-free.
101-
102- The precise terms and conditions for copying, distribution and
103-modification follow.
104-
105- TERMS AND CONDITIONS
106-
107- 0. Definitions.
108-
109- "This License" refers to version 3 of the GNU General Public License.
110-
111- "Copyright" also means copyright-like laws that apply to other kinds of
112-works, such as semiconductor masks.
113-
114- "The Program" refers to any copyrightable work licensed under this
115-License. Each licensee is addressed as "you". "Licensees" and
116-"recipients" may be individuals or organizations.
117-
118- To "modify" a work means to copy from or adapt all or part of the work
119-in a fashion requiring copyright permission, other than the making of an
120-exact copy. The resulting work is called a "modified version" of the
121-earlier work or a work "based on" the earlier work.
122-
123- A "covered work" means either the unmodified Program or a work based
124-on the Program.
125-
126- To "propagate" a work means to do anything with it that, without
127-permission, would make you directly or secondarily liable for
128-infringement under applicable copyright law, except executing it on a
129-computer or modifying a private copy. Propagation includes copying,
130-distribution (with or without modification), making available to the
131-public, and in some countries other activities as well.
132-
133- To "convey" a work means any kind of propagation that enables other
134-parties to make or receive copies. Mere interaction with a user through
135-a computer network, with no transfer of a copy, is not conveying.
136-
137- An interactive user interface displays "Appropriate Legal Notices"
138-to the extent that it includes a convenient and prominently visible
139-feature that (1) displays an appropriate copyright notice, and (2)
140-tells the user that there is no warranty for the work (except to the
141-extent that warranties are provided), that licensees may convey the
142-work under this License, and how to view a copy of this License. If
143-the interface presents a list of user commands or options, such as a
144-menu, a prominent item in the list meets this criterion.
145-
146- 1. Source Code.
147-
148- The "source code" for a work means the preferred form of the work
149-for making modifications to it. "Object code" means any non-source
150-form of a work.
151-
152- A "Standard Interface" means an interface that either is an official
153-standard defined by a recognized standards body, or, in the case of
154-interfaces specified for a particular programming language, one that
155-is widely used among developers working in that language.
156-
157- The "System Libraries" of an executable work include anything, other
158-than the work as a whole, that (a) is included in the normal form of
159-packaging a Major Component, but which is not part of that Major
160-Component, and (b) serves only to enable use of the work with that
161-Major Component, or to implement a Standard Interface for which an
162-implementation is available to the public in source code form. A
163-"Major Component", in this context, means a major essential component
164-(kernel, window system, and so on) of the specific operating system
165-(if any) on which the executable work runs, or a compiler used to
166-produce the work, or an object code interpreter used to run it.
167-
168- The "Corresponding Source" for a work in object code form means all
169-the source code needed to generate, install, and (for an executable
170-work) run the object code and to modify the work, including scripts to
171-control those activities. However, it does not include the work's
172-System Libraries, or general-purpose tools or generally available free
173-programs which are used unmodified in performing those activities but
174-which are not part of the work. For example, Corresponding Source
175-includes interface definition files associated with source files for
176-the work, and the source code for shared libraries and dynamically
177-linked subprograms that the work is specifically designed to require,
178-such as by intimate data communication or control flow between those
179-subprograms and other parts of the work.
180-
181- The Corresponding Source need not include anything that users
182-can regenerate automatically from other parts of the Corresponding
183-Source.
184-
185- The Corresponding Source for a work in source code form is that
186-same work.
187-
188- 2. Basic Permissions.
189-
190- All rights granted under this License are granted for the term of
191-copyright on the Program, and are irrevocable provided the stated
192-conditions are met. This License explicitly affirms your unlimited
193-permission to run the unmodified Program. The output from running a
194-covered work is covered by this License only if the output, given its
195-content, constitutes a covered work. This License acknowledges your
196-rights of fair use or other equivalent, as provided by copyright law.
197-
198- You may make, run and propagate covered works that you do not
199-convey, without conditions so long as your license otherwise remains
200-in force. You may convey covered works to others for the sole purpose
201-of having them make modifications exclusively for you, or provide you
202-with facilities for running those works, provided that you comply with
203-the terms of this License in conveying all material for which you do
204-not control copyright. Those thus making or running the covered works
205-for you must do so exclusively on your behalf, under your direction
206-and control, on terms that prohibit them from making any copies of
207-your copyrighted material outside their relationship with you.
208-
209- Conveying under any other circumstances is permitted solely under
210-the conditions stated below. Sublicensing is not allowed; section 10
211-makes it unnecessary.
212-
213- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
214-
215- No covered work shall be deemed part of an effective technological
216-measure under any applicable law fulfilling obligations under article
217-11 of the WIPO copyright treaty adopted on 20 December 1996, or
218-similar laws prohibiting or restricting circumvention of such
219-measures.
220-
221- When you convey a covered work, you waive any legal power to forbid
222-circumvention of technological measures to the extent such circumvention
223-is effected by exercising rights under this License with respect to
224-the covered work, and you disclaim any intention to limit operation or
225-modification of the work as a means of enforcing, against the work's
226-users, your or third parties' legal rights to forbid circumvention of
227-technological measures.
228-
229- 4. Conveying Verbatim Copies.
230-
231- You may convey verbatim copies of the Program's source code as you
232-receive it, in any medium, provided that you conspicuously and
233-appropriately publish on each copy an appropriate copyright notice;
234-keep intact all notices stating that this License and any
235-non-permissive terms added in accord with section 7 apply to the code;
236-keep intact all notices of the absence of any warranty; and give all
237-recipients a copy of this License along with the Program.
238-
239- You may charge any price or no price for each copy that you convey,
240-and you may offer support or warranty protection for a fee.
241-
242- 5. Conveying Modified Source Versions.
243-
244- You may convey a work based on the Program, or the modifications to
245-produce it from the Program, in the form of source code under the
246-terms of section 4, provided that you also meet all of these conditions:
247-
248- a) The work must carry prominent notices stating that you modified
249- it, and giving a relevant date.
250-
251- b) The work must carry prominent notices stating that it is
252- released under this License and any conditions added under section
253- 7. This requirement modifies the requirement in section 4 to
254- "keep intact all notices".
255-
256- c) You must license the entire work, as a whole, under this
257- License to anyone who comes into possession of a copy. This
258- License will therefore apply, along with any applicable section 7
259- additional terms, to the whole of the work, and all its parts,
260- regardless of how they are packaged. This License gives no
261- permission to license the work in any other way, but it does not
262- invalidate such permission if you have separately received it.
263-
264- d) If the work has interactive user interfaces, each must display
265- Appropriate Legal Notices; however, if the Program has interactive
266- interfaces that do not display Appropriate Legal Notices, your
267- work need not make them do so.
268-
269- A compilation of a covered work with other separate and independent
270-works, which are not by their nature extensions of the covered work,
271-and which are not combined with it such as to form a larger program,
272-in or on a volume of a storage or distribution medium, is called an
273-"aggregate" if the compilation and its resulting copyright are not
274-used to limit the access or legal rights of the compilation's users
275-beyond what the individual works permit. Inclusion of a covered work
276-in an aggregate does not cause this License to apply to the other
277-parts of the aggregate.
278-
279- 6. Conveying Non-Source Forms.
280-
281- You may convey a covered work in object code form under the terms
282-of sections 4 and 5, provided that you also convey the
283-machine-readable Corresponding Source under the terms of this License,
284-in one of these ways:
285-
286- a) Convey the object code in, or embodied in, a physical product
287- (including a physical distribution medium), accompanied by the
288- Corresponding Source fixed on a durable physical medium
289- customarily used for software interchange.
290-
291- b) Convey the object code in, or embodied in, a physical product
292- (including a physical distribution medium), accompanied by a
293- written offer, valid for at least three years and valid for as
294- long as you offer spare parts or customer support for that product
295- model, to give anyone who possesses the object code either (1) a
296- copy of the Corresponding Source for all the software in the
297- product that is covered by this License, on a durable physical
298- medium customarily used for software interchange, for a price no
299- more than your reasonable cost of physically performing this
300- conveying of source, or (2) access to copy the
301- Corresponding Source from a network server at no charge.
302-
303- c) Convey individual copies of the object code with a copy of the
304- written offer to provide the Corresponding Source. This
305- alternative is allowed only occasionally and noncommercially, and
306- only if you received the object code with such an offer, in accord
307- with subsection 6b.
308-
309- d) Convey the object code by offering access from a designated
310- place (gratis or for a charge), and offer equivalent access to the
311- Corresponding Source in the same way through the same place at no
312- further charge. You need not require recipients to copy the
313- Corresponding Source along with the object code. If the place to
314- copy the object code is a network server, the Corresponding Source
315- may be on a different server (operated by you or a third party)
316- that supports equivalent copying facilities, provided you maintain
317- clear directions next to the object code saying where to find the
318- Corresponding Source. Regardless of what server hosts the
319- Corresponding Source, you remain obligated to ensure that it is
320- available for as long as needed to satisfy these requirements.
321-
322- e) Convey the object code using peer-to-peer transmission, provided
323- you inform other peers where the object code and Corresponding
324- Source of the work are being offered to the general public at no
325- charge under subsection 6d.
326-
327- A separable portion of the object code, whose source code is excluded
328-from the Corresponding Source as a System Library, need not be
329-included in conveying the object code work.
330-
331- A "User Product" is either (1) a "consumer product", which means any
332-tangible personal property which is normally used for personal, family,
333-or household purposes, or (2) anything designed or sold for incorporation
334-into a dwelling. In determining whether a product is a consumer product,
335-doubtful cases shall be resolved in favor of coverage. For a particular
336-product received by a particular user, "normally used" refers to a
337-typical or common use of that class of product, regardless of the status
338-of the particular user or of the way in which the particular user
339-actually uses, or expects or is expected to use, the product. A product
340-is a consumer product regardless of whether the product has substantial
341-commercial, industrial or non-consumer uses, unless such uses represent
342-the only significant mode of use of the product.
343-
344- "Installation Information" for a User Product means any methods,
345-procedures, authorization keys, or other information required to install
346-and execute modified versions of a covered work in that User Product from
347-a modified version of its Corresponding Source. The information must
348-suffice to ensure that the continued functioning of the modified object
349-code is in no case prevented or interfered with solely because
350-modification has been made.
351-
352- If you convey an object code work under this section in, or with, or
353-specifically for use in, a User Product, and the conveying occurs as
354-part of a transaction in which the right of possession and use of the
355-User Product is transferred to the recipient in perpetuity or for a
356-fixed term (regardless of how the transaction is characterized), the
357-Corresponding Source conveyed under this section must be accompanied
358-by the Installation Information. But this requirement does not apply
359-if neither you nor any third party retains the ability to install
360-modified object code on the User Product (for example, the work has
361-been installed in ROM).
362-
363- The requirement to provide Installation Information does not include a
364-requirement to continue to provide support service, warranty, or updates
365-for a work that has been modified or installed by the recipient, or for
366-the User Product in which it has been modified or installed. Access to a
367-network may be denied when the modification itself materially and
368-adversely affects the operation of the network or violates the rules and
369-protocols for communication across the network.
370-
371- Corresponding Source conveyed, and Installation Information provided,
372-in accord with this section must be in a format that is publicly
373-documented (and with an implementation available to the public in
374-source code form), and must require no special password or key for
375-unpacking, reading or copying.
376-
377- 7. Additional Terms.
378-
379- "Additional permissions" are terms that supplement the terms of this
380-License by making exceptions from one or more of its conditions.
381-Additional permissions that are applicable to the entire Program shall
382-be treated as though they were included in this License, to the extent
383-that they are valid under applicable law. If additional permissions
384-apply only to part of the Program, that part may be used separately
385-under those permissions, but the entire Program remains governed by
386-this License without regard to the additional permissions.
387-
388- When you convey a copy of a covered work, you may at your option
389-remove any additional permissions from that copy, or from any part of
390-it. (Additional permissions may be written to require their own
391-removal in certain cases when you modify the work.) You may place
392-additional permissions on material, added by you to a covered work,
393-for which you have or can give appropriate copyright permission.
394-
395- Notwithstanding any other provision of this License, for material you
396-add to a covered work, you may (if authorized by the copyright holders of
397-that material) supplement the terms of this License with terms:
398-
399- a) Disclaiming warranty or limiting liability differently from the
400- terms of sections 15 and 16 of this License; or
401-
402- b) Requiring preservation of specified reasonable legal notices or
403- author attributions in that material or in the Appropriate Legal
404- Notices displayed by works containing it; or
405-
406- c) Prohibiting misrepresentation of the origin of that material, or
407- requiring that modified versions of such material be marked in
408- reasonable ways as different from the original version; or
409-
410- d) Limiting the use for publicity purposes of names of licensors or
411- authors of the material; or
412-
413- e) Declining to grant rights under trademark law for use of some
414- trade names, trademarks, or service marks; or
415-
416- f) Requiring indemnification of licensors and authors of that
417- material by anyone who conveys the material (or modified versions of
418- it) with contractual assumptions of liability to the recipient, for
419- any liability that these contractual assumptions directly impose on
420- those licensors and authors.
421-
422- All other non-permissive additional terms are considered "further
423-restrictions" within the meaning of section 10. If the Program as you
424-received it, or any part of it, contains a notice stating that it is
425-governed by this License along with a term that is a further
426-restriction, you may remove that term. If a license document contains
427-a further restriction but permits relicensing or conveying under this
428-License, you may add to a covered work material governed by the terms
429-of that license document, provided that the further restriction does
430-not survive such relicensing or conveying.
431-
432- If you add terms to a covered work in accord with this section, you
433-must place, in the relevant source files, a statement of the
434-additional terms that apply to those files, or a notice indicating
435-where to find the applicable terms.
436-
437- Additional terms, permissive or non-permissive, may be stated in the
438-form of a separately written license, or stated as exceptions;
439-the above requirements apply either way.
440-
441- 8. Termination.
442-
443- You may not propagate or modify a covered work except as expressly
444-provided under this License. Any attempt otherwise to propagate or
445-modify it is void, and will automatically terminate your rights under
446-this License (including any patent licenses granted under the third
447-paragraph of section 11).
448-
449- However, if you cease all violation of this License, then your
450-license from a particular copyright holder is reinstated (a)
451-provisionally, unless and until the copyright holder explicitly and
452-finally terminates your license, and (b) permanently, if the copyright
453-holder fails to notify you of the violation by some reasonable means
454-prior to 60 days after the cessation.
455-
456- Moreover, your license from a particular copyright holder is
457-reinstated permanently if the copyright holder notifies you of the
458-violation by some reasonable means, this is the first time you have
459-received notice of violation of this License (for any work) from that
460-copyright holder, and you cure the violation prior to 30 days after
461-your receipt of the notice.
462-
463- Termination of your rights under this section does not terminate the
464-licenses of parties who have received copies or rights from you under
465-this License. If your rights have been terminated and not permanently
466-reinstated, you do not qualify to receive new licenses for the same
467-material under section 10.
468-
469- 9. Acceptance Not Required for Having Copies.
470-
471- You are not required to accept this License in order to receive or
472-run a copy of the Program. Ancillary propagation of a covered work
473-occurring solely as a consequence of using peer-to-peer transmission
474-to receive a copy likewise does not require acceptance. However,
475-nothing other than this License grants you permission to propagate or
476-modify any covered work. These actions infringe copyright if you do
477-not accept this License. Therefore, by modifying or propagating a
478-covered work, you indicate your acceptance of this License to do so.
479-
480- 10. Automatic Licensing of Downstream Recipients.
481-
482- Each time you convey a covered work, the recipient automatically
483-receives a license from the original licensors, to run, modify and
484-propagate that work, subject to this License. You are not responsible
485-for enforcing compliance by third parties with this License.
486-
487- An "entity transaction" is a transaction transferring control of an
488-organization, or substantially all assets of one, or subdividing an
489-organization, or merging organizations. If propagation of a covered
490-work results from an entity transaction, each party to that
491-transaction who receives a copy of the work also receives whatever
492-licenses to the work the party's predecessor in interest had or could
493-give under the previous paragraph, plus a right to possession of the
494-Corresponding Source of the work from the predecessor in interest, if
495-the predecessor has it or can get it with reasonable efforts.
496-
497- You may not impose any further restrictions on the exercise of the
498-rights granted or affirmed under this License. For example, you may
499-not impose a license fee, royalty, or other charge for exercise of
500-rights granted under this License, and you may not initiate litigation
501-(including a cross-claim or counterclaim in a lawsuit) alleging that
502-any patent claim is infringed by making, using, selling, offering for
503-sale, or importing the Program or any portion of it.
504-
505- 11. Patents.
506-
507- A "contributor" is a copyright holder who authorizes use under this
508-License of the Program or a work on which the Program is based. The
509-work thus licensed is called the contributor's "contributor version".
510-
511- A contributor's "essential patent claims" are all patent claims
512-owned or controlled by the contributor, whether already acquired or
513-hereafter acquired, that would be infringed by some manner, permitted
514-by this License, of making, using, or selling its contributor version,
515-but do not include claims that would be infringed only as a
516-consequence of further modification of the contributor version. For
517-purposes of this definition, "control" includes the right to grant
518-patent sublicenses in a manner consistent with the requirements of
519-this License.
520-
521- Each contributor grants you a non-exclusive, worldwide, royalty-free
522-patent license under the contributor's essential patent claims, to
523-make, use, sell, offer for sale, import and otherwise run, modify and
524-propagate the contents of its contributor version.
525-
526- In the following three paragraphs, a "patent license" is any express
527-agreement or commitment, however denominated, not to enforce a patent
528-(such as an express permission to practice a patent or covenant not to
529-sue for patent infringement). To "grant" such a patent license to a
530-party means to make such an agreement or commitment not to enforce a
531-patent against the party.
532-
533- If you convey a covered work, knowingly relying on a patent license,
534-and the Corresponding Source of the work is not available for anyone
535-to copy, free of charge and under the terms of this License, through a
536-publicly available network server or other readily accessible means,
537-then you must either (1) cause the Corresponding Source to be so
538-available, or (2) arrange to deprive yourself of the benefit of the
539-patent license for this particular work, or (3) arrange, in a manner
540-consistent with the requirements of this License, to extend the patent
541-license to downstream recipients. "Knowingly relying" means you have
542-actual knowledge that, but for the patent license, your conveying the
543-covered work in a country, or your recipient's use of the covered work
544-in a country, would infringe one or more identifiable patents in that
545-country that you have reason to believe are valid.
546-
547- If, pursuant to or in connection with a single transaction or
548-arrangement, you convey, or propagate by procuring conveyance of, a
549-covered work, and grant a patent license to some of the parties
550-receiving the covered work authorizing them to use, propagate, modify
551-or convey a specific copy of the covered work, then the patent license
552-you grant is automatically extended to all recipients of the covered
553-work and works based on it.
554-
555- A patent license is "discriminatory" if it does not include within
556-the scope of its coverage, prohibits the exercise of, or is
557-conditioned on the non-exercise of one or more of the rights that are
558-specifically granted under this License. You may not convey a covered
559-work if you are a party to an arrangement with a third party that is
560-in the business of distributing software, under which you make payment
561-to the third party based on the extent of your activity of conveying
562-the work, and under which the third party grants, to any of the
563-parties who would receive the covered work from you, a discriminatory
564-patent license (a) in connection with copies of the covered work
565-conveyed by you (or copies made from those copies), or (b) primarily
566-for and in connection with specific products or compilations that
567-contain the covered work, unless you entered into that arrangement,
568-or that patent license was granted, prior to 28 March 2007.
569-
570- Nothing in this License shall be construed as excluding or limiting
571-any implied license or other defenses to infringement that may
572-otherwise be available to you under applicable patent law.
573-
574- 12. No Surrender of Others' Freedom.
575-
576- If conditions are imposed on you (whether by court order, agreement or
577-otherwise) that contradict the conditions of this License, they do not
578-excuse you from the conditions of this License. If you cannot convey a
579-covered work so as to satisfy simultaneously your obligations under this
580-License and any other pertinent obligations, then as a consequence you may
581-not convey it at all. For example, if you agree to terms that obligate you
582-to collect a royalty for further conveying from those to whom you convey
583-the Program, the only way you could satisfy both those terms and this
584-License would be to refrain entirely from conveying the Program.
585-
586- 13. Use with the GNU Affero General Public License.
587-
588- Notwithstanding any other provision of this License, you have
589-permission to link or combine any covered work with a work licensed
590-under version 3 of the GNU Affero General Public License into a single
591-combined work, and to convey the resulting work. The terms of this
592-License will continue to apply to the part which is the covered work,
593-but the special requirements of the GNU Affero General Public License,
594-section 13, concerning interaction through a network will apply to the
595-combination as such.
596-
597- 14. Revised Versions of this License.
598-
599- The Free Software Foundation may publish revised and/or new versions of
600-the GNU General Public License from time to time. Such new versions will
601-be similar in spirit to the present version, but may differ in detail to
602-address new problems or concerns.
603-
604- Each version is given a distinguishing version number. If the
605-Program specifies that a certain numbered version of the GNU General
606-Public License "or any later version" applies to it, you have the
607-option of following the terms and conditions either of that numbered
608-version or of any later version published by the Free Software
609-Foundation. If the Program does not specify a version number of the
610-GNU General Public License, you may choose any version ever published
611-by the Free Software Foundation.
612-
613- If the Program specifies that a proxy can decide which future
614-versions of the GNU General Public License can be used, that proxy's
615-public statement of acceptance of a version permanently authorizes you
616-to choose that version for the Program.
617-
618- Later license versions may give you additional or different
619-permissions. However, no additional obligations are imposed on any
620-author or copyright holder as a result of your choosing to follow a
621-later version.
622-
623- 15. Disclaimer of Warranty.
624-
625- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
626-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
627-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
628-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
629-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
630-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
631-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
632-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
633-
634- 16. Limitation of Liability.
635-
636- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
637-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
638-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
639-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
640-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
641-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
642-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
643-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
644-SUCH DAMAGES.
645-
646- 17. Interpretation of Sections 15 and 16.
647-
648- If the disclaimer of warranty and limitation of liability provided
649-above cannot be given local legal effect according to their terms,
650-reviewing courts shall apply local law that most closely approximates
651-an absolute waiver of all civil liability in connection with the
652-Program, unless a warranty or assumption of liability accompanies a
653-copy of the Program in return for a fee.
654-
655- END OF TERMS AND CONDITIONS
656-
657- How to Apply These Terms to Your New Programs
658-
659- If you develop a new program, and you want it to be of the greatest
660-possible use to the public, the best way to achieve this is to make it
661-free software which everyone can redistribute and change under these terms.
662-
663- To do so, attach the following notices to the program. It is safest
664-to attach them to the start of each source file to most effectively
665-state the exclusion of warranty; and each file should have at least
666-the "copyright" line and a pointer to where the full notice is found.
667-
668- <one line to give the program's name and a brief idea of what it does.>
669- Copyright (C) <year> <name of author>
670-
671- This program is free software: you can redistribute it and/or modify
672- it under the terms of the GNU General Public License as published by
673- the Free Software Foundation, either version 3 of the License, or
674- (at your option) any later version.
675-
676- This program is distributed in the hope that it will be useful,
677- but WITHOUT ANY WARRANTY; without even the implied warranty of
678- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
679- GNU General Public License for more details.
680-
681- You should have received a copy of the GNU General Public License
682- along with this program. If not, see <http://www.gnu.org/licenses/>.
683-
684-Also add information on how to contact you by electronic and paper mail.
685-
686- If the program does terminal interaction, make it output a short
687-notice like this when it starts in an interactive mode:
688-
689- <program> Copyright (C) <year> <name of author>
690- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
691- This is free software, and you are welcome to redistribute it
692- under certain conditions; type `show c' for details.
693-
694-The hypothetical commands `show w' and `show c' should show the appropriate
695-parts of the General Public License. Of course, your program's commands
696-might be different; for a GUI interface, you would use an "about box".
697-
698- You should also get your employer (if you work as a programmer) or school,
699-if any, to sign a "copyright disclaimer" for the program, if necessary.
700-For more information on this, and how to apply and follow the GNU GPL, see
701-<http://www.gnu.org/licenses/>.
702-
703- The GNU General Public License does not permit incorporating your program
704-into proprietary programs. If your program is a subroutine library, you
705-may consider it more useful to permit linking proprietary applications with
706-the library. If this is what you want to do, use the GNU Lesser General
707-Public License instead of this License. But first, please read
708-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
709
710=== added file 'LICENSE'
711--- LICENSE 1970-01-01 00:00:00 +0000
712+++ LICENSE 2009-12-12 11:55:22 +0000
713@@ -0,0 +1,674 @@
714+ GNU GENERAL PUBLIC LICENSE
715+ Version 3, 29 June 2007
716+
717+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
718+ Everyone is permitted to copy and distribute verbatim copies
719+ of this license document, but changing it is not allowed.
720+
721+ Preamble
722+
723+ The GNU General Public License is a free, copyleft license for
724+software and other kinds of works.
725+
726+ The licenses for most software and other practical works are designed
727+to take away your freedom to share and change the works. By contrast,
728+the GNU General Public License is intended to guarantee your freedom to
729+share and change all versions of a program--to make sure it remains free
730+software for all its users. We, the Free Software Foundation, use the
731+GNU General Public License for most of our software; it applies also to
732+any other work released this way by its authors. You can apply it to
733+your programs, too.
734+
735+ When we speak of free software, we are referring to freedom, not
736+price. Our General Public Licenses are designed to make sure that you
737+have the freedom to distribute copies of free software (and charge for
738+them if you wish), that you receive source code or can get it if you
739+want it, that you can change the software or use pieces of it in new
740+free programs, and that you know you can do these things.
741+
742+ To protect your rights, we need to prevent others from denying you
743+these rights or asking you to surrender the rights. Therefore, you have
744+certain responsibilities if you distribute copies of the software, or if
745+you modify it: responsibilities to respect the freedom of others.
746+
747+ For example, if you distribute copies of such a program, whether
748+gratis or for a fee, you must pass on to the recipients the same
749+freedoms that you received. You must make sure that they, too, receive
750+or can get the source code. And you must show them these terms so they
751+know their rights.
752+
753+ Developers that use the GNU GPL protect your rights with two steps:
754+(1) assert copyright on the software, and (2) offer you this License
755+giving you legal permission to copy, distribute and/or modify it.
756+
757+ For the developers' and authors' protection, the GPL clearly explains
758+that there is no warranty for this free software. For both users' and
759+authors' sake, the GPL requires that modified versions be marked as
760+changed, so that their problems will not be attributed erroneously to
761+authors of previous versions.
762+
763+ Some devices are designed to deny users access to install or run
764+modified versions of the software inside them, although the manufacturer
765+can do so. This is fundamentally incompatible with the aim of
766+protecting users' freedom to change the software. The systematic
767+pattern of such abuse occurs in the area of products for individuals to
768+use, which is precisely where it is most unacceptable. Therefore, we
769+have designed this version of the GPL to prohibit the practice for those
770+products. If such problems arise substantially in other domains, we
771+stand ready to extend this provision to those domains in future versions
772+of the GPL, as needed to protect the freedom of users.
773+
774+ Finally, every program is threatened constantly by software patents.
775+States should not allow patents to restrict development and use of
776+software on general-purpose computers, but in those that do, we wish to
777+avoid the special danger that patents applied to a free program could
778+make it effectively proprietary. To prevent this, the GPL assures that
779+patents cannot be used to render the program non-free.
780+
781+ The precise terms and conditions for copying, distribution and
782+modification follow.
783+
784+ TERMS AND CONDITIONS
785+
786+ 0. Definitions.
787+
788+ "This License" refers to version 3 of the GNU General Public License.
789+
790+ "Copyright" also means copyright-like laws that apply to other kinds of
791+works, such as semiconductor masks.
792+
793+ "The Program" refers to any copyrightable work licensed under this
794+License. Each licensee is addressed as "you". "Licensees" and
795+"recipients" may be individuals or organizations.
796+
797+ To "modify" a work means to copy from or adapt all or part of the work
798+in a fashion requiring copyright permission, other than the making of an
799+exact copy. The resulting work is called a "modified version" of the
800+earlier work or a work "based on" the earlier work.
801+
802+ A "covered work" means either the unmodified Program or a work based
803+on the Program.
804+
805+ To "propagate" a work means to do anything with it that, without
806+permission, would make you directly or secondarily liable for
807+infringement under applicable copyright law, except executing it on a
808+computer or modifying a private copy. Propagation includes copying,
809+distribution (with or without modification), making available to the
810+public, and in some countries other activities as well.
811+
812+ To "convey" a work means any kind of propagation that enables other
813+parties to make or receive copies. Mere interaction with a user through
814+a computer network, with no transfer of a copy, is not conveying.
815+
816+ An interactive user interface displays "Appropriate Legal Notices"
817+to the extent that it includes a convenient and prominently visible
818+feature that (1) displays an appropriate copyright notice, and (2)
819+tells the user that there is no warranty for the work (except to the
820+extent that warranties are provided), that licensees may convey the
821+work under this License, and how to view a copy of this License. If
822+the interface presents a list of user commands or options, such as a
823+menu, a prominent item in the list meets this criterion.
824+
825+ 1. Source Code.
826+
827+ The "source code" for a work means the preferred form of the work
828+for making modifications to it. "Object code" means any non-source
829+form of a work.
830+
831+ A "Standard Interface" means an interface that either is an official
832+standard defined by a recognized standards body, or, in the case of
833+interfaces specified for a particular programming language, one that
834+is widely used among developers working in that language.
835+
836+ The "System Libraries" of an executable work include anything, other
837+than the work as a whole, that (a) is included in the normal form of
838+packaging a Major Component, but which is not part of that Major
839+Component, and (b) serves only to enable use of the work with that
840+Major Component, or to implement a Standard Interface for which an
841+implementation is available to the public in source code form. A
842+"Major Component", in this context, means a major essential component
843+(kernel, window system, and so on) of the specific operating system
844+(if any) on which the executable work runs, or a compiler used to
845+produce the work, or an object code interpreter used to run it.
846+
847+ The "Corresponding Source" for a work in object code form means all
848+the source code needed to generate, install, and (for an executable
849+work) run the object code and to modify the work, including scripts to
850+control those activities. However, it does not include the work's
851+System Libraries, or general-purpose tools or generally available free
852+programs which are used unmodified in performing those activities but
853+which are not part of the work. For example, Corresponding Source
854+includes interface definition files associated with source files for
855+the work, and the source code for shared libraries and dynamically
856+linked subprograms that the work is specifically designed to require,
857+such as by intimate data communication or control flow between those
858+subprograms and other parts of the work.
859+
860+ The Corresponding Source need not include anything that users
861+can regenerate automatically from other parts of the Corresponding
862+Source.
863+
864+ The Corresponding Source for a work in source code form is that
865+same work.
866+
867+ 2. Basic Permissions.
868+
869+ All rights granted under this License are granted for the term of
870+copyright on the Program, and are irrevocable provided the stated
871+conditions are met. This License explicitly affirms your unlimited
872+permission to run the unmodified Program. The output from running a
873+covered work is covered by this License only if the output, given its
874+content, constitutes a covered work. This License acknowledges your
875+rights of fair use or other equivalent, as provided by copyright law.
876+
877+ You may make, run and propagate covered works that you do not
878+convey, without conditions so long as your license otherwise remains
879+in force. You may convey covered works to others for the sole purpose
880+of having them make modifications exclusively for you, or provide you
881+with facilities for running those works, provided that you comply with
882+the terms of this License in conveying all material for which you do
883+not control copyright. Those thus making or running the covered works
884+for you must do so exclusively on your behalf, under your direction
885+and control, on terms that prohibit them from making any copies of
886+your copyrighted material outside their relationship with you.
887+
888+ Conveying under any other circumstances is permitted solely under
889+the conditions stated below. Sublicensing is not allowed; section 10
890+makes it unnecessary.
891+
892+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
893+
894+ No covered work shall be deemed part of an effective technological
895+measure under any applicable law fulfilling obligations under article
896+11 of the WIPO copyright treaty adopted on 20 December 1996, or
897+similar laws prohibiting or restricting circumvention of such
898+measures.
899+
900+ When you convey a covered work, you waive any legal power to forbid
901+circumvention of technological measures to the extent such circumvention
902+is effected by exercising rights under this License with respect to
903+the covered work, and you disclaim any intention to limit operation or
904+modification of the work as a means of enforcing, against the work's
905+users, your or third parties' legal rights to forbid circumvention of
906+technological measures.
907+
908+ 4. Conveying Verbatim Copies.
909+
910+ You may convey verbatim copies of the Program's source code as you
911+receive it, in any medium, provided that you conspicuously and
912+appropriately publish on each copy an appropriate copyright notice;
913+keep intact all notices stating that this License and any
914+non-permissive terms added in accord with section 7 apply to the code;
915+keep intact all notices of the absence of any warranty; and give all
916+recipients a copy of this License along with the Program.
917+
918+ You may charge any price or no price for each copy that you convey,
919+and you may offer support or warranty protection for a fee.
920+
921+ 5. Conveying Modified Source Versions.
922+
923+ You may convey a work based on the Program, or the modifications to
924+produce it from the Program, in the form of source code under the
925+terms of section 4, provided that you also meet all of these conditions:
926+
927+ a) The work must carry prominent notices stating that you modified
928+ it, and giving a relevant date.
929+
930+ b) The work must carry prominent notices stating that it is
931+ released under this License and any conditions added under section
932+ 7. This requirement modifies the requirement in section 4 to
933+ "keep intact all notices".
934+
935+ c) You must license the entire work, as a whole, under this
936+ License to anyone who comes into possession of a copy. This
937+ License will therefore apply, along with any applicable section 7
938+ additional terms, to the whole of the work, and all its parts,
939+ regardless of how they are packaged. This License gives no
940+ permission to license the work in any other way, but it does not
941+ invalidate such permission if you have separately received it.
942+
943+ d) If the work has interactive user interfaces, each must display
944+ Appropriate Legal Notices; however, if the Program has interactive
945+ interfaces that do not display Appropriate Legal Notices, your
946+ work need not make them do so.
947+
948+ A compilation of a covered work with other separate and independent
949+works, which are not by their nature extensions of the covered work,
950+and which are not combined with it such as to form a larger program,
951+in or on a volume of a storage or distribution medium, is called an
952+"aggregate" if the compilation and its resulting copyright are not
953+used to limit the access or legal rights of the compilation's users
954+beyond what the individual works permit. Inclusion of a covered work
955+in an aggregate does not cause this License to apply to the other
956+parts of the aggregate.
957+
958+ 6. Conveying Non-Source Forms.
959+
960+ You may convey a covered work in object code form under the terms
961+of sections 4 and 5, provided that you also convey the
962+machine-readable Corresponding Source under the terms of this License,
963+in one of these ways:
964+
965+ a) Convey the object code in, or embodied in, a physical product
966+ (including a physical distribution medium), accompanied by the
967+ Corresponding Source fixed on a durable physical medium
968+ customarily used for software interchange.
969+
970+ b) Convey the object code in, or embodied in, a physical product
971+ (including a physical distribution medium), accompanied by a
972+ written offer, valid for at least three years and valid for as
973+ long as you offer spare parts or customer support for that product
974+ model, to give anyone who possesses the object code either (1) a
975+ copy of the Corresponding Source for all the software in the
976+ product that is covered by this License, on a durable physical
977+ medium customarily used for software interchange, for a price no
978+ more than your reasonable cost of physically performing this
979+ conveying of source, or (2) access to copy the
980+ Corresponding Source from a network server at no charge.
981+
982+ c) Convey individual copies of the object code with a copy of the
983+ written offer to provide the Corresponding Source. This
984+ alternative is allowed only occasionally and noncommercially, and
985+ only if you received the object code with such an offer, in accord
986+ with subsection 6b.
987+
988+ d) Convey the object code by offering access from a designated
989+ place (gratis or for a charge), and offer equivalent access to the
990+ Corresponding Source in the same way through the same place at no
991+ further charge. You need not require recipients to copy the
992+ Corresponding Source along with the object code. If the place to
993+ copy the object code is a network server, the Corresponding Source
994+ may be on a different server (operated by you or a third party)
995+ that supports equivalent copying facilities, provided you maintain
996+ clear directions next to the object code saying where to find the
997+ Corresponding Source. Regardless of what server hosts the
998+ Corresponding Source, you remain obligated to ensure that it is
999+ available for as long as needed to satisfy these requirements.
1000+
1001+ e) Convey the object code using peer-to-peer transmission, provided
1002+ you inform other peers where the object code and Corresponding
1003+ Source of the work are being offered to the general public at no
1004+ charge under subsection 6d.
1005+
1006+ A separable portion of the object code, whose source code is excluded
1007+from the Corresponding Source as a System Library, need not be
1008+included in conveying the object code work.
1009+
1010+ A "User Product" is either (1) a "consumer product", which means any
1011+tangible personal property which is normally used for personal, family,
1012+or household purposes, or (2) anything designed or sold for incorporation
1013+into a dwelling. In determining whether a product is a consumer product,
1014+doubtful cases shall be resolved in favor of coverage. For a particular
1015+product received by a particular user, "normally used" refers to a
1016+typical or common use of that class of product, regardless of the status
1017+of the particular user or of the way in which the particular user
1018+actually uses, or expects or is expected to use, the product. A product
1019+is a consumer product regardless of whether the product has substantial
1020+commercial, industrial or non-consumer uses, unless such uses represent
1021+the only significant mode of use of the product.
1022+
1023+ "Installation Information" for a User Product means any methods,
1024+procedures, authorization keys, or other information required to install
1025+and execute modified versions of a covered work in that User Product from
1026+a modified version of its Corresponding Source. The information must
1027+suffice to ensure that the continued functioning of the modified object
1028+code is in no case prevented or interfered with solely because
1029+modification has been made.
1030+
1031+ If you convey an object code work under this section in, or with, or
1032+specifically for use in, a User Product, and the conveying occurs as
1033+part of a transaction in which the right of possession and use of the
1034+User Product is transferred to the recipient in perpetuity or for a
1035+fixed term (regardless of how the transaction is characterized), the
1036+Corresponding Source conveyed under this section must be accompanied
1037+by the Installation Information. But this requirement does not apply
1038+if neither you nor any third party retains the ability to install
1039+modified object code on the User Product (for example, the work has
1040+been installed in ROM).
1041+
1042+ The requirement to provide Installation Information does not include a
1043+requirement to continue to provide support service, warranty, or updates
1044+for a work that has been modified or installed by the recipient, or for
1045+the User Product in which it has been modified or installed. Access to a
1046+network may be denied when the modification itself materially and
1047+adversely affects the operation of the network or violates the rules and
1048+protocols for communication across the network.
1049+
1050+ Corresponding Source conveyed, and Installation Information provided,
1051+in accord with this section must be in a format that is publicly
1052+documented (and with an implementation available to the public in
1053+source code form), and must require no special password or key for
1054+unpacking, reading or copying.
1055+
1056+ 7. Additional Terms.
1057+
1058+ "Additional permissions" are terms that supplement the terms of this
1059+License by making exceptions from one or more of its conditions.
1060+Additional permissions that are applicable to the entire Program shall
1061+be treated as though they were included in this License, to the extent
1062+that they are valid under applicable law. If additional permissions
1063+apply only to part of the Program, that part may be used separately
1064+under those permissions, but the entire Program remains governed by
1065+this License without regard to the additional permissions.
1066+
1067+ When you convey a copy of a covered work, you may at your option
1068+remove any additional permissions from that copy, or from any part of
1069+it. (Additional permissions may be written to require their own
1070+removal in certain cases when you modify the work.) You may place
1071+additional permissions on material, added by you to a covered work,
1072+for which you have or can give appropriate copyright permission.
1073+
1074+ Notwithstanding any other provision of this License, for material you
1075+add to a covered work, you may (if authorized by the copyright holders of
1076+that material) supplement the terms of this License with terms:
1077+
1078+ a) Disclaiming warranty or limiting liability differently from the
1079+ terms of sections 15 and 16 of this License; or
1080+
1081+ b) Requiring preservation of specified reasonable legal notices or
1082+ author attributions in that material or in the Appropriate Legal
1083+ Notices displayed by works containing it; or
1084+
1085+ c) Prohibiting misrepresentation of the origin of that material, or
1086+ requiring that modified versions of such material be marked in
1087+ reasonable ways as different from the original version; or
1088+
1089+ d) Limiting the use for publicity purposes of names of licensors or
1090+ authors of the material; or
1091+
1092+ e) Declining to grant rights under trademark law for use of some
1093+ trade names, trademarks, or service marks; or
1094+
1095+ f) Requiring indemnification of licensors and authors of that
1096+ material by anyone who conveys the material (or modified versions of
1097+ it) with contractual assumptions of liability to the recipient, for
1098+ any liability that these contractual assumptions directly impose on
1099+ those licensors and authors.
1100+
1101+ All other non-permissive additional terms are considered "further
1102+restrictions" within the meaning of section 10. If the Program as you
1103+received it, or any part of it, contains a notice stating that it is
1104+governed by this License along with a term that is a further
1105+restriction, you may remove that term. If a license document contains
1106+a further restriction but permits relicensing or conveying under this
1107+License, you may add to a covered work material governed by the terms
1108+of that license document, provided that the further restriction does
1109+not survive such relicensing or conveying.
1110+
1111+ If you add terms to a covered work in accord with this section, you
1112+must place, in the relevant source files, a statement of the
1113+additional terms that apply to those files, or a notice indicating
1114+where to find the applicable terms.
1115+
1116+ Additional terms, permissive or non-permissive, may be stated in the
1117+form of a separately written license, or stated as exceptions;
1118+the above requirements apply either way.
1119+
1120+ 8. Termination.
1121+
1122+ You may not propagate or modify a covered work except as expressly
1123+provided under this License. Any attempt otherwise to propagate or
1124+modify it is void, and will automatically terminate your rights under
1125+this License (including any patent licenses granted under the third
1126+paragraph of section 11).
1127+
1128+ However, if you cease all violation of this License, then your
1129+license from a particular copyright holder is reinstated (a)
1130+provisionally, unless and until the copyright holder explicitly and
1131+finally terminates your license, and (b) permanently, if the copyright
1132+holder fails to notify you of the violation by some reasonable means
1133+prior to 60 days after the cessation.
1134+
1135+ Moreover, your license from a particular copyright holder is
1136+reinstated permanently if the copyright holder notifies you of the
1137+violation by some reasonable means, this is the first time you have
1138+received notice of violation of this License (for any work) from that
1139+copyright holder, and you cure the violation prior to 30 days after
1140+your receipt of the notice.
1141+
1142+ Termination of your rights under this section does not terminate the
1143+licenses of parties who have received copies or rights from you under
1144+this License. If your rights have been terminated and not permanently
1145+reinstated, you do not qualify to receive new licenses for the same
1146+material under section 10.
1147+
1148+ 9. Acceptance Not Required for Having Copies.
1149+
1150+ You are not required to accept this License in order to receive or
1151+run a copy of the Program. Ancillary propagation of a covered work
1152+occurring solely as a consequence of using peer-to-peer transmission
1153+to receive a copy likewise does not require acceptance. However,
1154+nothing other than this License grants you permission to propagate or
1155+modify any covered work. These actions infringe copyright if you do
1156+not accept this License. Therefore, by modifying or propagating a
1157+covered work, you indicate your acceptance of this License to do so.
1158+
1159+ 10. Automatic Licensing of Downstream Recipients.
1160+
1161+ Each time you convey a covered work, the recipient automatically
1162+receives a license from the original licensors, to run, modify and
1163+propagate that work, subject to this License. You are not responsible
1164+for enforcing compliance by third parties with this License.
1165+
1166+ An "entity transaction" is a transaction transferring control of an
1167+organization, or substantially all assets of one, or subdividing an
1168+organization, or merging organizations. If propagation of a covered
1169+work results from an entity transaction, each party to that
1170+transaction who receives a copy of the work also receives whatever
1171+licenses to the work the party's predecessor in interest had or could
1172+give under the previous paragraph, plus a right to possession of the
1173+Corresponding Source of the work from the predecessor in interest, if
1174+the predecessor has it or can get it with reasonable efforts.
1175+
1176+ You may not impose any further restrictions on the exercise of the
1177+rights granted or affirmed under this License. For example, you may
1178+not impose a license fee, royalty, or other charge for exercise of
1179+rights granted under this License, and you may not initiate litigation
1180+(including a cross-claim or counterclaim in a lawsuit) alleging that
1181+any patent claim is infringed by making, using, selling, offering for
1182+sale, or importing the Program or any portion of it.
1183+
1184+ 11. Patents.
1185+
1186+ A "contributor" is a copyright holder who authorizes use under this
1187+License of the Program or a work on which the Program is based. The
1188+work thus licensed is called the contributor's "contributor version".
1189+
1190+ A contributor's "essential patent claims" are all patent claims
1191+owned or controlled by the contributor, whether already acquired or
1192+hereafter acquired, that would be infringed by some manner, permitted
1193+by this License, of making, using, or selling its contributor version,
1194+but do not include claims that would be infringed only as a
1195+consequence of further modification of the contributor version. For
1196+purposes of this definition, "control" includes the right to grant
1197+patent sublicenses in a manner consistent with the requirements of
1198+this License.
1199+
1200+ Each contributor grants you a non-exclusive, worldwide, royalty-free
1201+patent license under the contributor's essential patent claims, to
1202+make, use, sell, offer for sale, import and otherwise run, modify and
1203+propagate the contents of its contributor version.
1204+
1205+ In the following three paragraphs, a "patent license" is any express
1206+agreement or commitment, however denominated, not to enforce a patent
1207+(such as an express permission to practice a patent or covenant not to
1208+sue for patent infringement). To "grant" such a patent license to a
1209+party means to make such an agreement or commitment not to enforce a
1210+patent against the party.
1211+
1212+ If you convey a covered work, knowingly relying on a patent license,
1213+and the Corresponding Source of the work is not available for anyone
1214+to copy, free of charge and under the terms of this License, through a
1215+publicly available network server or other readily accessible means,
1216+then you must either (1) cause the Corresponding Source to be so
1217+available, or (2) arrange to deprive yourself of the benefit of the
1218+patent license for this particular work, or (3) arrange, in a manner
1219+consistent with the requirements of this License, to extend the patent
1220+license to downstream recipients. "Knowingly relying" means you have
1221+actual knowledge that, but for the patent license, your conveying the
1222+covered work in a country, or your recipient's use of the covered work
1223+in a country, would infringe one or more identifiable patents in that
1224+country that you have reason to believe are valid.
1225+
1226+ If, pursuant to or in connection with a single transaction or
1227+arrangement, you convey, or propagate by procuring conveyance of, a
1228+covered work, and grant a patent license to some of the parties
1229+receiving the covered work authorizing them to use, propagate, modify
1230+or convey a specific copy of the covered work, then the patent license
1231+you grant is automatically extended to all recipients of the covered
1232+work and works based on it.
1233+
1234+ A patent license is "discriminatory" if it does not include within
1235+the scope of its coverage, prohibits the exercise of, or is
1236+conditioned on the non-exercise of one or more of the rights that are
1237+specifically granted under this License. You may not convey a covered
1238+work if you are a party to an arrangement with a third party that is
1239+in the business of distributing software, under which you make payment
1240+to the third party based on the extent of your activity of conveying
1241+the work, and under which the third party grants, to any of the
1242+parties who would receive the covered work from you, a discriminatory
1243+patent license (a) in connection with copies of the covered work
1244+conveyed by you (or copies made from those copies), or (b) primarily
1245+for and in connection with specific products or compilations that
1246+contain the covered work, unless you entered into that arrangement,
1247+or that patent license was granted, prior to 28 March 2007.
1248+
1249+ Nothing in this License shall be construed as excluding or limiting
1250+any implied license or other defenses to infringement that may
1251+otherwise be available to you under applicable patent law.
1252+
1253+ 12. No Surrender of Others' Freedom.
1254+
1255+ If conditions are imposed on you (whether by court order, agreement or
1256+otherwise) that contradict the conditions of this License, they do not
1257+excuse you from the conditions of this License. If you cannot convey a
1258+covered work so as to satisfy simultaneously your obligations under this
1259+License and any other pertinent obligations, then as a consequence you may
1260+not convey it at all. For example, if you agree to terms that obligate you
1261+to collect a royalty for further conveying from those to whom you convey
1262+the Program, the only way you could satisfy both those terms and this
1263+License would be to refrain entirely from conveying the Program.
1264+
1265+ 13. Use with the GNU Affero General Public License.
1266+
1267+ Notwithstanding any other provision of this License, you have
1268+permission to link or combine any covered work with a work licensed
1269+under version 3 of the GNU Affero General Public License into a single
1270+combined work, and to convey the resulting work. The terms of this
1271+License will continue to apply to the part which is the covered work,
1272+but the special requirements of the GNU Affero General Public License,
1273+section 13, concerning interaction through a network will apply to the
1274+combination as such.
1275+
1276+ 14. Revised Versions of this License.
1277+
1278+ The Free Software Foundation may publish revised and/or new versions of
1279+the GNU General Public License from time to time. Such new versions will
1280+be similar in spirit to the present version, but may differ in detail to
1281+address new problems or concerns.
1282+
1283+ Each version is given a distinguishing version number. If the
1284+Program specifies that a certain numbered version of the GNU General
1285+Public License "or any later version" applies to it, you have the
1286+option of following the terms and conditions either of that numbered
1287+version or of any later version published by the Free Software
1288+Foundation. If the Program does not specify a version number of the
1289+GNU General Public License, you may choose any version ever published
1290+by the Free Software Foundation.
1291+
1292+ If the Program specifies that a proxy can decide which future
1293+versions of the GNU General Public License can be used, that proxy's
1294+public statement of acceptance of a version permanently authorizes you
1295+to choose that version for the Program.
1296+
1297+ Later license versions may give you additional or different
1298+permissions. However, no additional obligations are imposed on any
1299+author or copyright holder as a result of your choosing to follow a
1300+later version.
1301+
1302+ 15. Disclaimer of Warranty.
1303+
1304+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
1305+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
1306+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
1307+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
1308+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1309+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
1310+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
1311+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
1312+
1313+ 16. Limitation of Liability.
1314+
1315+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
1316+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
1317+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
1318+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
1319+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
1320+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
1321+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
1322+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
1323+SUCH DAMAGES.
1324+
1325+ 17. Interpretation of Sections 15 and 16.
1326+
1327+ If the disclaimer of warranty and limitation of liability provided
1328+above cannot be given local legal effect according to their terms,
1329+reviewing courts shall apply local law that most closely approximates
1330+an absolute waiver of all civil liability in connection with the
1331+Program, unless a warranty or assumption of liability accompanies a
1332+copy of the Program in return for a fee.
1333+
1334+ END OF TERMS AND CONDITIONS
1335+
1336+ How to Apply These Terms to Your New Programs
1337+
1338+ If you develop a new program, and you want it to be of the greatest
1339+possible use to the public, the best way to achieve this is to make it
1340+free software which everyone can redistribute and change under these terms.
1341+
1342+ To do so, attach the following notices to the program. It is safest
1343+to attach them to the start of each source file to most effectively
1344+state the exclusion of warranty; and each file should have at least
1345+the "copyright" line and a pointer to where the full notice is found.
1346+
1347+ <one line to give the program's name and a brief idea of what it does.>
1348+ Copyright (C) <year> <name of author>
1349+
1350+ This program is free software: you can redistribute it and/or modify
1351+ it under the terms of the GNU General Public License as published by
1352+ the Free Software Foundation, either version 3 of the License, or
1353+ (at your option) any later version.
1354+
1355+ This program is distributed in the hope that it will be useful,
1356+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1357+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1358+ GNU General Public License for more details.
1359+
1360+ You should have received a copy of the GNU General Public License
1361+ along with this program. If not, see <http://www.gnu.org/licenses/>.
1362+
1363+Also add information on how to contact you by electronic and paper mail.
1364+
1365+ If the program does terminal interaction, make it output a short
1366+notice like this when it starts in an interactive mode:
1367+
1368+ <program> Copyright (C) <year> <name of author>
1369+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1370+ This is free software, and you are welcome to redistribute it
1371+ under certain conditions; type `show c' for details.
1372+
1373+The hypothetical commands `show w' and `show c' should show the appropriate
1374+parts of the General Public License. Of course, your program's commands
1375+might be different; for a GUI interface, you would use an "about box".
1376+
1377+ You should also get your employer (if you work as a programmer) or school,
1378+if any, to sign a "copyright disclaimer" for the program, if necessary.
1379+For more information on this, and how to apply and follow the GNU GPL, see
1380+<http://www.gnu.org/licenses/>.
1381+
1382+ The GNU General Public License does not permit incorporating your program
1383+into proprietary programs. If your program is a subroutine library, you
1384+may consider it more useful to permit linking proprietary applications with
1385+the library. If this is what you want to do, use the GNU Lesser General
1386+Public License instead of this License. But first, please read
1387+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
1388
1389=== added file 'LICENSE-BRIEF'
1390--- LICENSE-BRIEF 1970-01-01 00:00:00 +0000
1391+++ LICENSE-BRIEF 2009-12-12 11:55:22 +0000
1392@@ -0,0 +1,5 @@
1393+Nathive is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
1394+
1395+Nathive is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
1396+
1397+You should have received a copy of the GNU General Public License along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1398
1399=== removed file 'Makefile'
1400--- Makefile 2008-12-01 07:53:03 +0000
1401+++ Makefile 1970-01-01 00:00:00 +0000
1402@@ -1,12 +0,0 @@
1403-#!/bin/bash
1404-
1405-compile:
1406- @(gcc nathive.c -o nathive `pkg-config --cflags --libs gtk+-2.0`)
1407-
1408-run:
1409- @(gcc nathive.c -o nathive `pkg-config --cflags --libs gtk+-2.0`)
1410- @(./nathive)
1411-
1412-debug:
1413- @(gcc -g nathive.c -o nathive `pkg-config --cflags --libs gtk+-2.0`)
1414- @(gdb nathive)
1415
1416=== added file 'README'
1417--- README 1970-01-01 00:00:00 +0000
1418+++ README 2009-12-12 11:55:22 +0000
1419@@ -0,0 +1,80 @@
1420+
1421+Nathive README
1422+==============
1423+
1424+
1425+Attention
1426+---------
1427+
1428+This project is in alpha phase, so it is an incomplete work, unfit for the end
1429+user yet. You can submit bugs, ideas, or code through:
1430+<http://dev.nathive.org/>
1431+
1432+
1433+Install from source requires
1434+----------------------------
1435+
1436+- libgtk2.0-dev
1437+- python
1438+- python-dev
1439+- dpkg (for deb packaging)
1440+- rpmbuild (for rpm packaging)
1441+
1442+
1443+Install
1444+-------
1445+
1446+1) Open terminal in downloaded folder.
1447+2) Type "make" as user to compile the low-level libraries.
1448+3) Type "make deb" or "make rpm" as root to create a binary package.
1449+4) Double-click on the package to install into your distro.
1450+
1451+
1452+Other make options
1453+------------------
1454+
1455+Type "make install" as root to old-school install way, then the installation
1456+will not be registered in any database and you can not uninstall automatically
1457+or handle versions.
1458+
1459+Type "make unpyc" as user to delete unnecesary .pyc files. don't worry about,
1460+it's automatic when you perform an installation. (Tip: launch Python with -B
1461+option to avoid generating .pyc files when you are hacking)
1462+
1463+Type "make source" as user to delete unneeded files and clean code before commit
1464+in the version control system or redistribute as source.
1465+
1466+Type "make spaces" as user to reformat all .py files with spaced indentation.
1467+This also perform a trailing space/line remove.
1468+
1469+Type "make tabs" as user to reformat all .py files with tabbed indentation,
1470+useful if you think tab is explicit and space groups are implicit, and you like
1471+Python Zen over PEP08. This also perform a trailing space/line remove.
1472+
1473+Type "make pot" to create a Gettext language template.
1474+
1475+
1476+License
1477+-------
1478+
1479+Nathive is free software: you can redistribute it and/or modify
1480+it under the terms of the GNU General Public License as published by
1481+the Free Software Foundation, either version 3 of the License, or
1482+(at your option) any later version.
1483+
1484+Nathive is distributed in the hope that it will be useful,
1485+but WITHOUT ANY WARRANTY; without even the implied warranty of
1486+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1487+GNU General Public License for more details.
1488+
1489+You should have received a copy of the GNU General Public License
1490+along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1491+
1492+The supplied GNU GPL copy is the file called LICENSE.
1493+
1494+
1495+We are online!
1496+--------------
1497+
1498+Visit <http://www.nathive.org/> and get the latest source and info, also you
1499+can find many ways to contact Nathive people. See you!
1500
1501=== added file 'TODO'
1502--- TODO 1970-01-01 00:00:00 +0000
1503+++ TODO 2009-12-12 11:55:22 +0000
1504@@ -0,0 +1,35 @@
1505+
1506+Nathive TODO
1507+============
1508+
1509+
1510+High priority
1511+-------------
1512+
1513+- Integrate open/about dialogs as plugins
1514+- Code the object/layer engine
1515+- Code the new file dialog
1516+
1517+
1518+Medium priority
1519+---------------
1520+
1521+- Code zoom
1522+- Code user action log (undo/redo)
1523+
1524+
1525+Low priority
1526+------------
1527+
1528+- Code mask
1529+- Code missed tools and filters
1530+- Code keyboard shorcuts
1531+- Define save format
1532+- Create a web repository that build packages automatically for various archs
1533+- Integrate some unittest suite
1534+
1535+
1536+Roadmap
1537+-------
1538+
1539+For more see <http://docs.nathive.org/Developer/Roadmap>
1540
1541=== added file 'VERSION'
1542--- VERSION 1970-01-01 00:00:00 +0000
1543+++ VERSION 2009-12-12 11:55:22 +0000
1544@@ -0,0 +1,5 @@
1545+[meta]
1546+version = 0.870
1547+release = 1
1548+phase = experimental
1549+maintainer = Nathive Developers <contact@nathive.org>
1550
1551=== added directory 'cfg'
1552=== removed directory 'cfg'
1553=== removed file 'cfg/cfg.xml'
1554--- cfg/cfg.xml 2008-11-26 01:33:49 +0000
1555+++ cfg/cfg.xml 1970-01-01 00:00:00 +0000
1556@@ -1,21 +0,0 @@
1557-<?xml version="1.0" encoding="UTF-8" ?>
1558-<cfg>
1559- <misc>
1560- <language>auto</language>
1561- <folder-last>~/</folder-last>
1562- <win-w>950</win-w>
1563- <win-h>550</win-h>
1564- </misc>
1565- <color>
1566- <r>87</r>
1567- <g>171</g>
1568- <b>255</b>
1569- </color>
1570- <brush>
1571- <size>30</size>
1572- <mode>1</mode>
1573- <soft>50</soft>
1574- <opacity>25</opacity>
1575- <space>0</space>
1576- </brush>
1577-</cfg>
1578
1579=== added file 'cfg/default.cfg'
1580--- cfg/default.cfg 1970-01-01 00:00:00 +0000
1581+++ cfg/default.cfg 2009-12-12 11:55:22 +0000
1582@@ -0,0 +1,23 @@
1583+[color]
1584+r = 87
1585+b = 255
1586+g = 171
1587+
1588+[misc]
1589+folder = ~
1590+height = 550
1591+language = auto
1592+maximize = 0
1593+sidebar = 1
1594+tabmaxlen = 24
1595+width = 950
1596+
1597+[brush]
1598+opacity = 100
1599+shape = 1
1600+spacing = 1
1601+soft = 100
1602+size = 30
1603+
1604+[toolbar]
1605+sort = select,picker,brush
1606
1607=== removed directory 'gb'
1608=== removed file 'gb/brush.c'
1609--- gb/brush.c 2008-11-26 01:33:49 +0000
1610+++ gb/brush.c 1970-01-01 00:00:00 +0000
1611@@ -1,33 +0,0 @@
1612-/*
1613- * This file is part of Nathive.
1614- *
1615- * Nathive is free software: you can redistribute it and/or modify
1616- * it under the terms of the GNU General Public License as published by
1617- * the Free Software Foundation, either version 3 of the License, or
1618- * (at your option) any later version.
1619- *
1620- * Nathive is distributed in the hope that it will be useful,
1621- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1622- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1623- * GNU General Public License for more details.
1624- *
1625- * You should have received a copy of the GNU General Public License
1626- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1627- */
1628-
1629-
1630-uchar *brush_raw;
1631-int brush_size = 30;
1632-int brush_size_max = 100;
1633-int brush_mode = 0;
1634-int brush_fade = 0;
1635-int brush_opacity = 100;
1636-int brush_space = 0;
1637-
1638-//gtk
1639-GtkWidget *adj_brush_mode[2];
1640-GtkObject *adj_brush_size;
1641-GtkObject *adj_brush_fade;
1642-GtkObject *adj_brush_opacity;
1643-GtkWidget *adj_brush_space;
1644-
1645
1646=== removed file 'gb/dialog-new.c'
1647--- gb/dialog-new.c 2008-11-26 01:33:49 +0000
1648+++ gb/dialog-new.c 1970-01-01 00:00:00 +0000
1649@@ -1,46 +0,0 @@
1650-/*
1651- * This file is part of Nathive.
1652- *
1653- * Nathive is free software: you can redistribute it and/or modify
1654- * it under the terms of the GNU General Public License as published by
1655- * the Free Software Foundation, either version 3 of the License, or
1656- * (at your option) any later version.
1657- *
1658- * Nathive is distributed in the hope that it will be useful,
1659- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1660- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1661- * GNU General Public License for more details.
1662- *
1663- * You should have received a copy of the GNU General Public License
1664- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1665- */
1666-
1667-
1668-int dialog_new_template = 0;
1669-int dialog_new_unit = 0;
1670-int dialog_new_pxw = 400;
1671-int dialog_new_pxh = 300;
1672-int dialog_new_dpi = 150;
1673-double dialog_new_cmw = 0;
1674-double dialog_new_cmh = 0;
1675-double dialog_new_inw = 0;
1676-double dialog_new_inh = 0;
1677-int dialog_new_nobg = 0;
1678-int dialog_new_pxw_ops = -1;
1679-int dialog_new_pxh_ops = -1;
1680-int dialog_new_cmw_ops = -1;
1681-int dialog_new_cmh_ops = -1;
1682-int dialog_new_inw_ops = -1;
1683-int dialog_new_inh_ops = -1;
1684-int dialog_new_dpi_ops = -1;
1685-
1686-//gtk
1687-GtkWidget *dialog_new_template_combo;
1688-GtkWidget *dialog_new_unit_combo;
1689-GtkWidget *dialog_new_box_px;
1690-GtkWidget *dialog_new_box_re;
1691-GtkWidget *dialog_new_box_cm;
1692-GtkWidget *dialog_new_box_in;
1693-GtkObject *dialog_new_adj[7];
1694-GtkWidget *dialog_new_nobg_check;
1695-
1696
1697=== removed file 'gb/global.c'
1698--- gb/global.c 2008-11-26 18:12:53 +0000
1699+++ gb/global.c 1970-01-01 00:00:00 +0000
1700@@ -1,64 +0,0 @@
1701-/*
1702- * This file is part of Nathive.
1703- *
1704- * Nathive is free software: you can redistribute it and/or modify
1705- * it under the terms of the GNU General Public License as published by
1706- * the Free Software Foundation, either version 3 of the License, or
1707- * (at your option) any later version.
1708- *
1709- * Nathive is distributed in the hope that it will be useful,
1710- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1711- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1712- * GNU General Public License for more details.
1713- *
1714- * You should have received a copy of the GNU General Public License
1715- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1716- */
1717-
1718-
1719-NTree *dom;
1720-int tool = 0;
1721-int win_w = 950;
1722-int win_h = 550;
1723-int fullscreen = 0;
1724-int main_load = 0;
1725-int feedback_lock = 0;
1726-
1727-char *language_ = "auto";
1728-char *language[100];
1729-char *folder_last = "/home";
1730-int unsaved_count = 1;
1731-
1732-uchar color1[3];
1733-int color1hsv[3];
1734-char *color1hex;
1735-void *toolbar_color1[4];
1736-
1737-int user_button = 0;
1738-int user_x = 0;
1739-int user_y = 0;
1740-int user_x_root = 0;
1741-int user_y_root = 0;
1742-int user_x_press = 0;
1743-int user_y_press = 0;
1744-
1745-int statusbar_w = 0;
1746-int statusbar_h = 0;
1747-int statusbar_x = 0;
1748-int statusbar_y = 0;
1749-int statusbar_z = 1;
1750-int statusbar_msg = 0;
1751-
1752-//gtk
1753-GtkWidget *win;
1754-GtkWidget *tabs;
1755-GtkWidget *sidebar;
1756-GtkWidget *sidebar_tool;
1757-GtkWidget *sidebar_tools[TOOLS];
1758-GtkWidget *statusbar;
1759-GtkWidget *object_tree_view;
1760-
1761-GtkObject *adj_color1_rgbhsv[6];
1762-GtkWidget *adj_color1hex;
1763-GtkWidget *palette[100];
1764-
1765
1766=== removed directory 'gui'
1767=== removed file 'gui/colorbar.c'
1768--- gui/colorbar.c 2008-11-26 01:33:49 +0000
1769+++ gui/colorbar.c 1970-01-01 00:00:00 +0000
1770@@ -1,48 +0,0 @@
1771-/*
1772- * This file is part of Nathive.
1773- *
1774- * Nathive is free software: you can redistribute it and/or modify
1775- * it under the terms of the GNU General Public License as published by
1776- * the Free Software Foundation, either version 3 of the License, or
1777- * (at your option) any later version.
1778- *
1779- * Nathive is distributed in the hope that it will be useful,
1780- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1781- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1782- * GNU General Public License for more details.
1783- *
1784- * You should have received a copy of the GNU General Public License
1785- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1786- */
1787-
1788-
1789-GtkWidget *colorbar = gtk_vbox_new(FALSE,5);
1790-gtk_container_set_border_width(GTK_CONTAINER(colorbar), 5);
1791-
1792-
1793-GtkRcStyle *colorbar_rcstyle;
1794-colorbar_rcstyle = gtk_rc_style_new();
1795-colorbar_rcstyle->xthickness = colorbar_rcstyle->ythickness = 0;
1796-
1797-GtkWidget *colorbar_prev = gtk_button_new();
1798-//GtkWidget *colorbar_prev_arrow = gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_NONE);
1799-//gtk_button_set_image(GTK_BUTTON(colorbar_prev), colorbar_prev_arrow);
1800-gtk_widget_modify_style(colorbar_prev, colorbar_rcstyle);
1801-gtk_widget_set_size_request(colorbar_prev,0,20);
1802-
1803-palette[0] = gtk_vbox_new(FALSE,0);
1804-char palette_path[100];
1805-sprintf(palette_path, "%s%s", PATH, "palettes/01.xml");
1806-load_palette_from_xml(palette[0], palette_path);
1807-
1808-GtkWidget *colorbar_next = gtk_button_new();
1809-//GtkWidget *colorbar_next_arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);
1810-//gtk_button_set_image(GTK_BUTTON(colorbar_next), colorbar_next_arrow);
1811-gtk_widget_modify_style(colorbar_next, colorbar_rcstyle);
1812-gtk_widget_set_size_request(colorbar_next,0,20);
1813-
1814-
1815-gtk_box_pack_start(GTK_BOX(colorbar),colorbar_prev,FALSE,FALSE,0);
1816-gtk_box_pack_start(GTK_BOX(colorbar),palette[0],TRUE,TRUE,0);
1817-gtk_box_pack_start(GTK_BOX(colorbar),colorbar_next,FALSE,FALSE,0);
1818-
1819
1820=== removed file 'gui/gui-main.c'
1821--- gui/gui-main.c 2008-11-26 18:12:53 +0000
1822+++ gui/gui-main.c 1970-01-01 00:00:00 +0000
1823@@ -1,65 +0,0 @@
1824-/*
1825- * This file is part of Nathive.
1826- *
1827- * Nathive is free software: you can redistribute it and/or modify
1828- * it under the terms of the GNU General Public License as published by
1829- * the Free Software Foundation, either version 3 of the License, or
1830- * (at your option) any later version.
1831- *
1832- * Nathive is distributed in the hope that it will be useful,
1833- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1834- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1835- * GNU General Public License for more details.
1836- *
1837- * You should have received a copy of the GNU General Public License
1838- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1839- */
1840-
1841-
1842-void gui_main(int argc, char *argv[])
1843-{
1844- printf("> loading gtk interface\n");
1845- gtk_init(&argc, &argv);
1846-
1847- win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1848- g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(gtk_quit), NULL);
1849- gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
1850- gtk_window_set_default_icon_from_file( strcatnew(PATH,"img/icon.png") , NULL);
1851-
1852- char win_title[100];
1853- sprintf(win_title, "Nathive %s", VERSION);
1854- gtk_window_set_title(GTK_WINDOW(win), win_title);
1855-
1856- gtk_window_set_default_size(GTK_WINDOW(win), win_w, win_h);
1857- gtk_window_set_focus(GTK_WINDOW(win), NULL);
1858-
1859- GtkWidget *vbox = gtk_vbox_new(FALSE,0);
1860- #include "menubar.c"
1861- #include "headbar.c"
1862- GtkWidget *workarea = gtk_hbox_new(FALSE,2);
1863- #include "toolbar.c"
1864- #include "tabs.c"
1865- #include "sidebar.c"
1866- #include "colorbar.c"
1867-
1868- gtk_box_pack_start(GTK_BOX(workarea),toolbar,FALSE,FALSE,0);
1869- gtk_box_pack_start(GTK_BOX(workarea),tabs,TRUE,TRUE,0);
1870- gtk_box_pack_start(GTK_BOX(workarea),sidebar,FALSE,FALSE,0);
1871- gtk_box_pack_start(GTK_BOX(workarea),colorbar,FALSE,FALSE,0);
1872-
1873- statusbar = gtk_statusbar_new();
1874-
1875- gtk_box_pack_start(GTK_BOX(vbox),menubar,FALSE,FALSE,0);
1876- gtk_box_pack_start(GTK_BOX(vbox),headbar,FALSE,FALSE,0);
1877- gtk_box_pack_start(GTK_BOX(vbox),workarea,TRUE,TRUE,0);
1878- gtk_box_pack_start(GTK_BOX(vbox),statusbar,FALSE,FALSE,0);
1879-
1880- gtk_container_add(GTK_CONTAINER(win), vbox);
1881- gtk_widget_show_all(win);
1882-
1883- sidebar_tool_change(NULL, NULL);
1884-
1885- main_load = 1;
1886- printf("> waiting for events\n");
1887- gtk_main();
1888-}
1889
1890=== removed file 'gui/headbar.c'
1891--- gui/headbar.c 2008-11-26 01:33:49 +0000
1892+++ gui/headbar.c 1970-01-01 00:00:00 +0000
1893@@ -1,48 +0,0 @@
1894-/*
1895- * This file is part of Nathive.
1896- *
1897- * Nathive is free software: you can redistribute it and/or modify
1898- * it under the terms of the GNU General Public License as published by
1899- * the Free Software Foundation, either version 3 of the License, or
1900- * (at your option) any later version.
1901- *
1902- * Nathive is distributed in the hope that it will be useful,
1903- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1904- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1905- * GNU General Public License for more details.
1906- *
1907- * You should have received a copy of the GNU General Public License
1908- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1909- */
1910-
1911-
1912-GtkWidget* headbar = gtk_toolbar_new();
1913-gtk_toolbar_set_style(GTK_TOOLBAR(headbar), GTK_TOOLBAR_ICONS);
1914-
1915-GtkToolItem* headbar_new = gtk_tool_button_new_from_stock("gtk-new");
1916-g_signal_connect(G_OBJECT(headbar_new), "clicked", G_CALLBACK(dialog_new), NULL);
1917-
1918-GtkToolItem* headbar_open = gtk_tool_button_new_from_stock("gtk-open");
1919-g_signal_connect(G_OBJECT(headbar_open), "clicked", G_CALLBACK(dialog_open), NULL);
1920-
1921-GtkToolItem* headbar_save = gtk_tool_button_new_from_stock("gtk-save");
1922-g_signal_connect(G_OBJECT(headbar_save), "clicked", G_CALLBACK(save), NULL);
1923-
1924-GtkToolItem* headbar_saveas = gtk_tool_button_new_from_stock("gtk-save-as");
1925-
1926-GtkToolItem* headbar_fullscreen = gtk_tool_button_new_from_stock("gtk-fullscreen");
1927-g_signal_connect(G_OBJECT(headbar_fullscreen), "clicked", G_CALLBACK(window_fullscreen), NULL);
1928-
1929-GtkToolItem* headbar_sidebar = gtk_tool_button_new_from_stock("gtk-goto-last");
1930-g_signal_connect(G_OBJECT(headbar_sidebar), "clicked", G_CALLBACK(sidebar_hide), NULL);
1931-
1932-GtkToolItem* headbar_break = gtk_separator_tool_item_new();
1933-
1934-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_new,-1);
1935-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_open,-1);
1936-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_save,-1);
1937-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_saveas,-1);
1938-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_break,-1);
1939-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_fullscreen,-1);
1940-gtk_toolbar_insert(GTK_TOOLBAR(headbar),headbar_sidebar,-1);
1941-
1942
1943=== removed file 'gui/menubar.c'
1944--- gui/menubar.c 2008-11-26 01:33:49 +0000
1945+++ gui/menubar.c 1970-01-01 00:00:00 +0000
1946@@ -1,52 +0,0 @@
1947-/*
1948- * This file is part of Nathive.
1949- *
1950- * Nathive is free software: you can redistribute it and/or modify
1951- * it under the terms of the GNU General Public License as published by
1952- * the Free Software Foundation, either version 3 of the License, or
1953- * (at your option) any later version.
1954- *
1955- * Nathive is distributed in the hope that it will be useful,
1956- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1957- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1958- * GNU General Public License for more details.
1959- *
1960- * You should have received a copy of the GNU General Public License
1961- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
1962- */
1963-
1964-
1965-GtkWidget *menubar = gtk_menu_bar_new();
1966-
1967-GtkWidget *menubar_file = gtk_menu_item_new_with_label(language[1]);
1968- GtkWidget *menubar_file_menu = gtk_menu_new();
1969- menubar_item_new(menubar_file_menu, language[2], "gtk-new", "dialog_new");
1970- menubar_item_new(menubar_file_menu, language[3], "gtk-open", "dialog_open");
1971- menubar_item_new(menubar_file_menu, language[4], "gtk-save", NULL);
1972-
1973- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_file), menubar_file_menu);
1974- gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubar_file);
1975-
1976-GtkWidget *menubar_edit = gtk_menu_item_new_with_label(language[5]);
1977- GtkWidget *menubar_edit_menu = gtk_menu_new();
1978- menubar_item_new(menubar_edit_menu, language[6], "gtk-preferences", NULL);
1979-
1980- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_edit), menubar_edit_menu);
1981- gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubar_edit);
1982-
1983-GtkWidget *menubar_view = gtk_menu_item_new_with_label(language[24]);
1984- GtkWidget *menubar_view_menu = gtk_menu_new();
1985- menubar_item_new(menubar_view_menu, language[25], "gtk-fullscreen", "window_fullscreen");
1986- menubar_item_new(menubar_view_menu, language[26], "gtk-goto-last", "sidebar_hide");
1987-
1988- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_view), menubar_view_menu);
1989- gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubar_view);
1990-
1991-GtkWidget *menubar_help = gtk_menu_item_new_with_label(language[27]);
1992- GtkWidget *menubar_help_menu = gtk_menu_new();
1993- menubar_item_new(menubar_help_menu, language[37], "gtk-info", "url_website");
1994- menubar_item_new(menubar_help_menu, language[28], "gtk-about", "dialog_about");
1995-
1996- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_help), menubar_help_menu);
1997- gtk_menu_bar_append(GTK_MENU_BAR(menubar), menubar_help);
1998-
1999
2000=== removed file 'gui/sidebar-brush.c'
2001--- gui/sidebar-brush.c 2008-11-26 01:33:49 +0000
2002+++ gui/sidebar-brush.c 1970-01-01 00:00:00 +0000
2003@@ -1,102 +0,0 @@
2004-/*
2005- * This file is part of Nathive.
2006- *
2007- * Nathive is free software: you can redistribute it and/or modify
2008- * it under the terms of the GNU General Public License as published by
2009- * the Free Software Foundation, either version 3 of the License, or
2010- * (at your option) any later version.
2011- *
2012- * Nathive is distributed in the hope that it will be useful,
2013- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2014- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2015- * GNU General Public License for more details.
2016- *
2017- * You should have received a copy of the GNU General Public License
2018- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2019- */
2020-
2021-
2022-GtkWidget *sidebar_brush = gtk_vbox_new(FALSE,0);
2023-
2024-char *brush_mode_ops[] = {strcatnew(PATH,"img/square.png"), strcatnew(PATH,"img/circle.png")};
2025-entry_toggle(
2026- sidebar_brush,
2027- strcatnew(language[15],":"),
2028- 2,
2029- &brush_mode,
2030- brush_mode_ops,
2031- adj_brush_mode,
2032- "brushNew"
2033-);
2034-
2035-entry_separator(sidebar_brush);
2036-
2037-adj_brush_size = gtk_adjustment_new(0,0,0,1,1,0);
2038-entry_spin(
2039- sidebar_brush,
2040- strcatnew(language[16],":"),
2041- &brush_size,
2042- 1,
2043- 100,
2044- "int",
2045- adj_brush_size,
2046- 1
2047-);
2048-
2049-adj_brush_fade = gtk_adjustment_new(0,0,0,1,1,0);
2050-entry_spin(
2051- sidebar_brush,
2052- strcatnew(language[17],":"),
2053- &brush_fade,
2054- 0,
2055- 100,
2056- "int",
2057- adj_brush_fade,
2058- 1
2059-);
2060-
2061-adj_brush_opacity = gtk_adjustment_new(0,0,0,1,1,0);
2062-entry_spin(
2063- sidebar_brush,
2064- strcatnew(language[18],":"),
2065- &brush_opacity,
2066- 1,
2067- 100,
2068- "int",
2069- adj_brush_opacity,
2070- 1
2071-);
2072-
2073-entry_separator(sidebar_brush);
2074-
2075-adj_brush_space = gtk_combo_box_new_text();
2076-char *brush_space_ops[] = { language[19], language[20], language[21] };
2077-entry_combo(
2078- sidebar_brush,
2079- strcatnew(language[22],":"),
2080- 3,
2081- &brush_space,
2082- brush_space_ops,
2083- adj_brush_space
2084-);
2085-
2086-//entry_check(sidebar_brush, "Antialias", &brush_antialias, NULL);
2087-
2088-entry_expand(sidebar_brush);
2089-entry_separator(sidebar_brush);
2090-
2091-GtkWidget *sidebar_brush_footer = gtk_hbox_new(FALSE,0);
2092- entry_clear(sidebar_brush_footer, "clear_brush", 1);
2093-
2094- /*GtkWidget *sidebar_brush_save = gtk_button_new();
2095- gtk_button_set_image(GTK_BUTTON(sidebar_brush_save), gtk_image_new_from_stock("gtk-save", 1));
2096- gtk_box_pack_end(GTK_BOX(sidebar_brush_footer),sidebar_brush_save,FALSE,FALSE,0);
2097-
2098- GtkWidget *sidebar_brush_load = gtk_combo_box_new_text();
2099- gtk_combo_box_append_text(GTK_COMBO_BOX(sidebar_brush_load), " ");
2100- gtk_combo_box_append_text(GTK_COMBO_BOX(sidebar_brush_load), "saved brush list");
2101- gtk_widget_set_size_request(sidebar_brush_load,0,10);
2102- gtk_box_pack_end(GTK_BOX(sidebar_brush_footer),sidebar_brush_load,TRUE,TRUE,0);*/
2103-
2104-gtk_box_pack_start(GTK_BOX(sidebar_brush), sidebar_brush_footer, FALSE,FALSE,0);
2105-
2106
2107=== removed file 'gui/sidebar-color.c'
2108--- gui/sidebar-color.c 2008-11-26 01:33:49 +0000
2109+++ gui/sidebar-color.c 1970-01-01 00:00:00 +0000
2110@@ -1,47 +0,0 @@
2111-/*
2112- * This file is part of Nathive.
2113- *
2114- * Nathive is free software: you can redistribute it and/or modify
2115- * it under the terms of the GNU General Public License as published by
2116- * the Free Software Foundation, either version 3 of the License, or
2117- * (at your option) any later version.
2118- *
2119- * Nathive is distributed in the hope that it will be useful,
2120- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2121- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2122- * GNU General Public License for more details.
2123- *
2124- * You should have received a copy of the GNU General Public License
2125- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2126- */
2127-
2128-
2129-GtkWidget *sidebar_color = gtk_vbox_new(FALSE,0);
2130-gtk_container_set_border_width(GTK_CONTAINER(sidebar_color), 10);
2131-
2132-int i_color;
2133-for(i_color=0; i_color<6; i_color++) adj_color1_rgbhsv[i_color] = gtk_adjustment_new(0,0,0,1,1,0);
2134-
2135-entry_spin(sidebar_color, strcatnew(language[9]," (R):"), &color1[0], 0, 255, "uchar", adj_color1_rgbhsv[0], 1);
2136-entry_spin(sidebar_color, strcatnew(language[10]," (G):"), &color1[1], 0, 255, "uchar", adj_color1_rgbhsv[1], 1);
2137-entry_spin(sidebar_color, strcatnew(language[11]," (B):"), &color1[2], 0, 255, "uchar", adj_color1_rgbhsv[2], 1);
2138-
2139-entry_separator(sidebar_color);
2140-
2141-entry_spin(sidebar_color, strcatnew(language[12]," (H):"), &color1hsv[0], 0, 359, "int", adj_color1_rgbhsv[3], 1);
2142-entry_spin(sidebar_color, strcatnew(language[13]," (S):"), &color1hsv[1], 0, 100, "int", adj_color1_rgbhsv[4], 1);
2143-entry_spin(sidebar_color, strcatnew(language[14]," (V):"), &color1hsv[2], 0, 100, "int", adj_color1_rgbhsv[5], 1);
2144-
2145-entry_separator(sidebar_color);
2146-
2147-color1hex = rgb_to_hex(color1[0], color1[1], color1[2]);
2148-adj_color1hex = gtk_entry_new();
2149-entry_entry(sidebar_color, strcatnew(language[29],":"), color1hex, 6, "hex_entry", adj_color1hex);
2150-
2151-entry_expand(sidebar_color);
2152-entry_separator(sidebar_color);
2153-
2154-GtkWidget *sidebar_color_footer = gtk_hbox_new(FALSE,0);
2155- entry_clear(sidebar_color_footer, "clear_color", 1);
2156-gtk_box_pack_start(GTK_BOX(sidebar_color), sidebar_color_footer, FALSE,FALSE,0);
2157-
2158
2159=== removed file 'gui/sidebar-mask.c'
2160--- gui/sidebar-mask.c 2008-11-26 01:33:49 +0000
2161+++ gui/sidebar-mask.c 1970-01-01 00:00:00 +0000
2162@@ -1,27 +0,0 @@
2163-/*
2164- * This file is part of Nathive.
2165- *
2166- * Nathive is free software: you can redistribute it and/or modify
2167- * it under the terms of the GNU General Public License as published by
2168- * the Free Software Foundation, either version 3 of the License, or
2169- * (at your option) any later version.
2170- *
2171- * Nathive is distributed in the hope that it will be useful,
2172- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2173- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2174- * GNU General Public License for more details.
2175- *
2176- * You should have received a copy of the GNU General Public License
2177- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2178- */
2179-
2180-
2181-GtkWidget *sidebar_mask = gtk_vbox_new(FALSE,0);
2182-gtk_container_set_border_width(GTK_CONTAINER(sidebar_mask), 10);
2183-
2184-GtkWidget* sidebar_mask_some = gtk_label_new("Mask tool parameters,");
2185-GtkWidget* sidebar_mask_some2 = gtk_label_new("not available yet.");
2186-
2187-gtk_box_pack_start(GTK_BOX(sidebar_mask), sidebar_mask_some, FALSE,FALSE,0);
2188-gtk_box_pack_start(GTK_BOX(sidebar_mask), sidebar_mask_some2, FALSE,FALSE,0);
2189-
2190
2191=== removed file 'gui/sidebar-object.c'
2192--- gui/sidebar-object.c 2008-11-26 01:33:49 +0000
2193+++ gui/sidebar-object.c 1970-01-01 00:00:00 +0000
2194@@ -1,68 +0,0 @@
2195-/*
2196- * This file is part of Nathive.
2197- *
2198- * Nathive is free software: you can redistribute it and/or modify
2199- * it under the terms of the GNU General Public License as published by
2200- * the Free Software Foundation, either version 3 of the License, or
2201- * (at your option) any later version.
2202- *
2203- * Nathive is distributed in the hope that it will be useful,
2204- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2205- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2206- * GNU General Public License for more details.
2207- *
2208- * You should have received a copy of the GNU General Public License
2209- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2210- */
2211-
2212-
2213-GtkWidget *sidebar_object = gtk_vbox_new(FALSE,5);
2214-gtk_container_set_border_width(GTK_CONTAINER(sidebar_object), 10);
2215-
2216-object_tree_view = gtk_tree_view_new();
2217-gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(object_tree_view), 0);
2218-
2219- GtkCellRenderer *object_tree_render = gtk_cell_renderer_text_new();
2220-
2221- gtk_tree_view_insert_column_with_attributes(
2222- GTK_TREE_VIEW(object_tree_view),
2223- -1,
2224- "",
2225- object_tree_render,
2226- "text",
2227- 0,
2228- NULL
2229- );
2230-
2231- GtkTreeSelection *select = gtk_tree_view_get_selection(GTK_TREE_VIEW(object_tree_view));
2232- g_signal_connect(G_OBJECT(select),"changed",G_CALLBACK(object_gui_select_gtd),NULL);
2233-
2234-
2235-gtk_box_pack_start(GTK_BOX(sidebar_object), object_tree_view, TRUE,TRUE,0);
2236-
2237-
2238-GtkWidget *sidebar_object_btn = gtk_hbox_new(FALSE,0);
2239-
2240- GtkWidget *sidebar_object_btn_new = gtk_button_new();
2241- gtk_button_set_image(GTK_BUTTON(sidebar_object_btn_new), gtk_image_new_from_stock("gtk-new",1));
2242- gtk_box_pack_start(GTK_BOX(sidebar_object_btn), sidebar_object_btn_new, TRUE,TRUE,0);
2243- g_signal_connect_swapped(G_OBJECT(sidebar_object_btn_new), "clicked", G_CALLBACK(object_new), NULL);
2244-
2245- GtkWidget *sidebar_object_btn_copy = gtk_button_new();
2246- gtk_button_set_image(GTK_BUTTON(sidebar_object_btn_copy), gtk_image_new_from_stock("gtk-copy",1));
2247- gtk_box_pack_start(GTK_BOX(sidebar_object_btn), sidebar_object_btn_copy, TRUE,TRUE,0);
2248-
2249- GtkWidget *sidebar_object_btn_up = gtk_button_new();
2250- gtk_button_set_image(GTK_BUTTON(sidebar_object_btn_up), gtk_image_new_from_stock("gtk-go-up",1));
2251- gtk_box_pack_start(GTK_BOX(sidebar_object_btn), sidebar_object_btn_up, TRUE,TRUE,0);
2252-
2253- GtkWidget *sidebar_object_btn_down = gtk_button_new();
2254- gtk_button_set_image(GTK_BUTTON(sidebar_object_btn_down), gtk_image_new_from_stock("gtk-go-down",1));
2255- gtk_box_pack_start(GTK_BOX(sidebar_object_btn), sidebar_object_btn_down, TRUE,TRUE,0);
2256-
2257- GtkWidget *sidebar_object_btn_del = gtk_button_new();
2258- gtk_button_set_image(GTK_BUTTON(sidebar_object_btn_del), gtk_image_new_from_stock("gtk-delete",1));
2259- gtk_box_pack_start(GTK_BOX(sidebar_object_btn), sidebar_object_btn_del, TRUE,TRUE,0);
2260-
2261-gtk_box_pack_start(GTK_BOX(sidebar_object), sidebar_object_btn, FALSE,FALSE,0);
2262-
2263
2264=== removed file 'gui/sidebar-picker.c'
2265--- gui/sidebar-picker.c 2008-11-26 01:33:49 +0000
2266+++ gui/sidebar-picker.c 1970-01-01 00:00:00 +0000
2267@@ -1,27 +0,0 @@
2268-/*
2269- * This file is part of Nathive.
2270- *
2271- * Nathive is free software: you can redistribute it and/or modify
2272- * it under the terms of the GNU General Public License as published by
2273- * the Free Software Foundation, either version 3 of the License, or
2274- * (at your option) any later version.
2275- *
2276- * Nathive is distributed in the hope that it will be useful,
2277- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2278- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2279- * GNU General Public License for more details.
2280- *
2281- * You should have received a copy of the GNU General Public License
2282- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2283- */
2284-
2285-
2286-GtkWidget *sidebar_picker = gtk_vbox_new(FALSE,0);
2287-gtk_container_set_border_width(GTK_CONTAINER(sidebar_picker), 10);
2288-
2289-GtkWidget* sidebar_picker_some = gtk_label_new("Picker tool parameters,");
2290-GtkWidget* sidebar_picker_some2 = gtk_label_new("not available yet.");
2291-
2292-gtk_box_pack_start(GTK_BOX(sidebar_picker), sidebar_picker_some, FALSE,FALSE,0);
2293-gtk_box_pack_start(GTK_BOX(sidebar_picker), sidebar_picker_some2, FALSE,FALSE,0);
2294-
2295
2296=== removed file 'gui/sidebar-select.c'
2297--- gui/sidebar-select.c 2008-11-26 01:33:49 +0000
2298+++ gui/sidebar-select.c 1970-01-01 00:00:00 +0000
2299@@ -1,27 +0,0 @@
2300-/*
2301- * This file is part of Nathive.
2302- *
2303- * Nathive is free software: you can redistribute it and/or modify
2304- * it under the terms of the GNU General Public License as published by
2305- * the Free Software Foundation, either version 3 of the License, or
2306- * (at your option) any later version.
2307- *
2308- * Nathive is distributed in the hope that it will be useful,
2309- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2310- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2311- * GNU General Public License for more details.
2312- *
2313- * You should have received a copy of the GNU General Public License
2314- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2315- */
2316-
2317-
2318-GtkWidget *sidebar_select = gtk_vbox_new(FALSE,0);
2319-gtk_container_set_border_width(GTK_CONTAINER(sidebar_select), 10);
2320-
2321-GtkWidget* sidebar_select_some = gtk_label_new("Select tool parameters,");
2322-GtkWidget* sidebar_select_some2 = gtk_label_new("not available yet.");
2323-
2324-gtk_box_pack_start(GTK_BOX(sidebar_select), sidebar_select_some, FALSE,FALSE,0);
2325-gtk_box_pack_start(GTK_BOX(sidebar_select), sidebar_select_some2, FALSE,FALSE,0);
2326-
2327
2328=== removed file 'gui/sidebar.c'
2329--- gui/sidebar.c 2008-11-26 18:12:53 +0000
2330+++ gui/sidebar.c 1970-01-01 00:00:00 +0000
2331@@ -1,50 +0,0 @@
2332-/*
2333- * This file is part of Nathive.
2334- *
2335- * Nathive is free software: you can redistribute it and/or modify
2336- * it under the terms of the GNU General Public License as published by
2337- * the Free Software Foundation, either version 3 of the License, or
2338- * (at your option) any later version.
2339- *
2340- * Nathive is distributed in the hope that it will be useful,
2341- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2342- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2343- * GNU General Public License for more details.
2344- *
2345- * You should have received a copy of the GNU General Public License
2346- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2347- */
2348-
2349-
2350-sidebar = gtk_notebook_new();
2351-gtk_widget_set_size_request(sidebar, 220, -1);
2352-
2353-GtkWidget* sidebar_color_label = gtk_label_new(language[7]);
2354-#include "sidebar-color.c"
2355-
2356-GtkWidget* sidebar_object_label = gtk_label_new(language[8]);
2357-#include "sidebar-object.c"
2358-
2359-GtkWidget* sidebar_tool_label = gtk_label_new(" ");
2360- sidebar_tool = gtk_vbox_new(FALSE,0);
2361- gtk_container_set_border_width(GTK_CONTAINER(sidebar_tool), 10);
2362- #include "sidebar-select.c"
2363- #include "sidebar-mask.c"
2364- #include "sidebar-picker.c"
2365- #include "sidebar-brush.c"
2366-
2367- gtk_box_pack_start(GTK_BOX(sidebar_tool), sidebar_select, TRUE,TRUE,0);
2368- gtk_box_pack_start(GTK_BOX(sidebar_tool), sidebar_mask, TRUE,TRUE,0);
2369- gtk_box_pack_start(GTK_BOX(sidebar_tool), sidebar_picker, TRUE,TRUE,0);
2370- gtk_box_pack_start(GTK_BOX(sidebar_tool), sidebar_brush, TRUE,TRUE,0);
2371-
2372- sidebar_tools[0] = sidebar_select;
2373- sidebar_tools[1] = sidebar_mask;
2374- sidebar_tools[2] = sidebar_picker;
2375- sidebar_tools[3] = sidebar_brush;
2376-
2377-
2378-gtk_notebook_append_page(GTK_NOTEBOOK(sidebar), sidebar_color, sidebar_color_label);
2379-gtk_notebook_append_page(GTK_NOTEBOOK(sidebar), sidebar_object, sidebar_object_label);
2380-gtk_notebook_append_page(GTK_NOTEBOOK(sidebar), sidebar_tool, sidebar_tool_label);
2381-
2382
2383=== removed file 'gui/tabs.c'
2384--- gui/tabs.c 2008-11-26 01:33:49 +0000
2385+++ gui/tabs.c 1970-01-01 00:00:00 +0000
2386@@ -1,22 +0,0 @@
2387-/*
2388- * This file is part of Nathive.
2389- *
2390- * Nathive is free software: you can redistribute it and/or modify
2391- * it under the terms of the GNU General Public License as published by
2392- * the Free Software Foundation, either version 3 of the License, or
2393- * (at your option) any later version.
2394- *
2395- * Nathive is distributed in the hope that it will be useful,
2396- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2397- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2398- * GNU General Public License for more details.
2399- *
2400- * You should have received a copy of the GNU General Public License
2401- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2402- */
2403-
2404-
2405-tabs = gtk_notebook_new();
2406-gtk_notebook_set_scrollable(GTK_NOTEBOOK(tabs), 1);
2407-g_signal_connect(G_OBJECT(tabs),"switch-page",G_CALLBACK(tab_change),NULL);
2408-
2409
2410=== removed file 'gui/toolbar.c'
2411--- gui/toolbar.c 2008-11-26 18:12:53 +0000
2412+++ gui/toolbar.c 1970-01-01 00:00:00 +0000
2413@@ -1,42 +0,0 @@
2414-/*
2415- * This file is part of Nathive.
2416- *
2417- * Nathive is free software: you can redistribute it and/or modify
2418- * it under the terms of the GNU General Public License as published by
2419- * the Free Software Foundation, either version 3 of the License, or
2420- * (at your option) any later version.
2421- *
2422- * Nathive is distributed in the hope that it will be useful,
2423- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2424- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2425- * GNU General Public License for more details.
2426- *
2427- * You should have received a copy of the GNU General Public License
2428- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2429- */
2430-
2431-
2432-GtkWidget *toolbar = gtk_vbox_new(FALSE,0);
2433-gtk_container_set_border_width(GTK_CONTAINER(toolbar), 2);
2434-
2435-char *toolbar_item_ops[] = {
2436- strcatnew(PATH,"img/select.png"),
2437- strcatnew(PATH,"img/mask.png"),
2438- strcatnew(PATH,"img/picker.png"),
2439- strcatnew(PATH,"img/brush.png")
2440-};
2441-toolbar_item(toolbar, TOOLS, toolbar_item_ops);
2442-
2443-entry_space(toolbar);
2444-
2445-GdkPixbuf *toolbar_color1_pix = pixbuf_new(NULL, 20, 20);
2446-int toolbar_color1_w = gdk_pixbuf_get_width(toolbar_color1_pix);
2447-int toolbar_color1_h = gdk_pixbuf_get_height(toolbar_color1_pix);
2448-
2449-toolbar_color1[0] = gdk_pixbuf_get_pixels(toolbar_color1_pix);
2450-toolbar_color1[1] = gtk_image_new_from_pixbuf(toolbar_color1_pix);
2451-toolbar_color1[2] = &toolbar_color1_w;
2452-toolbar_color1[3] = &toolbar_color1_h;
2453-
2454-gtk_box_pack_start(GTK_BOX(toolbar), toolbar_color1[1], FALSE, FALSE, 0);
2455-
2456
2457=== added directory 'img'
2458=== removed directory 'img'
2459=== added file 'img/about.png'
2460Binary files img/about.png 1970-01-01 00:00:00 +0000 and img/about.png 2009-12-12 11:55:22 +0000 differ
2461=== removed file 'img/about.png'
2462Binary files img/about.png 2008-11-26 01:33:49 +0000 and img/about.png 1970-01-01 00:00:00 +0000 differ
2463=== added file 'img/brush.png'
2464Binary files img/brush.png 1970-01-01 00:00:00 +0000 and img/brush.png 2009-12-12 11:55:22 +0000 differ
2465=== removed file 'img/brush.png'
2466Binary files img/brush.png 2008-11-26 01:33:49 +0000 and img/brush.png 1970-01-01 00:00:00 +0000 differ
2467=== added file 'img/circle.png'
2468Binary files img/circle.png 1970-01-01 00:00:00 +0000 and img/circle.png 2009-12-12 11:55:22 +0000 differ
2469=== removed file 'img/circle.png'
2470Binary files img/circle.png 2008-11-26 01:33:49 +0000 and img/circle.png 1970-01-01 00:00:00 +0000 differ
2471=== added file 'img/icon.png'
2472Binary files img/icon.png 1970-01-01 00:00:00 +0000 and img/icon.png 2009-12-12 11:55:22 +0000 differ
2473=== removed file 'img/icon.png'
2474Binary files img/icon.png 2008-11-26 01:33:49 +0000 and img/icon.png 1970-01-01 00:00:00 +0000 differ
2475=== added file 'img/mask.png'
2476Binary files img/mask.png 1970-01-01 00:00:00 +0000 and img/mask.png 2009-12-12 11:55:22 +0000 differ
2477=== removed file 'img/mask.png'
2478Binary files img/mask.png 2008-11-26 01:33:49 +0000 and img/mask.png 1970-01-01 00:00:00 +0000 differ
2479=== added file 'img/picker.png'
2480Binary files img/picker.png 1970-01-01 00:00:00 +0000 and img/picker.png 2009-12-12 11:55:22 +0000 differ
2481=== removed file 'img/picker.png'
2482Binary files img/picker.png 2008-11-26 01:33:49 +0000 and img/picker.png 1970-01-01 00:00:00 +0000 differ
2483=== added file 'img/select.png'
2484Binary files img/select.png 1970-01-01 00:00:00 +0000 and img/select.png 2009-12-12 11:55:22 +0000 differ
2485=== removed file 'img/select.png'
2486Binary files img/select.png 2008-11-26 01:33:49 +0000 and img/select.png 1970-01-01 00:00:00 +0000 differ
2487=== added file 'img/square.png'
2488Binary files img/square.png 1970-01-01 00:00:00 +0000 and img/square.png 2009-12-12 11:55:22 +0000 differ
2489=== removed file 'img/square.png'
2490Binary files img/square.png 2008-11-26 01:33:49 +0000 and img/square.png 1970-01-01 00:00:00 +0000 differ
2491=== added file 'img/visual.png'
2492Binary files img/visual.png 1970-01-01 00:00:00 +0000 and img/visual.png 2009-12-12 11:55:22 +0000 differ
2493=== added file 'img/visual_rotate.png'
2494Binary files img/visual_rotate.png 1970-01-01 00:00:00 +0000 and img/visual_rotate.png 2009-12-12 11:55:22 +0000 differ
2495=== added file 'img/visual_scale.png'
2496Binary files img/visual_scale.png 1970-01-01 00:00:00 +0000 and img/visual_scale.png 2009-12-12 11:55:22 +0000 differ
2497=== removed directory 'lang'
2498=== removed file 'lang/chinese.xml'
2499--- lang/chinese.xml 2008-12-01 07:53:03 +0000
2500+++ lang/chinese.xml 1970-01-01 00:00:00 +0000
2501@@ -1,59 +0,0 @@
2502-<?xml version="1.0" encoding="UTF-8" ?>
2503-<language>
2504- <word1>文件</word1>
2505- <word2>新建</word2>
2506- <word3>打开</word3>
2507- <word4>保存</word4>
2508- <word5>编辑</word5>
2509- <word6>首选项</word6>
2510- <word7>颜色</word7>
2511- <word8>对象</word8>
2512- <word9>红</word9>
2513- <word10>绿</word10>
2514- <word11>蓝</word11>
2515- <word12>色调</word12>
2516- <word13>饱和度</word13>
2517- <word14>纯度</word14>
2518- <word15>形状</word15>
2519- <word16>大小</word16>
2520- <word17>平滑</word17>
2521- <word18>不透明</word18>
2522- <word19>常量</word19>
2523- <word20>变量</word20>
2524- <word21>空闲</word21>
2525- <word22>间隔</word22>
2526- <word23>还原默认值</word23>
2527- <word24>视图</word24>
2528- <word25>全屏</word25>
2529- <word26>侧边栏</word26>
2530- <word27>帮助</word27>
2531- <word28>关于</word28>
2532- <word29>十六进制</word29>
2533- <word30>宽度</word30>
2534- <word31>高度</word31>
2535- <word32>点/英寸</word32>
2536- <word33>无背景</word33>
2537- <word34>版本</word34>
2538- <word35>致谢</word35>
2539- <word36>许可</word36>
2540- <word37>Nathive 网站</word37>
2541- <word38>未保存</word38>
2542- <word39>单位</word39>
2543- <word40>像素</word40>
2544- <word41>厘米</word41>
2545- <word42>英寸</word42>
2546- <word43>分辨率</word43>
2547- <word44>模板</word44>
2548- <word45>CD 封面</word45>
2549- <word46>DVD 封面</word46>
2550- <word47>很高</word47>
2551- <word48>高</word48>
2552- <word49>正常</word49>
2553- <word50>低</word50>
2554- <word51>很低</word51>
2555- <word52>笔刷大小</word52>
2556- <word53>旋转 90º</word53>
2557- <word54>缩小 50%</word54>
2558- <word55>放大 200%</word55>
2559- <word56>Preview</word56> <!--need translation-->
2560-</language>
2561
2562=== removed file 'lang/english.xml'
2563--- lang/english.xml 2008-12-01 07:53:03 +0000
2564+++ lang/english.xml 1970-01-01 00:00:00 +0000
2565@@ -1,59 +0,0 @@
2566-<?xml version="1.0" encoding="UTF-8" ?>
2567-<language>
2568- <word1>File</word1>
2569- <word2>New</word2>
2570- <word3>Open</word3>
2571- <word4>Save</word4>
2572- <word5>Edit</word5>
2573- <word6>Preferences</word6>
2574- <word7>Color</word7>
2575- <word8>Objects</word8>
2576- <word9>Red</word9>
2577- <word10>Green</word10>
2578- <word11>Blue</word11>
2579- <word12>Hue</word12>
2580- <word13>Saturation</word13>
2581- <word14>Value</word14>
2582- <word15>Shape</word15>
2583- <word16>Size</word16>
2584- <word17>Smoothing</word17>
2585- <word18>Opacity</word18>
2586- <word19>Constant</word19>
2587- <word20>Variable</word20>
2588- <word21>Idle</word21>
2589- <word22>Spacing</word22>
2590- <word23>Restore default values</word23>
2591- <word24>View</word24>
2592- <word25>Fullscreen</word25>
2593- <word26>Sidebar</word26>
2594- <word27>Help</word27>
2595- <word28>About</word28>
2596- <word29>Hexadecimal</word29>
2597- <word30>Width</word30>
2598- <word31>Height</word31>
2599- <word32>Dots/inche</word32>
2600- <word33>No background</word33>
2601- <word34>Version</word34>
2602- <word35>Credits</word35>
2603- <word36>License</word36>
2604- <word37>Nathive website</word37>
2605- <word38>Unsaved</word38>
2606- <word39>Units</word39>
2607- <word40>Pixels</word40>
2608- <word41>Centimeters</word41>
2609- <word42>Inches</word42>
2610- <word43>Resolution</word43>
2611- <word44>Template</word44>
2612- <word45>CD cover</word45>
2613- <word46>DVD cover</word46>
2614- <word47>Very high</word47>
2615- <word48>High</word48>
2616- <word49>Normal</word49>
2617- <word50>Low</word50>
2618- <word51>Very low</word51>
2619- <word52>Brush size</word52>
2620- <word53>Rotate 90º</word53>
2621- <word54>Get 50%</word54>
2622- <word55>Get 200%</word55>
2623- <word56>Preview</word56>
2624-</language>
2625
2626=== removed file 'lang/german.xml'
2627--- lang/german.xml 2008-12-01 07:53:03 +0000
2628+++ lang/german.xml 1970-01-01 00:00:00 +0000
2629@@ -1,59 +0,0 @@
2630-<?xml version="1.0" encoding="UTF-8" ?>
2631-<language>
2632- <word1>Datei</word1>
2633- <word2>Neu</word2>
2634- <word3>Öffnen</word3>
2635- <word4>Speichern</word4>
2636- <word5>Bearbeiten</word5>
2637- <word6>Einstellungen</word6>
2638- <word7>Farbe</word7>
2639- <word8>Objekte</word8>
2640- <word9>Rot</word9>
2641- <word10>Grün</word10>
2642- <word11>Blau</word11>
2643- <word12>Farbton</word12>
2644- <word13>Farbsättigung</word13>
2645- <word14>Farbwert</word14>
2646- <word15>Form</word15>
2647- <word16>Größe</word16>
2648- <word17>Weichzeichnung</word17>
2649- <word18>Deckkraft</word18>
2650- <word19>Konstant</word19>
2651- <word20>Variabel</word20>
2652- <word21>Ignorieren</word21>
2653- <word22>Abstand</word22>
2654- <word23>Standardwerte wiederherstellen</word23>
2655- <word24>Ansicht</word24>
2656- <word25>Vollbild</word25>
2657- <word26>Seitenleiste</word26>
2658- <word27>Hilfe</word27>
2659- <word28>Über</word28>
2660- <word29>Hexadezimal</word29>
2661- <word30>Breite</word30>
2662- <word31>Höhe</word31>
2663- <word32>Punkte/Zoll</word32>
2664- <word33>Kein Hintergrund</word33>
2665- <word34>Version</word34>
2666- <word35>Credits</word35>
2667- <word36>Lizenz</word36>
2668- <word37>Nathive Website</word37>
2669- <word38>Ungespeichert</word38>
2670- <word39>Einheiten</word39>
2671- <word40>Pixel</word40>
2672- <word41>Zentimeter</word41>
2673- <word42>Zoll</word42>
2674- <word43>Auflösung</word43>
2675- <word44>Vorlage</word44>
2676- <word45>CD-Hülle</word45>
2677- <word46>DVD-Hülle</word46>
2678- <word47>Sehr hoch</word47>
2679- <word48>Hoch</word48>
2680- <word49>Normal</word49>
2681- <word50>Niedrig</word50>
2682- <word51>Sehr niedrig</word51>
2683- <word52>Pinselgröße</word52>
2684- <word53>Um 90º drehen</word53>
2685- <word54>Get 50%</word54>
2686- <word55>Get 200%</word55>
2687- <word56>Preview</word56> <!--need translation-->
2688-</language>
2689
2690=== removed file 'lang/hungarian.xml'
2691--- lang/hungarian.xml 2008-12-01 07:53:03 +0000
2692+++ lang/hungarian.xml 1970-01-01 00:00:00 +0000
2693@@ -1,58 +0,0 @@
2694-<?xml version="1.0" encoding="UTF-8" ?>
2695-<language>
2696- <word1>Fájl</word1>
2697- <word2>Új</word2>
2698- <word3>Megnyitás</word3>
2699- <word4>Mentés</word4>
2700- <word5>Szerkesztés</word5>
2701- <word6>Beállítások</word6>
2702- <word7>Szín</word7>
2703- <word8>Objektumok</word8>
2704- <word9>Piros</word9>
2705- <word10>Zöld</word10>
2706- <word11>Kék</word11>
2707- <word12>Kontraszt</word12>
2708- <word13>Fényerő</word13>
2709- <word14>Érték</word14>
2710- <word15>Alakzat</word15>
2711- <word16>Méret</word16>
2712- <word17>Simítás</word17>
2713- <word18>Áttetszőség</word18>
2714- <word19>Állandó</word19>
2715- <word20>Változó</word20>
2716- <word21>Folyamatban</word21>
2717- <word22>Térköz</word22>
2718- <word23>Alapértelmezett értékek helyreállítása</word23>
2719- <word24>Nézet</word24>
2720- <word25>Teljes képernyő</word25>
2721- <word26>Oldalpanel</word26>
2722- <word27>Súgó</word27>
2723- <word28>Programról</word28>
2724- <word29>Hexadecimális</word29>
2725- <word30>Width</word30>
2726- <word31>Height</word31>
2727- <word32>Dots/inche</word32>
2728- <word33>No background</word33>
2729- <word34>Version</word34>
2730- <word35>Credits</word35>
2731- <word36>License</word36>
2732- <word37>Nathive website</word37>
2733- <word38>Unsaved</word38>
2734- <word39>Mértékegység</word39>
2735- <word40>Pixel</word40>
2736- <word41>Centiméter</word41>
2737- <word42>Coll</word42>
2738- <word43>Felbontás</word43>
2739- <word44>Sablon</word44>
2740- <word45>CD borító</word45>
2741- <word46>DVD borító</word46>
2742- <word47>Nagyon magas</word47>
2743- <word48>Magas</word48>
2744- <word49>Normál</word49>
2745- <word50>Alacsony</word50>
2746- <word51>Nagyon alacsony</word51>
2747- <word52>Ecset méret</word52>
2748- <word53>Rotate 90º</word53> <!--need translation-->
2749- <word54>Get 50%</word54> <!--need translation-->
2750- <word55>Get 200%</word55> <!--need translation-->
2751-</language>
2752
2753=== removed file 'lang/polish.xml'
2754--- lang/polish.xml 2008-12-01 07:53:03 +0000
2755+++ lang/polish.xml 1970-01-01 00:00:00 +0000
2756@@ -1,59 +0,0 @@
2757-<?xml version="1.0" encoding="UTF-8" ?>
2758-<language>
2759- <word1>Plik</word1>
2760- <word2>Nowy</word2>
2761- <word3>Otwórz</word3>
2762- <word4>Zapisz</word4>
2763- <word5>Edycja</word5>
2764- <word6>Ustawienia</word6>
2765- <word7>Kolor</word7>
2766- <word8>Obiekty</word8>
2767- <word9>Czerwony</word9>
2768- <word10>Zielony</word10>
2769- <word11>Niebieski</word11>
2770- <word12>Odcień</word12>
2771- <word13>Nasycenie</word13>
2772- <word14>Wartość</word14>
2773- <word15>Kształt</word15>
2774- <word16>Rozmiar</word16>
2775- <word17>Wygładzenie</word17>
2776- <word18>Nieprzezroczystość</word18>
2777- <word19>Stały</word19>
2778- <word20>Zmienny</word20>
2779- <word21>Bezczynny</word21>
2780- <word22>Odstęp</word22>
2781- <word23>Przywróć domyślne wartości</word23>
2782- <word24>Widok</word24>
2783- <word25>Pełny ekran</word25>
2784- <word26>Pasek boczny</word26>
2785- <word27>Pomoc</word27>
2786- <word28>O programie</word28>
2787- <word29>Szestnastkowy</word29>
2788- <word30>Szerokość</word30>
2789- <word31>Wysokość</word31>
2790- <word32>Punkty/cale</word32>
2791- <word33>Bez tła</word33>
2792- <word34>Wersja</word34>
2793- <word35>Zasłlugi</word35>
2794- <word36>Licencja</word36>
2795- <word37>Strona domowa Nathive</word37>
2796- <word38>Niezapisany</word38>
2797- <word39>Jednostki</word39>
2798- <word40>Piksele</word40>
2799- <word41>Centymetry</word41>
2800- <word42>Cale</word42>
2801- <word43>Rozdzielczość</word43>
2802- <word44>Szablon</word44>
2803- <word45>Okładka CD</word45>
2804- <word46>Okładka DVD</word46>
2805- <word47>Bardzo wysoki</word47>
2806- <word48>Wysoki</word48>
2807- <word49>Normalnyl</word49>
2808- <word50>Niski</word50>
2809- <word51>Bardzo niski</word51>
2810- <word52>Rozmiar pędzla</word52>
2811- <word53>Obróć o 90º</word53>
2812- <word54>Zrobić 50%</word54>
2813- <word55>Zrobić 200%</word55>
2814- <word56>Preview</word56> <!--need translation-->
2815-</language>
2816
2817=== removed file 'lang/spanish.xml'
2818--- lang/spanish.xml 2008-12-01 07:53:03 +0000
2819+++ lang/spanish.xml 1970-01-01 00:00:00 +0000
2820@@ -1,59 +0,0 @@
2821-<?xml version="1.0" encoding="UTF-8" ?>
2822-<language>
2823- <word1>Archivo</word1>
2824- <word2>Nuevo</word2>
2825- <word3>Abrir</word3>
2826- <word4>Guardar</word4>
2827- <word5>Edición</word5>
2828- <word6>Preferencias</word6>
2829- <word7>Color</word7>
2830- <word8>Objetos</word8>
2831- <word9>Rojo</word9>
2832- <word10>Verde</word10>
2833- <word11>Azul</word11>
2834- <word12>Tono</word12>
2835- <word13>Saturación</word13>
2836- <word14>Brillo</word14>
2837- <word15>Forma</word15>
2838- <word16>Tamaño</word16>
2839- <word17>Fundido</word17>
2840- <word18>Opacidad</word18>
2841- <word19>Constante</word19>
2842- <word20>Variable</word20>
2843- <word21>Inactivo</word21>
2844- <word22>Espaciado</word22>
2845- <word23>Restaurar valores iniciales</word23>
2846- <word24>Ver</word24>
2847- <word25>Pantalla completa</word25>
2848- <word26>Panel lateral</word26>
2849- <word27>Ayuda</word27>
2850- <word28>Acerca de</word28>
2851- <word29>Hexadecimal</word29>
2852- <word30>Ancho</word30>
2853- <word31>Alto</word31>
2854- <word32>Puntos/pulgada</word32>
2855- <word33>Sin fondo</word33>
2856- <word34>Versión</word34>
2857- <word35>Creditos</word35>
2858- <word36>Licencia</word36>
2859- <word37>Sitio web de Nathive</word37>
2860- <word38>No guardado</word38>
2861- <word39>Unidades</word39>
2862- <word40>Pixeles</word40>
2863- <word41>Centímetros</word41>
2864- <word42>Pulgadas</word42>
2865- <word43>Resolución</word43>
2866- <word44>Plantilla</word44>
2867- <word45>Portada de CD</word45>
2868- <word46>Portada de DVD</word46>
2869- <word47>Muy alta</word47>
2870- <word48>Alta</word48>
2871- <word49>Normal</word49>
2872- <word50>Baja</word50>
2873- <word51>Muy baja</word51>
2874- <word52>Tamaño del pincel</word52>
2875- <word53>Rotar 90º</word53>
2876- <word54>Obtener 50%</word54>
2877- <word55>Obtener 200%</word55>
2878- <word56>Vista previa</word56>
2879-</language>
2880
2881=== removed directory 'lib'
2882=== removed file 'lib/cfg.c'
2883--- lib/cfg.c 2008-11-26 01:33:49 +0000
2884+++ lib/cfg.c 1970-01-01 00:00:00 +0000
2885@@ -1,40 +0,0 @@
2886-/*
2887- * This file is part of Nathive.
2888- *
2889- * Nathive is free software: you can redistribute it and/or modify
2890- * it under the terms of the GNU General Public License as published by
2891- * the Free Software Foundation, either version 3 of the License, or
2892- * (at your option) any later version.
2893- *
2894- * Nathive is distributed in the hope that it will be useful,
2895- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2896- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2897- * GNU General Public License for more details.
2898- *
2899- * You should have received a copy of the GNU General Public License
2900- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2901- */
2902-
2903-
2904-cfg_load()
2905-{
2906- printf("> loading user cfg\n", language_);
2907-
2908- char *cfg = file_to_str( strcatnew(PATH,"cfg/cfg.xml") );
2909-
2910- language_ = n_xml_get(cfg, 3, "cfg", "misc", "language");
2911- folder_last = n_xml_get(cfg, 3, "cfg", "misc", "folder-last");
2912-
2913- win_w = atoi( n_xml_get(cfg, 3, "cfg", "misc", "win-w") );
2914- win_h = atoi( n_xml_get(cfg, 3, "cfg", "misc", "win-h") );
2915-
2916- color1[0] = atoi( n_xml_get(cfg, 3, "cfg", "color", "r") );
2917- color1[1] = atoi( n_xml_get(cfg, 3, "cfg", "color", "g") );
2918- color1[2] = atoi( n_xml_get(cfg, 3, "cfg", "color", "b") );
2919-
2920- brush_size = atoi(n_xml_get(cfg, 3, "cfg", "brush", "size") );
2921- brush_mode = atoi(n_xml_get(cfg, 3, "cfg", "brush", "mode") );
2922- brush_fade = atoi(n_xml_get(cfg, 3, "cfg", "brush", "soft") );
2923- brush_opacity = atoi(n_xml_get(cfg, 3, "cfg", "brush", "opacity") );
2924- brush_space = atoi( n_xml_get(cfg, 3, "cfg", "brush", "space") );
2925-}
2926
2927=== removed file 'lib/common.c'
2928--- lib/common.c 2008-11-26 01:33:49 +0000
2929+++ lib/common.c 1970-01-01 00:00:00 +0000
2930@@ -1,111 +0,0 @@
2931-/*
2932- * This file is part of Nathive.
2933- *
2934- * Nathive is free software: you can redistribute it and/or modify
2935- * it under the terms of the GNU General Public License as published by
2936- * the Free Software Foundation, either version 3 of the License, or
2937- * (at your option) any later version.
2938- *
2939- * Nathive is distributed in the hope that it will be useful,
2940- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2941- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2942- * GNU General Public License for more details.
2943- *
2944- * You should have received a copy of the GNU General Public License
2945- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
2946- */
2947-
2948-
2949-double round(double x)
2950-{
2951- return floor(x+0.5);
2952-}
2953-
2954-
2955-double log_base(double base, double x)
2956-{
2957- return log(x) / log(base);
2958-}
2959-
2960-
2961-int max(int a, int b)
2962-{
2963- if(a>b) return a;
2964- else return b;
2965-}
2966-
2967-
2968-int min(int a, int b)
2969-{
2970- if(a>b) return b;
2971- else return a;
2972-}
2973-
2974-
2975-void mark(int num)
2976-{
2977- printf("%i\n", num);
2978-}
2979-
2980-
2981-char *file_to_str(char *path)
2982-{
2983- FILE *file = fopen(path,"r");
2984- if(!file)
2985- {
2986- printf("ERROR: file_to_str: %s can not be opened\n", path);
2987- return path;
2988- }
2989-
2990- int n = 0;
2991- while(getc(file)!=EOF) n++;
2992- rewind(file);
2993-
2994- char *str = (char*)calloc(n+1, sizeof(char));
2995- int i;
2996- for(i=0; i<n; i++) str[i] = getc(file);
2997- str[n+1] = '\0';
2998- return str;
2999-}
3000-
3001-
3002-char *parse(char *str, char *in, char *out)
3003-{
3004- char *inp = strstr(str, in);
3005- char *outp = strstr(str, out);
3006- inp+= strlen(in);
3007-
3008- int n = outp-inp;
3009- if(n<1) return "PARSE ERROR";
3010- char *get = (char*)malloc((n+1)*sizeof(char));
3011- int i;
3012- for(i=0; i<=n; i++)
3013- {
3014- if(i<n) get[i] = *(inp+i);
3015- else get[i] = '\0';
3016- }
3017- return get;
3018-}
3019-
3020-
3021-char *strcatnew(char *s1, char *s2)
3022-{
3023- char *s3 = (char*)malloc(( strlen(s1) + strlen(s2) + 1 )*sizeof(char));
3024- sprintf(s3, "%s%s", s1, s2);
3025- return s3;
3026-}
3027-
3028-
3029-int hash_basic(char *str)
3030-{
3031- int hash = 0;
3032- int i = 0;
3033- while(str[i] != '\0')
3034- {
3035- hash = (hash + str[i]) * str[i];
3036- hash = abs(hash);
3037- i++;
3038- }
3039- hash *= i;
3040- return abs(hash);
3041-}
3042
3043=== removed file 'lib/dom.c'
3044--- lib/dom.c 2008-11-26 01:33:49 +0000
3045+++ lib/dom.c 1970-01-01 00:00:00 +0000
3046@@ -1,159 +0,0 @@
3047-/*
3048- * This file is part of Nathive.
3049- *
3050- * Nathive is free software: you can redistribute it and/or modify
3051- * it under the terms of the GNU General Public License as published by
3052- * the Free Software Foundation, either version 3 of the License, or
3053- * (at your option) any later version.
3054- *
3055- * Nathive is distributed in the hope that it will be useful,
3056- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3057- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3058- * GNU General Public License for more details.
3059- *
3060- * You should have received a copy of the GNU General Public License
3061- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3062- */
3063-
3064-
3065-int dom_tab()
3066-{
3067- return gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3068-}
3069-
3070-
3071-char *dom_file_path()
3072-{
3073- return n_tree_get(dom, n_tree_stalk(2, dom_tab(), DOM_PATH) );
3074-}
3075-
3076-
3077-int *dom_w()
3078-{
3079- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3080- return n_tree_get(dom, n_tree_stalk(2,tab,DOM_W));
3081-}
3082-
3083-
3084-int *dom_h()
3085-{
3086- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3087- return n_tree_get(dom, n_tree_stalk(2,tab,DOM_H));
3088-}
3089-
3090-
3091-GtkWidget *dom_scroll()
3092-{
3093- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3094- return n_tree_get(dom, n_tree_stalk(2,tab,DOM_SCROLL));
3095-}
3096-
3097-
3098-GdkPixbuf *dom_pix()
3099-{
3100- return n_tree_get(dom, n_tree_stalk(2, dom_tab() ,DOM_PIX));
3101-}
3102-
3103-
3104-GtkWidget *dom_img()
3105-{
3106- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3107- return n_tree_get(dom, n_tree_stalk(2,tab,DOM_IMG));
3108-}
3109-
3110-
3111-uchar *dom_raw()
3112-{
3113- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3114- return n_tree_get(dom, n_tree_stalk(2,tab,DOM_RAW));
3115-}
3116-
3117-
3118-int *dom_obj_sel(int tab)
3119-{
3120- if(tab==-1) tab = dom_tab();
3121- return n_tree_get(dom, n_tree_stalk(3,tab,DOM_OBJ,0));
3122-}
3123-
3124-int dom_obj_count(int tab)
3125-{
3126- if(tab==-1) tab = dom_tab();
3127- return n_tree_count(dom, n_tree_stalk(2,tab,DOM_OBJ)) - 1;
3128-}
3129-
3130-
3131-uchar *dom_obj_raw(int n)
3132-{
3133- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3134- if(!n) n = *dom_obj_sel(-1);
3135- return n_tree_get(dom, n_tree_stalk(4,tab,DOM_OBJ,n,OBJ_RAW));
3136-}
3137-
3138-
3139-int *dom_obj_w(int n)
3140-{
3141- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3142- if(!n) n = *dom_obj_sel(-1);
3143- return n_tree_get(dom, n_tree_stalk(4,tab,DOM_OBJ,n,OBJ_W));
3144-}
3145-
3146-
3147-int *dom_obj_h(int n)
3148-{
3149- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3150- if(!n) n = *dom_obj_sel(-1);
3151- return n_tree_get(dom, n_tree_stalk(4,tab,DOM_OBJ,n,OBJ_H));
3152-}
3153-
3154-
3155-int *dom_obj_x(int n)
3156-{
3157- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3158- if(!n) n = *dom_obj_sel(-1);
3159- return n_tree_get(dom, n_tree_stalk(4,tab,DOM_OBJ,n,OBJ_X));
3160-}
3161-
3162-
3163-int *dom_obj_y(int n)
3164-{
3165- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3166- if(!n) n = *dom_obj_sel(-1);
3167- return n_tree_get(dom, n_tree_stalk(4,tab,DOM_OBJ,n,OBJ_Y));
3168-}
3169-
3170-
3171-GtkTreeModel *dom_objgui_model(int n)
3172-{
3173- return n_tree_get(dom, n_tree_stalk(3,n,DOM_OBJGUI,0));
3174-}
3175-
3176-
3177-GtkListStore *dom_objgui_store(int n)
3178-{
3179- return n_tree_get(dom, n_tree_stalk(3,n,DOM_OBJGUI,1));
3180-}
3181-
3182-
3183-uchar *dom_mosaic()
3184-{
3185- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
3186- return n_tree_get(dom, n_tree_stalk(3,tab,DOM_PRE,0));
3187-}
3188-
3189-
3190-int offset_x(int x) //must be out of there
3191-{
3192- GtkWidget *img = dom_img();
3193- GtkAllocation imgAlloc = img->allocation;
3194- int ox = (imgAlloc.width - *dom_w() )/2;
3195- return x-ox;
3196-}
3197-
3198-
3199-int offset_y(int y) //must be out of there
3200-{
3201- GtkWidget *img = dom_img();
3202- GtkAllocation imgAlloc = img->allocation;
3203- int oy = (imgAlloc.height - *dom_h() )/2;
3204- return y-oy;
3205-}
3206
3207=== removed directory 'lib/gui'
3208=== removed file 'lib/gui/call.c'
3209--- lib/gui/call.c 2008-11-26 01:33:49 +0000
3210+++ lib/gui/call.c 1970-01-01 00:00:00 +0000
3211@@ -1,105 +0,0 @@
3212-/*
3213- * This file is part of Nathive.
3214- *
3215- * Nathive is free software: you can redistribute it and/or modify
3216- * it under the terms of the GNU General Public License as published by
3217- * the Free Software Foundation, either version 3 of the License, or
3218- * (at your option) any later version.
3219- *
3220- * Nathive is distributed in the hope that it will be useful,
3221- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3222- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3223- * GNU General Public License for more details.
3224- *
3225- * You should have received a copy of the GNU General Public License
3226- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3227- */
3228-
3229-
3230-call_adj_uchar(GtkAdjustment *adj, uchar *value)
3231-{
3232- *value = (uchar)gtk_adjustment_get_value(adj);
3233- if(value==&color1[0] || value==&color1[1] || value==&color1[2]) color_update("rgb");
3234- if(!feedback_lock) brush_new();
3235-}
3236-
3237-call_adj_int(GtkAdjustment *adj, int *value)
3238-{
3239- *value = (int)gtk_adjustment_get_value(adj);
3240- if(value==&color1hsv[0] || value==&color1hsv[1] || value==&color1hsv[2]) color_update("hsv");
3241- if(!feedback_lock) brush_new();
3242- if(value==&dialog_new_pxw || value==&dialog_new_pxh) dialog_new_update("px");
3243- if(value==&dialog_new_dpi) dialog_new_update("dpi");
3244-}
3245-
3246-
3247-call_adj_double(GtkAdjustment *adj, double *value)
3248-{
3249- *value = (double)gtk_adjustment_get_value(adj);
3250- if(value==&dialog_new_cmw || value==&dialog_new_cmh) dialog_new_update("cm");
3251- if(value==&dialog_new_inw || value==&dialog_new_inh) dialog_new_update("in");
3252-}
3253-
3254-
3255-call_combo(GtkComboBox *combo, int *value)
3256-{
3257- *value = gtk_combo_box_get_active(combo);
3258- if(value==&dialog_new_template) dialog_new_template_load();
3259- if(value==&dialog_new_unit) dialog_new_smartshow();
3260-}
3261-
3262-
3263-call_check(GtkToggleButton *check, int *value)
3264-{
3265- *value = gtk_toggle_button_get_active(check);
3266-}
3267-
3268-
3269-call_radio(GtkComboBox *combo, int *data[])
3270-{
3271- *data[0] = *data[1];
3272-}
3273-
3274-
3275-call_menu(GtkWidget *widget, GtkMenu *menu, GdkEvent *event)
3276-{
3277- GdkEventButton *event_button = (GdkEventButton*) event;
3278- gtk_menu_popup(menu, NULL, NULL, NULL, NULL, event_button->button, event_button->time);
3279-}
3280-
3281-
3282-call_spinmenu(int *data[])
3283-{
3284- *data[0] = *data[1];
3285-
3286- if(
3287- data[0]==&dialog_new_pxw_ops || data[0]==&dialog_new_pxh_ops ||
3288- data[0]==&dialog_new_cmw_ops || data[0]==&dialog_new_cmh_ops ||
3289- data[0]==&dialog_new_inw_ops || data[0]==&dialog_new_inh_ops
3290- )
3291- {
3292- if(*data[1]==0) dialog_new_rotate();
3293- if(*data[1]==1) dialog_new_porcent(0.50);
3294- if(*data[1]==2) dialog_new_porcent(2.00);
3295- }
3296-
3297- if(data[0] == &dialog_new_dpi_ops) dialog_new_dpi_load();
3298-}
3299-
3300-
3301-call_function(GtkWidget *wid, char *call)
3302-{
3303- if(call=="brushNew") brush_new();
3304- else if(call=="dialog_new") dialog_new();
3305- else if(call=="dialog_open") dialog_open();
3306- else if(call=="dialog_about") dialog_about();
3307- else if(call=="clear_color") clear_color();
3308- else if(call=="clear_brush") clear_brush();
3309- else if(call=="clear_new") clear_new();
3310- else if(call=="window_fullscreen") window_fullscreen();
3311- else if(call=="sidebar_hide") sidebar_hide();
3312- else if(call=="hex_entry") color_update("hex");
3313- else if(call=="url_website") system("x-www-browser http://www.nathive.org");
3314-
3315- else printf("ERROR: call_function: Not match found\n");
3316-}
3317
3318=== removed file 'lib/gui/clear.c'
3319--- lib/gui/clear.c 2008-11-26 01:33:49 +0000
3320+++ lib/gui/clear.c 1970-01-01 00:00:00 +0000
3321@@ -1,46 +0,0 @@
3322-/*
3323- * This file is part of Nathive.
3324- *
3325- * Nathive is free software: you can redistribute it and/or modify
3326- * it under the terms of the GNU General Public License as published by
3327- * the Free Software Foundation, either version 3 of the License, or
3328- * (at your option) any later version.
3329- *
3330- * Nathive is distributed in the hope that it will be useful,
3331- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3332- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3333- * GNU General Public License for more details.
3334- *
3335- * You should have received a copy of the GNU General Public License
3336- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3337- */
3338-
3339-
3340-clear_brush()
3341-{
3342- brush_mode = 1;
3343- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(adj_brush_mode[brush_mode]), 1);
3344- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_brush_size), 25);
3345- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_brush_fade), 50);
3346- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_brush_opacity), 100);
3347- gtk_combo_box_set_active(GTK_COMBO_BOX(adj_brush_space), 0);
3348- brush_new();
3349-}
3350-
3351-
3352-clear_color()
3353-{
3354- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[0]), 0);
3355- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[1]), 0);
3356- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[2]), 0);
3357-}
3358-
3359-clear_new()
3360-{
3361- gtk_combo_box_set_active(GTK_COMBO_BOX(dialog_new_unit_combo), 0);
3362- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3363- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), 300);
3364- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), 400);
3365- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog_new_nobg_check), 0);
3366- dialog_new_update("px");
3367-}
3368
3369=== removed file 'lib/gui/color.c'
3370--- lib/gui/color.c 2008-11-26 01:33:49 +0000
3371+++ lib/gui/color.c 1970-01-01 00:00:00 +0000
3372@@ -1,165 +0,0 @@
3373-/*
3374- * This file is part of Nathive.
3375- *
3376- * Nathive is free software: you can redistribute it and/or modify
3377- * it under the terms of the GNU General Public License as published by
3378- * the Free Software Foundation, either version 3 of the License, or
3379- * (at your option) any later version.
3380- *
3381- * Nathive is distributed in the hope that it will be useful,
3382- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3383- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3384- * GNU General Public License for more details.
3385- *
3386- * You should have received a copy of the GNU General Public License
3387- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3388- */
3389-
3390-
3391-color_update(char *seed)
3392-{
3393- if(seed=="rgb" && !feedback_lock)
3394- {
3395- feedback_lock = 1;
3396- int *return_hsv = rgb_to_hsv(color1[0], color1[1], color1[2]);
3397- color1hsv[0] = return_hsv[0];
3398- color1hsv[1] = return_hsv[1];
3399- color1hsv[2] = return_hsv[2];
3400- free(return_hsv);
3401- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[3]), color1hsv[0]);
3402- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[4]), color1hsv[1]);
3403- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[5]), color1hsv[2]);
3404- if(GTK_IS_ENTRY(adj_color1hex))
3405- {
3406- color1hex = rgb_to_hex(color1[0], color1[1], color1[2]);
3407- gtk_entry_set_text(GTK_ENTRY(adj_color1hex), color1hex);
3408- free(color1hex);
3409- }
3410- feedback_lock = 0;
3411- }
3412- if(seed=="hsv" && !feedback_lock)
3413- {
3414- feedback_lock = 1;
3415- uchar *return_rgb = hsv_to_rgb(color1hsv[0], color1hsv[1], color1hsv[2]);
3416- color1[0] = return_rgb[0];
3417- color1[1] = return_rgb[1];
3418- color1[2] = return_rgb[2];
3419- free(return_rgb);
3420- if(main_load)
3421- {
3422- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[0]), color1[0]);
3423- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[1]), color1[1]);
3424- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[2]), color1[2]);
3425- }
3426- if(GTK_IS_ENTRY(adj_color1hex))
3427- {
3428- color1hex = rgb_to_hex(color1[0], color1[1], color1[2]);
3429- gtk_entry_set_text(GTK_ENTRY(adj_color1hex), color1hex);
3430- free(color1hex);
3431- }
3432- feedback_lock = 0;
3433- }
3434- if(seed=="hex" && !feedback_lock)
3435- {
3436- feedback_lock = 1;
3437- color1hex = (char*)gtk_entry_get_text(GTK_ENTRY(adj_color1hex));
3438- uchar *rgb = hex_to_rgb(color1hex);
3439- color1[0] = rgb[0];
3440- color1[1] = rgb[1];
3441- color1[2] = rgb[2];
3442-
3443- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[0]), color1[0]);
3444- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[1]), color1[1]);
3445- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[2]), color1[2]);
3446-
3447- int *return_hsv = rgb_to_hsv(color1[0], color1[1], color1[2]);
3448- color1hsv[0] = return_hsv[0];
3449- color1hsv[1] = return_hsv[1];
3450- color1hsv[2] = return_hsv[2];
3451- free(return_hsv);
3452- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[3]), color1hsv[0]);
3453- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[4]), color1hsv[1]);
3454- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[5]), color1hsv[2]);
3455- brush_new();
3456- feedback_lock = 0;
3457- }
3458-
3459- uchar *raw = toolbar_color1[0];
3460- GtkWidget *img = toolbar_color1[1];
3461- int w = *(int*)toolbar_color1[2];
3462- int h = *(int*)toolbar_color1[3];
3463- int x, y;
3464- for(y=0; y<h; y++)
3465- {
3466- for(x=0; x<w; x++)
3467- {
3468- int pos = pixel_pos(x, y, w);
3469- if(x!=0 && y!=0 && x!=w-1 && y!=h-1)
3470- {
3471- *(raw+pos+0) = color1[0];
3472- *(raw+pos+1) = color1[1];
3473- *(raw+pos+2) = color1[2];
3474- *(raw+pos+3) = 255;
3475- }
3476- else
3477- {
3478- *(raw+pos+0) = 0;
3479- *(raw+pos+1) = 0;
3480- *(raw+pos+2) = 0;
3481- *(raw+pos+3) = 255;
3482- }
3483- }
3484- }
3485- gtk_widget_queue_draw(img);
3486-}
3487-
3488-
3489-colorbar_select(GtkWidget *wid, GdkEventButton *event, uchar data[3])
3490-{
3491- color1[0] = data[0];
3492- color1[1] = data[1];
3493- color1[2] = data[2];
3494- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[0]), color1[0]);
3495- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[1]), color1[1]);
3496- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj_color1_rgbhsv[2]), color1[2]);
3497-}
3498-
3499-
3500-colorbar_item(GtkWidget *colorbar, uchar r, uchar g, uchar b)
3501-{
3502- GtkWidget *ebox = gtk_event_box_new();
3503- gtk_widget_set_size_request(ebox,20,-1);
3504-
3505- GdkColor *color = (GdkColor*)malloc(sizeof(GdkColor));
3506- color->red = (guint16)r*257;
3507- color->green = (guint16)g*257;
3508- color->blue = (guint16)b*257;
3509-
3510- gtk_widget_modify_bg(ebox, GTK_STATE_NORMAL, color);
3511-
3512- uchar *data = (uchar*)malloc(3*sizeof(uchar));
3513- data[0] = r;
3514- data[1] = g;
3515- data[2] = b;
3516- g_signal_connect(G_OBJECT(ebox), "button-press-event", G_CALLBACK(colorbar_select), data);
3517- gtk_box_pack_start(GTK_BOX(colorbar),ebox,TRUE,TRUE,0);
3518-}
3519-
3520-
3521-void load_palette_from_xml(GtkWidget *palette_, char *path)
3522-{
3523- char *xml = file_to_str(path);
3524-
3525- int colors = atoi( n_xml_get(xml, 2, "palette", "colors") );
3526-
3527- char colornn[7];
3528- int i;
3529- for(i=1; i<=colors; i++)
3530- {
3531- sprintf(colornn, "color%i", i);
3532- char *hex = n_xml_get(xml, 2, "palette", colornn);
3533- uchar *rgb = hex_to_rgb(hex);
3534- colorbar_item(palette_, rgb[0], rgb[1], rgb[2]);
3535- free(rgb);
3536- }
3537-}
3538
3539=== removed file 'lib/gui/cursor.c'
3540--- lib/gui/cursor.c 2008-11-26 01:33:49 +0000
3541+++ lib/gui/cursor.c 1970-01-01 00:00:00 +0000
3542@@ -1,42 +0,0 @@
3543-/*
3544- * This file is part of Nathive.
3545- *
3546- * Nathive is free software: you can redistribute it and/or modify
3547- * it under the terms of the GNU General Public License as published by
3548- * the Free Software Foundation, either version 3 of the License, or
3549- * (at your option) any later version.
3550- *
3551- * Nathive is distributed in the hope that it will be useful,
3552- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3553- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3554- * GNU General Public License for more details.
3555- *
3556- * You should have received a copy of the GNU General Public License
3557- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3558- */
3559-
3560-
3561-cursor_stock(GdkCursorType stock)
3562-{
3563- GdkWindow *winGdk = win->window;
3564- GdkDisplay *display = gdk_display_get_default();
3565- GdkCursor *cursor = gdk_cursor_new(stock);
3566- gdk_window_set_cursor(winGdk, cursor);
3567-}
3568-
3569-
3570-cursor_pixbuf(char *path)
3571-{
3572- GdkWindow *winGdk = win->window;
3573- GdkDisplay *display = gdk_display_get_default();
3574- GdkPixbuf *pix = gdk_pixbuf_new_from_file(path, NULL);
3575- GdkCursor *cursor = gdk_cursor_new_from_pixbuf(display, pix, 0, 0);
3576- gdk_window_set_cursor(winGdk, cursor);
3577-}
3578-
3579-
3580-cursor_default()
3581-{
3582- GdkWindow *winGdk = win->window;
3583- gdk_window_set_cursor(winGdk, NULL);
3584-}
3585
3586=== removed file 'lib/gui/dialog.c'
3587--- lib/gui/dialog.c 2008-12-01 07:53:03 +0000
3588+++ lib/gui/dialog.c 1970-01-01 00:00:00 +0000
3589@@ -1,521 +0,0 @@
3590-/*
3591- * This file is part of Nathive.
3592- *
3593- * Nathive is free software: you can redistribute it and/or modify
3594- * it under the terms of the GNU General Public License as published by
3595- * the Free Software Foundation, either version 3 of the License, or
3596- * (at your option) any later version.
3597- *
3598- * Nathive is distributed in the hope that it will be useful,
3599- * but WITHOUT ANY WARRANTY; without even the implied warranty of
3600- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3601- * GNU General Public License for more details.
3602- *
3603- * You should have received a copy of the GNU General Public License
3604- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
3605- */
3606-
3607-
3608-dialog_new_template_load()
3609-{
3610- feedback_lock = 1;
3611- if(dialog_new_template == 1) // A3
3612- {
3613- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 29.7);
3614- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 42.0);
3615- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3616- feedback_lock = 0;
3617- dialog_new_update("cm-refresh");
3618- }
3619- if(dialog_new_template == 2) // a4
3620- {
3621- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 21.0);
3622- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 29.7);
3623- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3624- feedback_lock = 0;
3625- dialog_new_update("cm-refresh");
3626- }
3627- if(dialog_new_template == 3) // a5
3628- {
3629- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 14.8);
3630- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 21.0);
3631- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3632- feedback_lock = 0;
3633- dialog_new_update("cm-refresh");
3634- }
3635- if(dialog_new_template == 4) // cd cover
3636- {
3637- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 12.1);
3638- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 12.0);
3639- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3640- feedback_lock = 0;
3641- dialog_new_update("cm-refresh");
3642- }
3643- if(dialog_new_template == 5) // dvd cover
3644- {
3645- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 27.2);
3646- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 18.4);
3647- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3648- feedback_lock = 0;
3649- dialog_new_update("cm-refresh");
3650- }
3651- if(dialog_new_template == 6) // dvd cover slim
3652- {
3653- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), 26.7);
3654- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), 18.4);
3655- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), 150);
3656- feedback_lock = 0;
3657- dialog_new_update("cm-refresh");
3658- }
3659-}
3660-
3661-
3662-dialog_new_rotate()
3663-{
3664- if(dialog_new_pxw_ops != -1 || dialog_new_pxh_ops != -1)
3665- {
3666- int temp = dialog_new_pxw;
3667- dialog_new_pxw = dialog_new_pxh;
3668- dialog_new_pxh = temp;
3669- dialog_new_pxw_ops = dialog_new_pxh_ops = -1;
3670- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), dialog_new_pxw);
3671- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), dialog_new_pxh);
3672- dialog_new_update("px");
3673- }
3674- if(dialog_new_cmw_ops != -1 || dialog_new_cmh_ops != -1)
3675- {
3676- double temp = dialog_new_cmw;
3677- dialog_new_cmw = dialog_new_cmh;
3678- dialog_new_cmh = temp;
3679- dialog_new_cmw_ops = dialog_new_cmh_ops = -1;
3680- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), dialog_new_cmw);
3681- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), dialog_new_cmh);
3682- dialog_new_update("cm");
3683- }
3684- if(dialog_new_inw_ops != -1 || dialog_new_inh_ops != -1)
3685- {
3686- double temp = dialog_new_inw;
3687- dialog_new_inw = dialog_new_inh;
3688- dialog_new_inh = temp;
3689- dialog_new_inw_ops = dialog_new_inh_ops = -1;
3690- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[5]), dialog_new_inw);
3691- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[6]), dialog_new_inh);
3692- dialog_new_update("in");
3693- }
3694-}
3695-
3696-
3697-dialog_new_porcent(double mod)
3698-{
3699- if(dialog_new_pxw_ops != -1 || dialog_new_pxh_ops != -1)
3700- {
3701- if(dialog_new_pxw_ops != -1) dialog_new_pxw *= mod;
3702- if(dialog_new_pxh_ops != -1) dialog_new_pxh *= mod;
3703- dialog_new_pxw_ops = dialog_new_pxh_ops = -1;
3704- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), dialog_new_pxw);
3705- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), dialog_new_pxh);
3706- dialog_new_update("px");
3707- }
3708- if(dialog_new_cmw_ops != -1 || dialog_new_cmh_ops != -1)
3709- {
3710- if(dialog_new_cmw_ops != -1) dialog_new_cmw *= mod;
3711- if(dialog_new_cmh_ops != -1) dialog_new_cmh *= mod;
3712- dialog_new_cmw_ops = dialog_new_cmh_ops = -1;
3713- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), dialog_new_cmw);
3714- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), dialog_new_cmh);
3715- dialog_new_update("cm");
3716- }
3717- if(dialog_new_inw_ops != -1 || dialog_new_inh_ops != -1)
3718- {
3719- if(dialog_new_inw_ops != -1) dialog_new_inw *= mod;
3720- if(dialog_new_inh_ops != -1) dialog_new_inh *= mod;
3721- dialog_new_inw_ops = dialog_new_inh_ops = -1;
3722- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[5]), dialog_new_inw);
3723- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[6]), dialog_new_inh);
3724- dialog_new_update("in");
3725- }
3726-}
3727-
3728-
3729-dialog_new_dpi_load()
3730-{
3731- if(dialog_new_dpi_ops==0) dialog_new_dpi = 600;
3732- if(dialog_new_dpi_ops==1) dialog_new_dpi = 300;
3733- if(dialog_new_dpi_ops==2) dialog_new_dpi = 150;
3734- if(dialog_new_dpi_ops==3) dialog_new_dpi = 92;
3735- if(dialog_new_dpi_ops==4) dialog_new_dpi = 72;
3736- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[2]), dialog_new_dpi);
3737- dialog_new_dpi_ops = -1;
3738-}
3739-
3740-
3741-dialog_new_smartshow()
3742-{
3743- gtk_widget_hide(dialog_new_box_px);
3744- gtk_widget_hide(dialog_new_box_cm);
3745- gtk_widget_hide(dialog_new_box_in);
3746- if(dialog_new_unit == 0) gtk_widget_show(dialog_new_box_px);
3747- if(dialog_new_unit == 1) gtk_widget_show(dialog_new_box_cm);
3748- if(dialog_new_unit == 2) gtk_widget_show(dialog_new_box_in);
3749-
3750- /*if(dialog_new_unit == 0) gtk_widget_set_sensitive(dialog_new_box_re, 0);
3751- else gtk_widget_set_sensitive(dialog_new_box_re, 1);*/
3752-}
3753-
3754-
3755-dialog_new_update(char *seed)
3756-{
3757- if(!feedback_lock)
3758- {
3759- feedback_lock = 1;
3760-
3761- if(seed!="unit" && !strstr(seed,"refresh"))
3762- {
3763- gtk_combo_box_set_active(GTK_COMBO_BOX(dialog_new_template_combo), 0);
3764- }
3765- if(seed=="px-refresh") seed="px";
3766- if(seed=="cm-refresh") seed="cm";
3767- if(seed=="in-refresh") seed="in";
3768-
3769- if(seed=="px")
3770- {
3771- dialog_new_cmw = px_to_cm(dialog_new_pxw, dialog_new_dpi);
3772- dialog_new_cmh = px_to_cm(dialog_new_pxh, dialog_new_dpi);
3773- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), dialog_new_cmw);
3774- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), dialog_new_cmh);
3775- dialog_new_inw = px_to_in(dialog_new_pxw, dialog_new_dpi);
3776- dialog_new_inh = px_to_in(dialog_new_pxh, dialog_new_dpi);
3777- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[5]), dialog_new_inw);
3778- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[6]), dialog_new_inh);
3779- }
3780- if(seed=="cm")
3781- {
3782- dialog_new_pxw = cm_to_px(dialog_new_cmw, dialog_new_dpi);
3783- dialog_new_pxh = cm_to_px(dialog_new_cmh, dialog_new_dpi);
3784- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), dialog_new_pxw);
3785- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), dialog_new_pxh);
3786- dialog_new_inw = cm_to_in(dialog_new_cmw);
3787- dialog_new_inh = cm_to_in(dialog_new_cmh);
3788- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[5]), dialog_new_inw);
3789- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[6]), dialog_new_inh);
3790- }
3791- if(seed=="in")
3792- {
3793- dialog_new_pxw = in_to_px(dialog_new_inw, dialog_new_dpi);
3794- dialog_new_pxh = in_to_px(dialog_new_inh, dialog_new_dpi);
3795- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), dialog_new_pxw);
3796- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), dialog_new_pxh);
3797- dialog_new_cmw = in_to_cm(dialog_new_inw);
3798- dialog_new_cmh = in_to_cm(dialog_new_inh);
3799- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), dialog_new_cmw);
3800- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), dialog_new_cmh);
3801- }
3802- if(seed=="dpi")
3803- {
3804- if(dialog_new_unit == 0)
3805- {
3806- dialog_new_cmw = px_to_cm(dialog_new_pxw, dialog_new_dpi);
3807- dialog_new_cmh = px_to_cm(dialog_new_pxh, dialog_new_dpi);
3808- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[3]), dialog_new_cmw);
3809- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[4]), dialog_new_cmh);
3810- dialog_new_inw = px_to_in(dialog_new_pxw, dialog_new_dpi);
3811- dialog_new_inh = px_to_in(dialog_new_pxh, dialog_new_dpi);
3812- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[5]), dialog_new_inw);
3813- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[6]), dialog_new_inh);
3814- }
3815- if(dialog_new_unit == 1)
3816- {
3817- dialog_new_pxw = cm_to_px(dialog_new_cmw, dialog_new_dpi);
3818- dialog_new_pxh = cm_to_px(dialog_new_cmh, dialog_new_dpi);
3819- }
3820- if(dialog_new_unit == 2)
3821- {
3822- dialog_new_pxw = in_to_px(dialog_new_inw, dialog_new_dpi);
3823- dialog_new_pxh = in_to_px(dialog_new_inh, dialog_new_dpi);
3824- }
3825- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[0]), dialog_new_pxw);
3826- gtk_adjustment_set_value(GTK_ADJUSTMENT(dialog_new_adj[1]), dialog_new_pxh);
3827- }
3828- feedback_lock = 0;
3829- }
3830-}
3831-
3832-
3833-dialog_new_call(GtkWidget *btn, GtkWidget *dialog)
3834-{
3835- destroy(NULL, dialog);
3836- tab_open(NULL, dialog_new_pxw, dialog_new_pxh, dialog_new_nobg);
3837-}
3838-
3839-
3840-dialog_new()
3841-{
3842- GtkWidget *dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
3843- gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
3844- gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER_ALWAYS);
3845- gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
3846- gtk_window_set_title(GTK_WINDOW(dialog), language[2]);
3847- gtk_container_set_border_width(GTK_CONTAINER(dialog), 10);
3848- GtkWidget *vbox = gtk_vbox_new(FALSE,5);
3849-
3850- dialog_new_template_combo = gtk_combo_box_new_text();
3851- char *dialog_new_template_ops[] = {
3852- "",
3853- "DIN A3",
3854- "DIN A4",
3855- "DIN A5",
3856- language[45],
3857- language[46],
3858- strcatnew(language[46]," (slim)")
3859- };
3860- entry_combo(
3861- vbox,
3862- strcatnew(language[44],":"),
3863- 7,
3864- &dialog_new_template,
3865- dialog_new_template_ops,
3866- dialog_new_template_combo
3867- );
3868-
3869- entry_separator(vbox);
3870-
3871- dialog_new_unit_combo = gtk_combo_box_new_text();
3872- char *dialog_new_unit_ops[] = { language[40], language[41], language[42] };
3873- entry_combo(vbox, strcatnew(language[39],":"), 3, &dialog_new_unit, dialog_new_unit_ops, dialog_new_unit_combo);
3874-
3875-
3876- int i;
3877- for(i=0; i<7; i++) dialog_new_adj[i] = gtk_adjustment_new(0,0,0,1,1,0);
3878-
3879- char *px_ops[] = {language[53], language[54], language[55]};
3880- GtkWidget *pxw_menu = gtk_menu_new();
3881- GtkWidget *pxh_menu = gtk_menu_new();
3882- GtkWidget *cmw_menu = gtk_menu_new();
3883- GtkWidget *cmh_menu = gtk_menu_new();
3884- GtkWidget *inw_menu = gtk_menu_new();
3885- GtkWidget *inh_menu = gtk_menu_new();
3886-
3887- dialog_new_box_px = gtk_vbox_new(FALSE,5);
3888- entry_spinmenu(dialog_new_box_px, strcatnew(language[30]," (px):"), &dialog_new_pxw, 1, 10000, "int", dialog_new_adj[0], 3, &dialog_new_pxw_ops, px_ops, pxw_menu);
3889- entry_spinmenu(dialog_new_box_px, strcatnew(language[31]," (px):"), &dialog_new_pxh, 1, 10000, "int", dialog_new_adj[1], 3, &dialog_new_pxh_ops, px_ops, pxh_menu);
3890- gtk_box_pack_start(GTK_BOX(vbox), dialog_new_box_px, FALSE, FALSE, 0);
3891-
3892- feedback_lock = 1;
3893- dialog_new_box_cm = gtk_vbox_new(FALSE,5);
3894- entry_spinmenu(dialog_new_box_cm, strcatnew(language[30]," (cm):"), &dialog_new_cmw, 1, 1000, "double", dialog_new_adj[3], 3, &dialog_new_cmw_ops, px_ops, cmw_menu);
3895- entry_spinmenu(dialog_new_box_cm, strcatnew(language[31]," (cm):"), &dialog_new_cmh, 1, 1000, "double", dialog_new_adj[4], 3, &dialog_new_cmh_ops, px_ops, cmh_menu);
3896- gtk_box_pack_start(GTK_BOX(vbox), dialog_new_box_cm, FALSE, FALSE, 0);
3897-
3898- dialog_new_box_in = gtk_vbox_new(FALSE,5);
3899- entry_spinmenu(dialog_new_box_in, strcatnew(language[30]," (in):"), &dialog_new_inw, 1, 1000, "double", dialog_new_adj[5], 3, &dialog_new_inw_ops, px_ops, inw_menu);
3900- entry_spinmenu(dialog_new_box_in, strcatnew(language[31]," (in):"), &dialog_new_inh, 1, 1000, "double", dialog_new_adj[6], 3, &dialog_new_inh_ops, px_ops, inh_menu);
3901- gtk_box_pack_start(GTK_BOX(vbox), dialog_new_box_in, FALSE, FALSE, 0);
3902-
3903- dialog_new_box_re = gtk_vbox_new(FALSE,5);
3904- char *re_ops[] = {
3905- strcatnew(language[47], " (600)"),
3906- strcatnew(language[48], " (300)"),
3907- strcatnew(language[49], " (150)"),
3908- strcatnew(language[50], " (92)"),
3909- strcatnew(language[51], " (72)"),
3910- };
3911- GtkWidget *re_menu = gtk_menu_new();
3912- entry_spinmenu(dialog_new_box_re, strcatnew(language[43]," (dpi):"), &dialog_new_dpi, 1, 10000, "int", dialog_new_adj[2], 5, &dialog_new_dpi_ops, re_ops, re_menu);
3913- gtk_box_pack_start(GTK_BOX(vbox), dialog_new_box_re, FALSE, FALSE, 0);
3914- feedback_lock = 0;
3915-
3916-
3917- entry_separator(vbox);
3918-
3919- dialog_new_nobg_check = gtk_check_button_new();
3920- entry_check(vbox, strcatnew(language[33],":"), &dialog_new_nobg, dialog_new_nobg_check, NULL);
3921-
3922- entry_space(vbox);
3923-
3924- GtkWidget *buttons = gtk_hbox_new(FALSE,5);
3925-
3926- GtkWidget *ok = gtk_button_new_from_stock("gtk-ok");
3927- g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(dialog_new_call), dialog);
3928-
3929- GtkWidget *cancel = gtk_button_new_from_stock("gtk-cancel");
3930- g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy), dialog);
3931-
3932- gtk_box_pack_end(GTK_BOX(buttons),ok,TRUE,TRUE,0);
3933- gtk_box_pack_end(GTK_BOX(buttons),cancel,TRUE,TRUE,0);
3934- entry_clear(buttons, "clear_new", 2);
3935-
3936- gtk_box_pack_start(GTK_BOX(vbox),buttons,FALSE,FALSE,0);
3937-
3938- gtk_container_add(GTK_CONTAINER(dialog), vbox);
3939- gtk_widget_show_all(dialog);
3940- dialog_new_smartshow();
3941-}
3942-
3943-
3944-dialog_open_path(GtkWidget *widget, GtkWidget *dialog)
3945-{
3946- gchar *path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
3947- folder_last = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(dialog));
3948- tab_open(path, 0, 0, 0);
3949- destroy(NULL, dialog);
3950-}
3951-
3952-
3953-dialog_open_preview(GtkWidget *dialog, GtkWidget *preview_data[])
3954-{
3955- GtkWidget *img = preview_data[0];
3956- GtkWidget *label = preview_data[1];
3957- //free(preview_data);
3958-
3959- GtkWidget *parent = gtk_widget_get_parent(img);
3960- parent = gtk_widget_get_parent(parent);
3961- gtk_frame_set_label(GTK_FRAME(parent), language[56]);
3962-
3963- char *path = gtk_file_chooser_get_preview_filename(GTK_FILE_CHOOSER(dialog));
3964- if(path==NULL) return;
3965-
3966- GdkPixbuf *pix = gdk_pixbuf_new_from_file_at_size(path, 128, 128, NULL);
3967- gtk_widget_set_size_request(img, 128, -1);
3968-
3969- if(pix!=NULL && gdk_pixbuf_get_has_alpha(pix))
3970- {
3971- int w = gdk_pixbuf_get_width(pix);
3972- int h = gdk_pixbuf_get_height(pix);
3973- uchar *raw = gdk_pixbuf_get_pixels(pix);
3974- uchar *mosaic = object_mosaic_new(w, h, 8);
3975- over_object(mosaic, raw, w, h, 0, 0, w, h, 0, 0, w, h, OVER_ADD);
3976- over_object(raw, mosaic, w, h, 0, 0, w, h, 0, 0, w, h, OVER_REPLACE);
3977- }
3978- gtk_image_set_from_pixbuf(GTK_IMAGE(img), pix);
3979- if(pix!=NULL) g_object_unref(G_OBJECT(pix));
3980- else gtk_image_set_from_stock(GTK_IMAGE(img), "gtk-find", 6);
3981-
3982- if(pix!=NULL)
3983- {
3984- int width;
3985- int height;
3986- gdk_pixbuf_get_file_info(path, &width, &height);
3987- char size[15];
3988- sprintf(size, "%i x %i", width, height);
3989- gtk_label_set_text(GTK_LABEL(label), size);
3990- }
3991- else gtk_label_set_text(GTK_LABEL(label), "");
3992-}
3993-
3994-
3995-dialog_open()
3996-{
3997- GtkWidget *dialog = gtk_file_chooser_dialog_new(NULL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,NULL);
3998- gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
3999-
4000- if(!strcmp(folder_last,"~/")) folder_last = getenv("HOME");
4001- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), folder_last);
4002-
4003- GtkWidget *preview = gtk_frame_new("");
4004- GtkWidget *preview_box = gtk_vbox_new(FALSE, 5);
4005- gtk_container_set_border_width(GTK_CONTAINER(preview_box), 15);
4006- GtkWidget *preview_img = gtk_image_new();
4007- GtkWidget *preview_label = gtk_label_new("");
4008- gtk_box_pack_start(GTK_BOX(preview_box),preview_img,FALSE,FALSE,0);
4009- gtk_box_pack_start(GTK_BOX(preview_box),preview_label,FALSE,FALSE,0);
4010-
4011- GtkWidget **preview_data = (GtkWidget**)malloc(2*sizeof(GtkWidget*));
4012- preview_data[0] = preview_img;
4013- preview_data[1] = preview_label;
4014-
4015- gtk_container_add(GTK_CONTAINER(preview), preview_box);
4016- gtk_widget_show_all(preview);
4017- gtk_widget_hide(preview);
4018-
4019- gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(dialog), preview);
4020- gtk_file_chooser_set_use_preview_label(GTK_FILE_CHOOSER(dialog), FALSE);
4021- g_signal_connect(G_OBJECT(dialog), "update-preview", G_CALLBACK(dialog_open_preview), preview_data);
4022-
4023- GtkWidget *extra = gtk_hbox_new(FALSE, 5);
4024- GtkWidget *open = gtk_button_new_from_stock("gtk-open");
4025- gtk_widget_set_size_request(open, DIALOG_BTN_WIDTH, -1);
4026- g_signal_connect(G_OBJECT(open), "clicked", G_CALLBACK(dialog_open_path), dialog);
4027- g_signal_connect(G_OBJECT(dialog), "file-activated", G_CALLBACK(dialog_open_path), dialog);
4028-
4029- GtkWidget *cancel = gtk_button_new_from_stock("gtk-cancel");
4030- gtk_widget_set_size_request(cancel, DIALOG_BTN_WIDTH, -1);
4031- g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy), dialog);
4032-
4033- gtk_box_pack_end(GTK_BOX(extra),open,FALSE,FALSE,0);
4034- gtk_box_pack_end(GTK_BOX(extra),cancel,FALSE,FALSE,0);
4035-
4036- gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(dialog), extra);
4037- gtk_widget_show_all(dialog);
4038-}
4039-
4040-
4041-dialog_about()
4042-{
4043- GtkWidget *dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4044- gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
4045- gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
4046- gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
4047- gtk_window_set_title(GTK_WINDOW(dialog), language[28]);
4048- gtk_container_set_border_width(GTK_CONTAINER(dialog), 10);
4049-
4050- GtkWidget *box = gtk_vbox_new(FALSE,5);
4051-
4052- GtkWidget *notebook = gtk_notebook_new();
4053-
4054- GtkWidget *splash_box = gtk_vbox_new(FALSE,5);
4055-
4056- GtkWidget *splash = gtk_image_new_from_file( strcatnew(PATH,"img/about.png") );
4057- GtkWidget *copyleft = gtk_label_new("Copyright © 2008 Marcos Diaz Mencia");
4058- char version[100];
4059- sprintf(version, "%s (%s)", VERSION, SUBVERSION);
4060- GtkWidget *version_ = gtk_label_new(version);
4061-
4062- gtk_box_pack_start(GTK_BOX(splash_box),splash,FALSE,FALSE,0);
4063- gtk_box_pack_start(GTK_BOX(splash_box),copyleft,FALSE,FALSE,0);
4064- gtk_box_pack_start(GTK_BOX(splash_box),version_,FALSE,FALSE,0);
4065- entry_space(splash_box);
4066-
4067- GtkWidget *credits = gtk_scrolled_window_new(NULL, NULL);
4068- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(credits), 1, 1);
4069- GtkWidget *credits_text = gtk_text_view_new();
4070- gtk_text_view_set_left_margin(GTK_TEXT_VIEW(credits_text), 8);
4071- gtk_text_view_set_editable(GTK_TEXT_VIEW(credits_text), 0);
4072- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(credits_text), 2);
4073- GtkTextBuffer *credits_buffer = gtk_text_buffer_new(NULL);
4074- char *credits_file = file_to_str( strcatnew(PATH,"text/credits") );
4075- //printf("%i\n", hash_basic(credits_file));
4076- if(hash_basic(credits_file) != 1493126064) credits_file = "ERROR";
4077- gtk_text_buffer_set_text(credits_buffer, credits_file, -1);
4078- gtk_text_view_set_buffer(GTK_TEXT_VIEW(credits_text), credits_buffer);
4079- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(credits), credits_text);
4080-
4081- GtkWidget *license = gtk_scrolled_window_new(NULL, NULL);
4082- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(license), 1, 1);
4083- GtkWidget *license_text = gtk_text_view_new();
4084- gtk_text_view_set_left_margin(GTK_TEXT_VIEW(license_text), 8);
4085- gtk_text_view_set_editable(GTK_TEXT_VIEW(license_text), 0);
4086- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(license_text), 2);
4087- GtkTextBuffer *license_buffer = gtk_text_buffer_new(NULL);
4088- char *license_file = file_to_str( strcatnew(PATH,"text/license") );
4089- //printf("%i\n", hash_basic(license_file));
4090- if(hash_basic(license_file) != 1035571580) license_file = "ERROR";
4091- gtk_text_buffer_set_text(license_buffer, license_file, -1);
4092- gtk_text_view_set_buffer(GTK_TEXT_VIEW(license_text), license_buffer);
4093- gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(license), license_text);
4094-
4095- GtkWidget *buttons = gtk_hbox_new(FALSE,5);
4096- GtkWidget *close = gtk_button_new_from_stock("gtk-close");
4097- gtk_widget_set_size_request(close, DIALOG_BTN_WIDTH, -1);
4098- g_signal_connect(G_OBJECT(close), "clicked", G_CALLBACK(destroy), dialog);
4099- gtk_box_pack_end(GTK_BOX(buttons),close,FALSE,FALSE,0);
4100-
4101- gtk_box_pack_start(GTK_BOX(box),notebook,FALSE,FALSE,0);
4102- gtk_box_pack_start(GTK_BOX(box),buttons,FALSE,FALSE,0);
4103-
4104- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), splash_box, gtk_label_new(language[28]));
4105- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), credits, gtk_label_new(language[35]));
4106- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), license, gtk_label_new(language[36]));
4107-
4108- gtk_container_add(GTK_CONTAINER(dialog), box);
4109- gtk_widget_show_all(dialog);
4110-}
4111
4112=== removed file 'lib/gui/entry.c'
4113--- lib/gui/entry.c 2008-11-26 01:33:49 +0000
4114+++ lib/gui/entry.c 1970-01-01 00:00:00 +0000
4115@@ -1,281 +0,0 @@
4116-/*
4117- * This file is part of Nathive.
4118- *
4119- * Nathive is free software: you can redistribute it and/or modify
4120- * it under the terms of the GNU General Public License as published by
4121- * the Free Software Foundation, either version 3 of the License, or
4122- * (at your option) any later version.
4123- *
4124- * Nathive is distributed in the hope that it will be useful,
4125- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4126- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4127- * GNU General Public License for more details.
4128- *
4129- * You should have received a copy of the GNU General Public License
4130- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4131- */
4132-
4133-
4134-entry_spin(GtkWidget *parent, char *label, void *value, int min, int max, char *type,
4135- GtkObject *adj, int show_scale)
4136-{
4137- double value_format;
4138- if(type=="uchar") value_format = *(uchar*)value;
4139- if(type=="int") value_format = *(int*)value;
4140- if(type=="double") value_format = *(double*)value;
4141-
4142- if(adj==NULL) adj = gtk_adjustment_new(0,0,0,1,1,0);
4143- if(type=="uchar") g_signal_connect(G_OBJECT(adj),"value-changed",G_CALLBACK(call_adj_uchar),value);
4144- if(type=="int") g_signal_connect(G_OBJECT(adj),"value-changed",G_CALLBACK(call_adj_int),value);
4145- if(type=="double") g_signal_connect(G_OBJECT(adj),"value-changed",G_CALLBACK(call_adj_double),value);
4146-
4147- int separation = 0;
4148- if(!show_scale) separation = 10;
4149- GtkWidget *box = gtk_hbox_new(FALSE, separation);
4150-
4151- GtkWidget *label_ = gtk_label_new(label);
4152- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4153- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4154-
4155- if(show_scale)
4156- {
4157- GtkWidget *scale = gtk_scale_button_new(1,1,1,4,NULL);
4158- gtk_scale_button_set_adjustment(GTK_SCALE_BUTTON(scale), GTK_ADJUSTMENT(adj));
4159- const gchar *scaleIcons[] = {"gtk-index", NULL};
4160- gtk_scale_button_set_icons(GTK_SCALE_BUTTON(scale), scaleIcons);
4161- gtk_box_pack_start(GTK_BOX(box),scale,FALSE,FALSE,0);
4162- }
4163-
4164- GtkWidget *spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1, 0);
4165- gtk_spin_button_set_range(GTK_SPIN_BUTTON(spin), min, max);
4166- if(type=="double")
4167- {
4168- gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 2);
4169- gtk_spin_button_set_increments(GTK_SPIN_BUTTON(spin), 0.01, 0.01);
4170- gtk_spin_button_set_range(GTK_SPIN_BUTTON(spin), 0.01, max);
4171- }
4172- gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value_format);
4173- gtk_box_pack_start(GTK_BOX(box),spin,FALSE,FALSE,0);
4174-
4175- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4176-}
4177-
4178-
4179-entry_spinmenu(GtkWidget *parent, char *label, void *value, int min, int max, char *type,
4180- GtkObject *adj, int menun, int *menuvalue, char *ops[], GtkWidget *menu)
4181-{
4182- double value_format;
4183- if(type=="int") value_format = *(int*)value;
4184- if(type=="double") value_format = *(double*)value;
4185-
4186- if(adj==NULL) adj = gtk_adjustment_new(0,0,0,1,1,0);
4187- if(type=="int") g_signal_connect(G_OBJECT(adj),"value-changed",G_CALLBACK(call_adj_int),value);
4188- if(type=="double") g_signal_connect(G_OBJECT(adj),"value-changed",G_CALLBACK(call_adj_double),value);
4189-
4190- GtkWidget *box = gtk_hbox_new(FALSE, 0);
4191-
4192- GtkWidget *label_ = gtk_label_new(label);
4193- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4194-
4195-
4196- GtkWidget *spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 1, 0);
4197- gtk_spin_button_set_range(GTK_SPIN_BUTTON(spin), min, max);
4198- if(type=="double")
4199- {
4200- gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 2);
4201- gtk_spin_button_set_increments(GTK_SPIN_BUTTON(spin), 0.01, 0.01);
4202- gtk_spin_button_set_range(GTK_SPIN_BUTTON(spin), 0.01, max);
4203- }
4204- gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value_format);
4205-
4206-
4207- GtkWidget *btn = gtk_button_new();
4208- gtk_button_set_image(GTK_BUTTON(btn), gtk_image_new_from_stock("gtk-sort-descending", 1));
4209- gtk_button_set_relief(GTK_BUTTON(btn), GTK_RELIEF_NONE);
4210-
4211- int i;
4212- int *ids = (int*)malloc(menun*sizeof(int));
4213- for(i=0; i<menun; i++) ids[i] = i;
4214-
4215- if(menu==NULL) menu = gtk_menu_new();
4216- if(ops)
4217- {
4218- GtkWidget *item[menun];
4219- for(i=0; i<menun; i++)
4220- {
4221- int **data = (int**)malloc(2*sizeof(int*));
4222- data[0] = menuvalue;
4223- data[1] = &ids[i];
4224-
4225- item[i] = gtk_menu_item_new_with_label(ops[i]);
4226- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item[i]);
4227- g_signal_connect_swapped(G_OBJECT(item[i]),"activate",G_CALLBACK(call_spinmenu), data);
4228- }
4229- }
4230- gtk_widget_show_all(menu);
4231- g_signal_connect(G_OBJECT(btn),"clicked",G_CALLBACK(call_menu), menu);
4232-
4233-
4234- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4235- gtk_box_pack_start(GTK_BOX(box),btn,FALSE,FALSE,0);
4236- gtk_box_pack_start(GTK_BOX(box),spin,FALSE,FALSE,0);
4237-
4238- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4239-}
4240-
4241-
4242-entry_combo(GtkWidget *parent, char *label, int n, int *value, char *ops[], GtkWidget *combo)
4243-{
4244- GtkWidget *box = gtk_hbox_new(FALSE,5);
4245-
4246- GtkWidget *label_ = gtk_label_new(label);
4247- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4248-
4249- if(combo==NULL) combo = gtk_combo_box_new_text();
4250-
4251- int i;
4252- for(i=0; i<n; i++) gtk_combo_box_append_text(GTK_COMBO_BOX(combo), ops[i]);
4253-
4254- gtk_combo_box_set_active(GTK_COMBO_BOX(combo), *value);
4255- g_signal_connect(G_OBJECT(combo),"changed",G_CALLBACK(call_combo),value);
4256-
4257- if(label!="") gtk_box_pack_start(GTK_BOX(box), label_, TRUE, TRUE, 0);
4258-
4259- if(label!="") gtk_box_pack_start(GTK_BOX(box), combo, FALSE, FALSE, 0);
4260- else gtk_box_pack_end(GTK_BOX(box), combo, FALSE, FALSE, 0);
4261-
4262- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4263-}
4264-
4265-
4266-entry_toggle(GtkWidget *parent, char *label, int n, int *value, char *ops[],
4267- GtkWidget *but[], char *call)
4268-{
4269- GtkWidget *box = gtk_hbox_new(FALSE,0);
4270-
4271- GtkWidget *label_ = gtk_label_new(label);
4272- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4273- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4274-
4275- int i;
4276- GtkWidget *btn_pre = NULL;
4277- for(i=0; i<n; i++)
4278- {
4279- if(!btn_pre) but[i] = gtk_radio_button_new(NULL);
4280- else but[i] = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(btn_pre));
4281- btn_pre = but[i];
4282- }
4283-
4284- int *ids = (int*)malloc(n*sizeof(int));;
4285- for(i=0; i<n; i++)
4286- {
4287- ids[i] = i;
4288- }
4289-
4290- for(i=0; i<n; i++)
4291- {
4292- gtk_button_set_relief(GTK_BUTTON(but[i]), GTK_RELIEF_NONE);
4293- gtk_button_set_image(GTK_BUTTON(but[i]), gtk_image_new_from_file(ops[i]));
4294- gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(but[i]), 0);
4295- if(*value==i) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(but[i]), 1);
4296-
4297- int **data = (int**)malloc(2*sizeof(int*));
4298- data[0] = value;
4299- data[1] = &ids[i];
4300-
4301- g_signal_connect(G_OBJECT(but[i]),"pressed",G_CALLBACK(call_radio), data);
4302- g_signal_connect(G_OBJECT(but[i]),"pressed",G_CALLBACK(call_function), call);
4303-
4304- gtk_box_pack_start(GTK_BOX(box),but[i],FALSE,FALSE,0);
4305- }
4306-
4307- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4308-}
4309-
4310-
4311-entry_check(GtkWidget *parent, char *label, int *value, GtkWidget *check, char *call)
4312-{
4313- GtkWidget *box = gtk_hbox_new(FALSE,0);
4314-
4315- GtkWidget *label_ = gtk_label_new(label);
4316- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4317-
4318- if(check==NULL) check = gtk_check_button_new();
4319- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), *value);
4320-
4321- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4322- gtk_box_pack_start(GTK_BOX(box),check,FALSE,FALSE,0);
4323-
4324- g_signal_connect(G_OBJECT(check),"toggled",G_CALLBACK(call_check), value);
4325-
4326- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4327-}
4328-
4329-
4330-entry_entry(GtkWidget *parent, char *label, char *value, int len, char *call, GtkWidget *entry)
4331-{
4332- GtkWidget *box = gtk_hbox_new(FALSE,0);
4333-
4334- GtkWidget *label_ = gtk_label_new(label);
4335- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4336-
4337- if(entry==NULL) entry = gtk_entry_new();
4338- gtk_entry_set_max_length(GTK_ENTRY(entry), len);
4339- gtk_entry_set_width_chars(GTK_ENTRY(entry), len+1);
4340- gtk_entry_set_text(GTK_ENTRY(entry), value);
4341-
4342- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4343- gtk_box_pack_start(GTK_BOX(box),entry,FALSE,FALSE,0);
4344-
4345- g_signal_connect(G_OBJECT(entry),"changed",G_CALLBACK(call_function), call);
4346-
4347- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4348-}
4349-
4350-
4351-entry_color(GtkWidget *parent, char *label)
4352-{
4353- GtkWidget *box = gtk_hbox_new(FALSE,0);
4354-
4355- GtkWidget *label_ = gtk_label_new(label);
4356- gtk_misc_set_alignment(GTK_MISC(label_), 0, 0.5);
4357-
4358- GtkWidget *color = gtk_color_button_new();
4359-
4360- gtk_box_pack_start(GTK_BOX(box),label_,TRUE,TRUE,0);
4361- gtk_box_pack_start(GTK_BOX(box),color,FALSE,FALSE,0);
4362-
4363- gtk_box_pack_start(GTK_BOX(parent), box, FALSE,FALSE,0);
4364-}
4365-
4366-
4367-entry_clear(GtkWidget *parent, char *call, int size)
4368-{
4369- GtkWidget *button = gtk_button_new();
4370- gtk_button_set_image(GTK_BUTTON(button), gtk_image_new_from_stock("gtk-clear", size));
4371- gtk_widget_set_tooltip_text(button, language[23]);
4372- g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(call_function), call);
4373- gtk_box_pack_end(GTK_BOX(parent),button,FALSE,FALSE,0);
4374-}
4375-
4376-
4377-entry_separator(GtkWidget *parent)
4378-{
4379- GtkWidget *separator = gtk_hseparator_new();
4380- gtk_box_pack_start(GTK_BOX(parent), separator, FALSE, FALSE, 4);
4381-}
4382-
4383-
4384-entry_space(GtkWidget *parent)
4385-{
4386- GtkWidget *box = gtk_vbox_new(FALSE, 0);
4387- gtk_widget_set_size_request(box, -1, 8);
4388- gtk_box_pack_start(GTK_BOX(parent), box, FALSE, FALSE, 0);
4389-}
4390-
4391-
4392-entry_expand(GtkWidget *parent)
4393-{
4394- GtkWidget *box = gtk_hbox_new(FALSE,0);
4395- gtk_box_pack_start(GTK_BOX(parent), box, TRUE,TRUE,0);
4396-}
4397
4398=== removed file 'lib/gui/event.c'
4399--- lib/gui/event.c 2008-11-26 01:33:49 +0000
4400+++ lib/gui/event.c 1970-01-01 00:00:00 +0000
4401@@ -1,61 +0,0 @@
4402-/*
4403- * This file is part of Nathive.
4404- *
4405- * Nathive is free software: you can redistribute it and/or modify
4406- * it under the terms of the GNU General Public License as published by
4407- * the Free Software Foundation, either version 3 of the License, or
4408- * (at your option) any later version.
4409- *
4410- * Nathive is distributed in the hope that it will be useful,
4411- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4412- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4413- * GNU General Public License for more details.
4414- *
4415- * You should have received a copy of the GNU General Public License
4416- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4417- */
4418-
4419-
4420-event_press(GtkWidget *wid, GdkEventButton *event)
4421-{
4422- int x = (int)event->x;
4423- int y = (int)event->y;
4424- user_button = event->button;
4425- user_x = x;
4426- user_y = y;
4427- user_x_root = (int)event->x_root;
4428- user_y_root = (int)event->y_root;
4429- user_x_press = offset_x(x);
4430- user_y_press = offset_y(y);
4431- if(user_button==2) cursor_stock(GDK_FLEUR);
4432- if(tool==2) if(user_button==1) picker_get(x,y);
4433- if(tool==3) if(user_button==1) brush_spacer(x,y,1);
4434-}
4435-
4436-event_release(GtkWidget *wid)
4437-{
4438- if(tool==0) if(user_button==1) object_merge();
4439- cursor_default();
4440- user_button = 0;
4441-}
4442-
4443-event_motion(GtkWidget *wid, GdkEventMotion *event)
4444-{
4445- int x = (int)event->x;
4446- int y = (int)event->y;
4447- int x_root = (int)event->x_root;
4448- int y_root = (int)event->y_root;
4449-
4450- if(user_button==2) scroll(x_root, y_root);
4451-
4452- if(tool==0) if(user_button==1) select_move(x,y);
4453- if(tool==2) if(user_button==1) picker_get(x,y);
4454- if(tool==3)
4455- {
4456- if(user_button==1) brush_spacer(x,y,0);
4457- if(user_button==3) brush_size_motion(x,y);
4458- }
4459- statusbar_x = offset_x(x);
4460- statusbar_y = offset_y(y);
4461- statusbar_refresh();
4462-}
4463
4464=== removed file 'lib/gui/menu.c'
4465--- lib/gui/menu.c 2008-11-26 01:33:49 +0000
4466+++ lib/gui/menu.c 1970-01-01 00:00:00 +0000
4467@@ -1,29 +0,0 @@
4468-/*
4469- * This file is part of Nathive.
4470- *
4471- * Nathive is free software: you can redistribute it and/or modify
4472- * it under the terms of the GNU General Public License as published by
4473- * the Free Software Foundation, either version 3 of the License, or
4474- * (at your option) any later version.
4475- *
4476- * Nathive is distributed in the hope that it will be useful,
4477- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4478- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4479- * GNU General Public License for more details.
4480- *
4481- * You should have received a copy of the GNU General Public License
4482- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4483- */
4484-
4485-
4486-menubar_item_new(GtkWidget *parent, char *label, char *stock, char *call)
4487-{
4488- GtkWidget *item = gtk_image_menu_item_new_with_label(label);
4489- gtk_menu_shell_append(GTK_MENU_SHELL(parent), item);
4490- if(call) g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(call_function), call);
4491- if(stock)
4492- {
4493- GtkWidget *image = gtk_image_new_from_stock(stock, 1);
4494- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
4495- }
4496-}
4497
4498=== removed file 'lib/gui/misc.c'
4499--- lib/gui/misc.c 2008-11-26 18:12:53 +0000
4500+++ lib/gui/misc.c 1970-01-01 00:00:00 +0000
4501@@ -1,69 +0,0 @@
4502-/*
4503- * This file is part of Nathive.
4504- *
4505- * Nathive is free software: you can redistribute it and/or modify
4506- * it under the terms of the GNU General Public License as published by
4507- * the Free Software Foundation, either version 3 of the License, or
4508- * (at your option) any later version.
4509- *
4510- * Nathive is distributed in the hope that it will be useful,
4511- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4512- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4513- * GNU General Public License for more details.
4514- *
4515- * You should have received a copy of the GNU General Public License
4516- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4517- */
4518-
4519-
4520-gtk_quit()
4521-{
4522- printf(">> thanks for being libre, see you soon\n\n");
4523- gtk_main_quit();
4524-}
4525-
4526-
4527-destroy(GtkWidget *widget, GtkWidget *destroy_me)
4528-{
4529- gtk_widget_destroy(destroy_me);
4530-}
4531-
4532-
4533-window_fullscreen()
4534-{
4535- if(!fullscreen)
4536- {
4537- gtk_window_fullscreen(GTK_WINDOW(win));
4538- fullscreen = 1;
4539- }
4540- else
4541- {
4542- gtk_window_unfullscreen(GTK_WINDOW(win));
4543- fullscreen = 0;
4544- }
4545-}
4546-
4547-
4548-sidebar_hide()
4549-{
4550- int sidebar_display;
4551- gtk_object_get(GTK_OBJECT(sidebar), "visible", &sidebar_display, NULL);
4552- if(sidebar_display) gtk_widget_hide(sidebar);
4553- else gtk_widget_show(sidebar);
4554-}
4555-
4556-
4557-sidebar_tool_change(GtkWidget *wid, void *data)
4558-{
4559- int i;
4560- for(i=0; i<TOOLS; i++) gtk_widget_hide(sidebar_tools[i]);
4561- gtk_widget_show(sidebar_tools[tool]);
4562-
4563- GtkWidget *new_label;
4564- if(tool==0) new_label = gtk_image_new_from_file( strcatnew(PATH,"img/select.png") );
4565- if(tool==1) new_label = gtk_image_new_from_file( strcatnew(PATH,"img/mask.png") );
4566- if(tool==2) new_label = gtk_image_new_from_file( strcatnew(PATH,"img/picker.png") );
4567- if(tool==3) new_label = gtk_image_new_from_file( strcatnew(PATH,"img/brush.png") );
4568- gtk_notebook_set_tab_label(GTK_NOTEBOOK(sidebar), sidebar_tool, new_label);
4569-
4570-}
4571
4572=== removed file 'lib/gui/object.c'
4573--- lib/gui/object.c 2008-12-01 07:53:03 +0000
4574+++ lib/gui/object.c 1970-01-01 00:00:00 +0000
4575@@ -1,210 +0,0 @@
4576-/*
4577- * This file is part of Nathive.
4578- *
4579- * Nathive is free software: you can redistribute it and/or modify
4580- * it under the terms of the GNU General Public License as published by
4581- * the Free Software Foundation, either version 3 of the License, or
4582- * (at your option) any later version.
4583- *
4584- * Nathive is distributed in the hope that it will be useful,
4585- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4586- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4587- * GNU General Public License for more details.
4588- *
4589- * You should have received a copy of the GNU General Public License
4590- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4591- */
4592-
4593-
4594-object_gui_new(char *label, GtkListStore *store)
4595-{
4596- if(store==NULL) store = dom_objgui_store(dom_tab());
4597- GtkTreeIter iter;
4598- gtk_list_store_append(store, &iter);
4599- gtk_list_store_set(store, &iter, 0, label, -1);
4600- gtk_list_store_move_after(store, &iter, NULL);
4601-
4602- GtkTreeSelection *select = gtk_tree_view_get_selection(GTK_TREE_VIEW(object_tree_view));
4603- int dom_obj_sel_temp = *dom_obj_sel(-1);
4604- gtk_tree_selection_select_iter(select, &iter);
4605- *dom_obj_sel(-1) = dom_obj_sel_temp;
4606-}
4607-
4608-
4609-object_gui_select_gtd(GtkTreeSelection *selection, void *data)
4610-{
4611- GList *list = gtk_tree_selection_get_selected_rows(selection, NULL);
4612- GtkTreePath *path = g_list_nth_data(list, 0);
4613- if(path==NULL) return;
4614- int *index = gtk_tree_path_get_indices(path);
4615- *dom_obj_sel(-1) = dom_obj_count(-1) - index[0];
4616-}
4617-
4618-
4619-object_gui_select_dtg(int tab)
4620-{
4621- GtkTreeSelection *select = gtk_tree_view_get_selection(GTK_TREE_VIEW(object_tree_view));
4622- GtkTreeIter iter;
4623- GtkTreeModel *model = dom_objgui_model(tab);
4624- gtk_tree_model_get_iter_first(model, &iter);
4625- int objs = dom_obj_count(tab);
4626- int sel = *dom_obj_sel(tab);
4627- int i;
4628- for(i=0; i<objs-sel; i++) gtk_tree_model_iter_next(model, &iter);
4629- int dom_obj_sel_temp = *dom_obj_sel(-1);
4630- gtk_tree_selection_select_iter(select, &iter);
4631- *dom_obj_sel(-1) = dom_obj_sel_temp;
4632-}
4633-
4634-
4635-object_new()
4636-{
4637- if(n_tree_count( dom, n_tree_stalk(0) ) == 0) return;
4638-
4639- printf(">> creating object in '%s'\n", (char*)dom_file_path());
4640- if(dom_tab()==-1) return;
4641- lint obj_size = (*dom_w()) * (*dom_h()) * 4;
4642- uchar *obj_raw = (uchar*)malloc(obj_size*sizeof(uchar));
4643-
4644- lint i;
4645- for(i=0; i<obj_size; i++) obj_raw[i] = 0;
4646-
4647- NTree *obj = n_tree_new();
4648- n_tree_add(dom, n_tree_stalk(2,dom_tab(),DOM_OBJ), obj, TRUE);
4649-
4650- int *w = (int*)malloc(sizeof(int));
4651- int *h = (int*)malloc(sizeof(int));
4652- *w = *dom_w();
4653- *h = *dom_h();
4654- int *x = (int*)malloc(sizeof(int));
4655- int *y = (int*)malloc(sizeof(int));
4656- *x = 0;
4657- *y = 0;
4658-
4659- n_tree_add(obj, n_tree_stalk(0), obj_raw, FALSE);
4660- n_tree_add(obj, n_tree_stalk(0), w, FALSE);
4661- n_tree_add(obj, n_tree_stalk(0), h, FALSE);
4662- n_tree_add(obj, n_tree_stalk(0), x, FALSE);
4663- n_tree_add(obj, n_tree_stalk(0), y, FALSE);
4664-
4665- object_gui_new(language[2], NULL);
4666- *dom_obj_sel(-1) = dom_obj_count(-1);
4667-}
4668-
4669-
4670-object_merge_area(int x, int y, int w, int h)
4671-{
4672- int xo = offset_x(x);
4673- int yo = offset_y(y);
4674-
4675- over_object(
4676- dom_raw(),
4677- dom_mosaic(),
4678- *dom_w(),
4679- *dom_h(),
4680- 0,
4681- 0,
4682- *dom_w(),
4683- *dom_h(),
4684- xo,
4685- yo,
4686- w,
4687- h,
4688- OVER_REPLACE
4689- );
4690-
4691- int objs = dom_obj_count(-1);
4692- int i;
4693- for(i=1; i<objs+1; i++)
4694- {
4695- over_object(
4696- dom_raw(),
4697- dom_obj_raw(i),
4698- *dom_w(),
4699- *dom_h(),
4700- *dom_obj_x(i),
4701- *dom_obj_y(i),
4702- *dom_obj_w(i),
4703- *dom_obj_h(i),
4704- xo,
4705- yo,
4706- w,
4707- h,
4708- OVER_ADD
4709- );
4710- }
4711-
4712- gtk_widget_queue_draw_area(dom_img(), x, y, w, h);
4713-}
4714-
4715-
4716-object_merge_area_step(int x, int y, int w, int h)
4717-{
4718- int step = 100;
4719-
4720- int user_area[4];
4721- scroll_area(user_area);
4722-
4723- int xx, yy;
4724- for(yy=y; yy<y+h; yy+=step)
4725- {
4726- for(xx=x; xx<x+w; xx+=step)
4727- {
4728- if(xx < user_area[0] - step || xx > user_area[0] + user_area[2]) continue;
4729- if(yy < user_area[1] - step || yy > user_area[1] + user_area[3]) continue;
4730-
4731- if(gdk_events_pending()) return;
4732- object_merge_area(xx, yy, step, step);
4733- gtk_main_iteration_do(0);
4734- }
4735- }
4736-}
4737-
4738-
4739-object_merge()
4740-{
4741- object_merge_area(-offset_x(0), -offset_y(0), *dom_w(), *dom_h());
4742-}
4743-
4744-object_merge_step()
4745-{
4746- object_merge_area_step(-offset_x(0), -offset_y(0), *dom_w(), *dom_h());
4747-}
4748-
4749-
4750-uchar *object_mosaic_new(int w, int h, int size)
4751-{
4752- uchar grayA = 203;
4753- uchar grayB = 127;
4754-
4755- uchar *mosaic = (uchar*)malloc(w*h*4*sizeof(uchar));
4756- int x,y,xx,yy;
4757- xx = yy = 0;
4758- for(y=0; y<h; y++)
4759- {
4760- xx = 0;
4761- for(x=0; x<w; x++)
4762- {
4763- int pos = pixel_pos(x,y,w);
4764- if( (xx<size/2 && yy<size/2) || (xx>=size/2 && yy>=size/2))
4765- {
4766- mosaic[pos+0] = grayA;
4767- mosaic[pos+1] = grayA;
4768- mosaic[pos+2] = grayA;
4769- }
4770- else
4771- {
4772- mosaic[pos+0] = grayB;
4773- mosaic[pos+1] = grayB;
4774- mosaic[pos+2] = grayB;
4775- }
4776- mosaic[pos+3] = 255;
4777-
4778- xx++;
4779- if(xx>=size) xx = 0;
4780- }
4781- yy++;
4782- if(yy>=size) yy = 0;
4783- }
4784- return mosaic;
4785-}
4786
4787=== removed file 'lib/gui/other.c'
4788--- lib/gui/other.c 2008-11-28 22:03:52 +0000
4789+++ lib/gui/other.c 1970-01-01 00:00:00 +0000
4790@@ -1,67 +0,0 @@
4791-/*
4792- * This file is part of Nathive.
4793- *
4794- * Nathive is free software: you can redistribute it and/or modify
4795- * it under the terms of the GNU General Public License as published by
4796- * the Free Software Foundation, either version 3 of the License, or
4797- * (at your option) any later version.
4798- *
4799- * Nathive is distributed in the hope that it will be useful,
4800- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4801- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4802- * GNU General Public License for more details.
4803- *
4804- * You should have received a copy of the GNU General Public License
4805- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4806- */
4807-
4808-
4809-toolbar_item(GtkWidget *toolbar, int n, char *ops[])
4810-{
4811- int nz;
4812- GtkWidget *but[n];
4813- GtkWidget *butPre = NULL;
4814- for(nz=0; nz<n; nz++)
4815- {
4816- if(!butPre) but[nz] = gtk_radio_button_new(NULL);
4817- else but[nz] = gtk_radio_button_new_from_widget(GTK_RADIO_BUTTON(butPre));
4818- butPre = but[nz];
4819- }
4820-
4821- int *ids = (int*)malloc(n*sizeof(int));;
4822- for(nz=0; nz<n; nz++)
4823- {
4824- ids[nz] = nz;
4825- }
4826-
4827- for(nz=0; nz<n; nz++)
4828- {
4829- gtk_button_set_relief(GTK_BUTTON(but[nz]), GTK_RELIEF_NONE);
4830- gtk_button_set_image(GTK_BUTTON(but[nz]), gtk_image_new_from_file(ops[nz]));
4831- gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(but[nz]), 0);
4832- if(tool==nz) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(but[nz]), 1);
4833-
4834- int **data = (int**)malloc(2*sizeof(int*));
4835- data[0] = &tool;
4836- data[1] = &ids[nz];
4837-
4838- g_signal_connect(G_OBJECT(but[nz]),"pressed",G_CALLBACK(call_radio), data);
4839- g_signal_connect(G_OBJECT(but[nz]),"pressed",G_CALLBACK(sidebar_tool_change), NULL);
4840-
4841- gtk_box_pack_start(GTK_BOX(toolbar),but[nz],FALSE,FALSE,0);
4842- }
4843-}
4844-
4845-
4846-save()
4847-{
4848- if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(tabs)))
4849- {
4850- int tab = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
4851- char *path = n_tree_get(dom, n_tree_stalk(2,tab,0));
4852- printf(">> saving %s\n",path);
4853-
4854- GdkPixbuf *pix = n_tree_get(dom, n_tree_stalk(2,tab,4));
4855- gdk_pixbuf_save (pix, strcatnew(PATH,"output.png"), "png", NULL, NULL);
4856- }
4857-}
4858
4859=== removed file 'lib/gui/scroll.c'
4860--- lib/gui/scroll.c 2008-11-26 01:33:49 +0000
4861+++ lib/gui/scroll.c 1970-01-01 00:00:00 +0000
4862@@ -1,55 +0,0 @@
4863-/*
4864- * This file is part of Nathive.
4865- *
4866- * Nathive is free software: you can redistribute it and/or modify
4867- * it under the terms of the GNU General Public License as published by
4868- * the Free Software Foundation, either version 3 of the License, or
4869- * (at your option) any later version.
4870- *
4871- * Nathive is distributed in the hope that it will be useful,
4872- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4873- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4874- * GNU General Public License for more details.
4875- *
4876- * You should have received a copy of the GNU General Public License
4877- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4878- */
4879-
4880-
4881-scroll(int x, int y)
4882-{
4883- int x_rel = user_x_root - x;
4884- int y_rel = user_y_root - y;
4885- GtkScrolledWindow *scroll = GTK_SCROLLED_WINDOW(dom_scroll());
4886-
4887- int h = gtk_adjustment_get_value(gtk_scrolled_window_get_hadjustment(scroll)) + x_rel;
4888- int v = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment(scroll)) + y_rel;
4889- int alloc_x = gtk_scrolled_window_get_hscrollbar(scroll)->allocation.width;
4890- int alloc_y = gtk_scrolled_window_get_vscrollbar(scroll)->allocation.height;
4891- h = max(h, 0);
4892- v = max(v, 0);
4893- h = min(h, *dom_w() - alloc_x + 4);
4894- v = min(v, *dom_h() - alloc_y + 4);
4895-
4896- if(GTK_WIDGET(scroll)->allocation.width - alloc_x < 100)
4897- {
4898- gtk_adjustment_set_value(gtk_scrolled_window_get_hadjustment(scroll), h);
4899- }
4900-
4901- if(GTK_WIDGET(scroll)->allocation.height - alloc_y < 100)
4902- {
4903- gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(scroll), v);
4904- }
4905-
4906- user_x_root -= x_rel;
4907- user_y_root -= y_rel;
4908-}
4909-
4910-scroll_area(int arr[4])
4911-{
4912- GtkScrolledWindow *scroll = GTK_SCROLLED_WINDOW(dom_scroll());
4913- arr[0] = gtk_adjustment_get_value(gtk_scrolled_window_get_hadjustment(scroll));
4914- arr[1] = gtk_adjustment_get_value(gtk_scrolled_window_get_vadjustment(scroll));
4915- arr[2] = GTK_WIDGET(scroll)->allocation.width;
4916- arr[3] = GTK_WIDGET(scroll)->allocation.height;
4917-}
4918
4919=== removed file 'lib/gui/statusbar.c'
4920--- lib/gui/statusbar.c 2008-11-28 22:03:52 +0000
4921+++ lib/gui/statusbar.c 1970-01-01 00:00:00 +0000
4922@@ -1,66 +0,0 @@
4923-/*
4924- * This file is part of Nathive.
4925- *
4926- * Nathive is free software: you can redistribute it and/or modify
4927- * it under the terms of the GNU General Public License as published by
4928- * the Free Software Foundation, either version 3 of the License, or
4929- * (at your option) any later version.
4930- *
4931- * Nathive is distributed in the hope that it will be useful,
4932- * but WITHOUT ANY WARRANTY; without even the implied warranty of
4933- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4934- * GNU General Public License for more details.
4935- *
4936- * You should have received a copy of the GNU General Public License
4937- * along with Nathive. If not, see <http://www.gnu.org/licenses/>.
4938- */
4939-
4940-
4941-statusbar_refresh()
4942-{
4943- statusbar_w = *dom_w();
4944- statusbar_h = *dom_h();
4945-
4946- char statusbar_text[100];
4947- sprintf(
4948- statusbar_text,
4949- " %i x %i %s · %i%c",
4950- statusbar_w, statusbar_h, language[40],
4951- statusbar_z*100, 37
4952- );
4953-
4954- if(statusbar_msg==0) // default
4955- {
4956- sprintf(
4957- statusbar_text,
4958- "%s · x%i y%i",
4959- statusbar_text,
4960- statusbar_x, statusbar_y
4961- );
4962- }
4963-
4964- if(statusbar_msg==1) // brush size 3rd button
4965- {
4966- sprintf(
4967- statusbar_text,
4968- "%s · x%i y%i · %s: %i",
4969- statusbar_text,
4970- statusbar_x, statusbar_y,
4971- language[52], brush_size
4972- );
4973- }
4974-
4975- if(statusbar_msg==2) // select move
4976- {
4977- sprintf(
4978- statusbar_text,
4979- "%s · x%i:%i (%i) y%i:%i (%i)",
4980- statusbar_text,
4981- user_x_press, statusbar_x, statusbar_x-user_x_press,
4982- user_y_press, statusbar_y, statusbar_y-user_y_press
4983- );
4984- }
4985-
4986- statusbar_msg = 0;
4987- gtk_statusbar_push(GTK_STATUSBAR(statusbar), 0, statusbar_text);
4988-}
4989
4990=== removed file 'lib/gui/tab.c'
4991--- lib/gui/tab.c 2008-12-01 07:53:03 +0000
4992+++ lib/gui/tab.c 1970-01-01 00:00:00 +0000
4993@@ -1,193 +0,0 @@
4994-/*
4995- * This file is part of Nathive.
4996- *
4997- * Nathive is free software: you can redistribute it and/or modify
4998- * it under the terms of the GNU General Public License as published by
4999- * the Free Software Foundation, either version 3 of the License, or
5000- * (at your option) any later version.
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: