1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/LICENSE Sun Jan 30 12:59:10 2005 +0000
1.3 @@ -0,0 +1,308 @@
1.4 + VYM - View Your Mind
1.5 + Copyright (C) 2004 Uwe Drechsel
1.6 +
1.7 + This program is free software; you can redistribute it and/or modify
1.8 + it under the terms of the GNU General Public License as published by
1.9 + the Free Software Foundation; either version 2 of the License, or
1.10 + (at your option) any later version.
1.11 +
1.12 + This program is distributed in the hope that it will be useful,
1.13 + but WITHOUT ANY WARRANTY; without even the implied warranty of
1.14 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1.15 + GNU General Public License below for more details.
1.16 +
1.17 + In addition, as a special exception, Uwe Drechsel
1.18 + gives permission to link the code of this program with the QT
1.19 + libraries from trolltech.com (or with modified versions of QT that
1.20 + use the same license as QT), and distribute linked combinations
1.21 + including the two. You must obey the GNU General Public License in
1.22 + all respects for all of the code used other than QT. If you modify
1.23 + this file, you may extend this exception to your version of the
1.24 + file, but you are not obligated to do so. If you do not wish to do
1.25 + so, delete this exception statement from your version.
1.26 +
1.27 +
1.28 + Uwe Drechsel can be contacted at <vym@insilmaril.de>
1.29 +
1.30 +-----------------------------------------------------------------------------
1.31 +
1.32 + GNU GENERAL PUBLIC LICENSE
1.33 + Version 2, June 1991
1.34 +
1.35 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
1.36 + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1.37 + Everyone is permitted to copy and distribute verbatim copies
1.38 + of this license document, but changing it is not allowed.
1.39 +
1.40 + Preamble
1.41 +
1.42 + The licenses for most software are designed to take away your
1.43 +freedom to share and change it. By contrast, the GNU General Public
1.44 +License is intended to guarantee your freedom to share and change free
1.45 +software--to make sure the software is free for all its users. This
1.46 +General Public License applies to most of the Free Software
1.47 +Foundation's software and to any other program whose authors commit to
1.48 +using it. (Some other Free Software Foundation software is covered by
1.49 +the GNU Library General Public License instead.) You can apply it to
1.50 +your programs, too.
1.51 +
1.52 + When we speak of free software, we are referring to freedom, not
1.53 +price. Our General Public Licenses are designed to make sure that you
1.54 +have the freedom to distribute copies of free software (and charge for
1.55 +this service if you wish), that you receive source code or can get it
1.56 +if you want it, that you can change the software or use pieces of it
1.57 +in new free programs; and that you know you can do these things.
1.58 +
1.59 + To protect your rights, we need to make restrictions that forbid
1.60 +anyone to deny you these rights or to ask you to surrender the rights.
1.61 +These restrictions translate to certain responsibilities for you if you
1.62 +distribute copies of the software, or if you modify it.
1.63 +
1.64 + For example, if you distribute copies of such a program, whether
1.65 +gratis or for a fee, you must give the recipients all the rights that
1.66 +you have. You must make sure that they, too, receive or can get the
1.67 +source code. And you must show them these terms so they know their
1.68 +rights.
1.69 +
1.70 + We protect your rights with two steps: (1) copyright the software, and
1.71 +(2) offer you this license which gives you legal permission to copy,
1.72 +distribute and/or modify the software.
1.73 +
1.74 + Also, for each author's protection and ours, we want to make certain
1.75 +that everyone understands that there is no warranty for this free
1.76 +software. If the software is modified by someone else and passed on, we
1.77 +want its recipients to know that what they have is not the original, so
1.78 +that any problems introduced by others will not reflect on the original
1.79 +authors' reputations.
1.80 +
1.81 + Finally, any free program is threatened constantly by software
1.82 +patents. We wish to avoid the danger that redistributors of a free
1.83 +program will individually obtain patent licenses, in effect making the
1.84 +program proprietary. To prevent this, we have made it clear that any
1.85 +patent must be licensed for everyone's free use or not licensed at all.
1.86 +
1.87 + The precise terms and conditions for copying, distribution and
1.88 +modification follow.
1.89 +
1.90 + GNU GENERAL PUBLIC LICENSE
1.91 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1.92 +
1.93 + 0. This License applies to any program or other work which contains
1.94 +a notice placed by the copyright holder saying it may be distributed
1.95 +under the terms of this General Public License. The "Program", below,
1.96 +refers to any such program or work, and a "work based on the Program"
1.97 +means either the Program or any derivative work under copyright law:
1.98 +that is to say, a work containing the Program or a portion of it,
1.99 +either verbatim or with modifications and/or translated into another
1.100 +language. (Hereinafter, translation is included without limitation in
1.101 +the term "modification".) Each licensee is addressed as "you".
1.102 +
1.103 +Activities other than copying, distribution and modification are not
1.104 +covered by this License; they are outside its scope. The act of
1.105 +running the Program is not restricted, and the output from the Program
1.106 +is covered only if its contents constitute a work based on the
1.107 +Program (independent of having been made by running the Program).
1.108 +Whether that is true depends on what the Program does.
1.109 +
1.110 + 1. You may copy and distribute verbatim copies of the Program's
1.111 +source code as you receive it, in any medium, provided that you
1.112 +conspicuously and appropriately publish on each copy an appropriate
1.113 +copyright notice and disclaimer of warranty; keep intact all the
1.114 +notices that refer to this License and to the absence of any warranty;
1.115 +and give any other recipients of the Program a copy of this License
1.116 +along with the Program.
1.117 +
1.118 +You may charge a fee for the physical act of transferring a copy, and
1.119 +you may at your option offer warranty protection in exchange for a fee.
1.120 +
1.121 + 2. You may modify your copy or copies of the Program or any portion
1.122 +of it, thus forming a work based on the Program, and copy and
1.123 +distribute such modifications or work under the terms of Section 1
1.124 +above, provided that you also meet all of these conditions:
1.125 +
1.126 + a) You must cause the modified files to carry prominent notices
1.127 + stating that you changed the files and the date of any change.
1.128 +
1.129 + b) You must cause any work that you distribute or publish, that in
1.130 + whole or in part contains or is derived from the Program or any
1.131 + part thereof, to be licensed as a whole at no charge to all third
1.132 + parties under the terms of this License.
1.133 +
1.134 + c) If the modified program normally reads commands interactively
1.135 + when run, you must cause it, when started running for such
1.136 + interactive use in the most ordinary way, to print or display an
1.137 + announcement including an appropriate copyright notice and a
1.138 + notice that there is no warranty (or else, saying that you provide
1.139 + a warranty) and that users may redistribute the program under
1.140 + these conditions, and telling the user how to view a copy of this
1.141 + License. (Exception: if the Program itself is interactive but
1.142 + does not normally print such an announcement, your work based on
1.143 + the Program is not required to print an announcement.)
1.144 +
1.145 +These requirements apply to the modified work as a whole. If
1.146 +identifiable sections of that work are not derived from the Program,
1.147 +and can be reasonably considered independent and separate works in
1.148 +themselves, then this License, and its terms, do not apply to those
1.149 +sections when you distribute them as separate works. But when you
1.150 +distribute the same sections as part of a whole which is a work based
1.151 +on the Program, the distribution of the whole must be on the terms of
1.152 +this License, whose permissions for other licensees extend to the
1.153 +entire whole, and thus to each and every part regardless of who wrote it.
1.154 +
1.155 +Thus, it is not the intent of this section to claim rights or contest
1.156 +your rights to work written entirely by you; rather, the intent is to
1.157 +exercise the right to control the distribution of derivative or
1.158 +collective works based on the Program.
1.159 +
1.160 +In addition, mere aggregation of another work not based on the Program
1.161 +with the Program (or with a work based on the Program) on a volume of
1.162 +a storage or distribution medium does not bring the other work under
1.163 +the scope of this License.
1.164 +
1.165 + 3. You may copy and distribute the Program (or a work based on it,
1.166 +under Section 2) in object code or executable form under the terms of
1.167 +Sections 1 and 2 above provided that you also do one of the following:
1.168 +
1.169 + a) Accompany it with the complete corresponding machine-readable
1.170 + source code, which must be distributed under the terms of Sections
1.171 + 1 and 2 above on a medium customarily used for software interchange; or,
1.172 +
1.173 + b) Accompany it with a written offer, valid for at least three
1.174 + years, to give any third party, for a charge no more than your
1.175 + cost of physically performing source distribution, a complete
1.176 + machine-readable copy of the corresponding source code, to be
1.177 + distributed under the terms of Sections 1 and 2 above on a medium
1.178 + customarily used for software interchange; or,
1.179 +
1.180 + c) Accompany it with the information you received as to the offer
1.181 + to distribute corresponding source code. (This alternative is
1.182 + allowed only for noncommercial distribution and only if you
1.183 + received the program in object code or executable form with such
1.184 + an offer, in accord with Subsection b above.)
1.185 +
1.186 +The source code for a work means the preferred form of the work for
1.187 +making modifications to it. For an executable work, complete source
1.188 +code means all the source code for all modules it contains, plus any
1.189 +associated interface definition files, plus the scripts used to
1.190 +control compilation and installation of the executable. However, as a
1.191 +special exception, the source code distributed need not include
1.192 +anything that is normally distributed (in either source or binary
1.193 +form) with the major components (compiler, kernel, and so on) of the
1.194 +operating system on which the executable runs, unless that component
1.195 +itself accompanies the executable.
1.196 +
1.197 +If distribution of executable or object code is made by offering
1.198 +access to copy from a designated place, then offering equivalent
1.199 +access to copy the source code from the same place counts as
1.200 +distribution of the source code, even though third parties are not
1.201 +compelled to copy the source along with the object code.
1.202 +
1.203 + 4. You may not copy, modify, sublicense, or distribute the Program
1.204 +except as expressly provided under this License. Any attempt
1.205 +otherwise to copy, modify, sublicense or distribute the Program is
1.206 +void, and will automatically terminate your rights under this License.
1.207 +However, parties who have received copies, or rights, from you under
1.208 +this License will not have their licenses terminated so long as such
1.209 +parties remain in full compliance.
1.210 +
1.211 + 5. You are not required to accept this License, since you have not
1.212 +signed it. However, nothing else grants you permission to modify or
1.213 +distribute the Program or its derivative works. These actions are
1.214 +prohibited by law if you do not accept this License. Therefore, by
1.215 +modifying or distributing the Program (or any work based on the
1.216 +Program), you indicate your acceptance of this License to do so, and
1.217 +all its terms and conditions for copying, distributing or modifying
1.218 +the Program or works based on it.
1.219 +
1.220 + 6. Each time you redistribute the Program (or any work based on the
1.221 +Program), the recipient automatically receives a license from the
1.222 +original licensor to copy, distribute or modify the Program subject to
1.223 +these terms and conditions. You may not impose any further
1.224 +restrictions on the recipients' exercise of the rights granted herein.
1.225 +You are not responsible for enforcing compliance by third parties to
1.226 +this License.
1.227 +
1.228 + 7. If, as a consequence of a court judgment or allegation of patent
1.229 +infringement or for any other reason (not limited to patent issues),
1.230 +conditions are imposed on you (whether by court order, agreement or
1.231 +otherwise) that contradict the conditions of this License, they do not
1.232 +excuse you from the conditions of this License. If you cannot
1.233 +distribute so as to satisfy simultaneously your obligations under this
1.234 +License and any other pertinent obligations, then as a consequence you
1.235 +may not distribute the Program at all. For example, if a patent
1.236 +license would not permit royalty-free redistribution of the Program by
1.237 +all those who receive copies directly or indirectly through you, then
1.238 +the only way you could satisfy both it and this License would be to
1.239 +refrain entirely from distribution of the Program.
1.240 +
1.241 +If any portion of this section is held invalid or unenforceable under
1.242 +any particular circumstance, the balance of the section is intended to
1.243 +apply and the section as a whole is intended to apply in other
1.244 +circumstances.
1.245 +
1.246 +It is not the purpose of this section to induce you to infringe any
1.247 +patents or other property right claims or to contest validity of any
1.248 +such claims; this section has the sole purpose of protecting the
1.249 +integrity of the free software distribution system, which is
1.250 +implemented by public license practices. Many people have made
1.251 +generous contributions to the wide range of software distributed
1.252 +through that system in reliance on consistent application of that
1.253 +system; it is up to the author/donor to decide if he or she is willing
1.254 +to distribute software through any other system and a licensee cannot
1.255 +impose that choice.
1.256 +
1.257 +This section is intended to make thoroughly clear what is believed to
1.258 +be a consequence of the rest of this License.
1.259 +
1.260 + 8. If the distribution and/or use of the Program is restricted in
1.261 +certain countries either by patents or by copyrighted interfaces, the
1.262 +original copyright holder who places the Program under this License
1.263 +may add an explicit geographical distribution limitation excluding
1.264 +those countries, so that distribution is permitted only in or among
1.265 +countries not thus excluded. In such case, this License incorporates
1.266 +the limitation as if written in the body of this License.
1.267 +
1.268 + 9. The Free Software Foundation may publish revised and/or new versions
1.269 +of the General Public License from time to time. Such new versions will
1.270 +be similar in spirit to the present version, but may differ in detail to
1.271 +address new problems or concerns.
1.272 +
1.273 +Each version is given a distinguishing version number. If the Program
1.274 +specifies a version number of this License which applies to it and "any
1.275 +later version", you have the option of following the terms and conditions
1.276 +either of that version or of any later version published by the Free
1.277 +Software Foundation. If the Program does not specify a version number of
1.278 +this License, you may choose any version ever published by the Free Software
1.279 +Foundation.
1.280 +
1.281 + 10. If you wish to incorporate parts of the Program into other free
1.282 +programs whose distribution conditions are different, write to the author
1.283 +to ask for permission. For software which is copyrighted by the Free
1.284 +Software Foundation, write to the Free Software Foundation; we sometimes
1.285 +make exceptions for this. Our decision will be guided by the two goals
1.286 +of preserving the free status of all derivatives of our free software and
1.287 +of promoting the sharing and reuse of software generally.
1.288 +
1.289 + NO WARRANTY
1.290 +
1.291 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
1.292 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
1.293 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
1.294 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
1.295 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
1.296 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
1.297 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
1.298 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
1.299 +REPAIR OR CORRECTION.
1.300 +
1.301 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
1.302 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
1.303 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
1.304 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
1.305 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
1.306 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
1.307 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
1.308 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
1.309 +POSSIBILITY OF SUCH DAMAGES.
1.310 +
1.311 + END OF TERMS AND CONDITIONS
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/Makefile Sun Jan 30 12:59:10 2005 +0000
2.3 @@ -0,0 +1,737 @@
2.4 +#############################################################################
2.5 +# Makefile for building: vym
2.6 +# Generated by qmake (1.07a) (Qt 3.3.1) on: Tue Jan 4 10:40:21 2005
2.7 +# Project: vym.pro
2.8 +# Template: app
2.9 +# Command: $(QMAKE) -o Makefile vym.pro
2.10 +#############################################################################
2.11 +
2.12 +####### Compiler, tools and options
2.13 +
2.14 +CC = gcc
2.15 +CXX = g++
2.16 +LEX = flex
2.17 +YACC = yacc
2.18 +CFLAGS = -pipe -O2 -fmessage-length=0 -Wall -fPIC -Wall -W -O2 -fmessage-length=0 -Wall -fPIC -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT
2.19 +CXXFLAGS = -pipe -O2 -fmessage-length=0 -Wall -fPIC -Wall -W -O2 -fmessage-length=0 -Wall -fPIC -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT
2.20 +LEXFLAGS =
2.21 +YACCFLAGS= -d
2.22 +INCPATH = -I/usr/lib/qt3/mkspecs/linux-g++ -I. -I/usr/include -I$(QTDIR)/include
2.23 +LINK = g++
2.24 +LFLAGS =
2.25 +LIBS = $(SUBLIBS) -L/usr/lib64/ -L$(QTDIR)/lib64/ -L/usr/X11R6/lib64/ -lqt-mt -lXext -lX11 -lm
2.26 +AR = ar cqs
2.27 +RANLIB =
2.28 +MOC = $(QTDIR)/bin/moc
2.29 +UIC = $(QTDIR)/bin/uic
2.30 +QMAKE = qmake
2.31 +TAR = tar -cf
2.32 +GZIP = gzip -9f
2.33 +COPY = cp -f
2.34 +COPY_FILE= $(COPY)
2.35 +COPY_DIR = $(COPY) -r
2.36 +INSTALL_FILE= $(COPY_FILE)
2.37 +INSTALL_DIR = $(COPY_DIR)
2.38 +DEL_FILE = rm -f
2.39 +SYMLINK = ln -sf
2.40 +DEL_DIR = rmdir
2.41 +MOVE = mv -f
2.42 +CHK_DIR_EXISTS= test -d
2.43 +MKDIR = mkdir -p
2.44 +
2.45 +####### Output directory
2.46 +
2.47 +OBJECTS_DIR = ./
2.48 +
2.49 +####### Files
2.50 +
2.51 +HEADERS = branchobj.h \
2.52 + exports.h \
2.53 + findwindow.h \
2.54 + flagobj.h \
2.55 + flagrowobj.h \
2.56 + floatimageobj.h \
2.57 + floatobj.h \
2.58 + frameobj.h \
2.59 + headingobj.h \
2.60 + imageobj.h \
2.61 + linkablemapobj.h \
2.62 + mainwindow.h \
2.63 + mapcenterobj.h \
2.64 + mapeditor.h \
2.65 + mapobj.h \
2.66 + misc.h \
2.67 + noteobj.h \
2.68 + ornamentedobj.h \
2.69 + process.h \
2.70 + selection.h \
2.71 + texteditor.h \
2.72 + version.h \
2.73 + xml.h \
2.74 + settings.h \
2.75 + options.h
2.76 +SOURCES = branchobj.cpp \
2.77 + exports.cpp \
2.78 + findwindow.cpp \
2.79 + flagobj.cpp \
2.80 + flagrowobj.cpp \
2.81 + floatimageobj.cpp \
2.82 + floatobj.cpp \
2.83 + frameobj.cpp \
2.84 + headingobj.cpp \
2.85 + imageobj.cpp \
2.86 + linkablemapobj.cpp \
2.87 + main.cpp \
2.88 + mainwindow.cpp \
2.89 + mapcenterobj.cpp \
2.90 + mapeditor.cpp \
2.91 + mapobj.cpp \
2.92 + misc.cpp \
2.93 + noteobj.cpp \
2.94 + ornamentedobj.cpp \
2.95 + process.cpp \
2.96 + selection.cpp \
2.97 + texteditor.cpp \
2.98 + xml.cpp \
2.99 + settings.cpp \
2.100 + options.cpp
2.101 +OBJECTS = branchobj.o \
2.102 + exports.o \
2.103 + findwindow.o \
2.104 + flagobj.o \
2.105 + flagrowobj.o \
2.106 + floatimageobj.o \
2.107 + floatobj.o \
2.108 + frameobj.o \
2.109 + headingobj.o \
2.110 + imageobj.o \
2.111 + linkablemapobj.o \
2.112 + main.o \
2.113 + mainwindow.o \
2.114 + mapcenterobj.o \
2.115 + mapeditor.o \
2.116 + mapobj.o \
2.117 + misc.o \
2.118 + noteobj.o \
2.119 + ornamentedobj.o \
2.120 + process.o \
2.121 + selection.o \
2.122 + texteditor.o \
2.123 + xml.o \
2.124 + settings.o \
2.125 + options.o \
2.126 + exporthtmldialog.o \
2.127 + exportxhtmldialog.o \
2.128 + showtextdialog.o \
2.129 + extrainfodialog.o
2.130 +FORMS = exporthtmldialog.ui \
2.131 + exportxhtmldialog.ui \
2.132 + showtextdialog.ui \
2.133 + extrainfodialog.ui
2.134 +UICDECLS = exporthtmldialog.h \
2.135 + exportxhtmldialog.h \
2.136 + showtextdialog.h \
2.137 + extrainfodialog.h
2.138 +UICIMPLS = exporthtmldialog.cpp \
2.139 + exportxhtmldialog.cpp \
2.140 + showtextdialog.cpp \
2.141 + extrainfodialog.cpp
2.142 +SRCMOC = moc_findwindow.cpp \
2.143 + moc_linkablemapobj.cpp \
2.144 + moc_mainwindow.cpp \
2.145 + moc_mapeditor.cpp \
2.146 + moc_ornamentedobj.cpp \
2.147 + moc_process.cpp \
2.148 + moc_texteditor.cpp \
2.149 + moc_exporthtmldialog.cpp \
2.150 + moc_exportxhtmldialog.cpp \
2.151 + moc_showtextdialog.cpp \
2.152 + moc_extrainfodialog.cpp
2.153 +OBJMOC = moc_findwindow.o \
2.154 + moc_linkablemapobj.o \
2.155 + moc_mainwindow.o \
2.156 + moc_mapeditor.o \
2.157 + moc_ornamentedobj.o \
2.158 + moc_process.o \
2.159 + moc_texteditor.o \
2.160 + moc_exporthtmldialog.o \
2.161 + moc_exportxhtmldialog.o \
2.162 + moc_showtextdialog.o \
2.163 + moc_extrainfodialog.o
2.164 +DIST = vym.pro
2.165 +QMAKE_TARGET = vym
2.166 +DESTDIR =
2.167 +TARGET = vym
2.168 +
2.169 +first: all
2.170 +####### Implicit rules
2.171 +
2.172 +.SUFFIXES: .c .o .cpp .cc .cxx .C
2.173 +
2.174 +.cpp.o:
2.175 + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
2.176 +
2.177 +.cc.o:
2.178 + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
2.179 +
2.180 +.cxx.o:
2.181 + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
2.182 +
2.183 +.C.o:
2.184 + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
2.185 +
2.186 +.c.o:
2.187 + $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
2.188 +
2.189 +####### Build rules
2.190 +
2.191 +all: Makefile $(TARGET)
2.192 +
2.193 +$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
2.194 + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
2.195 +
2.196 +mocables: $(SRCMOC)
2.197 +uicables: $(UICDECLS) $(UICIMPLS)
2.198 +
2.199 +$(MOC):
2.200 + ( cd $(QTDIR)/src/moc && $(MAKE) )
2.201 +
2.202 +Makefile: vym.pro /usr/lib/qt3/mkspecs/linux-g++/qmake.conf /usr/lib/qt3/lib64/libqt-mt.prl
2.203 + $(QMAKE) -o Makefile vym.pro
2.204 +qmake:
2.205 + @$(QMAKE) -o Makefile vym.pro
2.206 +
2.207 +dist:
2.208 + @mkdir -p .tmp/vym && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/vym/ && $(COPY_FILE) --parents vym_de.ts .tmp/vym/ && $(COPY_FILE) --parents exporthtmldialog.ui.h exportxhtmldialog.ui.h showtextdialog.ui.h extrainfodialog.ui.h .tmp/vym/ && ( cd `dirname .tmp/vym` && $(TAR) vym.tar vym && $(GZIP) vym.tar ) && $(MOVE) `dirname .tmp/vym`/vym.tar.gz . && $(DEL_FILE) -r .tmp/vym
2.209 +
2.210 +mocclean:
2.211 + -$(DEL_FILE) $(OBJMOC)
2.212 + -$(DEL_FILE) $(SRCMOC)
2.213 +
2.214 +uiclean:
2.215 + -$(DEL_FILE) $(UICIMPLS) $(UICDECLS)
2.216 +
2.217 +yaccclean:
2.218 +lexclean:
2.219 +clean: mocclean uiclean
2.220 + -$(DEL_FILE) $(OBJECTS)
2.221 + -$(DEL_FILE) *~ core *.core
2.222 +
2.223 +
2.224 +####### Sub-libraries
2.225 +
2.226 +distclean: clean
2.227 + -$(DEL_FILE) $(TARGET) $(TARGET)
2.228 +
2.229 +
2.230 +FORCE:
2.231 +
2.232 +####### Compile
2.233 +
2.234 +branchobj.o: branchobj.cpp branchobj.h \
2.235 + texteditor.h \
2.236 + mapeditor.h \
2.237 + mainwindow.h \
2.238 + floatimageobj.h \
2.239 + linkablemapobj.h \
2.240 + ornamentedobj.h \
2.241 + floatobj.h \
2.242 + frameobj.h \
2.243 + noteobj.h \
2.244 + headingobj.h \
2.245 + flagrowobj.h \
2.246 + mapobj.h \
2.247 + misc.h \
2.248 + flagobj.h \
2.249 + imageobj.h \
2.250 + mapcenterobj.h \
2.251 + version.h \
2.252 + xml.h \
2.253 + findwindow.h
2.254 +
2.255 +exports.o: exports.cpp exports.h \
2.256 + linkablemapobj.h \
2.257 + mapcenterobj.h \
2.258 + branchobj.h \
2.259 + version.h \
2.260 + floatimageobj.h \
2.261 + ornamentedobj.h \
2.262 + floatobj.h \
2.263 + frameobj.h \
2.264 + noteobj.h \
2.265 + headingobj.h \
2.266 + flagrowobj.h \
2.267 + mapobj.h \
2.268 + misc.h \
2.269 + flagobj.h \
2.270 + imageobj.h
2.271 +
2.272 +findwindow.o: findwindow.cpp findwindow.h
2.273 +
2.274 +flagobj.o: flagobj.cpp flagobj.h \
2.275 + mapobj.h \
2.276 + imageobj.h \
2.277 + misc.h
2.278 +
2.279 +flagrowobj.o: flagrowobj.cpp flagrowobj.h \
2.280 + mapobj.h \
2.281 + flagobj.h \
2.282 + misc.h \
2.283 + imageobj.h
2.284 +
2.285 +floatimageobj.o: floatimageobj.cpp floatimageobj.h \
2.286 + branchobj.h \
2.287 + floatobj.h \
2.288 + linkablemapobj.h \
2.289 + frameobj.h \
2.290 + noteobj.h \
2.291 + headingobj.h \
2.292 + flagrowobj.h \
2.293 + mapobj.h \
2.294 + misc.h \
2.295 + flagobj.h \
2.296 + imageobj.h \
2.297 + ornamentedobj.h
2.298 +
2.299 +floatobj.o: floatobj.cpp floatobj.h \
2.300 + linkablemapobj.h \
2.301 + frameobj.h \
2.302 + noteobj.h \
2.303 + headingobj.h \
2.304 + flagrowobj.h \
2.305 + mapobj.h \
2.306 + misc.h \
2.307 + flagobj.h \
2.308 + imageobj.h
2.309 +
2.310 +frameobj.o: frameobj.cpp frameobj.h \
2.311 + mapobj.h \
2.312 + misc.h
2.313 +
2.314 +headingobj.o: headingobj.cpp headingobj.h \
2.315 + mapobj.h \
2.316 + misc.h
2.317 +
2.318 +imageobj.o: imageobj.cpp imageobj.h \
2.319 + mapobj.h \
2.320 + misc.h
2.321 +
2.322 +linkablemapobj.o: linkablemapobj.cpp linkablemapobj.h \
2.323 + branchobj.h \
2.324 + mapeditor.h \
2.325 + version.h \
2.326 + frameobj.h \
2.327 + noteobj.h \
2.328 + headingobj.h \
2.329 + flagrowobj.h \
2.330 + mapobj.h \
2.331 + misc.h \
2.332 + flagobj.h \
2.333 + imageobj.h \
2.334 + floatimageobj.h \
2.335 + ornamentedobj.h \
2.336 + floatobj.h \
2.337 + mapcenterobj.h
2.338 +
2.339 +main.o: main.cpp settings.h \
2.340 + options.h \
2.341 + mainwindow.h \
2.342 + icons/vym-48x48.xpm \
2.343 + icons/vym-editor.xpm \
2.344 + flagrowobj.h \
2.345 + misc.h \
2.346 + xml.h \
2.347 + texteditor.h \
2.348 + mapeditor.h \
2.349 + findwindow.h \
2.350 + mapcenterobj.h \
2.351 + branchobj.h \
2.352 + version.h \
2.353 + floatimageobj.h \
2.354 + linkablemapobj.h \
2.355 + ornamentedobj.h \
2.356 + floatobj.h \
2.357 + frameobj.h \
2.358 + noteobj.h \
2.359 + headingobj.h \
2.360 + mapobj.h \
2.361 + flagobj.h \
2.362 + imageobj.h
2.363 +
2.364 +mainwindow.o: mainwindow.cpp mainwindow.h \
2.365 + version.h \
2.366 + icons/filenew.xpm \
2.367 + icons/fileopen.xpm \
2.368 + icons/filesave.xpm \
2.369 + icons/fileprint.xpm \
2.370 + icons/editundo.xpm \
2.371 + icons/editcopy.xpm \
2.372 + icons/editcut.xpm \
2.373 + icons/editpaste.xpm \
2.374 + icons/editmoveup.xpm \
2.375 + icons/editmovedown.xpm \
2.376 + icons/formatcoloritem.xpm \
2.377 + icons/formatcolorbranch.xpm \
2.378 + icons/formatcolorpicker.xpm \
2.379 + icons/viewzoomreset.xpm \
2.380 + icons/viewzoomin.xpm \
2.381 + icons/viewzoomout.xpm \
2.382 + icons/vym-48x48.xpm \
2.383 + icons/flag-note.xpm \
2.384 + icons/flag-url.xpm \
2.385 + icons/flag-vymlink.xpm \
2.386 + icons/flag-scrolled-right.xpm \
2.387 + flagrowobj.h \
2.388 + texteditor.h \
2.389 + mapeditor.h \
2.390 + exporthtmldialog.h \
2.391 + exportxhtmldialog.h \
2.392 + showtextdialog.h \
2.393 + process.h \
2.394 + settings.h \
2.395 + options.h \
2.396 + xml.h \
2.397 + findwindow.h \
2.398 + mapcenterobj.h \
2.399 + branchobj.h \
2.400 + floatimageobj.h \
2.401 + linkablemapobj.h \
2.402 + ornamentedobj.h \
2.403 + floatobj.h \
2.404 + frameobj.h \
2.405 + noteobj.h \
2.406 + headingobj.h \
2.407 + mapobj.h \
2.408 + misc.h \
2.409 + flagobj.h \
2.410 + imageobj.h
2.411 +
2.412 +mapcenterobj.o: mapcenterobj.cpp mapcenterobj.h \
2.413 + floatimageobj.h \
2.414 + mapeditor.h \
2.415 + branchobj.h \
2.416 + version.h \
2.417 + linkablemapobj.h \
2.418 + ornamentedobj.h \
2.419 + floatobj.h \
2.420 + frameobj.h \
2.421 + noteobj.h \
2.422 + headingobj.h \
2.423 + flagrowobj.h \
2.424 + mapobj.h \
2.425 + misc.h \
2.426 + flagobj.h \
2.427 + imageobj.h
2.428 +
2.429 +mapeditor.o: mapeditor.cpp mapeditor.h \
2.430 + version.h \
2.431 + xml.h \
2.432 + texteditor.h \
2.433 + linkablemapobj.h \
2.434 + exports.h \
2.435 + misc.h \
2.436 + mainwindow.h \
2.437 + extrainfodialog.h \
2.438 + settings.h \
2.439 + icons/flag-note.xpm \
2.440 + icons/flag-url.xpm \
2.441 + icons/flag-vymlink.xpm \
2.442 + icons/flag-scrolled-right.xpm \
2.443 + icons/flag-tmpUnscrolled-right.xpm \
2.444 + icons/flag-questionmark.xpm \
2.445 + icons/flag-exclamationmark.xpm \
2.446 + icons/flag-hook-green.xpm \
2.447 + icons/flag-cross-red.xpm \
2.448 + icons/flag-stopsign.xpm \
2.449 + icons/flag-smiley-good.xpm \
2.450 + icons/flag-smiley-sad.xpm \
2.451 + icons/flag-clock.xpm \
2.452 + icons/flag-lamp.xpm \
2.453 + icons/flag-arrow-up.xpm \
2.454 + icons/flag-arrow-down.xpm \
2.455 + icons/flag-thumb-up.xpm \
2.456 + icons/flag-thumb-down.xpm \
2.457 + icons/flag-heart.xpm \
2.458 + icons/flag-flash.xpm \
2.459 + icons/flag-lifebelt.xpm \
2.460 + mapcenterobj.h \
2.461 + branchobj.h \
2.462 + floatimageobj.h \
2.463 + ornamentedobj.h \
2.464 + floatobj.h \
2.465 + frameobj.h \
2.466 + noteobj.h \
2.467 + headingobj.h \
2.468 + flagrowobj.h \
2.469 + mapobj.h \
2.470 + flagobj.h \
2.471 + imageobj.h \
2.472 + findwindow.h
2.473 +
2.474 +mapobj.o: mapobj.cpp mapobj.h \
2.475 + misc.h
2.476 +
2.477 +misc.o: misc.cpp misc.h
2.478 +
2.479 +noteobj.o: noteobj.cpp noteobj.h \
2.480 + misc.h
2.481 +
2.482 +ornamentedobj.o: ornamentedobj.cpp ornamentedobj.h \
2.483 + texteditor.h \
2.484 + mapeditor.h \
2.485 + linkablemapobj.h \
2.486 + frameobj.h \
2.487 + noteobj.h \
2.488 + headingobj.h \
2.489 + flagrowobj.h \
2.490 + mapobj.h \
2.491 + misc.h \
2.492 + flagobj.h \
2.493 + imageobj.h \
2.494 + mapcenterobj.h \
2.495 + branchobj.h \
2.496 + version.h \
2.497 + floatimageobj.h \
2.498 + floatobj.h
2.499 +
2.500 +process.o: process.cpp process.h
2.501 +
2.502 +selection.o: selection.cpp selection.h \
2.503 + linkablemapobj.h \
2.504 + frameobj.h \
2.505 + noteobj.h \
2.506 + headingobj.h \
2.507 + flagrowobj.h \
2.508 + mapobj.h \
2.509 + misc.h \
2.510 + flagobj.h \
2.511 + imageobj.h
2.512 +
2.513 +texteditor.o: texteditor.cpp texteditor.h \
2.514 + icons/fileopen.xpm \
2.515 + icons/filesave.xpm \
2.516 + icons/fileprint.xpm \
2.517 + icons/editundo.xpm \
2.518 + icons/editredo.xpm \
2.519 + icons/editcopy.xpm \
2.520 + icons/editcut.xpm \
2.521 + icons/editpaste.xpm \
2.522 + icons/edittrash.xpm \
2.523 + icons/formatfixedfont.xpm \
2.524 + icons/formattextbold.xpm \
2.525 + icons/formattextitalic.xpm \
2.526 + icons/formattextunder.xpm \
2.527 + icons/formattextleft.xpm \
2.528 + icons/formattextcenter.xpm \
2.529 + icons/formattextright.xpm \
2.530 + icons/formattextjustify.xpm
2.531 +
2.532 +xml.o: xml.cpp xml.h \
2.533 + misc.h \
2.534 + settings.h \
2.535 + version.h \
2.536 + mapcenterobj.h \
2.537 + mapeditor.h \
2.538 + branchobj.h \
2.539 + floatimageobj.h \
2.540 + linkablemapobj.h \
2.541 + ornamentedobj.h \
2.542 + floatobj.h \
2.543 + frameobj.h \
2.544 + noteobj.h \
2.545 + headingobj.h \
2.546 + flagrowobj.h \
2.547 + mapobj.h \
2.548 + flagobj.h \
2.549 + imageobj.h
2.550 +
2.551 +settings.o: settings.cpp settings.h \
2.552 + misc.h
2.553 +
2.554 +options.o: options.cpp options.h
2.555 +
2.556 +exporthtmldialog.h: exporthtmldialog.ui showtextdialog.h
2.557 + $(UIC) exporthtmldialog.ui -o exporthtmldialog.h
2.558 +
2.559 +exporthtmldialog.cpp: exporthtmldialog.h exporthtmldialog.ui showtextdialog.h
2.560 + $(UIC) exporthtmldialog.ui -i exporthtmldialog.h -o exporthtmldialog.cpp
2.561 +
2.562 +exportxhtmldialog.h: exportxhtmldialog.ui process.h \
2.563 + showtextdialog.h
2.564 + $(UIC) exportxhtmldialog.ui -o exportxhtmldialog.h
2.565 +
2.566 +exportxhtmldialog.cpp: exportxhtmldialog.h exportxhtmldialog.ui process.h \
2.567 + showtextdialog.h
2.568 + $(UIC) exportxhtmldialog.ui -i exportxhtmldialog.h -o exportxhtmldialog.cpp
2.569 +
2.570 +showtextdialog.h: showtextdialog.ui
2.571 + $(UIC) showtextdialog.ui -o showtextdialog.h
2.572 +
2.573 +showtextdialog.cpp: showtextdialog.h showtextdialog.ui
2.574 + $(UIC) showtextdialog.ui -i showtextdialog.h -o showtextdialog.cpp
2.575 +
2.576 +extrainfodialog.h: extrainfodialog.ui
2.577 + $(UIC) extrainfodialog.ui -o extrainfodialog.h
2.578 +
2.579 +extrainfodialog.cpp: extrainfodialog.h extrainfodialog.ui
2.580 + $(UIC) extrainfodialog.ui -i extrainfodialog.h -o extrainfodialog.cpp
2.581 +
2.582 +exporthtmldialog.o: exporthtmldialog.cpp settings.h \
2.583 + misc.h \
2.584 + icons/flag-url.xpm \
2.585 + exporthtmldialog.ui.h \
2.586 + exporthtmldialog.h
2.587 +
2.588 +exportxhtmldialog.o: exportxhtmldialog.cpp settings.h \
2.589 + icons/flag-url.xpm \
2.590 + exportxhtmldialog.ui.h \
2.591 + exportxhtmldialog.h
2.592 +
2.593 +showtextdialog.o: showtextdialog.cpp showtextdialog.ui.h \
2.594 + showtextdialog.h
2.595 +
2.596 +extrainfodialog.o: extrainfodialog.cpp extrainfodialog.ui.h \
2.597 + extrainfodialog.h
2.598 +
2.599 +moc_findwindow.o: moc_findwindow.cpp findwindow.h
2.600 +
2.601 +moc_linkablemapobj.o: moc_linkablemapobj.cpp linkablemapobj.h frameobj.h \
2.602 + noteobj.h \
2.603 + headingobj.h \
2.604 + flagrowobj.h \
2.605 + mapobj.h \
2.606 + misc.h \
2.607 + flagobj.h \
2.608 + imageobj.h
2.609 +
2.610 +moc_mainwindow.o: moc_mainwindow.cpp mainwindow.h xml.h \
2.611 + texteditor.h \
2.612 + mapeditor.h \
2.613 + findwindow.h \
2.614 + mapcenterobj.h \
2.615 + branchobj.h \
2.616 + version.h \
2.617 + floatimageobj.h \
2.618 + linkablemapobj.h \
2.619 + ornamentedobj.h \
2.620 + floatobj.h \
2.621 + frameobj.h \
2.622 + noteobj.h \
2.623 + headingobj.h \
2.624 + flagrowobj.h \
2.625 + mapobj.h \
2.626 + misc.h \
2.627 + flagobj.h \
2.628 + imageobj.h
2.629 +
2.630 +moc_mapeditor.o: moc_mapeditor.cpp mapeditor.h mapcenterobj.h \
2.631 + misc.h \
2.632 + branchobj.h \
2.633 + version.h \
2.634 + floatimageobj.h \
2.635 + linkablemapobj.h \
2.636 + ornamentedobj.h \
2.637 + floatobj.h \
2.638 + frameobj.h \
2.639 + noteobj.h \
2.640 + headingobj.h \
2.641 + flagrowobj.h \
2.642 + mapobj.h \
2.643 + flagobj.h \
2.644 + imageobj.h
2.645 +
2.646 +moc_ornamentedobj.o: moc_ornamentedobj.cpp ornamentedobj.h linkablemapobj.h \
2.647 + frameobj.h \
2.648 + noteobj.h \
2.649 + headingobj.h \
2.650 + flagrowobj.h \
2.651 + mapobj.h \
2.652 + misc.h \
2.653 + flagobj.h \
2.654 + imageobj.h
2.655 +
2.656 +moc_process.o: moc_process.cpp process.h
2.657 +
2.658 +moc_texteditor.o: moc_texteditor.cpp texteditor.h
2.659 +
2.660 +moc_exporthtmldialog.o: moc_exporthtmldialog.cpp exporthtmldialog.h showtextdialog.h
2.661 +
2.662 +moc_exportxhtmldialog.o: moc_exportxhtmldialog.cpp exportxhtmldialog.h process.h \
2.663 + showtextdialog.h
2.664 +
2.665 +moc_showtextdialog.o: moc_showtextdialog.cpp showtextdialog.h
2.666 +
2.667 +moc_extrainfodialog.o: moc_extrainfodialog.cpp extrainfodialog.h
2.668 +
2.669 +moc_findwindow.cpp: $(MOC) findwindow.h
2.670 + $(MOC) findwindow.h -o moc_findwindow.cpp
2.671 +
2.672 +moc_linkablemapobj.cpp: $(MOC) linkablemapobj.h
2.673 + $(MOC) linkablemapobj.h -o moc_linkablemapobj.cpp
2.674 +
2.675 +moc_mainwindow.cpp: $(MOC) mainwindow.h
2.676 + $(MOC) mainwindow.h -o moc_mainwindow.cpp
2.677 +
2.678 +moc_mapeditor.cpp: $(MOC) mapeditor.h
2.679 + $(MOC) mapeditor.h -o moc_mapeditor.cpp
2.680 +
2.681 +moc_ornamentedobj.cpp: $(MOC) ornamentedobj.h
2.682 + $(MOC) ornamentedobj.h -o moc_ornamentedobj.cpp
2.683 +
2.684 +moc_process.cpp: $(MOC) process.h
2.685 + $(MOC) process.h -o moc_process.cpp
2.686 +
2.687 +moc_texteditor.cpp: $(MOC) texteditor.h
2.688 + $(MOC) texteditor.h -o moc_texteditor.cpp
2.689 +
2.690 +moc_exporthtmldialog.cpp: $(MOC) exporthtmldialog.h
2.691 + $(MOC) exporthtmldialog.h -o moc_exporthtmldialog.cpp
2.692 +
2.693 +moc_exportxhtmldialog.cpp: $(MOC) exportxhtmldialog.h
2.694 + $(MOC) exportxhtmldialog.h -o moc_exportxhtmldialog.cpp
2.695 +
2.696 +moc_showtextdialog.cpp: $(MOC) showtextdialog.h
2.697 + $(MOC) showtextdialog.h -o moc_showtextdialog.cpp
2.698 +
2.699 +moc_extrainfodialog.cpp: $(MOC) extrainfodialog.h
2.700 + $(MOC) extrainfodialog.h -o moc_extrainfodialog.cpp
2.701 +
2.702 +####### Install
2.703 +
2.704 +install_target: all
2.705 + @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/usr/bin/" || $(MKDIR) "$(INSTALL_ROOT)/usr/bin/"
2.706 + -$(INSTALL_FILE) "$(QMAKE_TARGET)" "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
2.707 +
2.708 +uninstall_target:
2.709 + -$(DEL_FILE) "$(INSTALL_ROOT)/usr/bin/$(QMAKE_TARGET)"
2.710 + -$(DEL_DIR) "$(INSTALL_ROOT)/usr/bin/"
2.711 +
2.712 +
2.713 +install_support: all
2.714 + @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/usr/share/vym/" || $(MKDIR) "$(INSTALL_ROOT)/usr/share/vym/"
2.715 + -$(INSTALL_DIR) "styles" "$(INSTALL_ROOT)/usr/share/vym/"
2.716 + -$(INSTALL_DIR) "scripts" "$(INSTALL_ROOT)/usr/share/vym/"
2.717 + -$(INSTALL_DIR) "icons" "$(INSTALL_ROOT)/usr/share/vym/"
2.718 +
2.719 +
2.720 +uninstall_support:
2.721 + -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/vym/styles"
2.722 + -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/vym/scripts"
2.723 + -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/vym/icons"
2.724 + -$(DEL_DIR) "$(INSTALL_ROOT)/usr/share/vym/"
2.725 +
2.726 +
2.727 +install_demo: all
2.728 + @$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/usr/share/vym/" || $(MKDIR) "$(INSTALL_ROOT)/usr/share/vym/"
2.729 + -$(INSTALL_DIR) "demos" "$(INSTALL_ROOT)/usr/share/vym/"
2.730 +
2.731 +
2.732 +uninstall_demo:
2.733 + -$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/vym/demos"
2.734 + -$(DEL_DIR) "$(INSTALL_ROOT)/usr/share/vym/"
2.735 +
2.736 +
2.737 +install: install_target install_support install_demo
2.738 +
2.739 +uninstall: uninstall_target uninstall_support uninstall_demo
2.740 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/branchobj.cpp Sun Jan 30 12:59:10 2005 +0000
3.3 @@ -0,0 +1,1184 @@
3.4 +#include "branchobj.h"
3.5 +#include "texteditor.h"
3.6 +#include "mapeditor.h"
3.7 +#include "mainwindow.h"
3.8 +
3.9 +extern TextEditor *textEditor;
3.10 +extern Main *mainWindow;
3.11 +extern FlagRowObj *standardFlagsDefault;
3.12 +extern QAction *actionEditOpenURL;
3.13 +
3.14 +
3.15 +/////////////////////////////////////////////////////////////////
3.16 +// BranchObj
3.17 +/////////////////////////////////////////////////////////////////
3.18 +
3.19 +BranchObj* BranchObj::itLast=NULL;
3.20 +
3.21 +
3.22 +BranchObj::BranchObj () :OrnamentedObj()
3.23 +{
3.24 +// cout << "Const BranchObj ()\n";
3.25 + setParObj (this);
3.26 + init();
3.27 + depth=-1;
3.28 +}
3.29 +
3.30 +BranchObj::BranchObj (QCanvas* c):OrnamentedObj (c)
3.31 +{
3.32 +// cout << "Const BranchObj (c) called from MapCenterObj (c)\n";
3.33 + canvas=c;
3.34 +}
3.35 +
3.36 +BranchObj::BranchObj (QCanvas* c, LinkableMapObj* p):OrnamentedObj (c)
3.37 +{
3.38 +// cout << "Const BranchObj (c,p)\n";
3.39 + canvas=c;
3.40 + setParObj (p);
3.41 + depth=p->getDepth()+1;
3.42 + if (depth==1)
3.43 + // Calc angle to mapCenter if I am a mainbranch
3.44 + // needed for reordering the mainbranches clockwise
3.45 + // around mapcenter
3.46 + angle=getAngle (QPoint ((int)(x() - parObj->getChildPos().x() ),
3.47 + (int)(y() - parObj->getChildPos().y() ) ) );
3.48 + init();
3.49 +}
3.50 +
3.51 +BranchObj::~BranchObj ()
3.52 +{
3.53 + //cout << "Destr BranchObj\n";
3.54 + // Check, if this branch was the last child to be deleted
3.55 + // If so, unset the scrolled flags
3.56 +
3.57 + BranchObj *po=(BranchObj*)(parObj);
3.58 + if (po)
3.59 + {
3.60 + BranchObj *bo=((BranchObj*)(parObj))->getLastBranch();
3.61 + if (!bo) po->unScroll();
3.62 + }
3.63 +}
3.64 +
3.65 +bool BranchObj::operator< ( const BranchObj & other )
3.66 +{
3.67 + return angle < other.angle;
3.68 +}
3.69 +
3.70 +bool BranchObj::operator== ( const BranchObj & other )
3.71 +{
3.72 + return angle == other.angle;
3.73 +}
3.74 +
3.75 +int BranchObjPtrList::compareItems ( QPtrCollection::Item i, QPtrCollection::Item j)
3.76 +{
3.77 + // Make sure PtrList::find works
3.78 + if (i==j) return 0;
3.79 +
3.80 + if ( ((BranchObj*)(i))->angle > ((BranchObj*)(j))->angle )
3.81 + return 1;
3.82 + else
3.83 + return -1;
3.84 +}
3.85 +
3.86 +void BranchObj::init ()
3.87 +{
3.88 + branch.setAutoDelete (true);
3.89 + floatimage.setAutoDelete (true);
3.90 +
3.91 + absPos=getRandPos();
3.92 + absPos+=parObj->getChildPos();
3.93 +
3.94 + // TODO This should be done in TextObj later
3.95 + QFont font("Sans Serif,8,-1,5,50,0,0,0,0,0");
3.96 +// font.setPointSize(12);
3.97 + heading->setFont(font );
3.98 +// heading->setText(QObject::tr("new branch"));
3.99 +
3.100 + lastSelectedBranch=-1;
3.101 +
3.102 + setChildObj(this);
3.103 +
3.104 + scrolled=false;
3.105 + tmpUnscrolled=false;
3.106 +
3.107 + url="";
3.108 + vymLink="";
3.109 +}
3.110 +
3.111 +void BranchObj::copy (BranchObj* other)
3.112 +{
3.113 + OrnamentedObj::copy(other);
3.114 +
3.115 + branch.clear();
3.116 + BranchObj* b;
3.117 + for (b=other->branch.first(); b;b=other->branch.next() )
3.118 + // Make deep copy of b
3.119 + // Because addBranch again calls copy for the childs,
3.120 + // Those will get a deep copy, too
3.121 + addBranch(b);
3.122 +
3.123 + FloatImageObj *fi;
3.124 + for (fi=other->floatimage.first(); fi;fi=other->floatimage.next() )
3.125 + addFloatImage (fi);
3.126 +
3.127 + scrolled=other->scrolled;
3.128 + tmpUnscrolled=other->tmpUnscrolled;
3.129 + setVisibility (other->visible);
3.130 +
3.131 + url=other->url;
3.132 + vymLink=other->vymLink;
3.133 +
3.134 + angle=other->angle;
3.135 +
3.136 + positionBBox();
3.137 +}
3.138 +
3.139 +void BranchObj::clear()
3.140 +{
3.141 + branch.clear();
3.142 + floatimage.clear();
3.143 +}
3.144 +
3.145 +int BranchObj::getNum()
3.146 +{
3.147 + if (parObj)
3.148 + return ((BranchObj*)(parObj))->getNum ((BranchObj*)(this));
3.149 + else
3.150 + return 0;
3.151 +}
3.152 +
3.153 +int BranchObj::getNum(BranchObj *bo)
3.154 +{
3.155 + return branch.findRef (bo);
3.156 +}
3.157 +
3.158 +int BranchObj::getFloatImageNum(FloatImageObj *fio)
3.159 +{
3.160 + return floatimage.findRef (fio);
3.161 +}
3.162 +
3.163 +int BranchObj::countBranches()
3.164 +{
3.165 + return branch.count();
3.166 +}
3.167 +
3.168 +int BranchObj::countFloatImages()
3.169 +{
3.170 + return floatimage.count();
3.171 +}
3.172 +
3.173 +void BranchObj::setParObjTmp(LinkableMapObj* lmo, QPoint m, int off)
3.174 +{
3.175 + // Temporary link to lmo
3.176 + // m is position of mouse pointer
3.177 + // offset 0: default 1: below lmo -1 above lmo (if possible)
3.178 +
3.179 +
3.180 + BranchObj* o=(BranchObj*)(lmo);
3.181 + if (!parObjTmpBuf)
3.182 + parObjTmpBuf=parObj;
3.183 +
3.184 + // ignore mapcenter and mainbranch
3.185 + if (lmo->getDepth()<2) off=0;
3.186 + if (off==0)
3.187 + {
3.188 + link2ParPos=false;
3.189 + parObj=o;
3.190 + }
3.191 + else
3.192 + {
3.193 + link2ParPos=true;
3.194 + if (off>0)
3.195 + parObj=o->getParObj();
3.196 + else
3.197 + parObj=o->getParObj();
3.198 + parObj=o;
3.199 + }
3.200 +
3.201 + depth=parObj->getDepth()+1;
3.202 +
3.203 + // setLinkStyle calls updateLink, only set it once
3.204 + if (style!=getDefLinkStyle() ) setLinkStyle (getDefLinkStyle());
3.205 +
3.206 + // Move temporary to new position at destination
3.207 + // Usually the positioning would be done by reposition(),
3.208 + // but then also the destination branch would "Jump" around...
3.209 + // Better just do it approximately
3.210 + if (depth==1)
3.211 + { // new parent is the mapcenter itself
3.212 +
3.213 + QPoint p= normalise ( QPoint (m.x() - o->getChildPos().x(),
3.214 + m.y() - o->getChildPos().y() ));
3.215 + if (p.x()<0) p.setX( p.x()-bbox.width() );
3.216 + move2RelPos (p);
3.217 + } else
3.218 + {
3.219 + int y;
3.220 + if (off==0)
3.221 + {
3.222 + // new parent is just a branch, link to it
3.223 + QRect t=o->getBBoxSizeWithChilds();
3.224 + if (o->getLastBranch())
3.225 + y=t.y() + t.height() ;
3.226 + else
3.227 + y=t.y();
3.228 +
3.229 + } else
3.230 + {
3.231 + if (off<0)
3.232 + // we want to link above lmo
3.233 + y=o->y() - height() + 5;
3.234 + else
3.235 + // we want to link below lmo
3.236 + // Bottom of sel should be 5 pixels above
3.237 + // the bottom of the branch _below_ the target:
3.238 + // Don't try to find that branch, guess 12 pixels
3.239 + y=o->getChildPos().y() -height() + 12;
3.240 + }
3.241 + if (o->getOrientation()==OrientLeftOfCenter)
3.242 + move ( o->getChildPos().x() - linkwidth, y );
3.243 + else
3.244 + move (o->getChildPos().x() + linkwidth, y );
3.245 + }
3.246 +
3.247 + // updateLink is called implicitly in move
3.248 + reposition(); // FIXME shouldn't be this a request?
3.249 +}
3.250 +
3.251 +void BranchObj::unsetParObjTmp()
3.252 +{
3.253 + if (parObjTmpBuf)
3.254 + {
3.255 + link2ParPos=false;
3.256 + parObj=parObjTmpBuf;
3.257 + parObjTmpBuf=NULL;
3.258 + depth=parObj->getDepth()+1;
3.259 + setLinkStyle (getDefLinkStyle() );
3.260 + }
3.261 +}
3.262 +
3.263 +void BranchObj::unScroll()
3.264 +{
3.265 + if (tmpUnscrolled) resetTmpUnscroll();
3.266 + if (scrolled) toggleScroll();
3.267 +}
3.268 +
3.269 +void BranchObj::toggleScroll()
3.270 +{
3.271 + BranchObj *bo;
3.272 + if (scrolled)
3.273 + {
3.274 + scrolled=false;
3.275 + systemFlags->deactivate("scrolledright");
3.276 + for (bo=branch.first(); bo; bo=branch.next() )
3.277 + {
3.278 + bo->setVisibility(true);
3.279 + }
3.280 + } else
3.281 + {
3.282 + scrolled=true;
3.283 + systemFlags->activate("scrolledright");
3.284 + for (bo=branch.first(); bo; bo=branch.next() )
3.285 + {
3.286 + bo->setVisibility(false);
3.287 + }
3.288 + }
3.289 + calcBBoxSize();
3.290 + positionBBox();
3.291 + move (absPos.x(), absPos.y() );
3.292 + forceReposition();
3.293 +}
3.294 +
3.295 +bool BranchObj::isScrolled()
3.296 +{
3.297 + return scrolled;
3.298 +}
3.299 +
3.300 +bool BranchObj::hasScrolledParent(BranchObj *start)
3.301 +{
3.302 + // Calls parents recursivly to
3.303 + // find out, if we are scrolled at all.
3.304 + // But ignore myself, just look at parents.
3.305 +
3.306 + if (this !=start && scrolled) return true;
3.307 +
3.308 + BranchObj* bo=(BranchObj*)(parObj);
3.309 + if (bo)
3.310 + return bo->hasScrolledParent(start);
3.311 + else
3.312 + return false;
3.313 +}
3.314 +
3.315 +void BranchObj::tmpUnscroll()
3.316 +{
3.317 + // Unscroll parent (recursivly)
3.318 + BranchObj* bo=(BranchObj*)(parObj);
3.319 + if (bo) bo->tmpUnscroll();
3.320 +
3.321 + // Unscroll myself
3.322 + if (scrolled)
3.323 + {
3.324 + tmpUnscrolled=true;
3.325 + systemFlags->activate("tmpUnscrolledright");
3.326 + toggleScroll();
3.327 + }
3.328 +}
3.329 +
3.330 +void BranchObj::resetTmpUnscroll()
3.331 +{
3.332 + // Unscroll parent (recursivly)
3.333 + BranchObj* bo=(BranchObj*)(parObj);
3.334 + if (bo)
3.335 + bo->resetTmpUnscroll();
3.336 +
3.337 + // Unscroll myself
3.338 + if (tmpUnscrolled)
3.339 + {
3.340 + tmpUnscrolled=false;
3.341 + systemFlags->deactivate("tmpUnscrolledright");
3.342 + toggleScroll();
3.343 + }
3.344 +}
3.345 +
3.346 +void BranchObj::setVisibility(bool v, int toDepth)
3.347 +{
3.348 + if (depth <= toDepth)
3.349 + {
3.350 + frame->setVisibility(v);
3.351 + heading->setVisibility(v);
3.352 + systemFlags->setVisibility(v);
3.353 + standardFlags->setVisibility(v);
3.354 + LinkableMapObj::setVisibility (v);
3.355 +
3.356 + if (!scrolled && (depth < toDepth))
3.357 + {
3.358 + // Now go recursivly through all childs
3.359 + BranchObj* b;
3.360 + for (b=branch.first(); b;b=branch.next() )
3.361 + b->setVisibility (v,toDepth);
3.362 + FloatImageObj *fio;
3.363 + for (fio=floatimage.first(); fio; fio=floatimage.next())
3.364 + fio->setVisibility (v);
3.365 + }
3.366 + } // depth <= toDepth
3.367 + move (absPos.x(), absPos.y() );
3.368 + requestReposition();
3.369 +}
3.370 +
3.371 +void BranchObj::setVisibility(bool v)
3.372 +{
3.373 + setVisibility (v,MAX_DEPTH);
3.374 +}
3.375 +
3.376 +
3.377 +void BranchObj::setLinkColor ()
3.378 +{
3.379 + // Overloaded from LinkableMapObj
3.380 + // BranchObj can use color of heading
3.381 +
3.382 + if (mapEditor->getLinkColorHint()==HeadingColor)
3.383 + LinkableMapObj::setLinkColor (heading->getColor() );
3.384 + else
3.385 + LinkableMapObj::setLinkColor ();
3.386 +}
3.387 +
3.388 +void BranchObj::setColor (QColor col, bool colorChilds)
3.389 +{
3.390 + heading->setColor(col);
3.391 + setLinkColor();
3.392 + if (colorChilds)
3.393 + {
3.394 + BranchObj *bo;
3.395 + for (bo=branch.first(); bo; bo=branch.next() )
3.396 + bo->setColor(col,colorChilds);
3.397 + }
3.398 +}
3.399 +
3.400 +
3.401 +BranchObj* BranchObj::first()
3.402 +{
3.403 + itLast=NULL;
3.404 + return this;
3.405 +}
3.406 +
3.407 +BranchObj* BranchObj::next()
3.408 +{
3.409 + BranchObj *lmo;
3.410 + BranchObj *bo=branch.first();
3.411 + BranchObj *po=(BranchObj*)(parObj);
3.412 +
3.413 + if (!itLast)
3.414 + { // We are just beginning at the mapCenter
3.415 + if (bo)
3.416 + {
3.417 + itLast=this;
3.418 + return bo;
3.419 + }
3.420 + else
3.421 + {
3.422 + itLast=NULL;
3.423 + return NULL;
3.424 + }
3.425 + }
3.426 +
3.427 + if (itLast==parObj)
3.428 + { // We come from above
3.429 + if (bo)
3.430 + {
3.431 + // there are childs, go there
3.432 + itLast=this;
3.433 + return bo;
3.434 + }
3.435 + else
3.436 + { // no childs, try to go up again
3.437 + if (po)
3.438 + {
3.439 + // go up
3.440 + itLast=this;
3.441 + lmo=po->next();
3.442 + itLast=this;
3.443 + return lmo;
3.444 +
3.445 + }
3.446 + else
3.447 + {
3.448 + // can't go up, I am mapCenter
3.449 + itLast=NULL;
3.450 + return NULL;
3.451 + }
3.452 + }
3.453 + }
3.454 +
3.455 + // Try to find last child, we came from, in my own childs
3.456 + bool searching=true;
3.457 + while (bo && searching)
3.458 + {
3.459 + if (itLast==bo) searching=false;
3.460 + bo=branch.next();
3.461 + }
3.462 + if (!searching)
3.463 + { // found lastLMO in my childs
3.464 + if (bo)
3.465 + {
3.466 + // found a brother of lastLMO
3.467 + itLast=this;
3.468 + return bo;
3.469 + }
3.470 + else
3.471 + {
3.472 + if (po)
3.473 + {
3.474 + // go up
3.475 + itLast=this;
3.476 + lmo=po->next();
3.477 + itLast=this;
3.478 + return lmo;
3.479 + }
3.480 + else
3.481 + {
3.482 + // can't go up, I am mapCenter
3.483 + itLast=NULL;
3.484 + return NULL;
3.485 + }
3.486 + }
3.487 + }
3.488 +
3.489 + // couldn't find last child, it must be a nephew of mine
3.490 + bo=branch.first();
3.491 + if (bo)
3.492 + {
3.493 + // proceed with my first child
3.494 + itLast=this;
3.495 + return bo;
3.496 + }
3.497 + else
3.498 + {
3.499 + // or go back to my parents
3.500 + if (po)
3.501 + {
3.502 + // go up
3.503 + itLast=this;
3.504 + lmo=po->next();
3.505 + itLast=this;
3.506 + return lmo;
3.507 + }
3.508 + else
3.509 + {
3.510 + // can't go up, I am mapCenter
3.511 + itLast=NULL;
3.512 + return NULL;
3.513 + }
3.514 + }
3.515 +}
3.516 +
3.517 +BranchObj* BranchObj::getLastIterator()
3.518 +{
3.519 + return itLast;
3.520 +}
3.521 +
3.522 +void BranchObj::setLastIterator(BranchObj* it)
3.523 +{
3.524 + itLast=it;
3.525 +}
3.526 +
3.527 +
3.528 +void BranchObj::move (double x, double y)
3.529 +{
3.530 + OrnamentedObj::move (x,y);
3.531 + positionBBox();
3.532 +}
3.533 +
3.534 +void BranchObj::move (QPoint p)
3.535 +{
3.536 + move (p.x(), p.y());
3.537 +}
3.538 +
3.539 +void BranchObj::moveBy (double x, double y)
3.540 +{
3.541 + OrnamentedObj::moveBy (x,y);
3.542 + positionBBox();
3.543 + BranchObj* b;
3.544 + for (b=branch.first(); b;b=branch.next() )
3.545 + b->moveBy (x,y);
3.546 +}
3.547 +
3.548 +void BranchObj::moveBy (QPoint p)
3.549 +{
3.550 + moveBy (p.x(), p.y());
3.551 +}
3.552 +
3.553 +
3.554 +void BranchObj::positionBBox()
3.555 +{
3.556 +
3.557 + heading->positionBBox();
3.558 + systemFlags->positionBBox();
3.559 + standardFlags->positionBBox();
3.560 + // It seems that setting x,y also affects width,height
3.561 + int w_old=bbox.width();
3.562 + int h_old=bbox.height();
3.563 + bbox.setX (absPos.x() );
3.564 + bbox.setY (absPos.y() );
3.565 + bbox.setWidth(w_old);
3.566 + bbox.setHeight(h_old);
3.567 +
3.568 +
3.569 + setSelBox();
3.570 +
3.571 + // set the frame
3.572 + frame->setRect(QRect(bbox.x(),bbox.y(),bbox.width(),bbox.height() ) );
3.573 +}
3.574 +
3.575 +void BranchObj::calcBBoxSize()
3.576 +{
3.577 + QSize heading_r=heading->getSize();
3.578 + int heading_w=static_cast <int> (heading_r.width() );
3.579 + int heading_h=static_cast <int> (heading_r.height() );
3.580 + QSize sysflags_r=systemFlags->getSize();
3.581 + int sysflags_h=sysflags_r.height();
3.582 + int sysflags_w=sysflags_r.width();
3.583 + QSize stanflags_r=standardFlags->getSize();
3.584 + int stanflags_h=stanflags_r.height();
3.585 + int stanflags_w=stanflags_r.width();
3.586 + int w;
3.587 + int h;
3.588 +
3.589 + // set width to sum of all widths
3.590 + w=heading_w + sysflags_w + stanflags_w;
3.591 + // set height to maximum needed height
3.592 + h=max (sysflags_h,stanflags_h);
3.593 + h=max (h,heading_h);
3.594 +
3.595 + w+=frame->getBorder();
3.596 + h+=frame->getBorder();
3.597 + bbox.setSize (QSize (w,h));
3.598 +}
3.599 +
3.600 +LinkableMapObj* BranchObj::findMapObj(QPoint p, LinkableMapObj* excludeLMO)
3.601 +{
3.602 + // Search branches
3.603 + BranchObj *b;
3.604 + LinkableMapObj *lmo;
3.605 + for (b=branch.first(); b; b=branch.next() )
3.606 + {
3.607 + lmo=b->findMapObj(p, excludeLMO);
3.608 + if (lmo != NULL) return lmo;
3.609 + }
3.610 +
3.611 + // Search myself
3.612 + if (inBBox (p) && (this != excludeLMO) && isVisibleObj() )
3.613 + return this;
3.614 +
3.615 + // Search float images
3.616 + FloatImageObj *foi;
3.617 + for (foi=floatimage.first(); foi; foi=floatimage.next() )
3.618 + if (foi->inBBox(p) && (foi != excludeLMO) && foi->getParObj()!= excludeLMO) return foi;
3.619 +
3.620 + return NULL;
3.621 +}
3.622 +
3.623 +void BranchObj::setHeading(QString s)
3.624 +{
3.625 + // Adjusting font size
3.626 + QFont font=heading->getFont();
3.627 + if (depth==0)
3.628 + font.setPointSize(16);
3.629 + else
3.630 + if (depth>1)
3.631 + font.setPointSize(10);
3.632 + else
3.633 + font.setPointSize(12);
3.634 + heading->setFont(font);
3.635 + heading->setText(s); // set new heading
3.636 + calcBBoxSize(); // recalculate bbox
3.637 + positionBBox(); // rearrange contents
3.638 + requestReposition();
3.639 +}
3.640 +
3.641 +void BranchObj::setURL(QString s)
3.642 +{
3.643 + url=s;
3.644 + if (!url.isEmpty())
3.645 + systemFlags->activate("url");
3.646 + else
3.647 + systemFlags->deactivate("url");
3.648 + calcBBoxSize(); // recalculate bbox
3.649 + positionBBox(); // rearrange contents
3.650 + forceReposition();
3.651 +}
3.652 +
3.653 +QString BranchObj::getURL()
3.654 +{
3.655 + return url;
3.656 +}
3.657 +
3.658 +void BranchObj::setVymLink(QString s)
3.659 +{
3.660 + if (!s.isEmpty())
3.661 + {
3.662 + // We need the relative (from loading)
3.663 + // or absolute path (from User event)
3.664 + // and build the absolute path.
3.665 + // Note: If we have relative, use path of
3.666 + // current map to build absolute path
3.667 + QDir d(s);
3.668 + if (!d.path().startsWith ("/"))
3.669 + {
3.670 + QString p=mapEditor->getDestPath();
3.671 + int i=p.findRev("/",-1);
3.672 + d.setPath(p.left(i)+"/"+s);
3.673 + d.convertToAbs();
3.674 + }
3.675 + vymLink=d.path();
3.676 + systemFlags->activate("vymLink");
3.677 + }
3.678 + else
3.679 + {
3.680 + systemFlags->deactivate("vymLink");
3.681 + vymLink="";
3.682 + }
3.683 + calcBBoxSize(); // recalculate bbox
3.684 + positionBBox(); // rearrange contents
3.685 + forceReposition();
3.686 +}
3.687 +
3.688 +QString BranchObj::getVymLink()
3.689 +{
3.690 + return vymLink;
3.691 +}
3.692 +
3.693 +QString BranchObj::saveToDir (const QString &tmpdir,const QString &prefix, const QPoint& offset)
3.694 +{
3.695 + QString s,a;
3.696 + QString scrolledAttr;
3.697 + if (scrolled)
3.698 + scrolledAttr=attribut ("scrolled","yes");
3.699 + else
3.700 + scrolledAttr="";
3.701 +
3.702 + QString posAttr;
3.703 + if (depth<2) posAttr=
3.704 + attribut("absPosX",QString().setNum(absPos.x(),10)) +
3.705 + attribut("absPosY",QString().setNum(absPos.y(),10));
3.706 + else
3.707 + posAttr="";
3.708 +
3.709 + QString urlAttr;
3.710 + if (!url.isEmpty())
3.711 + urlAttr=attribut ("url",url);
3.712 +
3.713 + QString vymLinkAttr;
3.714 + if (!vymLink.isEmpty())
3.715 + vymLinkAttr=attribut ("vymLink",convertToRel(mapEditor->getDestPath(),vymLink) );
3.716 +
3.717 + QString frameAttr;
3.718 + if (frame->getFrameType()!=NoFrame)
3.719 + frameAttr=attribut ("frameType",frame->getFrameTypeName());
3.720 + else
3.721 + frameAttr="";
3.722 +
3.723 + // save area, if not scrolled
3.724 + QString areaAttr;
3.725 + if (!((BranchObj*)(parObj))->isScrolled() )
3.726 + {
3.727 + areaAttr=
3.728 + attribut("x1",QString().setNum(absPos.x()-offset.x(),10)) +
3.729 + attribut("y1",QString().setNum(absPos.y()-offset.y(),10)) +
3.730 + attribut("x2",QString().setNum(absPos.x()+width()-offset.x(),10)) +
3.731 + attribut("y2",QString().setNum(absPos.y()+height()-offset.y(),10));
3.732 +
3.733 + } else
3.734 + areaAttr="";
3.735 +
3.736 + s=beginElement ("branch" +scrolledAttr +posAttr +urlAttr +vymLinkAttr +frameAttr +areaAttr);
3.737 + incIndent();
3.738 +
3.739 + // save heading
3.740 + s=s+valueElement("heading", getHeading(),
3.741 + attribut ("textColor",QColor(heading->getColor()).name()));
3.742 +
3.743 + // save names of flags set
3.744 + s+=standardFlags->saveToDir(tmpdir,prefix,0);
3.745 +
3.746 + // save note
3.747 + if (!note.isEmpty() )
3.748 + s+=note.saveToDir();
3.749 +
3.750 + // Save branches
3.751 + BranchObj *bo;
3.752 + for (bo=branch.first(); bo; bo=branch.next() )
3.753 + s+=bo->saveToDir(tmpdir,prefix,offset);
3.754 + decIndent();
3.755 +
3.756 + // Save FloatImages
3.757 + FloatImageObj *fio;
3.758 + for (fio=floatimage.first(); fio; fio=floatimage.next() )
3.759 + s+=fio->saveToDir (tmpdir,prefix);
3.760 +
3.761 + s+=endElement ("branch");
3.762 + return s;
3.763 +}
3.764 +
3.765 +LinkableMapObj* BranchObj::addFloatImage ()
3.766 +{
3.767 + FloatImageObj *newfi=new FloatImageObj (canvas,this);
3.768 + floatimage.append (newfi);
3.769 + if (hasScrolledParent(this) )
3.770 + newfi->setVisibility (false);
3.771 + else
3.772 + newfi->setVisibility(visible);
3.773 + requestReposition();
3.774 + return newfi;
3.775 +}
3.776 +
3.777 +LinkableMapObj* BranchObj::addFloatImage (FloatImageObj *fio)
3.778 +{
3.779 + FloatImageObj *newfi=new FloatImageObj (canvas,this);
3.780 + floatimage.append (newfi);
3.781 + newfi->copy (fio);
3.782 + if (hasScrolledParent(this) )
3.783 + newfi->setVisibility (false);
3.784 + else
3.785 + newfi->setVisibility(visible);
3.786 + requestReposition();
3.787 + return newfi;
3.788 +}
3.789 +
3.790 +FloatImageObj* BranchObj::getFirstFloatImage ()
3.791 +{
3.792 + return floatimage.first();
3.793 +}
3.794 +
3.795 +FloatImageObj* BranchObj::getLastFloatImage ()
3.796 +{
3.797 + return floatimage.last();
3.798 +}
3.799 +
3.800 +FloatImageObj* BranchObj::getFloatImageNum (const uint &i)
3.801 +{
3.802 + return floatimage.at(i);
3.803 +}
3.804 +
3.805 +void BranchObj::removeFloatImage (FloatImageObj *fio)
3.806 +{
3.807 + floatimage.remove (fio);
3.808 + requestReposition();
3.809 +}
3.810 +
3.811 +void BranchObj::savePosInAngle ()
3.812 +{
3.813 + // Save position in angle
3.814 + BranchObj *b;
3.815 + int i=0;
3.816 + for (b=branch.first(); b; b=branch.next() )
3.817 + {
3.818 + b->angle=i;
3.819 + i++;
3.820 + }
3.821 +}
3.822 +
3.823 +BranchObj* BranchObj::addBranch()
3.824 +{
3.825 + BranchObj* newbo=new BranchObj(canvas,this);
3.826 + branch.append (newbo);
3.827 + newbo->setParObj(this);
3.828 + newbo->setColor(getColor(),false);
3.829 + newbo->setLinkColor();
3.830 + newbo->setHeading ("new");
3.831 + newbo->setLinkStyle (newbo->getDefLinkStyle());
3.832 + if (scrolled)
3.833 + newbo->setVisibility (false);
3.834 + else
3.835 + newbo->setVisibility(visible);
3.836 + requestReposition();
3.837 + return newbo;
3.838 +}
3.839 +
3.840 +BranchObj* BranchObj::addBranch(BranchObj* bo)
3.841 +{
3.842 + BranchObj* newbo=new BranchObj(canvas,this);
3.843 + branch.append (newbo);
3.844 + newbo->copy(bo);
3.845 + newbo->setParObj(this);
3.846 + newbo->setHeading (newbo->getHeading()); // adjust fontsize to depth
3.847 + newbo->setLinkStyle (newbo->getDefLinkStyle());
3.848 + if (scrolled)
3.849 + newbo->setVisibility (false);
3.850 + else
3.851 + newbo->setVisibility(bo->visible);
3.852 + requestReposition();
3.853 + return newbo;
3.854 +}
3.855 +
3.856 +BranchObj* BranchObj::insertBranch(int pos)
3.857 +{
3.858 + savePosInAngle();
3.859 + // Add new bo and resort branches
3.860 + BranchObj *newbo=addBranch ();
3.861 + newbo->angle=pos-0.5;
3.862 + branch.sort();
3.863 + return newbo;
3.864 +}
3.865 +
3.866 +BranchObj* BranchObj::insertBranch(BranchObj* bo, int pos)
3.867 +{
3.868 + savePosInAngle();
3.869 + // Add new bo and resort branches
3.870 + bo->angle=pos-0.5;
3.871 + BranchObj *newbo=addBranch (bo);
3.872 + branch.sort();
3.873 + return newbo;
3.874 +}
3.875 +
3.876 +void BranchObj::removeBranch(BranchObj* bo)
3.877 +{
3.878 + // if bo is not in branch remove returns false, we
3.879 + // don't care...
3.880 + branch.remove (bo);
3.881 + requestReposition();
3.882 +}
3.883 +
3.884 +void BranchObj::setLastSelectedBranch (BranchObj* bo)
3.885 +{
3.886 + lastSelectedBranch=branch.find(bo);
3.887 +}
3.888 +
3.889 +BranchObj* BranchObj::getLastSelectedBranch ()
3.890 +{
3.891 + if (lastSelectedBranch>=0)
3.892 + {
3.893 + BranchObj* bo=branch.at(lastSelectedBranch);
3.894 + if (bo) return bo;
3.895 + }
3.896 + return branch.first();
3.897 +}
3.898 +
3.899 +BranchObj* BranchObj::getFirstBranch ()
3.900 +{
3.901 + return branch.first();
3.902 +}
3.903 +
3.904 +BranchObj* BranchObj::getLastBranch ()
3.905 +{
3.906 + return branch.last();
3.907 +}
3.908 +
3.909 +BranchObj* BranchObj::getBranchNum (const uint &i)
3.910 +{
3.911 + return branch.at(i);
3.912 +}
3.913 +
3.914 +
3.915 +BranchObj* BranchObj::moveBranchUp(BranchObj* bo1) // move a branch up (modify myself)
3.916 +{
3.917 + savePosInAngle();
3.918 + int i=branch.find(bo1);
3.919 + if (i>0)
3.920 + { // -1 if bo1 not found
3.921 + branch.at(i)->angle--;
3.922 + branch.at(i-1)->angle++;
3.923 + branch.sort();
3.924 + return branch.at(i-1);
3.925 + } else
3.926 + return branch.at(i);
3.927 +}
3.928 +
3.929 +BranchObj* BranchObj::moveBranchDown(BranchObj* bo1)
3.930 +{
3.931 + savePosInAngle();
3.932 + int i=branch.find(bo1);
3.933 + int j;
3.934 + if (branch.next())
3.935 + {
3.936 + j = branch.at();
3.937 + branch.at(i)->angle++;
3.938 + branch.at(j)->angle--;
3.939 + branch.sort();
3.940 + return branch.at(j);
3.941 + } else
3.942 + return branch.at(i);
3.943 +}
3.944 +
3.945 +void BranchObj::alignRelativeTo (QPoint ref)
3.946 +{
3.947 +/* FIXME testing
3.948 + if (!getHeading().isEmpty())
3.949 + cout << "BO::alignRelTo "<<getHeading()<<endl;
3.950 + else
3.951 + cout << "BO::alignRelTo ???"<<endl;
3.952 + cout << " d="<<depth<<endl;
3.953 +*/
3.954 + int th = bboxTotal.height();
3.955 +
3.956 + // If I am the mapcenter or a mainbranch, reposition heading
3.957 + if (depth<2)
3.958 + {
3.959 + move (absPos.x(),absPos.y());
3.960 + if (depth==1)
3.961 + {
3.962 + // Calc angle to mapCenter if I am a mainbranch
3.963 + // needed for reordering the mainbranches clockwise
3.964 + // around mapcenter
3.965 + angle=getAngle (QPoint ((int)(x() - parObj->getChildPos().x() ),
3.966 + (int)(y() - parObj->getChildPos().y() ) ) );
3.967 + }
3.968 + }
3.969 + else
3.970 + {
3.971 + // Align myself depending on orientation and parent, but
3.972 + // only if I am not the mainbranch or mapcenter itself
3.973 + switch (orientation)
3.974 + {
3.975 + case OrientLeftOfCenter:
3.976 + move (ref.x()-bbox.width(), ref.y() + (th-bbox.height())/2 );
3.977 + break;
3.978 + case OrientRightOfCenter:
3.979 + move (ref.x(), ref.y() + (th-bbox.height())/2 );
3.980 + break;
3.981 + default:
3.982 + cout <<"LMO::alignRelativeTo: oops, no orientation given...\n";
3.983 + break;
3.984 + }
3.985 + }
3.986 +
3.987 + FloatImageObj *fio;
3.988 + for (fio=floatimage.first(); fio; fio=floatimage.next() )
3.989 + fio->reposition();
3.990 +
3.991 + if (scrolled) return;
3.992 +
3.993 + // Set reference point for alignment of childs
3.994 + QPoint ref2;
3.995 + if (orientation==OrientLeftOfCenter)
3.996 + ref2.setX(childPos.x() - linkwidth);
3.997 + else
3.998 + ref2.setX(childPos.x() + linkwidth);
3.999 +
3.1000 + if (depth==1)
3.1001 + ref2.setY(absPos.y()-(bboxTotal.height()-bbox.height())/2);
3.1002 + else
3.1003 + ref2.setY(ref.y() );
3.1004 +
3.1005 + // Align the childs depending on reference point
3.1006 + BranchObj *b;
3.1007 + for (b=branch.first(); b; b=branch.next() )
3.1008 + {
3.1009 + b->alignRelativeTo (ref2);
3.1010 + ref2.setY(ref2.y() + b->getBBoxSizeWithChilds().height() );
3.1011 + }
3.1012 +}
3.1013 +
3.1014 +
3.1015 +void BranchObj::reposition()
3.1016 +{
3.1017 +/* FIXME testing
3.1018 + if (!getHeading().isEmpty())
3.1019 + cout << "BO::reposition "<<getHeading()<<endl;
3.1020 + else
3.1021 + cout << "BO::reposition ???"<<endl;
3.1022 +*/
3.1023 + if (depth==0)
3.1024 + {
3.1025 + // only calculate the sizes once. If the deepest LMO
3.1026 + // changes its height,
3.1027 + // all upper LMOs have to change, too.
3.1028 + calcBBoxSizeWithChilds();
3.1029 + alignRelativeTo ( QPoint (absPos.x(),
3.1030 + absPos.y()-(bboxTotal.height()-bbox.height())/2) );
3.1031 + branch.sort();
3.1032 + } else
3.1033 + {
3.1034 + // This is only important for moving branches:
3.1035 + // For editing a branch it isn't called...
3.1036 + alignRelativeTo ( QPoint (absPos.x(),
3.1037 + absPos.y()-(bboxTotal.height()-bbox.height())/2) );
3.1038 + }
3.1039 +}
3.1040 +
3.1041 +
3.1042 +QRect BranchObj::getTotalBBox()
3.1043 +{
3.1044 + QRect r=bbox;
3.1045 +
3.1046 + if (scrolled) return r;
3.1047 +
3.1048 + BranchObj* b;
3.1049 + for (b=branch.first();b ;b=branch.next() )
3.1050 + r=addBBox(b->getTotalBBox(),r);
3.1051 +
3.1052 + FloatImageObj* fio;
3.1053 + for (fio=floatimage.first();fio ;fio=floatimage.next() )
3.1054 + r=addBBox(fio->getTotalBBox(),r);
3.1055 +
3.1056 + return r;
3.1057 +}
3.1058 +
3.1059 +QRect BranchObj::getBBoxSizeWithChilds()
3.1060 +{
3.1061 + return bboxTotal;
3.1062 +}
3.1063 +
3.1064 +void BranchObj::calcBBoxSizeWithChilds()
3.1065 +{
3.1066 + // This is called only from reposition and
3.1067 + // and only for mapcenter. So it won't be
3.1068 + // called more than once for a single user
3.1069 + // action
3.1070 +
3.1071 + // Calculate size of LMO including all childs (to align them later)
3.1072 +
3.1073 + bboxTotal.setX(bbox.x() );
3.1074 + bboxTotal.setY(bbox.y() );
3.1075 +
3.1076 + // if branch is scrolled, ignore childs, but still consider floatimages
3.1077 + if (scrolled)
3.1078 + {
3.1079 + bboxTotal.setWidth (bbox.width());
3.1080 + bboxTotal.setHeight(bbox.height());
3.1081 + return;
3.1082 + }
3.1083 +
3.1084 + QRect r(0,0,0,0);
3.1085 + QRect br;
3.1086 + // Now calculate recursivly
3.1087 + // sum of heights
3.1088 + // maximum of widths
3.1089 + // minimum of y
3.1090 + BranchObj* b;
3.1091 + for (b=branch.first();b ;b=branch.next() )
3.1092 + {
3.1093 + b->calcBBoxSizeWithChilds();
3.1094 + br=b->getBBoxSizeWithChilds();
3.1095 + r.setWidth( max (br.width(), r.width() ));
3.1096 + r.setHeight(br.height() + r.height() );
3.1097 + if (br.y()<bboxTotal.y()) bboxTotal.setY(br.y());
3.1098 + }
3.1099 + // Add myself and also
3.1100 + // add width of link to sum if necessary
3.1101 + if (branch.isEmpty())
3.1102 + bboxTotal.setWidth (bbox.width() + r.width() );
3.1103 + else
3.1104 + bboxTotal.setWidth (bbox.width() + r.width() + linkwidth);
3.1105 + bboxTotal.setHeight(max (r.height(), bbox.height() ) );
3.1106 +// frame->setRect(QRect(bbox.x(),bbox.y(),bbox.width(),bbox.height() ) );
3.1107 +}
3.1108 +
3.1109 +void BranchObj::select()
3.1110 +{
3.1111 + LinkableMapObj::select();
3.1112 + // Tell parent that I am selected now:
3.1113 + BranchObj* po=(BranchObj*)(parObj);
3.1114 + if (po) // TODO Try to get rid of this cast...
3.1115 + po->setLastSelectedBranch(this);
3.1116 +
3.1117 + // temporary unscroll, if we have scrolled parents somewhere
3.1118 + if (parObj) ((BranchObj*)(parObj))->tmpUnscroll();
3.1119 +
3.1120 + // set Text in Editor
3.1121 + textEditor->setText(note.getNote() );
3.1122 + textEditor->setFilename(note.getFilenameHint() );
3.1123 + textEditor->setFontHint (note.getFontHint() );
3.1124 + connect (textEditor, SIGNAL (textHasChanged() ), this, SLOT (updateNoteFlag() ) );
3.1125 + connect (textEditor, SIGNAL (fontSizeHasChanged() ), this, SLOT (updateNoteFlag() ) );
3.1126 +
3.1127 + // Show URL and link in statusbar
3.1128 + QString status;
3.1129 + if (!url.isEmpty()) status+="URL: "+url+" ";
3.1130 + if (!vymLink.isEmpty()) status+="Link: "+vymLink;
3.1131 + if (!status.isEmpty()) mainWindow->statusMessage (status);
3.1132 +
3.1133 + // Update Toolbar
3.1134 + standardFlags->updateToolBar();
3.1135 +
3.1136 + // Update Browserbutton
3.1137 + if (!url.isEmpty())
3.1138 + actionEditOpenURL->setEnabled (true);
3.1139 + else
3.1140 + actionEditOpenURL->setEnabled (false);
3.1141 +
3.1142 + // Update actions in mapeditor
3.1143 + mapEditor->updateActions();
3.1144 +}
3.1145 +
3.1146 +void BranchObj::unselect()
3.1147 +{
3.1148 + LinkableMapObj::unselect();
3.1149 + // Delete any messages like vymLink in StatusBar
3.1150 + mainWindow->statusMessage ("");
3.1151 +
3.1152 + // save note from editor and set flag
3.1153 + // text is done by updateNoteFlag(), just save
3.1154 + // filename here
3.1155 + note.setFilenameHint (textEditor->getFilename());
3.1156 +
3.1157 + // reset temporary unscroll, if we have scrolled parents somewhere
3.1158 + if (parObj) ((BranchObj*)(parObj))->resetTmpUnscroll();
3.1159 +
3.1160 + // Disconnect textEditor from this LMO
3.1161 + disconnect( textEditor, SIGNAL(textHasChanged()), 0, 0 );
3.1162 + disconnect( textEditor, SIGNAL (fontSizeHasChanged()),0,0 );
3.1163 +
3.1164 + // Erase content of editor
3.1165 + textEditor->setInactive();
3.1166 +
3.1167 + // unselect all buttons in toolbar
3.1168 + standardFlagsDefault->updateToolBar();
3.1169 +}
3.1170 +
3.1171 +QString BranchObj::getSelectString()
3.1172 +{
3.1173 + QString s;
3.1174 + if (parObj)
3.1175 + {
3.1176 + if (parObj->getDepth()==0)
3.1177 + s= "bo:" + QString("%1").arg(getNum());
3.1178 + else
3.1179 + s= ((BranchObj*)(parObj))->getSelectString() + ",bo:" + QString("%1").arg(getNum());
3.1180 + } else
3.1181 + {
3.1182 + s="mc:";
3.1183 + }
3.1184 +
3.1185 + return s;
3.1186 +}
3.1187 +
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/branchobj.h Sun Jan 30 12:59:10 2005 +0000
4.3 @@ -0,0 +1,113 @@
4.4 +#ifndef BRANCHOBJ_H
4.5 +#define BRANCHOBJ_H
4.6 +
4.7 +#include "floatimageobj.h"
4.8 +#include "linkablemapobj.h"
4.9 +#include "ornamentedobj.h"
4.10 +
4.11 +class BranchObjPtrList : public QPtrList<BranchObj>
4.12 +{
4.13 + virtual int compareItems (QPtrCollection::Item i, QPtrCollection::Item j);
4.14 +};
4.15 +
4.16 +/////////////////////////////////////////////////////////////////////////////
4.17 +class BranchObj:public OrnamentedObj {
4.18 +public:
4.19 + BranchObj ();
4.20 + BranchObj (QCanvas*);
4.21 + BranchObj (QCanvas*, LinkableMapObj* parent);
4.22 + ~BranchObj ();
4.23 + bool operator< ( const BranchObj & );
4.24 + bool operator== ( const BranchObj & );
4.25 + virtual void init ();
4.26 + virtual void copy (BranchObj*);
4.27 + void clear();
4.28 + virtual int getNum(); // return number of this in parent
4.29 + virtual int getNum(BranchObj*); // return number of this in parent
4.30 + virtual int getFloatImageNum(FloatImageObj*);
4.31 + virtual int countBranches();
4.32 + virtual int countFloatImages();
4.33 + virtual void setParObjTmp (LinkableMapObj*,QPoint,int);// Only for moving Obj around
4.34 + virtual void unsetParObjTmp(); // reuse original ParObj
4.35 +
4.36 + virtual void unScroll();
4.37 + virtual void toggleScroll(); // scroll or unscroll
4.38 + virtual bool isScrolled(); // returns scroll state
4.39 + virtual bool hasScrolledParent(BranchObj*); // true, if any of the parents is scrolled
4.40 + virtual void tmpUnscroll(); // unscroll scrolled parents temporary e.g. during "find" process
4.41 + virtual void resetTmpUnscroll(); // scroll all tmp scrolled parents again e.g. when unselecting
4.42 +
4.43 + virtual void setVisibility(bool,int); // set visibility
4.44 + virtual void setVisibility(bool); // set vis. for w
4.45 + virtual void setLinkColor(); // set the color of link
4.46 + virtual void setColor(QColor,bool); // set the color of heading
4.47 +
4.48 +
4.49 + BranchObj* first (); // set Iterator to first LMO
4.50 + BranchObj* next (); // find next LMO after given one
4.51 + BranchObj* getLastIterator(); // to interrupt and resume next iteration
4.52 + void setLastIterator (BranchObj*); // needed by next()
4.53 +
4.54 + virtual void move (double x,double y);
4.55 + virtual void move (QPoint);
4.56 + virtual void moveBy (double x,double y);
4.57 + virtual void moveBy (QPoint);
4.58 + virtual void positionBBox();
4.59 + virtual void calcBBoxSize();
4.60 + virtual LinkableMapObj* findMapObj(QPoint,LinkableMapObj*); // find MapObj
4.61 + virtual void setHeading (QString);
4.62 + virtual void setURL (QString);
4.63 + virtual QString getURL ();
4.64 + virtual void setVymLink (QString);
4.65 + virtual QString getVymLink ();
4.66 + virtual QString saveToDir (const QString&,const QString&, const QPoint&);// Save data recursivly to tempdir
4.67 + virtual LinkableMapObj* addFloatImage();
4.68 + virtual LinkableMapObj* addFloatImage(FloatImageObj*);
4.69 + virtual void removeFloatImage(FloatImageObj*);
4.70 + virtual FloatImageObj* getFirstFloatImage();
4.71 + virtual FloatImageObj* getLastFloatImage();
4.72 + virtual FloatImageObj* getFloatImageNum(const uint &);
4.73 +protected:
4.74 + virtual void savePosInAngle(); // write pos in angle for resorting
4.75 +public:
4.76 + virtual BranchObj* addBranch();
4.77 + virtual BranchObj* addBranch(BranchObj*); // makes deep copy of BranchObj
4.78 + virtual BranchObj* insertBranch(int);
4.79 + virtual BranchObj* insertBranch(BranchObj*,int);
4.80 + virtual void removeBranch(BranchObj*);
4.81 + virtual void setLastSelectedBranch(BranchObj*);
4.82 + virtual BranchObj* getLastSelectedBranch();
4.83 + virtual BranchObj* getFirstBranch();
4.84 + virtual BranchObj* getLastBranch();
4.85 + virtual BranchObj* getBranchNum(const uint &);
4.86 + virtual BranchObj* moveBranchUp(BranchObj*);
4.87 + virtual BranchObj* moveBranchDown(BranchObj*);
4.88 +
4.89 + virtual void alignRelativeTo(const QPoint );
4.90 + virtual void reposition();
4.91 +
4.92 + virtual QRect getTotalBBox(); // return BBox including childs
4.93 + virtual QRect getBBoxSizeWithChilds(); // return size of BBox including childs
4.94 + virtual void calcBBoxSizeWithChilds(); // calc size of BBox including childs recursivly
4.95 +
4.96 + virtual void select();
4.97 + virtual void unselect();
4.98 + virtual QString getSelectString();
4.99 +
4.100 +protected:
4.101 + static BranchObj* itLast; // iterator for first(), next()
4.102 + BranchObjPtrList branch; // all child branches
4.103 + QPtrList<FloatImageObj> floatimage; // child images
4.104 +public:
4.105 + float angle; // used in mainbranch to reorder mainbranches
4.106 +protected:
4.107 + int lastSelectedBranch; // for going deeper into tree
4.108 + bool scrolled; // true if all childs are scrolled and thus invisible
4.109 + bool tmpUnscrolled; // can only be true (temporary) for a scrolled subtree
4.110 + QString url; // url to external doc
4.111 + QString vymLink; // path to another map
4.112 +};
4.113 +
4.114 +
4.115 +#endif
4.116 +
5.1 Binary file demos/liveform.vym has changed
6.1 Binary file demos/math.vym has changed
7.1 Binary file demos/time-management.vym has changed
8.1 Binary file demos/todo.vym has changed
9.1 Binary file doc/vym.pdf has changed
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/exporthtmldialog.ui Sun Jan 30 12:59:10 2005 +0000
10.3 @@ -0,0 +1,321 @@
10.4 +<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
10.5 +<class>ExportHTMLDialog</class>
10.6 +<author>Uwe Drechsel</author>
10.7 +<widget class="QDialog">
10.8 + <property name="name">
10.9 + <cstring>ExportHTMLDialog</cstring>
10.10 + </property>
10.11 + <property name="geometry">
10.12 + <rect>
10.13 + <x>0</x>
10.14 + <y>0</y>
10.15 + <width>364</width>
10.16 + <height>346</height>
10.17 + </rect>
10.18 + </property>
10.19 + <property name="caption">
10.20 + <string>Export HTML</string>
10.21 + </property>
10.22 + <property name="modal">
10.23 + <bool>false</bool>
10.24 + </property>
10.25 + <vbox>
10.26 + <property name="name">
10.27 + <cstring>unnamed</cstring>
10.28 + </property>
10.29 + <widget class="QLayoutWidget">
10.30 + <property name="name">
10.31 + <cstring>layout33</cstring>
10.32 + </property>
10.33 + <hbox>
10.34 + <property name="name">
10.35 + <cstring>unnamed</cstring>
10.36 + </property>
10.37 + <widget class="QLabel">
10.38 + <property name="name">
10.39 + <cstring>textLabel1</cstring>
10.40 + </property>
10.41 + <property name="text">
10.42 + <string>Directory:</string>
10.43 + </property>
10.44 + </widget>
10.45 + <widget class="QLineEdit">
10.46 + <property name="name">
10.47 + <cstring>lineEdit1</cstring>
10.48 + </property>
10.49 + </widget>
10.50 + <widget class="QPushButton">
10.51 + <property name="name">
10.52 + <cstring>browseButton</cstring>
10.53 + </property>
10.54 + <property name="text">
10.55 + <string>Browse</string>
10.56 + </property>
10.57 + </widget>
10.58 + </hbox>
10.59 + </widget>
10.60 + <widget class="QButtonGroup">
10.61 + <property name="name">
10.62 + <cstring>buttonGroup2</cstring>
10.63 + </property>
10.64 + <property name="sizePolicy">
10.65 + <sizepolicy>
10.66 + <hsizetype>3</hsizetype>
10.67 + <vsizetype>5</vsizetype>
10.68 + <horstretch>0</horstretch>
10.69 + <verstretch>0</verstretch>
10.70 + </sizepolicy>
10.71 + </property>
10.72 + <property name="minimumSize">
10.73 + <size>
10.74 + <width>0</width>
10.75 + <height>230</height>
10.76 + </size>
10.77 + </property>
10.78 + <property name="title">
10.79 + <string>Options</string>
10.80 + </property>
10.81 + <vbox>
10.82 + <property name="name">
10.83 + <cstring>unnamed</cstring>
10.84 + </property>
10.85 + <widget class="QCheckBox">
10.86 + <property name="name">
10.87 + <cstring>checkBox4</cstring>
10.88 + </property>
10.89 + <property name="text">
10.90 + <string>Include image of map</string>
10.91 + </property>
10.92 + </widget>
10.93 + <widget class="QCheckBox">
10.94 + <property name="name">
10.95 + <cstring>checkBox5_2</cstring>
10.96 + </property>
10.97 + <property name="text">
10.98 + <string>create image only</string>
10.99 + </property>
10.100 + </widget>
10.101 + <widget class="QCheckBox">
10.102 + <property name="name">
10.103 + <cstring>checkBox5</cstring>
10.104 + </property>
10.105 + <property name="text">
10.106 + <string>use WIKI style</string>
10.107 + </property>
10.108 + </widget>
10.109 + <widget class="QCheckBox">
10.110 + <property name="name">
10.111 + <cstring>checkBox4_2</cstring>
10.112 + </property>
10.113 + <property name="text">
10.114 + <string>use heading for URLs (instead of link target)</string>
10.115 + </property>
10.116 + </widget>
10.117 + <widget class="QCheckBox">
10.118 + <property name="name">
10.119 + <cstring>checkBox6</cstring>
10.120 + </property>
10.121 + <property name="text">
10.122 + <string>use image of earth to mark URLs in text</string>
10.123 + </property>
10.124 + </widget>
10.125 + <widget class="QCheckBox">
10.126 + <property name="name">
10.127 + <cstring>checkBox7</cstring>
10.128 + </property>
10.129 + <property name="text">
10.130 + <string>use default CSS file</string>
10.131 + </property>
10.132 + </widget>
10.133 + <widget class="QCheckBox">
10.134 + <property name="name">
10.135 + <cstring>checkBox3</cstring>
10.136 + </property>
10.137 + <property name="sizePolicy">
10.138 + <sizepolicy>
10.139 + <hsizetype>1</hsizetype>
10.140 + <vsizetype>0</vsizetype>
10.141 + <horstretch>0</horstretch>
10.142 + <verstretch>0</verstretch>
10.143 + </sizepolicy>
10.144 + </property>
10.145 + <property name="text">
10.146 + <string>show output of external scripts</string>
10.147 + </property>
10.148 + </widget>
10.149 + </vbox>
10.150 + </widget>
10.151 + <spacer>
10.152 + <property name="name">
10.153 + <cstring>spacer6</cstring>
10.154 + </property>
10.155 + <property name="orientation">
10.156 + <enum>Vertical</enum>
10.157 + </property>
10.158 + <property name="sizeType">
10.159 + <enum>Expanding</enum>
10.160 + </property>
10.161 + <property name="sizeHint">
10.162 + <size>
10.163 + <width>21</width>
10.164 + <height>60</height>
10.165 + </size>
10.166 + </property>
10.167 + </spacer>
10.168 + <widget class="QLayoutWidget">
10.169 + <property name="name">
10.170 + <cstring>layout17</cstring>
10.171 + </property>
10.172 + <hbox>
10.173 + <property name="name">
10.174 + <cstring>unnamed</cstring>
10.175 + </property>
10.176 + <spacer>
10.177 + <property name="name">
10.178 + <cstring>spacer5</cstring>
10.179 + </property>
10.180 + <property name="orientation">
10.181 + <enum>Horizontal</enum>
10.182 + </property>
10.183 + <property name="sizeType">
10.184 + <enum>Expanding</enum>
10.185 + </property>
10.186 + <property name="sizeHint">
10.187 + <size>
10.188 + <width>61</width>
10.189 + <height>21</height>
10.190 + </size>
10.191 + </property>
10.192 + </spacer>
10.193 + <widget class="QPushButton">
10.194 + <property name="name">
10.195 + <cstring>pushButton4</cstring>
10.196 + </property>
10.197 + <property name="text">
10.198 + <string>Export</string>
10.199 + </property>
10.200 + <property name="default">
10.201 + <bool>true</bool>
10.202 + </property>
10.203 + </widget>
10.204 + <widget class="QPushButton">
10.205 + <property name="name">
10.206 + <cstring>pushButton5</cstring>
10.207 + </property>
10.208 + <property name="text">
10.209 + <string>Cancel</string>
10.210 + </property>
10.211 + </widget>
10.212 + </hbox>
10.213 + </widget>
10.214 + </vbox>
10.215 +</widget>
10.216 +<connections>
10.217 + <connection>
10.218 + <sender>pushButton5</sender>
10.219 + <signal>pressed()</signal>
10.220 + <receiver>ExportHTMLDialog</receiver>
10.221 + <slot>reject()</slot>
10.222 + </connection>
10.223 + <connection>
10.224 + <sender>pushButton4</sender>
10.225 + <signal>clicked()</signal>
10.226 + <receiver>ExportHTMLDialog</receiver>
10.227 + <slot>accept()</slot>
10.228 + </connection>
10.229 + <connection>
10.230 + <sender>browseButton</sender>
10.231 + <signal>pressed()</signal>
10.232 + <receiver>ExportHTMLDialog</receiver>
10.233 + <slot>browseDirectory()</slot>
10.234 + </connection>
10.235 + <connection>
10.236 + <sender>checkBox4</sender>
10.237 + <signal>toggled(bool)</signal>
10.238 + <receiver>ExportHTMLDialog</receiver>
10.239 + <slot>includeImage(bool)</slot>
10.240 + </connection>
10.241 + <connection>
10.242 + <sender>checkBox5</sender>
10.243 + <signal>toggled(bool)</signal>
10.244 + <receiver>ExportHTMLDialog</receiver>
10.245 + <slot>useWIKIpressed(bool)</slot>
10.246 + </connection>
10.247 + <connection>
10.248 + <sender>lineEdit1</sender>
10.249 + <signal>textChanged(const QString&)</signal>
10.250 + <receiver>ExportHTMLDialog</receiver>
10.251 + <slot>dirChanged()</slot>
10.252 + </connection>
10.253 + <connection>
10.254 + <sender>checkBox3</sender>
10.255 + <signal>toggled(bool)</signal>
10.256 + <receiver>ExportHTMLDialog</receiver>
10.257 + <slot>showOut(bool)</slot>
10.258 + </connection>
10.259 + <connection>
10.260 + <sender>checkBox4_2</sender>
10.261 + <signal>toggled(bool)</signal>
10.262 + <receiver>ExportHTMLDialog</receiver>
10.263 + <slot>useHeadingPressed(bool)</slot>
10.264 + </connection>
10.265 + <connection>
10.266 + <sender>checkBox5_2</sender>
10.267 + <signal>toggled(bool)</signal>
10.268 + <receiver>ExportHTMLDialog</receiver>
10.269 + <slot>imgOnly(bool)</slot>
10.270 + </connection>
10.271 + <connection>
10.272 + <sender>checkBox6</sender>
10.273 + <signal>toggled(bool)</signal>
10.274 + <receiver>ExportHTMLDialog</receiver>
10.275 + <slot>useURLImagePressed(bool)</slot>
10.276 + </connection>
10.277 +</connections>
10.278 +<includes>
10.279 + <include location="local" impldecl="in declaration">showtextdialog.h</include>
10.280 + <include location="global" impldecl="in declaration">qprocess.h</include>
10.281 + <include location="global" impldecl="in implementation">iostream</include>
10.282 + <include location="local" impldecl="in implementation">settings.h</include>
10.283 + <include location="global" impldecl="in implementation">qfiledialog.h</include>
10.284 + <include location="global" impldecl="in implementation">qmessagebox.h</include>
10.285 + <include location="local" impldecl="in implementation">misc.h</include>
10.286 + <include location="local" impldecl="in implementation">icons/flag-url.xpm</include>
10.287 + <include location="local" impldecl="in implementation">exporthtmldialog.ui.h</include>
10.288 +</includes>
10.289 +<variables>
10.290 + <variable>QString css;</variable>
10.291 + <variable>QString xsl;</variable>
10.292 + <variable>QString scriptpath;</variable>
10.293 + <variable>QString stylepath;</variable>
10.294 + <variable>QString dir;</variable>
10.295 + <variable>bool image;</variable>
10.296 + <variable>bool wikistyle;</variable>
10.297 + <variable>QString script;</variable>
10.298 + <variable>bool showOutput;</variable>
10.299 + <variable>QProcess *proc;</variable>
10.300 + <variable>ShowTextDialog *dia;</variable>
10.301 + <variable>bool imageOnly;</variable>
10.302 + <variable>bool useHeading;</variable>
10.303 + <variable>bool useURLImage;</variable>
10.304 +</variables>
10.305 +<slots>
10.306 + <slot>browseDirectory()</slot>
10.307 + <slot>useWIKIpressed( bool b )</slot>
10.308 + <slot>includeImage( bool b )</slot>
10.309 + <slot>imgOnly( bool b )</slot>
10.310 + <slot>useHeadingPressed( bool b )</slot>
10.311 + <slot>useURLImagePressed( bool b )</slot>
10.312 + <slot>showOut( bool b )</slot>
10.313 + <slot>dirChanged()</slot>
10.314 + <slot>doExport( const QString & mapname )</slot>
10.315 + <slot returnType="QString">getDir()</slot>
10.316 + <slot>readOutput()</slot>
10.317 +</slots>
10.318 +<functions>
10.319 + <function access="private" specifier="non virtual">init()</function>
10.320 + <function access="private" specifier="non virtual">destroy()</function>
10.321 +</functions>
10.322 +<pixmapinproject/>
10.323 +<layoutdefaults spacing="6" margin="11"/>
10.324 +</UI>
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/exporthtmldialog.ui.h Sun Jan 30 12:59:10 2005 +0000
11.3 @@ -0,0 +1,218 @@
11.4 +/****************************************************************************
11.5 +** ui.h extension file, included from the uic-generated form implementation.
11.6 +**
11.7 +** If you wish to add, delete or rename functions or slots use
11.8 +** Qt Designer which will update this file, preserving your code. Create an
11.9 +** init() function in place of a constructor, and a destroy() function in
11.10 +** place of a destructor.
11.11 +*****************************************************************************/
11.12 +
11.13 +
11.14 +extern Settings settings;
11.15 +
11.16 +void ExportHTMLDialog::init()
11.17 +{
11.18 + dir=settings.readEntry ("/vym/export/html/dir","" );
11.19 + lineEdit1->setText(dir);
11.20 +
11.21 + if ( settings.readEntry ("/vym/export/html/image","yes")=="yes")
11.22 + image=true;
11.23 + else
11.24 + image=false;
11.25 + checkBox4->setChecked(image);
11.26 +
11.27 + if ( settings.readEntry ("/vym/export/html/imageOnly","no")=="yes")
11.28 + imageOnly=true;
11.29 + else
11.30 + imageOnly=false;
11.31 + checkBox5_2->setChecked(imageOnly);
11.32 +
11.33 + if ( settings.readEntry ("/vym/export/html/wiki","no")=="yes")
11.34 + wikistyle=true;
11.35 + else
11.36 + wikistyle=false;
11.37 + checkBox5->setChecked(wikistyle);
11.38 +
11.39 + if ( settings.readEntry ("/vym/export/html/useHeading","no")=="yes")
11.40 + useHeading=true;
11.41 + else
11.42 + useHeading=false;
11.43 + checkBox4_2->setChecked(useHeading);
11.44 +
11.45 + if ( settings.readEntry ("/vym/export/html/useURLImage","yes")=="yes")
11.46 + useURLImage=true;
11.47 + else
11.48 + useURLImage=false;
11.49 + checkBox6->setChecked(useURLImage);
11.50 +
11.51 + if ( settings.readEntry ("/vym/export/html/showOutput","no")=="yes")
11.52 + showOutput=true;
11.53 + else
11.54 + showOutput=false;
11.55 + checkBox3->setChecked(showOutput);
11.56 +
11.57 + stylepath=settings.readEntry
11.58 + ("/vym/export/html/styles","styles");
11.59 + scriptpath=settings.readEntry
11.60 + ("/vym/export/html/scripts","scripts");
11.61 + xsl=settings.readEntry
11.62 + ("/vym/export/html/xsl","vym2html.xsl");
11.63 + css=settings.readEntry
11.64 + ("/vym/export/html/css","vym.css");
11.65 + script=settings.readEntry
11.66 + ("/vym/export/html/script","vym2html.sh");
11.67 +
11.68 + proc = new QProcess( this );
11.69 + connect( proc, SIGNAL(readyReadStdout()),
11.70 + this, SLOT(readOutput()) );
11.71 +
11.72 + dia=new ShowTextDialog ();
11.73 +}
11.74 +
11.75 +void ExportHTMLDialog::destroy()
11.76 +{
11.77 + delete (proc);
11.78 + delete (dia);
11.79 +}
11.80 +
11.81 +void ExportHTMLDialog::browseDirectory()
11.82 +{
11.83 + QFileDialog fd( this, tr("VYM - Export HTML to directory"));
11.84 + fd.setMode (QFileDialog::DirectoryOnly);
11.85 + fd.setCaption(tr("VYM - Export HTML to directory"));
11.86 + fd.setModal (true);
11.87 + fd.show();
11.88 +
11.89 + if ( fd.exec() == QDialog::Accepted )
11.90 + {
11.91 + dir=fd.selectedFile();
11.92 + lineEdit1->setText (dir );
11.93 + }
11.94 +}
11.95 +
11.96 +void ExportHTMLDialog::useWIKIpressed(bool b)
11.97 +{
11.98 + wikistyle=b;
11.99 +}
11.100 +
11.101 +void ExportHTMLDialog::includeImage(bool b)
11.102 +{
11.103 + image=b;
11.104 +}
11.105 +
11.106 +void ExportHTMLDialog::imgOnly(bool b)
11.107 +{
11.108 + imageOnly=b;
11.109 +}
11.110 +
11.111 +void ExportHTMLDialog::useHeadingPressed(bool b)
11.112 +{
11.113 + useHeading=b;
11.114 +}
11.115 +
11.116 +void ExportHTMLDialog::useURLImagePressed(bool b)
11.117 +{
11.118 + useURLImage=b;
11.119 +}
11.120 +
11.121 +void ExportHTMLDialog::showOut(bool b)
11.122 +{
11.123 + showOutput=b;
11.124 +}
11.125 +
11.126 +void ExportHTMLDialog::dirChanged()
11.127 +{
11.128 + dir=lineEdit1->text();
11.129 +}
11.130 +
11.131 +
11.132 +
11.133 +
11.134 +void ExportHTMLDialog::doExport (const QString &mapname)
11.135 +{
11.136 + // Save options to settings file
11.137 + // (but don't save at destructor, which
11.138 + // is called for "cancel", too)
11.139 + settings.writeEntry ("/vym/export/html/dir",lineEdit1->text() );
11.140 +
11.141 + if (wikistyle)
11.142 + settings.writeEntry ("/vym/export/html/wiki","yes");
11.143 + else
11.144 + settings.writeEntry ("/vym/export/html/wiki","no");
11.145 +
11.146 + if (image)
11.147 + settings.writeEntry ("/vym/export/html/image","yes");
11.148 + else
11.149 + settings.writeEntry ("/vym/export/html/image","no");
11.150 +
11.151 + if (imageOnly)
11.152 + settings.writeEntry ("/vym/export/html/imageOnly","yes");
11.153 + else
11.154 + settings.writeEntry ("/vym/export/html/imageOnly","no");
11.155 +
11.156 + if (useHeading)
11.157 + settings.writeEntry ("/vym/export/html/useHeading","yes");
11.158 + else
11.159 + settings.writeEntry ("/vym/export/html/useHeading","no");
11.160 +
11.161 + if (showOutput)
11.162 + settings.writeEntry ("/vym/export/html/showOutput","yes");
11.163 + else
11.164 + settings.writeEntry ("/vym/export/html/showOutput","no");
11.165 +
11.166 + settings.writeEntry
11.167 + ("/vym/export/html/styles",stylepath);
11.168 + settings.writeEntry
11.169 + ("/vym/export/html/scripts",scriptpath);
11.170 + settings.writeEntry
11.171 + ("/vym/export/html/xsl",xsl);
11.172 + settings.writeEntry
11.173 + ("/vym/export/html/css",css);
11.174 + settings.writeEntry
11.175 + ("/vym/export/html/script",script);
11.176 +
11.177 + proc->addArgument (scriptpath + "/" + script );
11.178 + proc->addArgument(dir + maskPath(mapname) + ".xml");
11.179 + proc->addArgument("-sp=" + stylepath +"/" + xsl );
11.180 + proc->addArgument("-css=" + css );
11.181 + if (image) proc->addArgument("-image" );
11.182 + if (wikistyle) proc->addArgument("-wikistyle" );
11.183 + if (useHeading) proc->addArgument("-useURLHeading" );
11.184 + if (useURLImage)
11.185 + {
11.186 + proc->addArgument("-useURLImage" );
11.187 + QPixmap pm (flag_url_xpm);
11.188 + pm.save (dir + "/flags/url.png","PNG");
11.189 + }
11.190 +
11.191 + dia->append ("vym is executing: " + proc->arguments().join(" ") );
11.192 + if ( !proc->start() )
11.193 + {
11.194 + // error handling
11.195 + dia->show();
11.196 + QString s;
11.197 + QStringList list = proc->arguments();
11.198 + QStringList::Iterator it = list.begin();
11.199 + while( it != list.end() )
11.200 + {
11.201 + s+= ( *it ) + "\n";
11.202 + ++it;
11.203 + }
11.204 + QMessageBox::critical(0, tr("Critcal export error"),"Couldn't start script to export:\n"+s);
11.205 + } else
11.206 + if (showOutput) dia->exec();
11.207 +
11.208 +
11.209 +}
11.210 +
11.211 +
11.212 +QString ExportHTMLDialog::getDir()
11.213 +{
11.214 + return dir;
11.215 +}
11.216 +
11.217 +
11.218 +void ExportHTMLDialog::readOutput()
11.219 +{
11.220 + dia->append (proc->readStdout() );
11.221 +}
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/exports.cpp Sun Jan 30 12:59:10 2005 +0000
12.3 @@ -0,0 +1,132 @@
12.4 +#include "exports.h"
12.5 +
12.6 +#include "linkablemapobj.h"
12.7 +
12.8 +
12.9 +Export::Export()
12.10 +{
12.11 + indentPerDepth=" ";
12.12 +}
12.13 +
12.14 +bool Export::setOutputDir(QString dirname)
12.15 +{
12.16 + outdir.setPath (dirname);
12.17 + if ( outdir.exists() )
12.18 + {
12.19 + // FIXME
12.20 + // ask for confirmation
12.21 + // then delete outdir
12.22 + return true;
12.23 + } else
12.24 + {
12.25 + // try to create directory
12.26 + //return outdir.mkdir (outdir.absPath());
12.27 + // FIXME
12.28 + return true;
12.29 + }
12.30 +}
12.31 +
12.32 +void Export::setPath (const QString &p)
12.33 +{
12.34 + filepath=p;
12.35 +}
12.36 +
12.37 +void Export::setMapCenter(MapCenterObj *mc)
12.38 +{
12.39 + mapCenter=mc;
12.40 +}
12.41 +
12.42 +void Export::exportMap()
12.43 +{
12.44 + QFile file (filepath);
12.45 + if ( !file.open( IO_WriteOnly ) )
12.46 + {
12.47 + // FIXME
12.48 + cout << "Export::exportMap couldn't open "<<filepath<<endl;
12.49 + return;
12.50 + }
12.51 + QTextStream ts( &file ); // use LANG decoding here...
12.52 +
12.53 + // Main loop over all branches
12.54 + QString s;
12.55 + QString actIndent("");
12.56 + int i;
12.57 + BranchObj *bo;
12.58 + bo=mapCenter->first();
12.59 + while (bo)
12.60 + {
12.61 + // Make indentstring
12.62 + for (i=0;i<bo->getDepth();i++) actIndent+= indentPerDepth;
12.63 +
12.64 + // Write heading
12.65 + // write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n");
12.66 + if (bo->getDepth()==1)
12.67 + ts << (getSectionString(bo) + bo->getHeading()+ "\n");
12.68 + else
12.69 + ts << (actIndent + " - " + bo->getHeading()+ "\n");
12.70 +
12.71 + // If necessary, write note
12.72 + if (!bo->getNote().isEmpty())
12.73 + {
12.74 + ts << ("-------------------Begin of Note-----------------\n");
12.75 + ts << (bo->getNote());
12.76 + ts << ("\n");
12.77 + ts << ("-------------------End of Note-------------------\n");
12.78 + }
12.79 +
12.80 + bo=bo->next();
12.81 + actIndent="";
12.82 + }
12.83 + file.close();
12.84 +}
12.85 +
12.86 +QString Export::getSectionString(BranchObj *bostart)
12.87 +{
12.88 + QString r;
12.89 + BranchObj *bo=bostart;
12.90 + int depth=bo->getDepth();
12.91 + while (depth>0)
12.92 + {
12.93 + r=QString("%1").arg(1+bo->getNum(),0,10)+"." + r;
12.94 + bo=(BranchObj*)(bo->getParObj());
12.95 + depth=bo->getDepth();
12.96 + }
12.97 + if (r.isEmpty())
12.98 + return r;
12.99 + else
12.100 + return r + " ";
12.101 +}
12.102 +
12.103 +void Export::exportAsHTML()
12.104 +{
12.105 + // FIXME just testing...
12.106 + // Main loop over all branches
12.107 + QString s;
12.108 + QString actIndent("");
12.109 + int i;
12.110 + BranchObj *bo;
12.111 + bo=mapCenter->first();
12.112 + while (bo)
12.113 + {
12.114 + // Make indentstring
12.115 + for (i=0;i<bo->getDepth();i++) actIndent+= indentPerDepth;
12.116 +
12.117 + // Write heading
12.118 + write (actIndent + getSectionString(bo) + bo->getHeading()+ "\n");
12.119 +
12.120 + // If necessary, write note
12.121 + if (!bo->getNote().isEmpty())
12.122 + {
12.123 + write (bo->getNote());
12.124 + }
12.125 +
12.126 + bo=bo->next();
12.127 + actIndent="";
12.128 + }
12.129 +}
12.130 +
12.131 +void Export::write(QString s)
12.132 +{
12.133 + cout << s;
12.134 +}
12.135 +
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13.2 +++ b/exports.h Sun Jan 30 12:59:10 2005 +0000
13.3 @@ -0,0 +1,34 @@
13.4 +#ifndef EXPORTS_H
13.5 +#define EXPORTS_H
13.6 +
13.7 +#include <qdir.h>
13.8 +#include <qstring.h>
13.9 +#include <iostream>
13.10 +
13.11 +#include "mapcenterobj.h"
13.12 +
13.13 +using namespace std;
13.14 +
13.15 +/////////////////////////////////////////////////////////////////////////////
13.16 +class Export
13.17 +{
13.18 +public:
13.19 + Export();
13.20 + bool setOutputDir (QString);
13.21 + void setPath(const QString &);
13.22 + void setMapCenter (MapCenterObj*);
13.23 + void setIndentPerDepth (QString);
13.24 + void exportMap();
13.25 + void exportAsHTML();
13.26 +protected:
13.27 + QString getSectionString (BranchObj*);
13.28 + void write (QString);
13.29 +
13.30 +private:
13.31 + QDir outdir;
13.32 + QString filepath;
13.33 + MapCenterObj *mapCenter;
13.34 + QString indentPerDepth;
13.35 +};
13.36 +
13.37 +#endif
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
14.2 +++ b/exportxhtmldialog.ui Sun Jan 30 12:59:10 2005 +0000
14.3 @@ -0,0 +1,555 @@
14.4 +<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
14.5 +<class>ExportXHTMLDialog</class>
14.6 +<widget class="QDialog">
14.7 + <property name="name">
14.8 + <cstring>ExportXHTMLDialog</cstring>
14.9 + </property>
14.10 + <property name="geometry">
14.11 + <rect>
14.12 + <x>0</x>
14.13 + <y>0</y>
14.14 + <width>582</width>
14.15 + <height>599</height>
14.16 + </rect>
14.17 + </property>
14.18 + <property name="minimumSize">
14.19 + <size>
14.20 + <width>0</width>
14.21 + <height>130</height>
14.22 + </size>
14.23 + </property>
14.24 + <property name="caption">
14.25 + <string>Export XHTML</string>
14.26 + </property>
14.27 + <vbox>
14.28 + <property name="name">
14.29 + <cstring>unnamed</cstring>
14.30 + </property>
14.31 + <widget class="QLayoutWidget">
14.32 + <property name="name">
14.33 + <cstring>layout33</cstring>
14.34 + </property>
14.35 + <hbox>
14.36 + <property name="name">
14.37 + <cstring>unnamed</cstring>
14.38 + </property>
14.39 + <widget class="QLabel">
14.40 + <property name="name">
14.41 + <cstring>textLabel1</cstring>
14.42 + </property>
14.43 + <property name="text">
14.44 + <string>Export to directory:</string>
14.45 + </property>
14.46 + </widget>
14.47 + <widget class="QLineEdit">
14.48 + <property name="name">
14.49 + <cstring>lineEditDir</cstring>
14.50 + </property>
14.51 + </widget>
14.52 + <widget class="QPushButton">
14.53 + <property name="name">
14.54 + <cstring>browseExportDirButton</cstring>
14.55 + </property>
14.56 + <property name="text">
14.57 + <string>Browse</string>
14.58 + </property>
14.59 + </widget>
14.60 + </hbox>
14.61 + </widget>
14.62 + <widget class="QButtonGroup">
14.63 + <property name="name">
14.64 + <cstring>buttonGroup2</cstring>
14.65 + </property>
14.66 + <property name="sizePolicy">
14.67 + <sizepolicy>
14.68 + <hsizetype>3</hsizetype>
14.69 + <vsizetype>3</vsizetype>
14.70 + <horstretch>0</horstretch>
14.71 + <verstretch>0</verstretch>
14.72 + </sizepolicy>
14.73 + </property>
14.74 + <property name="minimumSize">
14.75 + <size>
14.76 + <width>0</width>
14.77 + <height>160</height>
14.78 + </size>
14.79 + </property>
14.80 + <property name="title">
14.81 + <string>Options</string>
14.82 + </property>
14.83 + <vbox>
14.84 + <property name="name">
14.85 + <cstring>unnamed</cstring>
14.86 + </property>
14.87 + <widget class="QCheckBox">
14.88 + <property name="name">
14.89 + <cstring>imageButton</cstring>
14.90 + </property>
14.91 + <property name="text">
14.92 + <string>Include image</string>
14.93 + </property>
14.94 + </widget>
14.95 + <widget class="QCheckBox">
14.96 + <property name="name">
14.97 + <cstring>textColorButton</cstring>
14.98 + </property>
14.99 + <property name="text">
14.100 + <string>Colored headings in text</string>
14.101 + </property>
14.102 + </widget>
14.103 + <widget class="QCheckBox">
14.104 + <property name="name">
14.105 + <cstring>saveSettingsInMapButton</cstring>
14.106 + </property>
14.107 + <property name="text">
14.108 + <string>Save settings in map</string>
14.109 + </property>
14.110 + </widget>
14.111 + <widget class="QCheckBox">
14.112 + <property name="name">
14.113 + <cstring>warningsButton</cstring>
14.114 + </property>
14.115 + <property name="text">
14.116 + <string>showWarnings e.g. if directory is not empty</string>
14.117 + </property>
14.118 + </widget>
14.119 + <widget class="QCheckBox">
14.120 + <property name="name">
14.121 + <cstring>outputButton</cstring>
14.122 + </property>
14.123 + <property name="sizePolicy">
14.124 + <sizepolicy>
14.125 + <hsizetype>1</hsizetype>
14.126 + <vsizetype>0</vsizetype>
14.127 + <horstretch>0</horstretch>
14.128 + <verstretch>0</verstretch>
14.129 + </sizepolicy>
14.130 + </property>
14.131 + <property name="text">
14.132 + <string>show output of external scripts</string>
14.133 + </property>
14.134 + </widget>
14.135 + </vbox>
14.136 + </widget>
14.137 + <widget class="QButtonGroup">
14.138 + <property name="name">
14.139 + <cstring>buttonGroup2_2</cstring>
14.140 + </property>
14.141 + <property name="sizePolicy">
14.142 + <sizepolicy>
14.143 + <hsizetype>3</hsizetype>
14.144 + <vsizetype>3</vsizetype>
14.145 + <horstretch>0</horstretch>
14.146 + <verstretch>0</verstretch>
14.147 + </sizepolicy>
14.148 + </property>
14.149 + <property name="title">
14.150 + <string>Stylesheets</string>
14.151 + </property>
14.152 + <widget class="QLayoutWidget">
14.153 + <property name="name">
14.154 + <cstring>layout7</cstring>
14.155 + </property>
14.156 + <property name="geometry">
14.157 + <rect>
14.158 + <x>10</x>
14.159 + <y>30</y>
14.160 + <width>540</width>
14.161 + <height>84</height>
14.162 + </rect>
14.163 + </property>
14.164 + <vbox>
14.165 + <property name="name">
14.166 + <cstring>unnamed</cstring>
14.167 + </property>
14.168 + <widget class="QLayoutWidget">
14.169 + <property name="name">
14.170 + <cstring>layout5</cstring>
14.171 + </property>
14.172 + <hbox>
14.173 + <property name="name">
14.174 + <cstring>unnamed</cstring>
14.175 + </property>
14.176 + <widget class="QLabel">
14.177 + <property name="name">
14.178 + <cstring>textLabel1_2</cstring>
14.179 + </property>
14.180 + <property name="text">
14.181 + <string>CSS:</string>
14.182 + </property>
14.183 + </widget>
14.184 + <widget class="QLineEdit">
14.185 + <property name="name">
14.186 + <cstring>lineEditCSS</cstring>
14.187 + </property>
14.188 + </widget>
14.189 + <widget class="QPushButton">
14.190 + <property name="name">
14.191 + <cstring>browseCSSButton</cstring>
14.192 + </property>
14.193 + <property name="text">
14.194 + <string>Browse</string>
14.195 + </property>
14.196 + </widget>
14.197 + </hbox>
14.198 + </widget>
14.199 + <widget class="QLayoutWidget">
14.200 + <property name="name">
14.201 + <cstring>layout6</cstring>
14.202 + </property>
14.203 + <hbox>
14.204 + <property name="name">
14.205 + <cstring>unnamed</cstring>
14.206 + </property>
14.207 + <widget class="QLabel">
14.208 + <property name="name">
14.209 + <cstring>textLabel2</cstring>
14.210 + </property>
14.211 + <property name="text">
14.212 + <string>XSL:</string>
14.213 + </property>
14.214 + </widget>
14.215 + <widget class="QLineEdit">
14.216 + <property name="name">
14.217 + <cstring>lineEditXSL</cstring>
14.218 + </property>
14.219 + </widget>
14.220 + <widget class="QPushButton">
14.221 + <property name="name">
14.222 + <cstring>browseXSLButton</cstring>
14.223 + </property>
14.224 + <property name="text">
14.225 + <string>Browse</string>
14.226 + </property>
14.227 + </widget>
14.228 + </hbox>
14.229 + </widget>
14.230 + </vbox>
14.231 + </widget>
14.232 + </widget>
14.233 + <widget class="QGroupBox">
14.234 + <property name="name">
14.235 + <cstring>groupBox1</cstring>
14.236 + </property>
14.237 + <property name="title">
14.238 + <string>Scripts</string>
14.239 + </property>
14.240 + <widget class="QLabel">
14.241 + <property name="name">
14.242 + <cstring>textLabel1_3</cstring>
14.243 + </property>
14.244 + <property name="geometry">
14.245 + <rect>
14.246 + <x>12</x>
14.247 + <y>22</y>
14.248 + <width>110</width>
14.249 + <height>36</height>
14.250 + </rect>
14.251 + </property>
14.252 + <property name="text">
14.253 + <string>Before export:</string>
14.254 + </property>
14.255 + </widget>
14.256 + <widget class="QLineEdit">
14.257 + <property name="name">
14.258 + <cstring>lineEditPreScript</cstring>
14.259 + </property>
14.260 + <property name="geometry">
14.261 + <rect>
14.262 + <x>128</x>
14.263 + <y>26</y>
14.264 + <width>322</width>
14.265 + <height>28</height>
14.266 + </rect>
14.267 + </property>
14.268 + </widget>
14.269 + <widget class="QPushButton">
14.270 + <property name="name">
14.271 + <cstring>browsePreExportButton</cstring>
14.272 + </property>
14.273 + <property name="geometry">
14.274 + <rect>
14.275 + <x>456</x>
14.276 + <y>22</y>
14.277 + <width>94</width>
14.278 + <height>36</height>
14.279 + </rect>
14.280 + </property>
14.281 + <property name="text">
14.282 + <string>Browse</string>
14.283 + </property>
14.284 + </widget>
14.285 + <widget class="QLabel">
14.286 + <property name="name">
14.287 + <cstring>textLabel2_2</cstring>
14.288 + </property>
14.289 + <property name="geometry">
14.290 + <rect>
14.291 + <x>11</x>
14.292 + <y>61</y>
14.293 + <width>99</width>
14.294 + <height>36</height>
14.295 + </rect>
14.296 + </property>
14.297 + <property name="text">
14.298 + <string>After Export:</string>
14.299 + </property>
14.300 + </widget>
14.301 + <widget class="QLineEdit">
14.302 + <property name="name">
14.303 + <cstring>lineEditPostScript</cstring>
14.304 + </property>
14.305 + <property name="geometry">
14.306 + <rect>
14.307 + <x>116</x>
14.308 + <y>65</y>
14.309 + <width>333</width>
14.310 + <height>28</height>
14.311 + </rect>
14.312 + </property>
14.313 + </widget>
14.314 + <widget class="QPushButton">
14.315 + <property name="name">
14.316 + <cstring>browsePostExportButton</cstring>
14.317 + </property>
14.318 + <property name="geometry">
14.319 + <rect>
14.320 + <x>455</x>
14.321 + <y>61</y>
14.322 + <width>94</width>
14.323 + <height>36</height>
14.324 + </rect>
14.325 + </property>
14.326 + <property name="text">
14.327 + <string>Browse</string>
14.328 + </property>
14.329 + </widget>
14.330 + </widget>
14.331 + <spacer>
14.332 + <property name="name">
14.333 + <cstring>spacer3</cstring>
14.334 + </property>
14.335 + <property name="orientation">
14.336 + <enum>Vertical</enum>
14.337 + </property>
14.338 + <property name="sizeType">
14.339 + <enum>Expanding</enum>
14.340 + </property>
14.341 + <property name="sizeHint">
14.342 + <size>
14.343 + <width>20</width>
14.344 + <height>31</height>
14.345 + </size>
14.346 + </property>
14.347 + </spacer>
14.348 + <widget class="QLayoutWidget">
14.349 + <property name="name">
14.350 + <cstring>layout17</cstring>
14.351 + </property>
14.352 + <hbox>
14.353 + <property name="name">
14.354 + <cstring>unnamed</cstring>
14.355 + </property>
14.356 + <spacer>
14.357 + <property name="name">
14.358 + <cstring>spacer5</cstring>
14.359 + </property>
14.360 + <property name="orientation">
14.361 + <enum>Horizontal</enum>
14.362 + </property>
14.363 + <property name="sizeType">
14.364 + <enum>Expanding</enum>
14.365 + </property>
14.366 + <property name="sizeHint">
14.367 + <size>
14.368 + <width>61</width>
14.369 + <height>21</height>
14.370 + </size>
14.371 + </property>
14.372 + </spacer>
14.373 + <widget class="QPushButton">
14.374 + <property name="name">
14.375 + <cstring>exportButton</cstring>
14.376 + </property>
14.377 + <property name="text">
14.378 + <string>Export</string>
14.379 + </property>
14.380 + <property name="default">
14.381 + <bool>true</bool>
14.382 + </property>
14.383 + </widget>
14.384 + <widget class="QPushButton">
14.385 + <property name="name">
14.386 + <cstring>cancelButton</cstring>
14.387 + </property>
14.388 + <property name="text">
14.389 + <string>Cancel</string>
14.390 + </property>
14.391 + </widget>
14.392 + </hbox>
14.393 + </widget>
14.394 + </vbox>
14.395 +</widget>
14.396 +<connections>
14.397 + <connection>
14.398 + <sender>outputButton</sender>
14.399 + <signal>toggled(bool)</signal>
14.400 + <receiver>ExportXHTMLDialog</receiver>
14.401 + <slot>outputButtonPressed(bool)</slot>
14.402 + </connection>
14.403 + <connection>
14.404 + <sender>exportButton</sender>
14.405 + <signal>pressed()</signal>
14.406 + <receiver>ExportXHTMLDialog</receiver>
14.407 + <slot>accept()</slot>
14.408 + </connection>
14.409 + <connection>
14.410 + <sender>cancelButton</sender>
14.411 + <signal>pressed()</signal>
14.412 + <receiver>ExportXHTMLDialog</receiver>
14.413 + <slot>close()</slot>
14.414 + </connection>
14.415 + <connection>
14.416 + <sender>browseExportDirButton</sender>
14.417 + <signal>pressed()</signal>
14.418 + <receiver>ExportXHTMLDialog</receiver>
14.419 + <slot>browseDirectoryPressed()</slot>
14.420 + </connection>
14.421 + <connection>
14.422 + <sender>browseXSLButton</sender>
14.423 + <signal>pressed()</signal>
14.424 + <receiver>ExportXHTMLDialog</receiver>
14.425 + <slot>browseXSLPressed()</slot>
14.426 + </connection>
14.427 + <connection>
14.428 + <sender>browseCSSButton</sender>
14.429 + <signal>pressed()</signal>
14.430 + <receiver>ExportXHTMLDialog</receiver>
14.431 + <slot>browseCSSPressed()</slot>
14.432 + </connection>
14.433 + <connection>
14.434 + <sender>imageButton</sender>
14.435 + <signal>toggled(bool)</signal>
14.436 + <receiver>ExportXHTMLDialog</receiver>
14.437 + <slot>imageButtonPressed(bool)</slot>
14.438 + </connection>
14.439 + <connection>
14.440 + <sender>textColorButton</sender>
14.441 + <signal>toggled(bool)</signal>
14.442 + <receiver>ExportXHTMLDialog</receiver>
14.443 + <slot>textcolorButtonPressed(bool)</slot>
14.444 + </connection>
14.445 + <connection>
14.446 + <sender>lineEditDir</sender>
14.447 + <signal>textChanged(const QString&)</signal>
14.448 + <receiver>ExportXHTMLDialog</receiver>
14.449 + <slot>dirChanged()</slot>
14.450 + </connection>
14.451 + <connection>
14.452 + <sender>lineEditCSS</sender>
14.453 + <signal>textChanged(const QString&)</signal>
14.454 + <receiver>ExportXHTMLDialog</receiver>
14.455 + <slot>cssChanged()</slot>
14.456 + </connection>
14.457 + <connection>
14.458 + <sender>lineEditXSL</sender>
14.459 + <signal>textChanged(const QString&)</signal>
14.460 + <receiver>ExportXHTMLDialog</receiver>
14.461 + <slot>xslChanged()</slot>
14.462 + </connection>
14.463 + <connection>
14.464 + <sender>browsePreExportButton</sender>
14.465 + <signal>pressed()</signal>
14.466 + <receiver>ExportXHTMLDialog</receiver>
14.467 + <slot>browsePreExportButtonPressed()</slot>
14.468 + </connection>
14.469 + <connection>
14.470 + <sender>browsePostExportButton</sender>
14.471 + <signal>pressed()</signal>
14.472 + <receiver>ExportXHTMLDialog</receiver>
14.473 + <slot>browsePostExportButtonPressed()</slot>
14.474 + </connection>
14.475 + <connection>
14.476 + <sender>lineEditPreScript</sender>
14.477 + <signal>textChanged(const QString&)</signal>
14.478 + <receiver>ExportXHTMLDialog</receiver>
14.479 + <slot>prescriptChanged()</slot>
14.480 + </connection>
14.481 + <connection>
14.482 + <sender>lineEditPostScript</sender>
14.483 + <signal>textChanged(const QString&)</signal>
14.484 + <receiver>ExportXHTMLDialog</receiver>
14.485 + <slot>postscriptChanged()</slot>
14.486 + </connection>
14.487 + <connection>
14.488 + <sender>warningsButton</sender>
14.489 + <signal>toggled(bool)</signal>
14.490 + <receiver>ExportXHTMLDialog</receiver>
14.491 + <slot>warningsButtonPressed(bool)</slot>
14.492 + </connection>
14.493 + <connection>
14.494 + <sender>saveSettingsInMapButton</sender>
14.495 + <signal>toggled(bool)</signal>
14.496 + <receiver>ExportXHTMLDialog</receiver>
14.497 + <slot>saveSettingsInMapButtonPressed(bool)</slot>
14.498 + </connection>
14.499 +</connections>
14.500 +<includes>
14.501 + <include location="local" impldecl="in declaration">process.h</include>
14.502 + <include location="local" impldecl="in declaration">showtextdialog.h</include>
14.503 + <include location="global" impldecl="in implementation">qfiledialog.h</include>
14.504 + <include location="global" impldecl="in implementation">qmessagebox.h</include>
14.505 + <include location="local" impldecl="in implementation">settings.h</include>
14.506 + <include location="local" impldecl="in implementation">icons/flag-url.xpm</include>
14.507 + <include location="local" impldecl="in implementation">exportxhtmldialog.ui.h</include>
14.508 +</includes>
14.509 +<variables>
14.510 + <variable>bool useTextColor;</variable>
14.511 + <variable>bool showWarnings;</variable>
14.512 + <variable>QString xsl;</variable>
14.513 + <variable>QString css;</variable>
14.514 + <variable>bool useImage;</variable>
14.515 + <variable>bool showOutput;</variable>
14.516 + <variable>Process *xsltProc;</variable>
14.517 + <variable>ShowTextDialog *dia;</variable>
14.518 + <variable>QString dir;</variable>
14.519 + <variable>QString xsltprocessor;</variable>
14.520 + <variable>QString filepath;</variable>
14.521 + <variable>QString prescript;</variable>
14.522 + <variable>QString postscript;</variable>
14.523 + <variable>bool settingsChanged;</variable>
14.524 + <variable>QString mapname;</variable>
14.525 + <variable>bool saveSettingsInMap;</variable>
14.526 +</variables>
14.527 +<slots>
14.528 + <slot>readSettings()</slot>
14.529 + <slot>dirChanged()</slot>
14.530 + <slot>browseDirectoryPressed()</slot>
14.531 + <slot>imageButtonPressed( bool b )</slot>
14.532 + <slot>textcolorButtonPressed( bool b )</slot>
14.533 + <slot>saveSettingsInMapButtonPressed( bool b )</slot>
14.534 + <slot>warningsButtonPressed( bool b )</slot>
14.535 + <slot>outputButtonPressed( bool b )</slot>
14.536 + <slot>cssChanged()</slot>
14.537 + <slot>browseCSSPressed()</slot>
14.538 + <slot>xslChanged()</slot>
14.539 + <slot>prescriptChanged()</slot>
14.540 + <slot>browseXSLPressed()</slot>
14.541 + <slot>postscriptChanged()</slot>
14.542 + <slot>browsePreExportButtonPressed()</slot>
14.543 + <slot>browsePostExportButtonPressed()</slot>
14.544 + <slot>doExport( const QString & mapname )</slot>
14.545 + <slot>setFilePath( const QString & s )</slot>
14.546 + <slot>setMapName( const QString & s )</slot>
14.547 +</slots>
14.548 +<functions>
14.549 + <function access="private" specifier="non virtual">init()</function>
14.550 + <function access="private" specifier="non virtual">destroy()</function>
14.551 + <function returnType="QString">getDir()</function>
14.552 + <function returnType="bool">warnings()</function>
14.553 + <function returnType="bool">hasChanged()</function>
14.554 + <function access="private" specifier="non virtual">runScript( QString spath, QString fpath )</function>
14.555 +</functions>
14.556 +<pixmapinproject/>
14.557 +<layoutdefaults spacing="6" margin="11"/>
14.558 +</UI>
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
15.2 +++ b/exportxhtmldialog.ui.h Sun Jan 30 12:59:10 2005 +0000
15.3 @@ -0,0 +1,412 @@
15.4 +/****************************************************************************
15.5 +** ui.h extension file, included from the uic-generated form implementation.
15.6 +**
15.7 +** If you wish to add, delete or rename functions or slots use
15.8 +** Qt Designer which will update this file, preserving your code. Create an
15.9 +** init() function in place of a constructor, and a destroy() function in
15.10 +** place of a destructor.
15.11 +*****************************************************************************/
15.12 +
15.13 +
15.14 +extern Settings settings;
15.15 +
15.16 +void ExportXHTMLDialog::init()
15.17 +{
15.18 + dia=new ShowTextDialog ();
15.19 + xsltprocessor="xsltproc";
15.20 + filepath="";
15.21 + settingsChanged=false;
15.22 +}
15.23 +
15.24 +void ExportXHTMLDialog::readSettings()
15.25 +{
15.26 +
15.27 + dir=settings.readLocalEntry (filepath,"/vym/export/xhtml/exportDir","./" );
15.28 + lineEditDir->setText(dir);
15.29 +
15.30 +
15.31 + if ( settings.readLocalEntry (filepath,"/vym/export/xhtml/useImage","yes")=="yes")
15.32 + useImage=true;
15.33 + else
15.34 + useImage=false;
15.35 + imageButton->setChecked(useImage);
15.36 +
15.37 + if ( settings.readLocalEntry (filepath,"/vym/export/xhtml/useTextColor","no")=="yes")
15.38 + useTextColor=true;
15.39 + else
15.40 + useTextColor=false;
15.41 + textColorButton->setChecked(useTextColor);
15.42 +
15.43 +/* FIXME this was used in old html export, is not yet in new stylesheet
15.44 + if ( settings.readEntry ("/vym/export/html/useHeading","no")=="yes")
15.45 + useHeading=true;
15.46 + else
15.47 + useHeading=false;
15.48 + checkBox4_2->setChecked(useHeading);
15.49 +*/
15.50 +
15.51 + if ( settings.readLocalEntry (filepath,"/vym/export/xhtml/saveSettingsInMap","no")=="yes")
15.52 + saveSettingsInMap=true;
15.53 + else
15.54 + saveSettingsInMap=false;
15.55 + saveSettingsInMapButton->setChecked(saveSettingsInMap);
15.56 +
15.57 + if ( settings.readEntry ("/vym/export/xhtml/showWarnings","yes")=="yes")
15.58 + showWarnings=true;
15.59 + else
15.60 + showWarnings=false;
15.61 + warningsButton->setChecked(showWarnings);
15.62 +
15.63 + if ( settings.readEntry ("/vym/export/xhtml/showOutput","no")=="yes")
15.64 + showOutput=true;
15.65 + else
15.66 + showOutput=false;
15.67 + outputButton->setChecked(showOutput);
15.68 +
15.69 + xsl=settings.readLocalEntry
15.70 + (filepath,"/vym/export/xhtml/xsl","/usr/share/vym/styles/vym2xhtml.xsl");
15.71 + lineEditXSL->setText(xsl);
15.72 +
15.73 + css=settings.readLocalEntry
15.74 + (filepath,"/vym/export/xhtml/css","/usr/share/vym/styles/vym.css");
15.75 + lineEditCSS->setText(css);
15.76 +
15.77 + prescript=settings.readLocalEntry
15.78 + (filepath,"/vym/export/xhtml/prescript","");
15.79 + lineEditPreScript->setText (prescript);
15.80 +
15.81 + postscript=settings.readLocalEntry
15.82 + (filepath,"/vym/export/xhtml/postscript","");
15.83 + lineEditPostScript->setText (postscript);
15.84 +
15.85 + if (!prescript.isEmpty() || !postscript.isEmpty())
15.86 + {
15.87 + QMessageBox::warning( 0, tr( "Warning" ),tr(
15.88 + "The settings saved in the map "
15.89 + "would like to run scripts:\n\n") +
15.90 + prescript +" "+postscript +"\n\n"+
15.91 + tr("Please check, if you really\n"
15.92 + "want to allow this in your system!"));
15.93 +
15.94 + }
15.95 +}
15.96 +
15.97 +void ExportXHTMLDialog::destroy()
15.98 +{
15.99 + delete (dia);
15.100 +}
15.101 +
15.102 +void ExportXHTMLDialog::dirChanged()
15.103 +{
15.104 + dir=lineEditDir->text();
15.105 + if (dir.right(1)!="/")
15.106 + dir+="/";
15.107 + settingsChanged=true;
15.108 +}
15.109 +
15.110 +void ExportXHTMLDialog::browseDirectoryPressed()
15.111 +{
15.112 + QFileDialog fd( this, tr("VYM - Export HTML to directory"));
15.113 + fd.setMode (QFileDialog::DirectoryOnly);
15.114 + fd.setCaption(tr("VYM - Export HTML to directory"));
15.115 + fd.setModal (true);
15.116 + fd.show();
15.117 +
15.118 + if ( fd.exec() == QDialog::Accepted )
15.119 + {
15.120 + dir=fd.selectedFile();
15.121 + lineEditDir->setText (dir );
15.122 + settingsChanged=true;
15.123 + }
15.124 +}
15.125 +
15.126 +void ExportXHTMLDialog::imageButtonPressed(bool b)
15.127 +{
15.128 + useImage=b;
15.129 + settingsChanged=true;
15.130 +}
15.131 +
15.132 +void ExportXHTMLDialog::textcolorButtonPressed(bool b)
15.133 +{
15.134 + useTextColor=b;
15.135 + settingsChanged=true;
15.136 +}
15.137 +
15.138 +void ExportXHTMLDialog::saveSettingsInMapButtonPressed(bool b)
15.139 +{
15.140 + saveSettingsInMap=b;
15.141 + settingsChanged=true;
15.142 +}
15.143 +
15.144 +void ExportXHTMLDialog::warningsButtonPressed(bool b)
15.145 +{
15.146 + showWarnings=b;
15.147 + settingsChanged=true;
15.148 +}
15.149 +
15.150 +
15.151 +void ExportXHTMLDialog::outputButtonPressed(bool b)
15.152 +{
15.153 + showOutput=b;
15.154 + settingsChanged=true;
15.155 +}
15.156 +
15.157 +void ExportXHTMLDialog::cssChanged()
15.158 +{
15.159 + css=lineEditCSS->text();
15.160 + settingsChanged=true;
15.161 +}
15.162 +
15.163 +void ExportXHTMLDialog::browseCSSPressed()
15.164 +{
15.165 + QFileDialog fd( this, tr("VYM - Path to CSS file"));
15.166 + fd.setModal (true);
15.167 + fd.addFilter ("Cascading Stylesheet (*.css)");
15.168 + fd.show();
15.169 +
15.170 + if ( fd.exec() == QDialog::Accepted )
15.171 + {
15.172 + css=fd.selectedFile();
15.173 + lineEditCSS->setText (css );
15.174 + settingsChanged=true;
15.175 + }
15.176 +}
15.177 +
15.178 +void ExportXHTMLDialog::xslChanged()
15.179 +{
15.180 + xsl=lineEditXSL->text();
15.181 + settingsChanged=true;
15.182 +}
15.183 +
15.184 +void ExportXHTMLDialog::prescriptChanged()
15.185 +{
15.186 + prescript=lineEditPreScript->text();
15.187 + settingsChanged=true;
15.188 +}
15.189 +
15.190 +void ExportXHTMLDialog::browseXSLPressed()
15.191 +{
15.192 + QFileDialog fd( this, tr("VYM - Path to XSL file"));
15.193 + fd.setModal (true);
15.194 + fd.addFilter ("Extensible Styleshee Language (*.xsl)");
15.195 + fd.show();
15.196 +
15.197 + if ( fd.exec() == QDialog::Accepted )
15.198 + {
15.199 + xsl=fd.selectedFile();
15.200 + lineEditXSL->setText (xsl );
15.201 + settingsChanged=true;
15.202 + }
15.203 +}
15.204 +
15.205 +void ExportXHTMLDialog::postscriptChanged()
15.206 +{
15.207 + postscript=lineEditPostScript->text();
15.208 + settingsChanged=true;
15.209 +}
15.210 +
15.211 +void ExportXHTMLDialog::browsePreExportButtonPressed()
15.212 +{
15.213 + QFileDialog fd( this, tr("VYM - Path to pre export script"));
15.214 + fd.setModal (true);
15.215 + fd.addFilter ("Scripts (*.sh *.pl *.py *.php)");
15.216 + fd.show();
15.217 +
15.218 + if ( fd.exec() == QDialog::Accepted )
15.219 + {
15.220 + prescript=fd.selectedFile();
15.221 + lineEditPreScript->setText (prescript );
15.222 + settingsChanged=true;
15.223 + }
15.224 +
15.225 +}
15.226 +
15.227 +void ExportXHTMLDialog::browsePostExportButtonPressed()
15.228 +{
15.229 + QFileDialog fd( this, tr("VYM - Path to post export script"));
15.230 + fd.setModal (true);
15.231 + fd.addFilter ("Scripts (*.sh *.pl *.py *.php)");
15.232 + fd.show();
15.233 +
15.234 + if ( fd.exec() == QDialog::Accepted )
15.235 + {
15.236 + postscript=fd.selectedFile();
15.237 + lineEditPostScript->setText (postscript );
15.238 + settingsChanged=true;
15.239 + }
15.240 +}
15.241 +
15.242 +
15.243 +void ExportXHTMLDialog::doExport (const QString &mapname)
15.244 +{
15.245 + // Save options to settings file
15.246 + // (but don't save at destructor, which
15.247 + // is called for "cancel", too)
15.248 + settings.setLocalEntry (filepath,"/vym/export/xhtml/exportDir",dir);
15.249 +
15.250 + settings.setLocalEntry (filepath,"/vym/export/xhtml/prescript",prescript);
15.251 + settings.setLocalEntry (filepath,"/vym/export/xhtml/postscript",postscript);
15.252 +
15.253 + if (useImage)
15.254 + settings.setLocalEntry (filepath,"/vym/export/xhtml/useImage","yes");
15.255 + else
15.256 + settings.setLocalEntry (filepath,"/vym/export/xhtml/useImage","no");
15.257 +
15.258 + if (useTextColor)
15.259 + settings.setLocalEntry (filepath,"/vym/export/xhtml/useTextColor","yes");
15.260 + else
15.261 + settings.setLocalEntry (filepath,"/vym/export/xhtml/useTextColor","no");
15.262 +
15.263 + if (showWarnings)
15.264 + settings.writeEntry ("/vym/export/xhtml/showWarnings","yes");
15.265 + else
15.266 + settings.writeEntry ("/vym/export/xhtml/showWarnings","no");
15.267 +
15.268 + if (showOutput)
15.269 + settings.writeEntry ("/vym/export/xhtml/showOutput","yes");
15.270 + else
15.271 + settings.writeEntry ("/vym/export/xhtml/showOutput","no");
15.272 +
15.273 + settings.setLocalEntry
15.274 + (filepath,"/vym/export/xhtml/xsl",xsl);
15.275 + settings.setLocalEntry
15.276 + (filepath,"/vym/export/xhtml/css",css);
15.277 +
15.278 + //FIXME add option for url image (globe flag) here
15.279 + if (true)
15.280 + {
15.281 + QPixmap pm (flag_url_xpm);
15.282 + pm.save (dir + "/flags/url.png","PNG");
15.283 + }
15.284 +
15.285 + if (!saveSettingsInMap)
15.286 + settings.clearLocal("/vym/export/xhtml");
15.287 + else
15.288 + settings.setLocalEntry
15.289 + (filepath,"/vym/export/xhtml/saveSettingsInMap","yes");
15.290 +
15.291 + // Copy CSS file
15.292 + QFile css_src (css);
15.293 + QFile css_dst (dir+"vym.css");
15.294 + if (!css_src.open ( IO_ReadOnly))
15.295 + QMessageBox::warning( 0, tr( "Warning" ),css +tr(" could not be opened!"));
15.296 + else
15.297 + {
15.298 + if (!css_dst.open( IO_WriteOnly))
15.299 + QMessageBox::warning( 0, tr( "Warning" ), dir+"vym.css" +tr(" could not be opened!"));
15.300 + else
15.301 + {
15.302 +
15.303 + QTextStream tsout( &css_dst);
15.304 + QTextStream tsin ( &css_src);
15.305 + QString s= tsin.read();
15.306 + tsout << s;
15.307 + css_dst.close();
15.308 + }
15.309 + css_src.close();
15.310 + }
15.311 +
15.312 + if (!prescript.isEmpty()) runScript (prescript,dir+mapname+".xml");
15.313 +
15.314 + Process *xsltProc=new Process ();
15.315 + xsltProc->clearArguments();
15.316 + xsltProc->addArgument (xsltprocessor);
15.317 + if (useImage)
15.318 + {
15.319 + xsltProc->addArgument ("--stringparam");
15.320 + xsltProc->addArgument ("imagemap");
15.321 + xsltProc->addArgument ("images/"+mapname+".png");
15.322 + }
15.323 + if (useTextColor)
15.324 + {
15.325 + xsltProc->addArgument ("--stringparam");
15.326 + xsltProc->addArgument ("use.textcolor");
15.327 + xsltProc->addArgument ("1");
15.328 + }
15.329 + xsltProc->addArgument ("--stringparam");
15.330 + xsltProc->addArgument ("mapname");
15.331 + xsltProc->addArgument (mapname+".vym");
15.332 +
15.333 + xsltProc->addArgument ("--output");
15.334 + xsltProc->addArgument (dir+mapname+".html");
15.335 + xsltProc->addArgument (xsl);
15.336 + xsltProc->addArgument (dir+mapname+".xml");
15.337 + dia->append ("vym is executing: \n" + xsltProc->arguments().join(" ") );
15.338 + if (!xsltProc->start() )
15.339 + {
15.340 + QMessageBox::critical( 0, tr( "Critical Error" ),
15.341 + tr("Couldn't start ") + xsltprocessor );
15.342 + } else
15.343 + {
15.344 + xsltProc->waitFinished();
15.345 + if (!xsltProc->normalExit() )
15.346 + QMessageBox::critical( 0, tr( "Critical Error" ),
15.347 + xsltprocessor +" " +tr("didn't exit normally") +
15.348 + xsltProc->getErrout() );
15.349 + else
15.350 + if (xsltProc->exitStatus()>0) showOutput=true;
15.351 +
15.352 + }
15.353 + dia->append ("\n");
15.354 + dia->append (xsltProc->getErrout());
15.355 + dia->append (xsltProc->getStdout());
15.356 +
15.357 + if (!postscript.isEmpty()) runScript (postscript,dir+mapname+".html");
15.358 +
15.359 + if (showOutput) dia->exec();
15.360 +}
15.361 +
15.362 +void ExportXHTMLDialog::setFilePath(const QString &s)
15.363 +{
15.364 + filepath=s;
15.365 +}
15.366 +
15.367 +void ExportXHTMLDialog::setMapName(const QString &s)
15.368 +{
15.369 + mapname=s;
15.370 +}
15.371 +
15.372 +QString ExportXHTMLDialog::getDir()
15.373 +{
15.374 + return dir;
15.375 +}
15.376 +
15.377 +bool ExportXHTMLDialog::warnings()
15.378 +{
15.379 + return showWarnings;
15.380 +}
15.381 +
15.382 +bool ExportXHTMLDialog::hasChanged()
15.383 +{
15.384 + return settingsChanged;
15.385 +}
15.386 +
15.387 +
15.388 +void ExportXHTMLDialog::runScript(QString spath, QString fpath)
15.389 +{
15.390 + spath.replace ("%f",fpath);
15.391 + QStringList args=QStringList::split (' ',spath,false);
15.392 +
15.393 + Process *scriptProc=new Process ();
15.394 + scriptProc->clearArguments();
15.395 + scriptProc->setArguments (args);
15.396 + dia->append ("vym is executing: \n" + scriptProc->arguments().join(" ") );
15.397 + if (!scriptProc->start() )
15.398 + {
15.399 + QMessageBox::critical( 0, tr( "Critical Error" ),
15.400 + tr("Couldn't start ") + spath );
15.401 + } else
15.402 + {
15.403 + scriptProc->waitFinished();
15.404 + if (!scriptProc->normalExit() )
15.405 + QMessageBox::critical( 0, tr( "Critical Error" ),
15.406 + spath +" " +tr("didn't exit normally") +
15.407 + scriptProc->getErrout() );
15.408 + else
15.409 + if (scriptProc->exitStatus()>0) showOutput=true;
15.410 +
15.411 + }
15.412 + dia->append ("\n");
15.413 + dia->append (scriptProc->getErrout());
15.414 + dia->append (scriptProc->getStdout());
15.415 +}
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
16.2 +++ b/extrainfodialog.ui Sun Jan 30 12:59:10 2005 +0000
16.3 @@ -0,0 +1,204 @@
16.4 +<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
16.5 +<class>ExtraInfoDialog</class>
16.6 +<author>Uwe Drechsel</author>
16.7 +<widget class="QDialog">
16.8 + <property name="name">
16.9 + <cstring>ExtraInfoDialog</cstring>
16.10 + </property>
16.11 + <property name="geometry">
16.12 + <rect>
16.13 + <x>0</x>
16.14 + <y>0</y>
16.15 + <width>338</width>
16.16 + <height>410</height>
16.17 + </rect>
16.18 + </property>
16.19 + <property name="caption">
16.20 + <string>VYM - Info</string>
16.21 + </property>
16.22 + <vbox>
16.23 + <property name="name">
16.24 + <cstring>unnamed</cstring>
16.25 + </property>
16.26 + <widget class="QLabel">
16.27 + <property name="name">
16.28 + <cstring>textLabel1_2</cstring>
16.29 + </property>
16.30 + <property name="text">
16.31 + <string>Map:</string>
16.32 + </property>
16.33 + </widget>
16.34 + <widget class="QLineEdit">
16.35 + <property name="name">
16.36 + <cstring>lineEdit7</cstring>
16.37 + </property>
16.38 + <property name="paletteBackgroundColor">
16.39 + <color>
16.40 + <red>225</red>
16.41 + <green>225</green>
16.42 + <blue>225</blue>
16.43 + </color>
16.44 + </property>
16.45 + <property name="backgroundOrigin">
16.46 + <enum>WidgetOrigin</enum>
16.47 + </property>
16.48 + <property name="readOnly">
16.49 + <bool>true</bool>
16.50 + </property>
16.51 + </widget>
16.52 + <widget class="QLabel">
16.53 + <property name="name">
16.54 + <cstring>textLabel1</cstring>
16.55 + </property>
16.56 + <property name="text">
16.57 + <string>Author:</string>
16.58 + </property>
16.59 + </widget>
16.60 + <widget class="QLineEdit">
16.61 + <property name="name">
16.62 + <cstring>lineEdit2</cstring>
16.63 + </property>
16.64 + </widget>
16.65 + <widget class="QLabel">
16.66 + <property name="name">
16.67 + <cstring>textLabel2</cstring>
16.68 + </property>
16.69 + <property name="text">
16.70 + <string>Comment:</string>
16.71 + </property>
16.72 + </widget>
16.73 + <widget class="QTextEdit">
16.74 + <property name="name">
16.75 + <cstring>textEdit4</cstring>
16.76 + </property>
16.77 + <property name="sizePolicy">
16.78 + <sizepolicy>
16.79 + <hsizetype>7</hsizetype>
16.80 + <vsizetype>4</vsizetype>
16.81 + <horstretch>0</horstretch>
16.82 + <verstretch>0</verstretch>
16.83 + </sizepolicy>
16.84 + </property>
16.85 + <property name="maximumSize">
16.86 + <size>
16.87 + <width>32767</width>
16.88 + <height>76</height>
16.89 + </size>
16.90 + </property>
16.91 + </widget>
16.92 + <widget class="QLabel">
16.93 + <property name="name">
16.94 + <cstring>textLabel2_2</cstring>
16.95 + </property>
16.96 + <property name="text">
16.97 + <string>Statistics:</string>
16.98 + </property>
16.99 + </widget>
16.100 + <widget class="QTextEdit">
16.101 + <property name="name">
16.102 + <cstring>textEdit4_2</cstring>
16.103 + </property>
16.104 + <property name="paletteBackgroundColor">
16.105 + <color>
16.106 + <red>225</red>
16.107 + <green>225</green>
16.108 + <blue>225</blue>
16.109 + </color>
16.110 + </property>
16.111 + <property name="font">
16.112 + <font>
16.113 + <family>Courier</family>
16.114 + <pointsize>12</pointsize>
16.115 + </font>
16.116 + </property>
16.117 + <property name="textFormat">
16.118 + <enum>PlainText</enum>
16.119 + </property>
16.120 + <property name="readOnly">
16.121 + <bool>true</bool>
16.122 + </property>
16.123 + </widget>
16.124 + <widget class="QLayoutWidget">
16.125 + <property name="name">
16.126 + <cstring>layout21</cstring>
16.127 + </property>
16.128 + <hbox>
16.129 + <property name="name">
16.130 + <cstring>unnamed</cstring>
16.131 + </property>
16.132 + <spacer>
16.133 + <property name="name">
16.134 + <cstring>spacer10</cstring>
16.135 + </property>
16.136 + <property name="orientation">
16.137 + <enum>Horizontal</enum>
16.138 + </property>
16.139 + <property name="sizeType">
16.140 + <enum>Expanding</enum>
16.141 + </property>
16.142 + <property name="sizeHint">
16.143 + <size>
16.144 + <width>160</width>
16.145 + <height>21</height>
16.146 + </size>
16.147 + </property>
16.148 + </spacer>
16.149 + <widget class="QPushButton">
16.150 + <property name="name">
16.151 + <cstring>pushButton13</cstring>
16.152 + </property>
16.153 + <property name="text">
16.154 + <string>Cancel</string>
16.155 + </property>
16.156 + </widget>
16.157 + <widget class="QPushButton">
16.158 + <property name="name">
16.159 + <cstring>pushButton7</cstring>
16.160 + </property>
16.161 + <property name="text">
16.162 + <string>Close</string>
16.163 + </property>
16.164 + </widget>
16.165 + </hbox>
16.166 + </widget>
16.167 + </vbox>
16.168 +</widget>
16.169 +<connections>
16.170 + <connection>
16.171 + <sender>pushButton7</sender>
16.172 + <signal>clicked()</signal>
16.173 + <receiver>ExtraInfoDialog</receiver>
16.174 + <slot>accept()</slot>
16.175 + </connection>
16.176 + <connection>
16.177 + <sender>pushButton13</sender>
16.178 + <signal>clicked()</signal>
16.179 + <receiver>ExtraInfoDialog</receiver>
16.180 + <slot>reject()</slot>
16.181 + </connection>
16.182 +</connections>
16.183 +<tabstops>
16.184 + <tabstop>lineEdit2</tabstop>
16.185 + <tabstop>textEdit4</tabstop>
16.186 + <tabstop>pushButton7</tabstop>
16.187 + <tabstop>pushButton13</tabstop>
16.188 + <tabstop>lineEdit7</tabstop>
16.189 + <tabstop>textEdit4_2</tabstop>
16.190 +</tabstops>
16.191 +<includes>
16.192 + <include location="global" impldecl="in implementation">qstring.h</include>
16.193 + <include location="local" impldecl="in implementation">extrainfodialog.ui.h</include>
16.194 +</includes>
16.195 +<slots>
16.196 + <slot>setMapName( const QString & s )</slot>
16.197 + <slot>setComment( const QString & s )</slot>
16.198 + <slot>setAuthor( const QString & s )</slot>
16.199 +</slots>
16.200 +<functions>
16.201 + <function returnType="QString">getComment()</function>
16.202 + <function returnType="QString">getAuthor()</function>
16.203 + <function>setStats( const QString & s )</function>
16.204 +</functions>
16.205 +<pixmapinproject/>
16.206 +<layoutdefaults spacing="6" margin="11"/>
16.207 +</UI>
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
17.2 +++ b/extrainfodialog.ui.h Sun Jan 30 12:59:10 2005 +0000
17.3 @@ -0,0 +1,39 @@
17.4 +/****************************************************************************
17.5 +** ui.h extension file, included from the uic-generated form implementation.
17.6 +**
17.7 +** If you wish to add, delete or rename functions or slots use
17.8 +** Qt Designer which will update this file, preserving your code. Create an
17.9 +** init() function in place of a constructor, and a destroy() function in
17.10 +** place of a destructor.
17.11 +*****************************************************************************/
17.12 +
17.13 +void ExtraInfoDialog::setMapName(const QString &s)
17.14 +{
17.15 + lineEdit7->setText (s);
17.16 +}
17.17 +
17.18 +void ExtraInfoDialog::setComment (const QString &s)
17.19 +{
17.20 + textEdit4->setText (s);
17.21 +}
17.22 +
17.23 +QString ExtraInfoDialog::getComment()
17.24 +{
17.25 + return textEdit4->text();
17.26 +}
17.27 +
17.28 +
17.29 +void ExtraInfoDialog::setAuthor(const QString &s)
17.30 +{
17.31 + lineEdit2->setText (s);
17.32 +}
17.33 +
17.34 +QString ExtraInfoDialog::getAuthor()
17.35 +{
17.36 + return lineEdit2->text();
17.37 +}
17.38 +
17.39 +void ExtraInfoDialog::setStats(const QString &s)
17.40 +{
17.41 + textEdit4_2->setText (s);
17.42 +}
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
18.2 +++ b/findwindow.cpp Sun Jan 30 12:59:10 2005 +0000
18.3 @@ -0,0 +1,85 @@
18.4 +#include <qlineedit.h>
18.5 +
18.6 +#include "findwindow.h"
18.7 +
18.8 +
18.9 +FindWindow::FindWindow(QWidget* parent, const char* name, WFlags f)
18.10 + : QGroupBox( 0, Horizontal, "Find", parent, name )
18.11 +
18.12 +{
18.13 + setCaption ("VYM - Find Text");
18.14 + //resize (180,130);
18.15 + move (130,130);
18.16 +
18.17 + setMargin( 100 );
18.18 +
18.19 + QVBoxLayout* box = new QVBoxLayout( layout() );
18.20 +
18.21 + QHBoxLayout *row1 = new QHBoxLayout( box );
18.22 + row1->setMargin( 10 );
18.23 +
18.24 + // Create a Label
18.25 + QLabel* label = new QLabel( "Text to find: ", this);
18.26 + row1->addWidget( label );
18.27 +
18.28 + // Create LineEdit (here QComboBox)
18.29 + QHBoxLayout *row2 = new QHBoxLayout( box );
18.30 + row2->setMargin( 10 );
18.31 + findcombo = new QComboBox( true, this );
18.32 + findcombo->setMinimumWidth(150);
18.33 + row2->addWidget( findcombo );
18.34 + connect ( findcombo, SIGNAL( highlighted(int) ),
18.35 + this, SLOT( findPressed() ) );
18.36 + connect ( findcombo, SIGNAL( textChanged(const QString &) ),
18.37 + this, SLOT( findTextChanged(const QString&) ) );
18.38 + //findcombo->insertItem( "Normal", -1 );
18.39 +
18.40 + // Create Buttons
18.41 + QHBoxLayout *row3 = new QHBoxLayout( box );
18.42 + row3->setMargin( 10 );
18.43 + clearbutton = new QPushButton (tr("Clear"),this);
18.44 + connect ( clearbutton, SIGNAL( clicked() ),
18.45 + findcombo, SLOT( clearEdit() ) );
18.46 + row3->addWidget (clearbutton);
18.47 +
18.48 + QSpacerItem *si1= new QSpacerItem (10,0,QSizePolicy::Minimum, QSizePolicy::Expanding );
18.49 + row3->addItem(si1);
18.50 +
18.51 + cancelbutton = new QPushButton (tr("Cancel"),this);
18.52 + cancelbutton->setAccel (Key_Escape);
18.53 + connect ( cancelbutton, SIGNAL( clicked() ),
18.54 + this, SLOT( cancelPressed() ) );
18.55 + row3->addWidget (cancelbutton);
18.56 +
18.57 + QSpacerItem *si2= new QSpacerItem (10,0,QSizePolicy::Fixed, QSizePolicy::Fixed);
18.58 + row3->addItem(si2);
18.59 +
18.60 + findbutton = new QPushButton (tr("Find"),this);
18.61 + findbutton->setDefault (true);
18.62 + connect ( findbutton, SIGNAL( clicked() ),
18.63 + this, SLOT( findPressed() ) );
18.64 + row3->add(findbutton);
18.65 +
18.66 + findcombo->setFocus();
18.67 +}
18.68 +
18.69 +void FindWindow::popup()
18.70 +{
18.71 + findcombo->lineEdit()->selectAll();
18.72 + show();
18.73 +}
18.74 +
18.75 +void FindWindow::cancelPressed()
18.76 +{
18.77 + hide();
18.78 +}
18.79 +
18.80 +void FindWindow::findPressed()
18.81 +{
18.82 + emit (findButton(findcombo->currentText() ) );
18.83 +}
18.84 +
18.85 +void FindWindow::findTextChanged(const QString&)
18.86 +{
18.87 + emit (somethingChanged() );
18.88 +}
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
19.2 +++ b/findwindow.h Sun Jan 30 12:59:10 2005 +0000
19.3 @@ -0,0 +1,38 @@
19.4 +#ifndef FINDWINDOW_H
19.5 +#define FINDWINDOW_H
19.6 +
19.7 +#include <qmainwindow.h>
19.8 +#include <qcombobox.h>
19.9 +#include <qpushbutton.h>
19.10 +#include <qgroupbox.h>
19.11 +#include <qlayout.h>
19.12 +#include <qlabel.h>
19.13 +
19.14 +
19.15 +class FindWindow : public QGroupBox
19.16 +{
19.17 + Q_OBJECT
19.18 +
19.19 +public:
19.20 + FindWindow (QWidget* parent=0, const char* namme=0, WFlags f=0);
19.21 +
19.22 +public slots:
19.23 + void popup();
19.24 + void cancelPressed();
19.25 + void findPressed();
19.26 + void findTextChanged(const QString&);
19.27 +
19.28 +signals:
19.29 + void findButton(QString); // emit to mainwindow
19.30 + void somethingChanged(); // emit to mainwindow
19.31 +
19.32 +private:
19.33 + QGroupBox *findbox;
19.34 + QComboBox *findcombo;
19.35 + QPushButton *clearbutton;
19.36 + QPushButton *findbutton;
19.37 + QPushButton *cancelbutton;
19.38 +};
19.39 +
19.40 +
19.41 +#endif
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
20.2 +++ b/flagobj.cpp Sun Jan 30 12:59:10 2005 +0000
20.3 @@ -0,0 +1,201 @@
20.4 +#include "flagobj.h"
20.5 +
20.6 +/////////////////////////////////////////////////////////////////
20.7 +// FlagObj
20.8 +/////////////////////////////////////////////////////////////////
20.9 +FlagObj::FlagObj()
20.10 +{
20.11 +// cout << "Const FlagObj ()\n";
20.12 + init ();
20.13 +}
20.14 +
20.15 +FlagObj::FlagObj(QCanvas* c):MapObj(c)
20.16 +{
20.17 +// cout << "Const FlagObj\n";
20.18 + init ();
20.19 +}
20.20 +
20.21 +FlagObj::FlagObj (FlagObj* io)
20.22 +{
20.23 + copy (io);
20.24 +}
20.25 +
20.26 +FlagObj::~FlagObj()
20.27 +{
20.28 +// cout << "Destr FlagObj " << name << "\n";
20.29 + delete (icon);
20.30 +}
20.31 +
20.32 +
20.33 +void FlagObj::init ()
20.34 +{
20.35 + name="undefined";
20.36 +
20.37 + icon=new ImageObj (canvas);
20.38 + icon->move (absPos.x(), absPos.y() );
20.39 + button=NULL;
20.40 + state=false;
20.41 +}
20.42 +
20.43 +void FlagObj::copy (FlagObj* other)
20.44 +{
20.45 + MapObj::copy(other);
20.46 + name=other->name;
20.47 + tooltip=other->tooltip;
20.48 + state=other->state;
20.49 + icon->copy(other->icon);
20.50 + setVisibility (other->isVisibleObj() );
20.51 + // button is not copied, because
20.52 + // we won't copy to a parentRow and
20.53 + // all others don't need a button
20.54 +}
20.55 +
20.56 +void FlagObj::move(double x, double y)
20.57 +{
20.58 + MapObj::move(x,y);
20.59 + icon->move(x,y);
20.60 + positionBBox();
20.61 +}
20.62 +
20.63 +void FlagObj::moveBy(double x, double y)
20.64 +{
20.65 + move (x+absPos.x(),y+absPos.y() );
20.66 +}
20.67 +
20.68 +void FlagObj::setVisibility (bool v)
20.69 +{
20.70 + MapObj::setVisibility(v);
20.71 + if (v && state)
20.72 + icon->setVisibility(true);
20.73 + else
20.74 + icon->setVisibility(false);
20.75 +}
20.76 +
20.77 +void FlagObj::load (const QString &fn)
20.78 +{
20.79 + icon->load(fn);
20.80 + calcBBoxSize();
20.81 + positionBBox();
20.82 +}
20.83 +
20.84 +void FlagObj::load (const QPixmap &pm)
20.85 +{
20.86 + icon->load(pm);
20.87 + calcBBoxSize();
20.88 + positionBBox();
20.89 +}
20.90 +
20.91 +void FlagObj::setName(const QString &n)
20.92 +{
20.93 + name=n;
20.94 +}
20.95 +
20.96 +const QString FlagObj::getName()
20.97 +{
20.98 + return name;
20.99 +}
20.100 +
20.101 +void FlagObj::setToolTip(const QString &n)
20.102 +{
20.103 + tooltip=n;
20.104 +}
20.105 +
20.106 +const QString FlagObj::getToolTip()
20.107 +{
20.108 + return tooltip;
20.109 +}
20.110 +
20.111 +void FlagObj::setButton(QAction* b)
20.112 +{
20.113 + button=b;
20.114 +}
20.115 +
20.116 +void FlagObj::updateButton()
20.117 +{
20.118 + if (button)
20.119 + button->setOn(state);
20.120 + else
20.121 + qWarning ("FlagObj::updateButton no button defined");
20.122 +}
20.123 +
20.124 +QPixmap FlagObj::getPixmap()
20.125 +{
20.126 + return icon->getPixmap();
20.127 +}
20.128 +
20.129 +bool FlagObj::isActive()
20.130 +{
20.131 + return state;
20.132 +}
20.133 +
20.134 +void FlagObj::toggle()
20.135 +{
20.136 + if (state)
20.137 + deactivate();
20.138 + else
20.139 + activate();
20.140 +}
20.141 +
20.142 +void FlagObj::activate()
20.143 +{
20.144 + state=true;
20.145 + // only show icon, if flag itself is visible
20.146 + if (visible)
20.147 + {
20.148 + icon->setVisibility (true);
20.149 + calcBBoxSize();
20.150 + }
20.151 +}
20.152 +
20.153 +void FlagObj::deactivate()
20.154 +{
20.155 + state=false;
20.156 + // if flag itself is invisible we don't need to call
20.157 + if (visible)
20.158 + {
20.159 + icon->setVisibility (false);
20.160 + calcBBoxSize();
20.161 + }
20.162 +}
20.163 +
20.164 +void FlagObj::setEnabled(bool b)
20.165 +{
20.166 + button->setEnabled (b);
20.167 +}
20.168 +
20.169 +
20.170 +void FlagObj::setUsed (bool b)
20.171 +{
20.172 + used=b;
20.173 +}
20.174 +
20.175 +bool FlagObj::isUsed()
20.176 +{
20.177 + return used;
20.178 +}
20.179 +
20.180 +void FlagObj::saveToDir (const QString &tmpdir, const QString &prefix)
20.181 +{
20.182 + QString fn=tmpdir + prefix + name + ".png";
20.183 + icon->save (fn,"PNG");
20.184 +}
20.185 +
20.186 +void FlagObj::positionBBox()
20.187 +{
20.188 + bbox.setX (absPos.x() );
20.189 + bbox.setY (absPos.y() );
20.190 +}
20.191 +
20.192 +void FlagObj::calcBBoxSize()
20.193 +{
20.194 + if (visible && state)
20.195 + {
20.196 + bbox.setSize ( QSize(
20.197 + icon->boundingRect().width(),
20.198 + icon->boundingRect().height() ) );
20.199 + } else
20.200 + {
20.201 + bbox.setSize (QSize(0,0));
20.202 + }
20.203 +}
20.204 +
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
21.2 +++ b/flagobj.h Sun Jan 30 12:59:10 2005 +0000
21.3 @@ -0,0 +1,53 @@
21.4 +#ifndef FLAGOBJ_H
21.5 +#define FLAGOBJ_H
21.6 +
21.7 +
21.8 +#include <qcanvas.h>
21.9 +#include <qaction.h>
21.10 +
21.11 +#include "mapobj.h"
21.12 +#include "imageobj.h"
21.13 +
21.14 +/////////////////////////////////////////////////////////////////////////////
21.15 +class FlagObj:public MapObj {
21.16 +public:
21.17 + FlagObj ();
21.18 + FlagObj (QCanvas*);
21.19 + FlagObj (FlagObj*);
21.20 + ~FlagObj ();
21.21 + virtual void init ();
21.22 + virtual void copy (FlagObj*);
21.23 + virtual void move (double x,double y); // move to absolute Position
21.24 + virtual void moveBy (double x,double y); // move to relative Position
21.25 + virtual void setVisibility(bool);
21.26 + void load (const QString&);
21.27 + void load (const QPixmap&);
21.28 + void setName (const QString&);
21.29 + const QString getName ();
21.30 + void setToolTip(const QString&);
21.31 + const QString getToolTip();
21.32 + void setButton (QAction*);
21.33 + void updateButton ();
21.34 + QPixmap getPixmap();
21.35 + bool isActive();
21.36 + void toggle();
21.37 + void activate();
21.38 + void deactivate();
21.39 + void setEnabled (bool);
21.40 + void setUsed (bool);
21.41 + bool isUsed();
21.42 + void saveToDir (const QString&, const QString&);
21.43 +
21.44 +protected:
21.45 + QString name;
21.46 + QString tooltip;
21.47 + bool state;
21.48 + bool used;
21.49 + virtual void positionBBox();
21.50 + virtual void calcBBoxSize();
21.51 +private:
21.52 + ImageObj* icon;
21.53 + QAction* button;
21.54 +};
21.55 +
21.56 +#endif
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
22.2 +++ b/flagrowobj.cpp Sun Jan 30 12:59:10 2005 +0000
22.3 @@ -0,0 +1,322 @@
22.4 +#include "flagrowobj.h"
22.5 +
22.6 +/////////////////////////////////////////////////////////////////
22.7 +// FlagRowObj
22.8 +/////////////////////////////////////////////////////////////////
22.9 +FlagRowObj::FlagRowObj()
22.10 +{
22.11 + cout << "Const FlagRowObj ()\n";
22.12 + init ();
22.13 +}
22.14 +
22.15 +FlagRowObj::FlagRowObj(QCanvas* c):MapObj(c)
22.16 +{
22.17 +// cout << "Const FlagRowObj\n";
22.18 + init ();
22.19 +}
22.20 +
22.21 +FlagRowObj::~FlagRowObj()
22.22 +{
22.23 +// cout << "Destr FlagRowObj\n";
22.24 + flag.clear();
22.25 +}
22.26 +
22.27 +void FlagRowObj::init ()
22.28 +{
22.29 + flag.setAutoDelete (true);
22.30 + parentRow=NULL;
22.31 +}
22.32 +
22.33 +void FlagRowObj::copy (FlagRowObj* other)
22.34 +{
22.35 + MapObj::copy(other);
22.36 + parentRow=other->parentRow;
22.37 + flag.clear();
22.38 + FlagObj *fo;
22.39 + for (fo=other->flag.first(); fo; fo=other->flag.next() )
22.40 + addFlag (fo);
22.41 +}
22.42 +
22.43 +void FlagRowObj::clone (FlagRowObj* pr)
22.44 +{
22.45 + // Difference to copy:
22.46 + // We don't copy the flags here, they
22.47 + // are created on the fly by toggle and activate
22.48 + // This saves lots of canvas objects.
22.49 + MapObj::copy(pr);
22.50 + flag.clear();
22.51 + parentRow=pr;
22.52 +}
22.53 +
22.54 +void FlagRowObj::move(double x, double y)
22.55 +{
22.56 + MapObj::move(x,y);
22.57 + int dx=0;
22.58 + FlagObj *fo;
22.59 + for (fo=flag.first(); fo; fo=flag.next() )
22.60 + {
22.61 + fo->move(x+dx,y);
22.62 + dx+=QSize(fo->getSize() ).width();
22.63 + }
22.64 +}
22.65 +
22.66 +void FlagRowObj::moveBy(double x, double y)
22.67 +{
22.68 + move (x+absPos.x(),y+absPos.y() );
22.69 +}
22.70 +
22.71 +void FlagRowObj::setVisibility (bool v)
22.72 +{
22.73 + MapObj::setVisibility(v);
22.74 + FlagObj *fo;
22.75 + for (fo=flag.first(); fo; fo=flag.next() )
22.76 + fo->setVisibility (v);
22.77 +}
22.78 +
22.79 +FlagObj* FlagRowObj::addFlag (FlagObj *fo)
22.80 +{
22.81 + FlagObj *newfo=new FlagObj (canvas);
22.82 + newfo->move (absPos.x() + bbox.width(), absPos.y() );
22.83 + newfo->copy (fo); // create a deep copy of fo
22.84 + flag.append(newfo);
22.85 + calcBBoxSize();
22.86 + positionBBox();
22.87 + return newfo;
22.88 +}
22.89 +
22.90 +void FlagRowObj::positionBBox()
22.91 +{
22.92 + bbox.setX (absPos.x() );
22.93 + bbox.setY (absPos.y() );
22.94 +}
22.95 +
22.96 +void FlagRowObj::calcBBoxSize()
22.97 +{
22.98 + QSize size(0,0);
22.99 + QSize boxsize(0,0);
22.100 + FlagObj *fo;
22.101 + for (fo=flag.first(); fo; fo=flag.next() )
22.102 + {
22.103 + size=fo->getSize();
22.104 + // add widths
22.105 + boxsize.setWidth(boxsize.width() + size.width() );
22.106 + // maximize height
22.107 + if (size.height() > boxsize.height() )
22.108 + boxsize.setHeight(size.height() );
22.109 + }
22.110 + bbox.setSize (QSize(boxsize.width(), boxsize.height() ));
22.111 +}
22.112 +
22.113 +QString FlagRowObj::getFlagName (const QPoint &p)
22.114 +{
22.115 + if (!inBBox (p)) return "";
22.116 + FlagObj *fo;
22.117 + for (fo=flag.first();fo; fo=flag.next() )
22.118 + if (fo->inBBox (p)) return fo->getName();
22.119 + return "";
22.120 +
22.121 +
22.122 +}
22.123 +
22.124 +bool FlagRowObj::isActive (const QString &foname)
22.125 +{
22.126 + FlagObj *fo=findFlag (foname);
22.127 + if (parentRow)
22.128 + {
22.129 + if (fo)
22.130 + return fo->isActive();
22.131 + else
22.132 + qWarning ("FlagRowObj::isActive of "+name+" couldn't find "+foname);
22.133 +
22.134 + } else
22.135 + if (fo) return true;
22.136 + return false;
22.137 +}
22.138 +
22.139 +void FlagRowObj::toggle (const QString &foname)
22.140 +{
22.141 + FlagObj *fo=findFlag (foname);
22.142 + if (fo)
22.143 + {
22.144 + // FlagObj is here, it will be active, too.
22.145 + // Deactivate it by removing it from this row.
22.146 + flag.remove (fo);
22.147 + } else
22.148 + {
22.149 + // FlagObj is not present in this row.
22.150 + // Copy it from parentRow
22.151 + fo=parentRow->findFlag (foname);
22.152 + if (fo)
22.153 + {
22.154 + fo=addFlag (fo);
22.155 + fo->activate();
22.156 + } else
22.157 + qWarning ("FlagRowObj ("+name+")::toggle ("+foname+") failed - could not find it in parentRow");
22.158 + }
22.159 + calcBBoxSize();
22.160 + positionBBox();
22.161 +}
22.162 +
22.163 +void FlagRowObj::activate (const QString &foname)
22.164 +{
22.165 + FlagObj *fo=findFlag (foname);
22.166 + if (parentRow)
22.167 + {
22.168 + if (!fo)
22.169 + {
22.170 + // FlagObj is not present in this row.
22.171 + // Copy it from parentRow and activate there
22.172 + fo=parentRow->findFlag (foname);
22.173 + if (fo)
22.174 + {
22.175 + fo=addFlag (fo);
22.176 + fo->activate();
22.177 + fo->setVisibility (visible);
22.178 + calcBBoxSize();
22.179 + positionBBox();
22.180 + } else
22.181 + qWarning ("FlagRowObj ("+name+")::activate ("+foname+") failed - could not find it in parentRow");
22.182 + }
22.183 + } else
22.184 + {
22.185 + // I am the parentRow, mark flag as used
22.186 + if (fo)
22.187 + {
22.188 + fo->setUsed(true);
22.189 + fo->activate();
22.190 + }
22.191 + else
22.192 + qWarning ("FlagRowObj::activate no FlagObj \""+foname+"\" found in parentRow");
22.193 + }
22.194 +}
22.195 +
22.196 +void FlagRowObj::deactivate (const QString &foname)
22.197 +{
22.198 + FlagObj *fo=findFlag (foname);
22.199 + if (fo) flag.remove(fo);
22.200 + calcBBoxSize();
22.201 + positionBBox();
22.202 +}
22.203 +
22.204 +void FlagRowObj::deactivateAll ()
22.205 +{
22.206 + if (!parentRow)
22.207 + {
22.208 + FlagObj *fo;
22.209 + for (fo=flag.first();fo; fo=flag.next() )
22.210 + {
22.211 + fo->deactivate();
22.212 + }
22.213 + } else
22.214 + qWarning ("FlagRowObj::deactivateAll mustn't be called for ordinary rows");
22.215 +}
22.216 +
22.217 +void FlagRowObj::setEnabled (bool b)
22.218 +{
22.219 + // If we have no parent, we are the default FlagRowObj
22.220 + // and have QToolbarButtons
22.221 + if (!parentRow)
22.222 + {
22.223 + FlagObj *fo;
22.224 + for (fo=flag.first();fo; fo=flag.next() )
22.225 + fo->setEnabled (b);
22.226 + }
22.227 +}
22.228 +
22.229 +void FlagRowObj::resetUsedCounter()
22.230 +{
22.231 + FlagObj *fo;
22.232 + for (fo=flag.first();fo; fo=flag.next() )
22.233 + fo->setUsed (false);
22.234 +}
22.235 +
22.236 +QString FlagRowObj::saveToDir (const QString &tmpdir,const QString &prefix, bool writeflags)
22.237 +{
22.238 + // Build xml string
22.239 + QString s;
22.240 + FlagObj *fo;
22.241 + if (parentRow)
22.242 + for (fo=flag.first();fo; fo=flag.next() )
22.243 + {
22.244 + // save flag to xml, if flag is set
22.245 + s+=valueElement("standardflag",fo->getName() );
22.246 +
22.247 + // and tell parentRow, that this flag is used
22.248 + parentRow->activate(fo->getName() );
22.249 + }
22.250 + else
22.251 + // Save icons to dir, if verbose is set (xml export)
22.252 + // and I am a parentRow
22.253 + // and this flag is really used somewhere
22.254 + if (writeflags)
22.255 + for (fo=flag.first();fo; fo=flag.next() )
22.256 + if (fo->isUsed()) fo->saveToDir (tmpdir,prefix);
22.257 + return s;
22.258 +
22.259 +}
22.260 +
22.261 +void FlagRowObj::setName (const QString &n)
22.262 +{
22.263 + name=n;
22.264 +}
22.265 +
22.266 +void FlagRowObj::makeToolbar (QMainWindow *w, const QString &n)
22.267 +{
22.268 + if (!parentRow)
22.269 + {
22.270 + // create bar and buttons
22.271 + QToolBar* tb = new QToolBar( w);
22.272 + tb->setLabel (n);
22.273 + QAction *a;
22.274 + FlagObj *fo;
22.275 + for (fo=flag.first();fo; fo=flag.next() )
22.276 + {
22.277 + a=new QAction (
22.278 + fo->getToolTip(),
22.279 + fo->getPixmap(),
22.280 + fo->getName(),
22.281 + 0,
22.282 + w,
22.283 + fo->getName()
22.284 + );
22.285 + a->setToggleAction(true);
22.286 + // FIXME should not be enabled by default, later in updateToolbar
22.287 + a->setEnabled(true);
22.288 + a->addTo (tb);
22.289 + fo->setButton (a);
22.290 + connect(a, SIGNAL( activated() ),
22.291 + w, SLOT( standardFlagChanged() ) );
22.292 + }
22.293 + } else
22.294 + qWarning ("FlagRowObj::makeToolbar mustn't be called for ordinary rows");
22.295 +}
22.296 +
22.297 +void FlagRowObj::updateToolBar()
22.298 +{
22.299 + FlagObj *fo;
22.300 + if (parentRow)
22.301 + {
22.302 + // We are just a branch, not the toolbar default
22.303 + parentRow->deactivateAll();
22.304 + // In parentRow activate all existing (==active) flags
22.305 + for (fo=flag.first();fo; fo=flag.next() )
22.306 + parentRow->activate(fo->getName());
22.307 + parentRow->updateToolBar();
22.308 + } else
22.309 + {
22.310 + // We are the toolbar default
22.311 + for (fo=flag.first();fo; fo=flag.next() )
22.312 + fo->updateButton();
22.313 + }
22.314 +}
22.315 +
22.316 +FlagObj* FlagRowObj::findFlag (const QString &name)
22.317 +{
22.318 + FlagObj *fo;
22.319 + for (fo=flag.first();fo; fo=flag.next() )
22.320 + {
22.321 + if (fo->getName()==name) return fo;
22.322 + }
22.323 + return NULL;
22.324 +}
22.325 +
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
23.2 +++ b/flagrowobj.h Sun Jan 30 12:59:10 2005 +0000
23.3 @@ -0,0 +1,41 @@
23.4 +#ifndef FLAGROWOBJ_H
23.5 +#define FLAGROWOBJ_H
23.6 +
23.7 +#include <qmainwindow.h>
23.8 +
23.9 +#include "mapobj.h"
23.10 +#include "flagobj.h"
23.11 +
23.12 +class FlagRowObj:public QObject,public MapObj {
23.13 +public:
23.14 + FlagRowObj ();
23.15 + FlagRowObj (QCanvas*);
23.16 + ~FlagRowObj ();
23.17 + virtual void init ();
23.18 + virtual void copy (FlagRowObj*);
23.19 + virtual void clone(FlagRowObj*);
23.20 + virtual void move (double,double);
23.21 + virtual void moveBy (double,double);
23.22 + virtual void setVisibility(bool);
23.23 + virtual FlagObj* addFlag (FlagObj *fo); // make deep copy of FlagObj
23.24 + virtual void positionBBox();
23.25 + virtual void calcBBoxSize();
23.26 + virtual QString getFlagName (const QPoint &p); // Find flag by position
23.27 + bool isActive(const QString&);
23.28 + void toggle (const QString&);
23.29 + void activate(const QString&);
23.30 + void deactivate(const QString&);
23.31 + void deactivateAll();
23.32 + void setEnabled (bool);
23.33 + void resetUsedCounter();
23.34 + QString saveToDir (const QString &,const QString &,bool);
23.35 + void setName (const QString&); // prefix for exporting flags to dir
23.36 + void makeToolbar (QMainWindow*, const QString &); // Create Toolbar buttons
23.37 + void updateToolBar(); // Update Toolbar buttons
23.38 +private:
23.39 + FlagRowObj* parentRow; // look for flags in this row
23.40 + FlagObj* findFlag (const QString&);
23.41 + QPtrList <FlagObj> flag;
23.42 + QString name;
23.43 +};
23.44 +#endif
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
24.2 +++ b/floatimageobj.cpp Sun Jan 30 12:59:10 2005 +0000
24.3 @@ -0,0 +1,219 @@
24.4 +#include "floatimageobj.h"
24.5 +#include "branchobj.h"
24.6 +#include <math.h>
24.7 +
24.8 +
24.9 +/////////////////////////////////////////////////////////////////
24.10 +// FloatImageObj
24.11 +/////////////////////////////////////////////////////////////////
24.12 +
24.13 +int FloatImageObj::counter=0; // make instance
24.14 +
24.15 +
24.16 +FloatImageObj::FloatImageObj ():FloatObj()
24.17 +{
24.18 +// cout << "Const FloatImageObj ()\n";
24.19 + setParObj (this);
24.20 + init();
24.21 + depth=-1;
24.22 +}
24.23 +
24.24 +FloatImageObj::FloatImageObj (QCanvas* c):FloatObj(c)
24.25 +{
24.26 + // cout << "Const FloatImageObj (c) called from MapCenterObj (c)\n";
24.27 + setParObj (this);
24.28 + init();
24.29 + depth=-1;
24.30 +}
24.31 +
24.32 +FloatImageObj::FloatImageObj (QCanvas* c, LinkableMapObj* p):FloatObj(c,p)
24.33 +{
24.34 + // cout << "Const FloatImageObj (c,p)\n";
24.35 + init();
24.36 +}
24.37 +
24.38 +FloatImageObj::~FloatImageObj ()
24.39 +{
24.40 +// cout << "Destr FloatImageObj "<<this<<"\n";
24.41 + delete(icon);
24.42 +}
24.43 +
24.44 +void FloatImageObj::init ()
24.45 +{
24.46 + icon=new ImageObj (canvas);
24.47 + icon->move (absPos.x(), absPos.y() );
24.48 + icon->setVisibility (true);
24.49 + bbox.setSize (QSize(icon->size().width(), icon->size().height()));
24.50 + filename="";
24.51 + originalFilename="no original name available";
24.52 + filetype="";
24.53 + saveInMap=true;
24.54 +}
24.55 +
24.56 +void FloatImageObj::copy (FloatImageObj* other)
24.57 +{
24.58 + FloatObj::copy (other);
24.59 + icon->copy (other->icon);
24.60 + filename=other->filename;
24.61 + saveInMap=other->saveInMap;
24.62 + positionBBox();
24.63 +}
24.64 +
24.65 +void FloatImageObj::setZ (const int &i)
24.66 +{
24.67 + icon->setZ (i);
24.68 + zPlane=i;
24.69 +}
24.70 +
24.71 +int FloatImageObj::z ()
24.72 +{
24.73 + return lrint (icon->z());
24.74 +}
24.75 +
24.76 +bool FloatImageObj::load (const QString &fn)
24.77 +{
24.78 + if( icon->load (fn))
24.79 + {
24.80 + bbox.setSize (QSize(icon->size().width()+8, icon->size().height()+8));
24.81 + positionBBox();
24.82 + filename=fn;
24.83 + filetype=QPixmap::imageFormat (fn);
24.84 + return true;
24.85 + } else
24.86 + return false;
24.87 +
24.88 +}
24.89 +
24.90 +void FloatImageObj::save (const QString &fn, const char *format)
24.91 +{
24.92 + icon->save (fn,format);
24.93 +}
24.94 +
24.95 +void FloatImageObj::setOriginalFilename(const QString & fn)
24.96 +{
24.97 + originalFilename=fn;
24.98 +}
24.99 +
24.100 +QString FloatImageObj::getOriginalFilename()
24.101 +{
24.102 + return originalFilename;
24.103 +}
24.104 +
24.105 +void FloatImageObj::setVisibility(bool v)
24.106 +{
24.107 + LinkableMapObj::setVisibility(v);
24.108 + if (v)
24.109 + icon->setVisibility(true);
24.110 + else
24.111 + icon->setVisibility(false);
24.112 +}
24.113 +
24.114 +void FloatImageObj::move (double x, double y)
24.115 +{
24.116 + FloatObj::move(x,y);
24.117 + icon->move (x+4,y+4);
24.118 + positionBBox();
24.119 +}
24.120 +
24.121 +void FloatImageObj::move (QPoint p)
24.122 +{
24.123 + move (p.x(), p.y());
24.124 +}
24.125 +
24.126 +void FloatImageObj::positionBBox()
24.127 +{
24.128 + // TODO
24.129 +}
24.130 +
24.131 +void FloatImageObj::calcBBoxSize()
24.132 +{
24.133 + // TODO
24.134 +}
24.135 +
24.136 +QString FloatImageObj::saveToDir (const QString &tmpdir,const QString &prefix)
24.137 +{
24.138 + counter++;
24.139 +
24.140 + QString posAttr=
24.141 + attribut("relPosX",QString().setNum(relPos.x(),10)) +
24.142 + attribut("relPosY",QString().setNum(relPos.y(),10));
24.143 +
24.144 + QString useOrientAttr;
24.145 + if (useOrientation)
24.146 + useOrientAttr=attribut ("useOrientation","true");
24.147 + else
24.148 + useOrientAttr=attribut ("useOrientation","false");
24.149 +
24.150 + QString saveInMapAttr;
24.151 + if (saveInMap)
24.152 + saveInMapAttr=attribut ("saveInMap","true");
24.153 + else
24.154 +
24.155 + saveInMapAttr=attribut ("saveInMap","false");
24.156 +
24.157 + QString exportAttr;
24.158 + if (floatExport)
24.159 + exportAttr=attribut ("floatExport","true");
24.160 + else
24.161 + exportAttr=attribut ("floatExport","false");
24.162 +
24.163 + QString zAttr=attribut ("zPlane",QString().setNum(zPlane));
24.164 + QString url;
24.165 +
24.166 + // prevent saving as GIF
24.167 + if (filetype=="GIF")
24.168 + filetype="PNG";
24.169 +
24.170 + url="images/"+prefix+"image-" + QString().number(counter,10) + "." +filetype;
24.171 +
24.172 + // And really save the image
24.173 + icon->save (tmpdir + "/" + url, filetype);
24.174 +
24.175 + return singleElement ("floatimage",
24.176 + posAttr +
24.177 + useOrientAttr +
24.178 + saveInMapAttr +
24.179 + exportAttr +
24.180 + zAttr +
24.181 + attribut ("href",QString ("file:")+url)
24.182 + );
24.183 +}
24.184 +
24.185 +void FloatImageObj::resetSaveCounter()
24.186 +{
24.187 + counter=0;
24.188 +}
24.189 +
24.190 +
24.191 +QRect FloatImageObj::getTotalBBox()
24.192 +{
24.193 + return bbox;
24.194 +}
24.195 +
24.196 +QRect FloatImageObj::getBBoxSizeWithChilds()
24.197 +{
24.198 + //FIXME abstract in linkablemapobj.h, not calculated
24.199 + return bboxTotal;
24.200 +}
24.201 +
24.202 +void FloatImageObj::calcBBoxSizeWithChilds()
24.203 +{
24.204 + //FIXME abstract in linkablemapobj.h
24.205 +}
24.206 +
24.207 +QString FloatImageObj::getSelectString()
24.208 +{
24.209 + QString s;
24.210 + if (parObj)
24.211 + {
24.212 + if (parObj->getDepth()==0)
24.213 + s= "fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this));
24.214 + else
24.215 + s= ((BranchObj*)(parObj))->getSelectString() + ",fi:" + QString("%1").arg( ((BranchObj*)(parObj))->getFloatImageNum(this));
24.216 + } else
24.217 + s="mc:";
24.218 +
24.219 + return s;
24.220 +
24.221 +}
24.222 +
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
25.2 +++ b/floatimageobj.h Sun Jan 30 12:59:10 2005 +0000
25.3 @@ -0,0 +1,44 @@
25.4 +#ifndef FLOATIMAGEOBJ_H
25.5 +#define FLOATIMAGEOBJ_H
25.6 +
25.7 +#include "floatobj.h"
25.8 +
25.9 +/////////////////////////////////////////////////////////////////////////////
25.10 +class FloatImageObj:public FloatObj {
25.11 +public:
25.12 + FloatImageObj ();
25.13 + FloatImageObj (QCanvas*);
25.14 + FloatImageObj (QCanvas*, LinkableMapObj* parent);
25.15 + ~FloatImageObj ();
25.16 + virtual void init ();
25.17 + virtual void copy (FloatImageObj*);
25.18 + virtual void setZ (const int&);
25.19 + virtual int z();
25.20 +
25.21 + virtual bool load (const QString &);
25.22 + virtual void save (const QString &, const char *);
25.23 + virtual void setOriginalFilename(const QString &);
25.24 + virtual QString getOriginalFilename();
25.25 + virtual void setVisibility(bool); // set vis. for w
25.26 + virtual void move (double x,double y);
25.27 + virtual void move (QPoint);
25.28 + virtual void positionBBox();
25.29 + virtual void calcBBoxSize();
25.30 + virtual QRect getTotalBBox(); // return BBox including childs
25.31 + virtual QRect getBBoxSizeWithChilds(); // return size of BBox including childs
25.32 + virtual void calcBBoxSizeWithChilds(); // calc size of BBox including childs recursivly
25.33 + virtual QString saveToDir(const QString &,const QString&);
25.34 + virtual void resetSaveCounter();
25.35 + virtual QString getSelectString();
25.36 +
25.37 +
25.38 +protected:
25.39 + ImageObj *icon;
25.40 + bool saveInMap;
25.41 + static int counter; // numerate the files during saveToDir
25.42 + QString filetype;
25.43 + QString filename;
25.44 + QString originalFilename;
25.45 +};
25.46 +
25.47 +#endif
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
26.2 +++ b/floatobj.cpp Sun Jan 30 12:59:10 2005 +0000
26.3 @@ -0,0 +1,163 @@
26.4 +#include "floatobj.h"
26.5 +
26.6 +extern QAction* actionEditToggleFloatExport;
26.7 +
26.8 +/////////////////////////////////////////////////////////////////
26.9 +// FloatObj
26.10 +/////////////////////////////////////////////////////////////////
26.11 +
26.12 +FloatObj::FloatObj ():LinkableMapObj()
26.13 +{
26.14 +// cout << "Const FloatObj ()\n";
26.15 + setParObj (this);
26.16 + init();
26.17 + depth=-1;
26.18 +}
26.19 +
26.20 +FloatObj::FloatObj (QCanvas* c):LinkableMapObj(c)
26.21 +{
26.22 +// cout << "Const FloatObj (c) called from MapCenterObj (c)\n";
26.23 + setParObj (this);
26.24 + init();
26.25 + depth=-1;
26.26 +}
26.27 +
26.28 +FloatObj::FloatObj (QCanvas* c, LinkableMapObj* p):LinkableMapObj (c)
26.29 +{
26.30 +// cout << "Const FloatObj (c,p)\n";
26.31 + setParObj (p);
26.32 + depth=p->getDepth()+1;
26.33 + init();
26.34 +}
26.35 +
26.36 +FloatObj::~FloatObj ()
26.37 +{
26.38 +// cout << "Destr FloatObj\n";
26.39 +}
26.40 +
26.41 +void FloatObj::init ()
26.42 +{
26.43 + setChildObj(this);
26.44 + relPos=getRandPos();
26.45 + useOrientation=true;
26.46 + floatExport=true;
26.47 + zPlane=Z_ICON;
26.48 +}
26.49 +
26.50 +void FloatObj::copy (FloatObj* other)
26.51 +{
26.52 + LinkableMapObj::copy (other);
26.53 + relPos=other->relPos;
26.54 + useOrientation=other->useOrientation;
26.55 + setVisibility (other->visible);
26.56 +}
26.57 +
26.58 +void FloatObj::setRelPos()
26.59 +{
26.60 + if (useOrientation)
26.61 + {
26.62 + if (parObj->getOrientation()==OrientLeftOfCenter)
26.63 + relPos.setX ( parObj->x() +parObj->width() - bbox.width() -absPos.x());
26.64 + else
26.65 + relPos.setX (absPos.x() - parObj->x() );
26.66 + }
26.67 + else
26.68 + relPos.setX (absPos.x() - parObj->x() );
26.69 + relPos.setY (absPos.y() - parObj->y() );
26.70 +}
26.71 +
26.72 +void FloatObj::setRelPos(const QPoint &p)
26.73 +{
26.74 + relPos=p;
26.75 +}
26.76 +
26.77 +void FloatObj::setZ(const int &i)
26.78 +{
26.79 + zPlane=i;
26.80 +}
26.81 +
26.82 +int FloatObj::z()
26.83 +{
26.84 + return zPlane;
26.85 +}
26.86 +
26.87 +
26.88 +void FloatObj::setUseOrientation (const bool &b)
26.89 +{
26.90 + if (useOrientation!=b)
26.91 + {
26.92 + useOrientation=b;
26.93 + requestReposition();
26.94 + }
26.95 +}
26.96 +
26.97 +void FloatObj::setFloatExport(const bool& b)
26.98 +{
26.99 + floatExport=b;
26.100 +}
26.101 +
26.102 +bool FloatObj::getFloatExport()
26.103 +{
26.104 + return floatExport;
26.105 +}
26.106 +
26.107 +void FloatObj::move (double x, double y)
26.108 +{
26.109 + MapObj::move(x,y);
26.110 + selbox->move(x,y);
26.111 +}
26.112 +
26.113 +void FloatObj::move (QPoint p)
26.114 +{
26.115 + move (p.x(), p.y());
26.116 +}
26.117 +
26.118 +void FloatObj::reposition()
26.119 +{
26.120 + if (useOrientation)
26.121 + {
26.122 + if (parObj->getOrientation()==OrientLeftOfCenter)
26.123 + move (parObj->x() - relPos.x() + parObj->width() - bbox.width(), parObj->y()+relPos.y());
26.124 + else
26.125 + move (parObj->x()+relPos.x(), parObj->y()+relPos.y());
26.126 + }
26.127 + else
26.128 + move (parObj->x()+relPos.x(), parObj->y()+relPos.y());
26.129 + updateLink();
26.130 +}
26.131 +
26.132 +QRect FloatObj::getTotalBBox()
26.133 +{
26.134 + return bbox;
26.135 +}
26.136 +
26.137 +QRect FloatObj::getBBoxSizeWithChilds()
26.138 +{
26.139 + return bboxTotal;
26.140 +}
26.141 +
26.142 +void FloatObj::select()
26.143 +{
26.144 + LinkableMapObj::select();
26.145 + // Temporary draw the link while FO is selected
26.146 + if (style==StyleUndef)
26.147 + {
26.148 + setLinkStyle(getDefLinkStyle());
26.149 + setLinkColor(parObj->getLinkColor());
26.150 + }
26.151 +
26.152 + // Update FloatExport switch in context menu
26.153 + if (floatExport)
26.154 + actionEditToggleFloatExport->setEnabled (true);
26.155 + else
26.156 + actionEditToggleFloatExport->setEnabled (true);
26.157 +
26.158 +
26.159 +}
26.160 +
26.161 +void FloatObj::unselect()
26.162 +{
26.163 + LinkableMapObj::unselect();
26.164 + setLinkStyle (StyleUndef);
26.165 +}
26.166 +
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
27.2 +++ b/floatobj.h Sun Jan 30 12:59:10 2005 +0000
27.3 @@ -0,0 +1,45 @@
27.4 +#ifndef FLOATOBJ_H
27.5 +#define FLOATOBJ_H
27.6 +
27.7 +#include "linkablemapobj.h"
27.8 +
27.9 +/////////////////////////////////////////////////////////////////////////////
27.10 +class FloatObj:public LinkableMapObj {
27.11 +public:
27.12 + FloatObj ();
27.13 + FloatObj (QCanvas*);
27.14 + FloatObj (QCanvas*, LinkableMapObj* parent);
27.15 + ~FloatObj ();
27.16 + virtual void init ();
27.17 + virtual void copy (FloatObj*);
27.18 + virtual bool load (const QString&)=0;
27.19 + virtual void setRelPos(); // set relPos to current parentPos
27.20 + virtual void setRelPos(const QPoint&);
27.21 + virtual void setZ(const int&); // set zPlane
27.22 + virtual int z();
27.23 + virtual void setUseOrientation (const bool &);
27.24 + virtual void setFloatExport (const bool &);
27.25 + virtual bool getFloatExport ();
27.26 +
27.27 + virtual void move (double,double);
27.28 + virtual void move (QPoint);
27.29 +
27.30 + virtual void reposition();
27.31 +
27.32 + virtual QRect getTotalBBox(); // return BBox including childs
27.33 + virtual QRect getBBoxSizeWithChilds(); // return size of BBox including childs
27.34 +
27.35 + virtual QString saveToDir(const QString &,const QString&)=0;
27.36 + virtual void resetSaveCounter()=0;
27.37 +
27.38 + virtual void select();
27.39 + virtual void unselect();
27.40 +
27.41 +protected:
27.42 + QPoint relPos;
27.43 + bool useOrientation;
27.44 + bool floatExport;
27.45 + int zPlane;
27.46 +};
27.47 +
27.48 +#endif
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
28.2 +++ b/frameobj.cpp Sun Jan 30 12:59:10 2005 +0000
28.3 @@ -0,0 +1,146 @@
28.4 +#include "frameobj.h"
28.5 +
28.6 +#include <qcolor.h>
28.7 +
28.8 +/////////////////////////////////////////////////////////////////
28.9 +// FrameObj
28.10 +/////////////////////////////////////////////////////////////////
28.11 +FrameObj::FrameObj() : MapObj()
28.12 +{
28.13 +// cout << "Const FrameObj ()\n";
28.14 + init ();
28.15 +}
28.16 +
28.17 +FrameObj::FrameObj(QCanvas* c) :MapObj(c)
28.18 +{
28.19 +// cout << "Const FrameObj\n";
28.20 + init ();
28.21 +}
28.22 +
28.23 +FrameObj::~FrameObj()
28.24 +{
28.25 + clear();
28.26 +}
28.27 +
28.28 +void FrameObj::init()
28.29 +{
28.30 + type=NoFrame;
28.31 + border=0;
28.32 +}
28.33 +
28.34 +void FrameObj::clear()
28.35 +{
28.36 + switch (type)
28.37 + {
28.38 + case NoFrame:
28.39 + break;
28.40 + case Rectangle:
28.41 + delete rectFrame;
28.42 + break;
28.43 + }
28.44 + type=NoFrame;
28.45 + border=0;
28.46 +}
28.47 +
28.48 +void FrameObj::move(double x, double y)
28.49 +{
28.50 + switch (type)
28.51 + {
28.52 + case NoFrame:
28.53 + break;
28.54 + case Rectangle:
28.55 + rectFrame->move (x,y);
28.56 + break;
28.57 + }
28.58 +}
28.59 +
28.60 +void FrameObj::moveBy(double x, double y)
28.61 +{
28.62 + MapObj::moveBy (x,y);
28.63 +}
28.64 +
28.65 +void FrameObj::positionBBox()
28.66 +{
28.67 +}
28.68 +
28.69 +void FrameObj::calcBBoxSize()
28.70 +{
28.71 +}
28.72 +
28.73 +void FrameObj::setRect(const QRect &r)
28.74 +{
28.75 + bbox=r;
28.76 + switch (type)
28.77 + {
28.78 + case NoFrame:
28.79 + break;
28.80 + case Rectangle:
28.81 + rectFrame->setX (bbox.x() );
28.82 + rectFrame->setY (bbox.y() );
28.83 + rectFrame->setSize (bbox.width(),bbox.height() );
28.84 + break;
28.85 + }
28.86 +}
28.87 +
28.88 +int FrameObj::getBorder()
28.89 +{
28.90 + return border;
28.91 +}
28.92 +
28.93 +FrameType FrameObj::getFrameType()
28.94 +{
28.95 + return type;
28.96 +}
28.97 +
28.98 +QString FrameObj::getFrameTypeName()
28.99 +{
28.100 + switch (type)
28.101 + {
28.102 + case Rectangle:
28.103 + return "Rectangle";
28.104 + break;
28.105 + default:
28.106 + return "NoFrame";
28.107 + }
28.108 +}
28.109 +
28.110 +void FrameObj::setFrameType(const FrameType &t)
28.111 +{
28.112 + if (t!=type)
28.113 + {
28.114 + clear();
28.115 + type=t;
28.116 + switch (type)
28.117 + {
28.118 + case NoFrame:
28.119 + border=0;
28.120 + break;
28.121 + case Rectangle:
28.122 + border=10;
28.123 + rectFrame = new QCanvasRectangle (canvas);
28.124 + rectFrame->setZ(Z_FRAME);
28.125 + rectFrame->setBrush( QColor("white") );
28.126 + rectFrame->setPen( QPen(QColor("black") ));
28.127 + if (visible)
28.128 + rectFrame->show();
28.129 + else
28.130 + rectFrame->hide();
28.131 + break;
28.132 + }
28.133 + }
28.134 +}
28.135 +
28.136 +void FrameObj::setFrameType(const QString &t)
28.137 +{
28.138 + if (t=="Rectangle")
28.139 + FrameObj::setFrameType (Rectangle);
28.140 + else
28.141 + FrameObj::setFrameType (NoFrame);
28.142 +}
28.143 +
28.144 +void FrameObj::setVisibility (bool v)
28.145 +{
28.146 + MapObj::setVisibility(v);
28.147 + setFrameType (type); // changes on visibility depend on type...
28.148 +}
28.149 +
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
29.2 +++ b/frameobj.h Sun Jan 30 12:59:10 2005 +0000
29.3 @@ -0,0 +1,33 @@
29.4 +#ifndef FRAMEOBJ_H
29.5 +#define FRAMEOBJ_H
29.6 +
29.7 +#include "mapobj.h"
29.8 +
29.9 +enum FrameType {NoFrame,Rectangle};
29.10 +
29.11 +class FrameObj:public MapObj {
29.12 +public:
29.13 + FrameObj();
29.14 + FrameObj(QCanvas*);
29.15 + ~FrameObj();
29.16 + void init();
29.17 + void clear();
29.18 + void move (double x,double y); // move to absolute Position
29.19 + void moveBy (double x,double y); // move to relative Position
29.20 + void positionBBox();
29.21 + void calcBBoxSize();
29.22 + void setRect (const QRect &); // set dimensions
29.23 + int getBorder();
29.24 + FrameType getFrameType ();
29.25 + QString getFrameTypeName ();
29.26 + void setFrameType (const FrameType &);
29.27 + void setFrameType (const QString &);
29.28 + void setVisibility(bool);
29.29 +
29.30 +protected:
29.31 + FrameType type;
29.32 + QCanvasRectangle* rectFrame;
29.33 + int border; // distance text - frame
29.34 +};
29.35 +#endif
29.36 +
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
30.2 +++ b/headingobj.cpp Sun Jan 30 12:59:10 2005 +0000
30.3 @@ -0,0 +1,246 @@
30.4 +#include "headingobj.h"
30.5 +
30.6 +/////////////////////////////////////////////////////////////////
30.7 +// HeadingObj
30.8 +/////////////////////////////////////////////////////////////////
30.9 +HeadingObj::HeadingObj() : MapObj()
30.10 +{
30.11 +// cout << "Const HeadingObj ()\n";
30.12 + init ();
30.13 +}
30.14 +
30.15 +HeadingObj::HeadingObj(QCanvas* c) :MapObj(c)
30.16 +{
30.17 +// cout << "Const HeadingObj\n";
30.18 + init ();
30.19 +}
30.20 +
30.21 +HeadingObj::~HeadingObj()
30.22 +{
30.23 + textline.clear();
30.24 +}
30.25 +
30.26 +void HeadingObj::init()
30.27 +{
30.28 + textline.setAutoDelete (TRUE);
30.29 + textwidth=40;
30.30 + color=QColor ("black");
30.31 + font=QFont();
30.32 +}
30.33 +
30.34 +void HeadingObj::copy(HeadingObj *other)
30.35 +{
30.36 + MapObj::copy (other);
30.37 + textwidth=other->textwidth;
30.38 + color=other->color;
30.39 + font=other->font;
30.40 + setText (other->text() );
30.41 +}
30.42 +
30.43 +void HeadingObj::move(double x, double y)
30.44 +{
30.45 + MapObj::move(x,y);
30.46 + int h; // height of a textline
30.47 + int ho; // offset of height while drawing all lines
30.48 + if (textline.first() )
30.49 + h=textline.first()->boundingRect().height();
30.50 + else
30.51 + h=2;
30.52 + QCanvasText *t;
30.53 + ho=0;
30.54 + for (t=textline.first(); t; t=textline.next() )
30.55 + {
30.56 + t->move(x,y+ho);
30.57 + ho=ho+h;
30.58 + }
30.59 +}
30.60 +
30.61 +
30.62 +void HeadingObj::moveBy(double x, double y)
30.63 +{
30.64 + move (x+absPos.x(),y+absPos.y() );
30.65 +}
30.66 +
30.67 +void HeadingObj::positionBBox()
30.68 +{
30.69 + bbox.setX (absPos.x());
30.70 + bbox.setY (absPos.y());
30.71 +}
30.72 +
30.73 +void HeadingObj::calcBBoxSize()
30.74 +{
30.75 + int w=0;
30.76 + int h=0;
30.77 + // Using Backspace an empty heading might easily be created, then there
30.78 + // would be textline.first()==NULL This can be worked around by the following, but
30.79 + // then no selection would be visible, thus we prevent it in ::setText()
30.80 + if (!textline.isEmpty() )
30.81 + {
30.82 + QCanvasText *t;
30.83 + for (t=textline.first(); t; t=textline.next() )
30.84 + {
30.85 + h+=t->boundingRect().height();
30.86 + if (w<t->boundingRect().width() )
30.87 + w=t->boundingRect().width();
30.88 + }
30.89 + }
30.90 + bbox.setSize (QSize(w,h));
30.91 +}
30.92 +
30.93 +QCanvasText* HeadingObj::newLine(QString s)
30.94 +{
30.95 + QCanvasText *t;
30.96 + t = new QCanvasText(canvas);
30.97 + t->setFont (font);
30.98 + t->setColor (color);
30.99 + t->setZ(Z_TEXT);
30.100 + t->setText(s);
30.101 + t->show();
30.102 + return t;
30.103 +}
30.104 +
30.105 +void HeadingObj::setText (QString s)
30.106 +{
30.107 + heading=s;
30.108 +
30.109 + // remove old textlines and prepare generating new ones
30.110 + textline.clear();
30.111 +
30.112 + // prevent empty textline, so at least a small selection stays
30.113 + // visible for this heading
30.114 + if (s.length()==0) s=" ";
30.115 +
30.116 + int i=0; // index for actual search for ws
30.117 + int j=0; // index of last ws
30.118 + int k=0; // index of "<br>" or similar linebreak
30.119 + int br=0; // width of found break, e.g. for <br> it is 4
30.120 +
30.121 + // set the text and wrap lines
30.122 + while (s.length()>0)
30.123 + {
30.124 + // ok, some people wanted manual linebreaks, here we go
30.125 + k=s.find ("<br>",i,false);
30.126 + if (k>=0)
30.127 + {
30.128 + br=4;
30.129 + i=k;
30.130 + } else
30.131 + i=s.find (" ",i,false);
30.132 + if (i<0 && j==0)
30.133 + { // no ws found at all in s
30.134 + // append whole s
30.135 + textline.append (newLine(s));
30.136 + s="";
30.137 + } else
30.138 + {
30.139 + if (i<0 && j>0)
30.140 + { // no ws found in actual search
30.141 + if (s.length()<=textwidth)
30.142 + {
30.143 + textline.append (newLine(s));
30.144 + s="";
30.145 + } else
30.146 + {
30.147 + textline.append (newLine(s.left(j)));
30.148 + s=s.mid(j+1,s.length());
30.149 + j=0;
30.150 + }
30.151 + } else
30.152 + {
30.153 + if (i>= 0 && i<=static_cast <int> (textwidth))
30.154 + { // there is a ws in textwidth
30.155 + if (br>0)
30.156 + {
30.157 + // here is a linebreak
30.158 + textline.append (newLine(s.left(i)));
30.159 + s=s.mid(i+br,s.length());
30.160 + i=0;
30.161 + j=0;
30.162 + br=0;
30.163 + } else
30.164 + {
30.165 + j=i;
30.166 + i++;
30.167 + }
30.168 + } else
30.169 + {
30.170 + if (i>static_cast <int> (textwidth) )
30.171 + {
30.172 + if (j>0)
30.173 + { // a ws out of textwidth, but we have also one in
30.174 + textline.append (newLine(s.left(j)));
30.175 + s=s.mid(j+1,s.length());
30.176 + i=0;
30.177 + j=0;
30.178 + } else
30.179 + { // a ws out of text, but none in
30.180 + textline.append (newLine(s.left(i)));
30.181 + s=s.mid(i+1,s.length());
30.182 + i=0;
30.183 + }
30.184 + }
30.185 + }
30.186 + }
30.187 + }
30.188 + }
30.189 + setVisibility (visible);
30.190 + calcBBoxSize();
30.191 +}
30.192 +
30.193 +QString HeadingObj::text ()
30.194 +{
30.195 + return heading;
30.196 +}
30.197 +
30.198 +void HeadingObj::setFont (QFont f)
30.199 +{
30.200 + if (font!=f)
30.201 + {
30.202 + font=f;
30.203 + setText (text());
30.204 + }
30.205 +}
30.206 +
30.207 +QFont HeadingObj::getFont()
30.208 +{
30.209 + return font;
30.210 +}
30.211 +
30.212 +
30.213 +void HeadingObj::setColor (QColor c)
30.214 +{
30.215 + if (color!=c)
30.216 + {
30.217 + color=c;
30.218 + QCanvasText *t;
30.219 + for (t=textline.first(); t; t=textline.next() )
30.220 + t->setColor(c);
30.221 + }
30.222 +}
30.223 +
30.224 +QColor HeadingObj::getColor()
30.225 +{
30.226 + return color;
30.227 +}
30.228 +
30.229 +void HeadingObj::setVisibility (bool v)
30.230 +{
30.231 + MapObj::setVisibility(v);
30.232 + QCanvasText *t;
30.233 + for (t=textline.first(); t; t=textline.next() )
30.234 + if (v)
30.235 + t->show();
30.236 + else
30.237 + t->hide();
30.238 +}
30.239 +
30.240 +int HeadingObj::getHeight ()
30.241 +{
30.242 + return bbox.height();
30.243 +}
30.244 +
30.245 +int HeadingObj::getWidth()
30.246 +{
30.247 + return bbox.width();
30.248 +}
30.249 +
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
31.2 +++ b/headingobj.h Sun Jan 30 12:59:10 2005 +0000
31.3 @@ -0,0 +1,37 @@
31.4 +#ifndef HEADINGOBJ_H
31.5 +#define HEADINGOBJ_H
31.6 +
31.7 +#include "mapobj.h"
31.8 +
31.9 +class HeadingObj:public MapObj {
31.10 +public:
31.11 + HeadingObj();
31.12 + HeadingObj(QCanvas*);
31.13 + virtual ~HeadingObj();
31.14 + virtual void init();
31.15 + virtual void copy(HeadingObj*);
31.16 + virtual void move (double x,double y); // move to absolute Position
31.17 + virtual void moveBy (double x,double y); // move to relative Position
31.18 + virtual void positionBBox();
31.19 + virtual void calcBBoxSize();
31.20 +private:
31.21 + QCanvasText* newLine(QString); // generate new textline
31.22 +public:
31.23 + virtual void setText(QString);
31.24 + virtual QString text();
31.25 + virtual void setFont(QFont);
31.26 + virtual QFont getFont();
31.27 + virtual void setColor(QColor);
31.28 + virtual QColor getColor();
31.29 + virtual void setVisibility(bool);
31.30 + virtual int getHeight();
31.31 + virtual int getWidth();
31.32 +
31.33 +protected:
31.34 + QString heading;
31.35 + uint textwidth; // width for formatting text
31.36 + QPtrList <QCanvasText> textline; // a part of e.g. the parabel
31.37 + QColor color;
31.38 + QFont font;
31.39 +};
31.40 +#endif
32.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
32.2 +++ b/icons/cursorcolorpicker.xpm Sun Jan 30 12:59:10 2005 +0000
32.3 @@ -0,0 +1,38 @@
32.4 +/* XPM */
32.5 +static const char * cursorcolorpicker_xpm[] = {
32.6 +"32 32 3 1",
32.7 +" c None",
32.8 +". c #000000",
32.9 +"+ c #FFFFFF",
32.10 +" ",
32.11 +" ",
32.12 +" ",
32.13 +" ",
32.14 +" ",
32.15 +" ",
32.16 +" ",
32.17 +" ",
32.18 +" ",
32.19 +" ",
32.20 +" ",
32.21 +" ... ",
32.22 +" ..... ",
32.23 +" ..... ",
32.24 +" ......... ",
32.25 +" ....... ",
32.26 +" . ... ",
32.27 +" . .. ",
32.28 +" . . . ",
32.29 +" . . ",
32.30 +" . . ",
32.31 +" . . ",
32.32 +" . . ",
32.33 +" . . ",
32.34 +" . . ",
32.35 +" . .. ",
32.36 +" . ",
32.37 +" ",
32.38 +" ",
32.39 +" ",
32.40 +" ",
32.41 +" "};
33.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
33.2 +++ b/icons/cursorcolorpicker16.xpm Sun Jan 30 12:59:10 2005 +0000
33.3 @@ -0,0 +1,22 @@
33.4 +/* XPM */
33.5 +static const char * cursorcolorpicker_xpm[] = {
33.6 +"16 16 3 1",
33.7 +" c None",
33.8 +". c #000000",
33.9 +"+ c #FFFFFF",
33.10 +" ... ",
33.11 +" .....",
33.12 +" .....",
33.13 +" .........",
33.14 +" ....... ",
33.15 +" . ... ",
33.16 +" . .. ",
33.17 +" . . . ",
33.18 +" . . ",
33.19 +" . . ",
33.20 +" . . ",
33.21 +" . . ",
33.22 +". . ",
33.23 +". . ",
33.24 +". .. ",
33.25 +" . "};
34.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
34.2 +++ b/icons/cursorhandopen.xpm Sun Jan 30 12:59:10 2005 +0000
34.3 @@ -0,0 +1,24 @@
34.4 +static unsigned char chandopen[] = { // cursor bitmap
34.5 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34.6 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34.7 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x40,0x02,0x00,0x00,
34.8 + 0x70,0x0e,0x00,0x00,0x48,0x12,0x00,0x00,0x48,0x12,0x00,0x00,0x48,0x32,0x00,
34.9 + 0x00,0x48,0x52,0x00,0xc0,0x48,0x52,0x00,0x20,0x49,0x50,0x00,0x20,0x06,0x50,
34.10 + 0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x40,0x00,0x00,0x01,0x40,0x00,0x00,0x02,
34.11 + 0x20,0x00,0x00,0x04,0x10,0x00,0x00,0x08,0x10,0x00,0x00,0x08,0x08,0x00,0x00,
34.12 + 0x08,0x08,0x00,0x00,0x10,0x08,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,0x00,
34.13 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
34.14 +
34.15 +static unsigned char chandopenmask[] = { // cursor bitmap mask
34.16 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34.17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34.18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34.19 + 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xf0, 0x0f, 0x00,
34.20 + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x3f, 0x00,
34.21 + 0x00, 0xf8, 0x7f, 0x00, 0xc0, 0xf8, 0x7f, 0x00, 0xe0, 0xf9, 0x7f, 0x00,
34.22 + 0xe0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x80, 0xff, 0x7f, 0x00,
34.23 + 0x00, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0xfc, 0x1f, 0x00,
34.24 + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00,
34.25 + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
34.26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
34.27 +
35.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
35.2 +++ b/icons/cursorhandopen16.xpm Sun Jan 30 12:59:10 2005 +0000
35.3 @@ -0,0 +1,10 @@
35.4 +static unsigned char chandopen[] = { // cursor bitmap
35.5 + 0x00,0x06,0x00,0x09,0xc0,0x39,0x20,0x29,0x20,0x69,0x20,0xa9,0x20,0xa9,0x22,
35.6 + 0xa9,0x25,0xa1,0x19,0xa0,0x01,0x80,0x02,0x80,0x04,0x80,0x08,0x80,0x10,0x40,
35.7 + 0x20,0x40};
35.8 +
35.9 +static unsigned char chandopenmask[] = { // cursor bitmap mask
35.10 + 0x00,0x06,0x00,0x0f,0xc0,0x3f,0xe0,0x3f,0xe0,0x7f,0xe0,0xff,0xe0,0xff,0xe2,
35.11 + 0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfc,0xff,0xf8,0xff,0xf0,0x7f,
35.12 + 0xe0,0x7f};
35.13 +
36.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
36.2 +++ b/icons/editcopy.xpm Sun Jan 30 12:59:10 2005 +0000
36.3 @@ -0,0 +1,36 @@
36.4 +/* XPM */
36.5 +static const char *editcopy_xpm[] = {
36.6 +/* columns rows colors chars-per-pixel */
36.7 +"22 22 8 1",
36.8 +" c Gray100",
36.9 +". c #8b8bfd",
36.10 +"X c #3c3cfd",
36.11 +"o c #000082",
36.12 +"O c Gray0",
36.13 +"+ c None",
36.14 +"@ c Gray0",
36.15 +"# c Gray0",
36.16 +/* pixels */
36.17 +"++++++++++++++++++++++",
36.18 +"++++++++++++++++++++++",
36.19 +"OOOOOOOO++++++++++++++",
36.20 +"O OO+++++++++++++",
36.21 +"O OOOO O O++++++++++++",
36.22 +"O O O+++++++++++",
36.23 +"O OOOO Ooooooooo++++++",
36.24 +"O Oo oo+++++",
36.25 +"O OOOOO o OOOO oXo++++",
36.26 +"O o o.Xo+++",
36.27 +"O OOOOO o OOOO o .Xo++",
36.28 +"O o oooooo+",
36.29 +"O OOOOO o OOOO o+",
36.30 +"O o o+",
36.31 +"O OOOOO o OOOOOOOOO o+",
36.32 +"O o o+",
36.33 +"OOOOOOOOo OOOOOOOOO o+",
36.34 +"++++++++o o+",
36.35 +"++++++++o OOOOOOOOO o+",
36.36 +"++++++++o o+",
36.37 +"++++++++ooooooooooooo+",
36.38 +"++++++++++++++++++++++"
36.39 +};
37.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
37.2 +++ b/icons/editcut.xpm Sun Jan 30 12:59:10 2005 +0000
37.3 @@ -0,0 +1,32 @@
37.4 +/* XPM */
37.5 +static const char *editcut_xpm[] = {
37.6 +/* columns rows colors chars-per-pixel */
37.7 +"22 22 4 1",
37.8 +" c Gray100",
37.9 +". c #000082",
37.10 +"X c Gray0",
37.11 +"o c None",
37.12 +/* pixels */
37.13 +"oooooooooooooooooooooo",
37.14 +"oooooooXoooooXoooooooo",
37.15 +"oooooooXoooooXoooooooo",
37.16 +"oooooooXoooooXoooooooo",
37.17 +"oooooooXooooXXoooooooo",
37.18 +"oooooooXXoooXooooooooo",
37.19 +"ooooooooXoooXooooooooo",
37.20 +"ooooooooXXoXXooooooooo",
37.21 +"oooooooooXXXoooooooooo",
37.22 +"oooooooooXXXoooooooooo",
37.23 +"ooooooooooXooooooooooo",
37.24 +"ooooooooo.X.oooooooooo",
37.25 +"oooooooo..o...oooooooo",
37.26 +"ooooooo.o.o.oo.ooooooo",
37.27 +"oooooo.oo.o.ooo.oooooo",
37.28 +"ooooo.ooo.o.oooo.ooooo",
37.29 +"oooo.oooo.o.oooo.ooooo",
37.30 +"oooo.oooo.oo.ooo.ooooo",
37.31 +"oooo.oooo.oo.oo.oooooo",
37.32 +"oooo.ooo.oooo..ooooooo",
37.33 +"ooooo...oooooooooooooo",
37.34 +"oooooooooooooooooooooo"
37.35 +};
38.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
38.2 +++ b/icons/editmovedown.xpm Sun Jan 30 12:59:10 2005 +0000
38.3 @@ -0,0 +1,27 @@
38.4 +/* XPM */
38.5 +static const char * editmovedown_xpm[] = {
38.6 +"22 22 2 1",
38.7 +" c None",
38.8 +". c #000000",
38.9 +" ",
38.10 +" ",
38.11 +" ",
38.12 +" ",
38.13 +" .. ",
38.14 +" .. ",
38.15 +" .. ",
38.16 +" .. ",
38.17 +" .. ",
38.18 +" .. ",
38.19 +" .. ",
38.20 +" .. ",
38.21 +" .. ",
38.22 +" .. ",
38.23 +" .. ",
38.24 +" .. .. .. ",
38.25 +" .. .. .. ",
38.26 +" .. .. .. ",
38.27 +" ...... ",
38.28 +" .... ",
38.29 +" ",
38.30 +" "};
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
39.2 +++ b/icons/editmoveup.xpm Sun Jan 30 12:59:10 2005 +0000
39.3 @@ -0,0 +1,27 @@
39.4 +/* XPM */
39.5 +static const char * editmoveup_xpm[] = {
39.6 +"22 22 2 1",
39.7 +" c None",
39.8 +". c #000000",
39.9 +" ",
39.10 +" ",
39.11 +" ",
39.12 +" ",
39.13 +" .... ",
39.14 +" ...... ",
39.15 +" .. .. .. ",
39.16 +" .. .. .. ",
39.17 +" .. .. .. ",
39.18 +" .. ",
39.19 +" .. ",
39.20 +" .. ",
39.21 +" .. ",
39.22 +" .. ",
39.23 +" .. ",
39.24 +" .. ",
39.25 +" .. ",
39.26 +" .. ",
39.27 +" .. ",
39.28 +" .. ",
39.29 +" ",
39.30 +" "};
40.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
40.2 +++ b/icons/editpaste.xpm Sun Jan 30 12:59:10 2005 +0000
40.3 @@ -0,0 +1,36 @@
40.4 +/* XPM */
40.5 +static const char *editpaste_xpm[] = {
40.6 +/* columns rows colors chars-per-pixel */
40.7 +"22 22 8 1",
40.8 +" c Gray100",
40.9 +". c Yellow",
40.10 +"X c #c6c3c6",
40.11 +"o c #848284",
40.12 +"O c #848200",
40.13 +"+ c #000084",
40.14 +"@ c Gray0",
40.15 +"# c None",
40.16 +/* pixels */
40.17 +"######################",
40.18 +"#######@@@@@##########",
40.19 +"##@@@@@@...@@@@@@#####",
40.20 +"#@@@@@@.....@@@@@@####",
40.21 +"@@oOo@@.@@@.@@oOo@@###",
40.22 +"@oOo@XXXXXXXXX@oOo@###",
40.23 +"@OoO@XXXXXXXXX@OoO@###",
40.24 +"@oOo@@@@@@@@@@@oOo@###",
40.25 +"@OoOoOoOoOoOoOoOoO@###",
40.26 +"@oOoOoOoOoOoOoOoOo@###",
40.27 +"@OoOoOoO++++++++++@###",
40.28 +"@oOoOoOo+ + +###",
40.29 +"@OoOoOoO+ +++++ + +##",
40.30 +"@oOoOoOo+ + +#",
40.31 +"@OoOoOoO+ +++++ + +",
40.32 +"@oOoOoOo+ ++++++",
40.33 +"@OoOoOoO+ +++++ +",
40.34 +"@oOoOoOo+ +",
40.35 +"@OoOoOoO+ ++++++++++ +",
40.36 +"#@@@@@@@+ +",
40.37 +"########++++++++++++++",
40.38 +"######################"
40.39 +};
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
41.2 +++ b/icons/editredo.xpm Sun Jan 30 12:59:10 2005 +0000
41.3 @@ -0,0 +1,36 @@
41.4 +/* XPM */
41.5 +static const char *editredo_xpm[] = {
41.6 +/* columns rows colors chars-per-pixel */
41.7 +"22 22 8 1",
41.8 +" c Gray100",
41.9 +". c #848284",
41.10 +"X c #000084",
41.11 +"o c Gray0",
41.12 +"O c None",
41.13 +"+ c Gray0",
41.14 +"@ c Gray0",
41.15 +"# c Gray0",
41.16 +/* pixels */
41.17 +"OOOOOOOOOOOOOOOOOOOOOO",
41.18 +"OOOOOOOOOOOOOOOOOOOOOO",
41.19 +"OOOOOOOOOOOOOOOOOOOOOO",
41.20 +"OOOOOOOOOOOOOOOOOOOOOO",
41.21 +"OOOOOOOOOOOOOOOOOOOOOO",
41.22 +"OOOO.XXXXXXOOOOOOOOOOO",
41.23 +"OOOXXXXXXXXXXOOOOOOXOO",
41.24 +"OO.XXOOOOOOXXXXOOOXXOO",
41.25 +"OOXXOOOOOOOOOXXXOXXXOO",
41.26 +"OOXXOOOOOOOOOOXXXXXXOO",
41.27 +"OOXXOOOOOOOOOOOXXXXXOO",
41.28 +"OOXXOOOOOOOOOOXXXXXXOO",
41.29 +"OOXXOOOOOOOOOXXXXXXXOO",
41.30 +"OO.XXOOOOOOOXXXXXXXXOO",
41.31 +"OOOXXX.OOOOOOOOOOOOOOO",
41.32 +"OOOOXXXOOOOOOOOOOOOOOO",
41.33 +"OOOOOOOOOOOOOOOOOOOOOO",
41.34 +"OOOOOOOOOOOOOOOOOOOOOO",
41.35 +"OOOOOOOOOOOOOOOOOOOOOO",
41.36 +"OOOOOOOOOOOOOOOOOOOOOO",
41.37 +"OOOOOOOOOOOOOOOOOOOOOO",
41.38 +"OOOOOOOOOOOOOOOOOOOOOO"
41.39 +};
42.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
42.2 +++ b/icons/edittrash.xpm Sun Jan 30 12:59:10 2005 +0000
42.3 @@ -0,0 +1,82 @@
42.4 +/* XPM */
42.5 +static const char * edittrash_xpm[] = {
42.6 +"22 22 57 1",
42.7 +" c None",
42.8 +". c #000000",
42.9 +"+ c #505050",
42.10 +"@ c #494949",
42.11 +"# c #373737",
42.12 +"$ c #818181",
42.13 +"% c #101010",
42.14 +"& c #282828",
42.15 +"* c #2F2F2F",
42.16 +"= c #232323",
42.17 +"- c #1F1F1F",
42.18 +"; c #DADADA",
42.19 +"> c #FBFBFB",
42.20 +", c #DCDCDC",
42.21 +"' c #696969",
42.22 +") c #6C6C6C",
42.23 +"! c #747474",
42.24 +"~ c #3C3C3C",
42.25 +"{ c #989898",
42.26 +"] c #B2B2B2",
42.27 +"^ c #949494",
42.28 +"/ c #0F0F0F",
42.29 +"( c #919191",
42.30 +"_ c #EBEBEB",
42.31 +": c #F7F7F7",
42.32 +"< c #B8B8B8",
42.33 +"[ c #565656",
42.34 +"} c #151515",
42.35 +"| c #8B8B8B",
42.36 +"1 c #C2C2C2",
42.37 +"2 c #7E7E7E",
42.38 +"3 c #B4B4B4",
42.39 +"4 c #E4E4E4",
42.40 +"5 c #E9E9E9",
42.41 +"6 c #E0E0E0",
42.42 +"7 c #7B7B7B",
42.43 +"8 c #858585",
42.44 +"9 c #777777",
42.45 +"0 c #4F4F4F",
42.46 +"a c #D7D7D7",
42.47 +"b c #AFAFAF",
42.48 +"c c #A4A4A4",
42.49 +"d c #9F9F9F",
42.50 +"e c #444444",
42.51 +"f c #8A8A8A",
42.52 +"g c #CDCDCD",
42.53 +"h c #A0A0A0",
42.54 +"i c #616161",
42.55 +"j c #242424",
42.56 +"k c #080808",
42.57 +"l c #363636",
42.58 +"m c #BCBCBC",
42.59 +"n c #C6C6C6",
42.60 +"o c #5D5D5D",
42.61 +"p c #585858",
42.62 +"q c #1B1B1B",
42.63 +"r c #313131",
42.64 +" ",
42.65 +" .....+... ",
42.66 +" ....@+#$%&*=- ",
42.67 +" ..;>,'#)!~{]^.. ",
42.68 +" /(_:>;<]<[}|1](2. ",
42.69 +" =(3<;4:5678(|9[0.. ",
42.70 +" }9,abbcdd!9!7)0e. ",
42.71 +" ..)f1g;hhhd^)ijk ",
42.72 +" .d1))ff|))!90l} ",
42.73 +" .f14g3<{|||)@*% ",
42.74 +" .fm_{bnf|())0*% ",
42.75 +" .|m_|hn7f|0)0*% ",
42.76 +" .fm5(hn7f|0)0*% ",
42.77 +" .f15|cn9f|0)@*% ",
42.78 +" .fm5(cn9f|@)0*% ",
42.79 +" .fm5|cn7f|0)0*% ",
42.80 +" .f15|cn7f|0!@*% ",
42.81 +" .|m5(cn9f|@)+l% ",
42.82 +" .cg5|cn9f|0)o*/ ",
42.83 +" .m4>mmnfd|))p-. ",
42.84 +" .q.cga3hh$[lr. ",
42.85 +" ..l#rrrjq.. "};
43.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
43.2 +++ b/icons/editundo.xpm Sun Jan 30 12:59:10 2005 +0000
43.3 @@ -0,0 +1,36 @@
43.4 +/* XPM */
43.5 +static const char *editundo_xpm[] = {
43.6 +/* columns rows colors chars-per-pixel */
43.7 +"22 22 8 1",
43.8 +" c Gray100",
43.9 +". c #848284",
43.10 +"X c #000084",
43.11 +"o c Gray0",
43.12 +"O c None",
43.13 +"+ c Gray0",
43.14 +"@ c Gray0",
43.15 +"# c Gray0",
43.16 +/* pixels */
43.17 +"OOOOOOOOOOOOOOOOOOOOOO",
43.18 +"OOOOOOOOOOOOOOOOOOOOOO",
43.19 +"OOOOOOOOOOOOOOOOOOOOOO",
43.20 +"OOOOOOOOOOOOOOOOOOOOOO",
43.21 +"OOOOOOOOOOOOOOOOOOOOOO",
43.22 +"OOOOOOOOOOOXXXXXX.OOOO",
43.23 +"OOXOOOOOOXXXXXXXXXXOOO",
43.24 +"OOXXOOOXXXXOOOOOOXX.OO",
43.25 +"OOXXXOXXXOOOOOOOOOXXOO",
43.26 +"OOXXXXXXOOOOOOOOOOXXOO",
43.27 +"OOXXXXXOOOOOOOOOOOXXOO",
43.28 +"OOXXXXXXOOOOOOOOOOXXOO",
43.29 +"OOXXXXXXXOOOOOOOOOXXOO",
43.30 +"OOXXXXXXXXOOOOOOOXX.OO",
43.31 +"OOOOOOOOOOOOOOO.XXXOOO",
43.32 +"OOOOOOOOOOOOOOOXXXOOOO",
43.33 +"OOOOOOOOOOOOOOOOOOOOOO",
43.34 +"OOOOOOOOOOOOOOOOOOOOOO",
43.35 +"OOOOOOOOOOOOOOOOOOOOOO",
43.36 +"OOOOOOOOOOOOOOOOOOOOOO",
43.37 +"OOOOOOOOOOOOOOOOOOOOOO",
43.38 +"OOOOOOOOOOOOOOOOOOOOOO"
43.39 +};
44.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
44.2 +++ b/icons/filenew.xpm Sun Jan 30 12:59:10 2005 +0000
44.3 @@ -0,0 +1,36 @@
44.4 +/* XPM */
44.5 +static const char *filenew_xpm[] = {
44.6 +/* columns rows colors chars-per-pixel */
44.7 +"22 22 8 1",
44.8 +" c Gray100",
44.9 +". c Gray76",
44.10 +"X c Gray53",
44.11 +"o c Gray36",
44.12 +"O c Gray18",
44.13 +"+ c Gray0",
44.14 +"@ c None",
44.15 +"# c Gray0",
44.16 +/* pixels */
44.17 +"@@@@@@@@@@@@@@@@@@@@@@",
44.18 +"@@@@++++++++++@@@@@@@@",
44.19 +"@@@@+ +O+@@@@@@@",
44.20 +"@@@@+ +oO+@@@@@@",
44.21 +"@@@@+ +XoO+@@@@@",
44.22 +"@@@@+ +.XoO+@@@@",
44.23 +"@@@@+ + .XoO+@@@",
44.24 +"@@@@+ +++++++@@@",
44.25 +"@@@@+ +@@@",
44.26 +"@@@@+ +@@@",
44.27 +"@@@@+ +@@@",
44.28 +"@@@@+ +@@@",
44.29 +"@@@@+ +@@@",
44.30 +"@@@@+ +@@@",
44.31 +"@@@@+ +@@@",
44.32 +"@@@@+ +@@@",
44.33 +"@@@@+ +@@@",
44.34 +"@@@@+ +@@@",
44.35 +"@@@@+ +@@@",
44.36 +"@@@@+++++++++++++++@@@",
44.37 +"@@@@@@@@@@@@@@@@@@@@@@",
44.38 +"@@@@@@@@@@@@@@@@@@@@@@"
44.39 +};
45.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
45.2 +++ b/icons/fileopen.xpm Sun Jan 30 12:59:10 2005 +0000
45.3 @@ -0,0 +1,36 @@
45.4 +/* XPM */
45.5 +static const char *fileopen_xpm[] = {
45.6 +/* columns rows colors chars-per-pixel */
45.7 +"22 22 8 1",
45.8 +" c Gray100",
45.9 +". c Yellow",
45.10 +"X c #848200",
45.11 +"o c Gray0",
45.12 +"O c None",
45.13 +"+ c Gray0",
45.14 +"@ c Gray0",
45.15 +"# c Gray0",
45.16 +/* pixels */
45.17 +"OOOOOOOOOOOOOOOOOOOOOO",
45.18 +"OOOOOOOOOOOOOOOOOOOOOO",
45.19 +"OOOOOOOOOOOOOOOOOOOOOO",
45.20 +"OOOOOOOOOOOOooooOOOOoO",
45.21 +"OOOOOOOOOOOoOOOOooOooO",
45.22 +"OOOOOOOOOOOOOOOOOOoooO",
45.23 +"OOOOOOOOOOOOOOOOOooooO",
45.24 +"OooooOOOOOOOOOOOoooooO",
45.25 +"o. . ooooooooooOOOOOOO",
45.26 +"o . . . . . . oOOOOOOO",
45.27 +"o. . . . . . .oOOOOOOO",
45.28 +"o . . . . . . oOOOOOOO",
45.29 +"o. . . ooooooooooooooo",
45.30 +"o . . ooXXXXXXXXXXXXoo",
45.31 +"o. . ooXXXXXXXXXXXXooO",
45.32 +"o . ooXXXXXXXXXXXXooOO",
45.33 +"o. ooXXXXXXXXXXXXooOOO",
45.34 +"o ooXXXXXXXXXXXXooOOOO",
45.35 +"oooXXXXXXXXXXXXooOOOOO",
45.36 +"ooXXXXXXXXXXXXooOOOOOO",
45.37 +"oooooooooooooooOOOOOOO",
45.38 +"OOOOOOOOOOOOOOOOOOOOOO"
45.39 +};
46.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
46.2 +++ b/icons/fileprint.xpm Sun Jan 30 12:59:10 2005 +0000
46.3 @@ -0,0 +1,117 @@
46.4 +/* XPM */
46.5 +static const char *fileprint_xpm[] = {
46.6 +/* columns rows colors chars-per-pixel */
46.7 +"22 22 89 1",
46.8 +" c Gray0",
46.9 +". c #101008081010",
46.10 +"X c #101010101010",
46.11 +"o c #101010101818",
46.12 +"O c #181810101818",
46.13 +"+ c #181818181818",
46.14 +"@ c #181818182121",
46.15 +"# c #212118182121",
46.16 +"$ c Gray13",
46.17 +"% c #212121212929",
46.18 +"& c #292921212929",
46.19 +"* c Gray16",
46.20 +"= c #292929293131",
46.21 +"- c #313129293131",
46.22 +"; c #313131313131",
46.23 +": c #313131313939",
46.24 +"> c #393931313939",
46.25 +", c #393939393939",
46.26 +"< c #393939394242",
46.27 +"1 c #424239394242",
46.28 +"2 c Gray26",
46.29 +"3 c #4a4a4a4a5252",
46.30 +"4 c #5a5a52525a5a",
46.31 +"5 c #5a5a5a5a6363",
46.32 +"6 c #6b6b63636b6b",
46.33 +"7 c Gray42",
46.34 +"8 c #6b6b6b6b7373",
46.35 +"9 c #73736b6b7373",
46.36 +"0 c #7b7b73737b7b",
46.37 +"q c #7b7b73738484",
46.38 +"w c #0808ffff0808",
46.39 +"e c #2929ffff2929",
46.40 +"r c #3131ffff3131",
46.41 +"t c #5a5acece5a5a",
46.42 +"y c #6b6bffff6363",
46.43 +"u c #7b7bffff7b7b",
46.44 +"i c #84847b7b8484",
46.45 +"p c #84847b7b8c8c",
46.46 +"a c #8c8c7b7b9494",
46.47 +"s c #848484848c8c",
46.48 +"d c #8c8c84848c8c",
46.49 +"f c Gray55",
46.50 +"g c #8c8c84849494",
46.51 +"h c #8c8c8c8c9494",
46.52 +"j c #94948c8c9494",
46.53 +"k c #94948c8c9c9c",
46.54 +"l c Gray58",
46.55 +"z c #949494949c9c",
46.56 +"x c #9c9c94949c9c",
46.57 +"c c Gray61",
46.58 +"v c #9c9c9494a5a5",
46.59 +"b c #9c9c9c9ca5a5",
46.60 +"n c #a5a59c9ca5a5",
46.61 +"m c #a5a59c9cadad",
46.62 +"M c #adad9c9cadad",
46.63 +"N c #a5a5a5a5a5a5",
46.64 +"B c #a5a5a5a5adad",
46.65 +"V c #adada5a5adad",
46.66 +"C c Gray68",
46.67 +"Z c #adadadadb5b5",
46.68 +"A c #b5b5adadb5b5",
46.69 +"S c Gray71",
46.70 +"D c Gray74",
46.71 +"F c #9494c6c69494",
46.72 +"G c #9c9ccecea5a5",
46.73 +"H c #bdbdd6d6bdbd",
46.74 +"J c #c0c0c0c0c0c0",
46.75 +"K c #c6c6c6c6c6c6",
46.76 +"L c #cecec6c6cece",
46.77 +"P c #cececececece",
46.78 +"I c #cecececed6d6",
46.79 +"U c #d6d6ceced6d6",
46.80 +"Y c #d6d6cecedede",
46.81 +"T c Gray84",
46.82 +"R c #d6d6d6d6dede",
46.83 +"E c #deded6d6dede",
46.84 +"W c Gray87",
46.85 +"Q c #deded6d6e7e7",
46.86 +"! c #dedededee7e7",
46.87 +"~ c #d6d6ffffd6d6",
46.88 +"^ c #e7e7dedee7e7",
46.89 +"/ c #e7e7e7e7e7e7",
46.90 +"( c #e7e7e7e7efef",
46.91 +") c #efefe7e7efef",
46.92 +"_ c #efefefefefef",
46.93 +"` c #e7e7ffffe7e7",
46.94 +"' c Gray97",
46.95 +"] c Gray100",
46.96 +"[ c None",
46.97 +/* pixels */
46.98 +"[[[[[[SDPPPPKKDDCD[[[[",
46.99 +"[[[[[[D_/////___WD[[[[",
46.100 +"[[[[[[DKKKPPKKKKDK[[[[",
46.101 +"[[[[[[SDDDDSDDSSCD[[[[",
46.102 +"[[[[[KCKDKKKDDDKS[[[[[",
46.103 +"[[[[[DDSDDDDDDKKS[[[[[",
46.104 +"[[[[[DSKDDDDDKDKC[[[[[",
46.105 +"[[[[[KDDDDDDDDDDS[[[[[",
46.106 +"[[[[[CP/WWWWWWTWNNZ[[[",
46.107 +"[[[Dc9STPTPTPTWWj427S[",
46.108 +"[[Dziq0000000pag8<%@2N",
46.109 +"[DcE(!ERRRRUYGtFn2##O<",
46.110 +"Db)]]]]]]]]]~ewePa;@X#",
46.111 +"V']]]]]]]]]]`yru]Q0@ #",
46.112 +"BRILITRRW^!E!RHUILhO @",
46.113 +"jAZVBmBnmmNmnmMvzh6o #",
46.114 +"jZZmBnnnbnbbbbvxxg6o +",
46.115 +"lmmnbnbbbvcvxxxvjs6O 3",
46.116 +"jBnnvcvxvcvxvxzjhd8o+C",
46.117 +"lsdgfgdhgdhhjhjkhg6+l[",
46.118 +"S9%@$%&&&=--::>>:-:l[[",
46.119 +"[[C511,:;;;**%++.2c[[["
46.120 +};
47.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
47.2 +++ b/icons/filesave.xpm Sun Jan 30 12:59:10 2005 +0000
47.3 @@ -0,0 +1,36 @@
47.4 +/* XPM */
47.5 +static const char *filesave_xpm[] = {
47.6 +/* columns rows colors chars-per-pixel */
47.7 +"22 22 8 1",
47.8 +" c Gray100",
47.9 +". c #cab5d1",
47.10 +"X c #c1c1c1",
47.11 +"o c #848200",
47.12 +"O c Gray0",
47.13 +"+ c None",
47.14 +"@ c Gray0",
47.15 +"# c Gray0",
47.16 +/* pixels */
47.17 +"++++++++++++++++++++++",
47.18 +"+OOOOOOOOOOOOOOOOOOOO+",
47.19 +"+OooOXXXXXXXXXXXXOXXO+",
47.20 +"+OooOXXXXXXXXXXXXOXXO+",
47.21 +"+OooOXXXXXXXXX.XXOOOO+",
47.22 +"+OooOXXX..XXXXXXXOooO+",
47.23 +"+OooOXXX..XXXXXXXOooO+",
47.24 +"+OooOXXXXXXXXXXXXOooO+",
47.25 +"+OooOXXXXXXXXXXXXOooO+",
47.26 +"+OooOXXXXXXXXXXXXOooO+",
47.27 +"+OooOXXXXXXXXXXXXOooO+",
47.28 +"+OoooOOOOOOOOOOOOoooO+",
47.29 +"+OooooooooooooooooooO+",
47.30 +"+OooooooooooooooooooO+",
47.31 +"+OoooOOOOOOOOOOOOOooO+",
47.32 +"+OoooOOOOOOOOOXXXOooO+",
47.33 +"+OoooOOOOOOOOOXXXOooO+",
47.34 +"+OoooOOOOOOOOOXXXOooO+",
47.35 +"+OoooOOOOOOOOOXXXOooO+",
47.36 +"+OoooOOOOOOOOOXXXOooO+",
47.37 +"++OOOOOOOOOOOOOOOOOO++",
47.38 +"++++++++++++++++++++++"
47.39 +};
48.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
48.2 +++ b/icons/flag-arrow-down.xpm Sun Jan 30 12:59:10 2005 +0000
48.3 @@ -0,0 +1,28 @@
48.4 +/* XPM */
48.5 +static char * flag_arrow_down_xpm[] = {
48.6 +"22 22 3 1",
48.7 +" c None",
48.8 +". c #000000",
48.9 +"+ c #4F54FF",
48.10 +" ",
48.11 +" ",
48.12 +" ",
48.13 +" ",
48.14 +" .+++. ",
48.15 +" .+++. ",
48.16 +" .+++. ",
48.17 +" .+++. ",
48.18 +" .+++. ",
48.19 +" .+++. ",
48.20 +" .+++. ",
48.21 +" .+++. ",
48.22 +" .+++. ",
48.23 +" .+++. ",
48.24 +" ... .+++. ... ",
48.25 +" ......... ",
48.26 +" ....... ",
48.27 +" ..... ",
48.28 +" ... ",
48.29 +" ",
48.30 +" ",
48.31 +" "};
49.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
49.2 +++ b/icons/flag-arrow-up.xpm Sun Jan 30 12:59:10 2005 +0000
49.3 @@ -0,0 +1,28 @@
49.4 +/* XPM */
49.5 +static char * flag_arrow_up_xpm[] = {
49.6 +"22 22 3 1",
49.7 +" c None",
49.8 +". c #000000",
49.9 +"+ c #4F54FF",
49.10 +" ",
49.11 +" ",
49.12 +" ",
49.13 +" ",
49.14 +" ... ",
49.15 +" ..... ",
49.16 +" ....... ",
49.17 +" ......... ",
49.18 +" ... .+++. ... ",
49.19 +" .+++. ",
49.20 +" .+++. ",
49.21 +" .+++. ",
49.22 +" .+++. ",
49.23 +" .+++. ",
49.24 +" .+++. ",
49.25 +" .+++. ",
49.26 +" .+++. ",
49.27 +" .+++. ",
49.28 +" .+++. ",
49.29 +" ",
49.30 +" ",
49.31 +" "};
50.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
50.2 +++ b/icons/flag-clock.xpm Sun Jan 30 12:59:10 2005 +0000
50.3 @@ -0,0 +1,31 @@
50.4 +/* XPM */
50.5 +static const char * flag_clock_xpm[] = {
50.6 +"22 22 6 1",
50.7 +" c None",
50.8 +". c #000000",
50.9 +"+ c #FFFFFF",
50.10 +"@ c #FF0000",
50.11 +"# c #FCFCFC",
50.12 +"$ c #FDFDFD",
50.13 +" ",
50.14 +" ",
50.15 +" ...... ",
50.16 +" ...+@++... ",
50.17 +" ...+++@++++... ",
50.18 +" .+.++#@+++.++. ",
50.19 +" ..++.+$@++++++.. ",
50.20 +" ..++++$@++++++.. ",
50.21 +" ..+.+++$@+++++.+.. ",
50.22 +" .+++++++@++@@++++. ",
50.23 +" .+++++++@@@@+++++. ",
50.24 +" ....++++@@++++.... ",
50.25 +" .++++++++++++++++. ",
50.26 +" ..++++++++++++++.. ",
50.27 +" .+.++++++++++.+. ",
50.28 +" ..++++++++++++.. ",
50.29 +" .++.++.+++.++. ",
50.30 +" ...+++.++++... ",
50.31 +" ...+.++... ",
50.32 +" ...... ",
50.33 +" ",
50.34 +" "};
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
51.2 +++ b/icons/flag-cross-red.xpm Sun Jan 30 12:59:10 2005 +0000
51.3 @@ -0,0 +1,27 @@
51.4 +/* XPM */
51.5 +static const char * flag_cross_red_xpm[] = {
51.6 +"22 22 2 1",
51.7 +" c None",
51.8 +". c #FF0000",
51.9 +" ",
51.10 +" ",
51.11 +" ",
51.12 +" ",
51.13 +" ..... ... ",
51.14 +" .... ..... ",
51.15 +" ... ... ",
51.16 +" ....... ",
51.17 +" .... ",
51.18 +" .... ",
51.19 +" ...... ",
51.20 +" .. ... ",
51.21 +" .. ... ",
51.22 +" .. .. ",
51.23 +" ... .. ",
51.24 +" ... ... ",
51.25 +" ... .. ",
51.26 +" ... .. ",
51.27 +" .. . ",
51.28 +" . .. ",
51.29 +" ",
51.30 +" "};
52.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
52.2 +++ b/icons/flag-exclamationmark.xpm Sun Jan 30 12:59:10 2005 +0000
52.3 @@ -0,0 +1,22 @@
52.4 +/* XPM */
52.5 +static const char * flag_exclamationmark_xpm[] = {
52.6 +"14 17 2 1",
52.7 +" c None",
52.8 +". c #FF0000",
52.9 +" . ",
52.10 +" ... ",
52.11 +" ... ",
52.12 +" ... ",
52.13 +" ... ",
52.14 +" ... ",
52.15 +" ... ",
52.16 +" ... ",
52.17 +" ... ",
52.18 +" . ",
52.19 +" . ",
52.20 +" . ",
52.21 +" . ",
52.22 +" ",
52.23 +" . ",
52.24 +" ... ",
52.25 +" . "};
53.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
53.2 +++ b/icons/flag-flash.xpm Sun Jan 30 12:59:10 2005 +0000
53.3 @@ -0,0 +1,93 @@
53.4 +/* XPM */
53.5 +static char * flag_flash_xpm[] = {
53.6 +"22 22 68 1",
53.7 +" c None",
53.8 +". c #FFAC00",
53.9 +"+ c #FEB805",
53.10 +"@ c #FAB605",
53.11 +"# c #F8B105",
53.12 +"$ c #FEAC00",
53.13 +"% c #FEEE18",
53.14 +"& c #FEF51B",
53.15 +"* c #FDF01B",
53.16 +"= c #EFB70B",
53.17 +"- c #E17F01",
53.18 +"; c #FFFF1E",
53.19 +"> c #FFFE1E",
53.20 +", c #FCED1B",
53.21 +"' c #FFF91C",
53.22 +") c #FFFF1C",
53.23 +"! c #FFFF27",
53.24 +"~ c #F1B80A",
53.25 +"{ c #FBB408",
53.26 +"] c #FEFC1D",
53.27 +"^ c #FFFF24",
53.28 +"/ c #FBC60C",
53.29 +"( c #DD7A00",
53.30 +"_ c #EFA210",
53.31 +": c #F6CF15",
53.32 +"< c #F8E51B",
53.33 +"[ c #FCF01A",
53.34 +"} c #FBE217",
53.35 +"| c #F6D313",
53.36 +"1 c #F1C410",
53.37 +"2 c #E27E01",
53.38 +"3 c #F1B209",
53.39 +"4 c #FFF31B",
53.40 +"5 c #FEF31B",
53.41 +"6 c #F1C511",
53.42 +"7 c #D88113",
53.43 +"8 c #F5C40F",
53.44 +"9 c #FFE619",
53.45 +"0 c #FFF71B",
53.46 +"a c #E68500",
53.47 +"b c #FDD814",
53.48 +"c c #FFFC1B",
53.49 +"d c #F5BB0B",
53.50 +"e c #FFDD14",
53.51 +"f c #FFDC14",
53.52 +"g c #F7D213",
53.53 +"h c #FCD412",
53.54 +"i c #FFD412",
53.55 +"j c #FED311",
53.56 +"k c #F0B20C",
53.57 +"l c #CD6200",
53.58 +"m c #CB6B0B",
53.59 +"n c #F0A607",
53.60 +"o c #FFCF10",
53.61 +"p c #F9C00D",
53.62 +"q c #D78205",
53.63 +"r c #DA7100",
53.64 +"s c #F19E06",
53.65 +"t c #FFFF15",
53.66 +"u c #D86A00",
53.67 +"v c #D56A00",
53.68 +"w c #FFD30D",
53.69 +"x c #E28704",
53.70 +"y c #E88C04",
53.71 +"z c #F8AB06",
53.72 +"A c #DA6800",
53.73 +"B c #F49A03",
53.74 +"C c #D06100",
53.75 +" .+@#.. ",
53.76 +" $%&*=- ",
53.77 +" ..;>,- ",
53.78 +" .')!~. ",
53.79 +" {;]^- ",
53.80 +" ./;^---( ",
53.81 +" _:<[}|12 ",
53.82 +" ...3456- ",
53.83 +" 7890- ",
53.84 +" abc-- ",
53.85 +" .def--- ",
53.86 +" .ghijkl ",
53.87 +" .mnopq ",
53.88 +" rstul ",
53.89 +" vwxl ",
53.90 +" yzA ",
53.91 +" B-l ",
53.92 +" .-l ",
53.93 +" -C ",
53.94 +" l ",
53.95 +" - ",
53.96 +" "};
54.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
54.2 +++ b/icons/flag-heart.xpm Sun Jan 30 12:59:10 2005 +0000
54.3 @@ -0,0 +1,106 @@
54.4 +/* XPM */
54.5 +static const char * flag_heart_xpm[] = {
54.6 +"22 22 81 1",
54.7 +" c None",
54.8 +". c #020204",
54.9 +"+ c #B63604",
54.10 +"@ c #D23E04",
54.11 +"# c #C63A04",
54.12 +"$ c #B62E04",
54.13 +"% c #760204",
54.14 +"& c #9D0204",
54.15 +"* c #AA0204",
54.16 +"= c #A23A04",
54.17 +"- c #D65604",
54.18 +"; c #FE6A0C",
54.19 +"> c #FE7A04",
54.20 +", c #FC6204",
54.21 +"' c #F25604",
54.22 +") c #EA2604",
54.23 +"! c #AA2204",
54.24 +"~ c #820204",
54.25 +"{ c #D50204",
54.26 +"] c #B80204",
54.27 +"^ c #2A1604",
54.28 +"/ c #FA8624",
54.29 +"( c #FE9A44",
54.30 +"_ c #FE9E55",
54.31 +": c #FE7E0C",
54.32 +"< c #A22A04",
54.33 +"[ c #EE0204",
54.34 +"} c #FE4A04",
54.35 +"| c #FE3A04",
54.36 +"1 c #E20204",
54.37 +"2 c #BE4204",
54.38 +"3 c #F47E1C",
54.39 +"4 c #FEAA76",
54.40 +"5 c #FEB699",
54.41 +"6 c #FEAE80",
54.42 +"7 c #F05A04",
54.43 +"8 c #BE3204",
54.44 +"9 c #3E0204",
54.45 +"0 c #FE4204",
54.46 +"a c #FE0204",
54.47 +"b c #D24604",
54.48 +"c c #FEB28F",
54.49 +"d c #FE8214",
54.50 +"e c #CE1A04",
54.51 +"f c #160204",
54.52 +"g c #D24A04",
54.53 +"h c #F6821C",
54.54 +"i c #FEA674",
54.55 +"j c #FEA664",
54.56 +"k c #FE8E1C",
54.57 +"l c #FA4E04",
54.58 +"m c #DE0E04",
54.59 +"n c #FE5A04",
54.60 +"o c #FE1A04",
54.61 +"p c #BA3A04",
54.62 +"q c #EA5A04",
54.63 +"r c #FE8624",
54.64 +"s c #FEA27C",
54.65 +"t c #FE8E2C",
54.66 +"u c #FE7608",
54.67 +"v c #FD5604",
54.68 +"w c #FE1204",
54.69 +"x c #F50204",
54.70 +"y c #C20204",
54.71 +"z c #C62A04",
54.72 +"A c #FA7614",
54.73 +"B c #FE0E04",
54.74 +"C c #A63204",
54.75 +"D c #EA5E04",
54.76 +"E c #222204",
54.77 +"F c #AE3E04",
54.78 +"G c #FE0A04",
54.79 +"H c #EA2A04",
54.80 +"I c #BE0204",
54.81 +"J c #AA2604",
54.82 +"K c #FE4604",
54.83 +"L c #860204",
54.84 +"M c #EC1E04",
54.85 +"N c #FE2E04",
54.86 +"O c #C22204",
54.87 +"P c #F60E04",
54.88 +" ",
54.89 +" ..... ..... ",
54.90 +" ..+@@#$. .%&*&%. ",
54.91 +" .=-;>,')!. .~{{{{]&. ",
54.92 +" ^-/(__:')<.%{[}|[1]~.",
54.93 +".23_456_:789*[}0a[[]~.",
54.94 +".b345c4(d,ef{||aaa[]~.",
54.95 +".ghi56jk>lm~[aaaaa[]~.",
54.96 +".b3_c4(:no1*[aaaaa[]~.",
54.97 +".pqrs4tuvwxyaaaaaa[]~.",
54.98 +" .zA__t,lBaaaaaaa[]~. ",
54.99 +" .CDdtk,noaaaaaaa[]~. ",
54.100 +" EFq;d;,|Gaaaaa[{]~. ",
54.101 +" .#Hlu,0Gaaaaa1I~. ",
54.102 +" .J)K,}waaaa[{L. ",
54.103 +" .#)0n|Gaax{~. ",
54.104 +" .!M||Gax{&. ",
54.105 +" .#MNGa1*. ",
54.106 +" ..OPa1]. ",
54.107 +" .#a]. ",
54.108 +" .I. ",
54.109 +" . "};
55.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
55.2 +++ b/icons/flag-hook-green.xpm Sun Jan 30 12:59:10 2005 +0000
55.3 @@ -0,0 +1,27 @@
55.4 +/* XPM */
55.5 +static char * flag_hook_green_xpm[] = {
55.6 +"22 22 2 1",
55.7 +" c None",
55.8 +". c #00B700",
55.9 +" ",
55.10 +" ",
55.11 +" ",
55.12 +" ",
55.13 +" .. ",
55.14 +" ... ",
55.15 +" ... ",
55.16 +" ... ",
55.17 +" ... ",
55.18 +" ... ",
55.19 +" ... ... ",
55.20 +" ... .... ",
55.21 +" ... .. ",
55.22 +" ... .. ",
55.23 +" .. .. ",
55.24 +" ... .. ",
55.25 +" .... ",
55.26 +" .... ",
55.27 +" ... ",
55.28 +" ... ",
55.29 +" ",
55.30 +" "};
56.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
56.2 +++ b/icons/flag-lamp.xpm Sun Jan 30 12:59:10 2005 +0000
56.3 @@ -0,0 +1,29 @@
56.4 +/* XPM */
56.5 +static const char * flag_lamp_xpm[] = {
56.6 +"22 22 4 1",
56.7 +" c None",
56.8 +". c #FFF200",
56.9 +"+ c #000000",
56.10 +"@ c #B56503",
56.11 +" . . ",
56.12 +" ... ++++++ .. ",
56.13 +" . +++....+++ .. ",
56.14 +" ++........++ ",
56.15 +" +..........+ ",
56.16 +" ++..........++ ",
56.17 +" +............+ ",
56.18 +"....+............+....",
56.19 +" +............+ ",
56.20 +" ++..........++ ",
56.21 +" +..........+ ",
56.22 +" ..++........++.. ",
56.23 +" .. +++....+++ .. ",
56.24 +".. ++++++ ...",
56.25 +" +@@@@+ ",
56.26 +" +@@@@+ ",
56.27 +" +@@+ ",
56.28 +" +@@+ ",
56.29 +" +@@@@+ ",
56.30 +" ++++ ",
56.31 +" ++ ",
56.32 +" "};
57.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
57.2 +++ b/icons/flag-lifebelt.xpm Sun Jan 30 12:59:10 2005 +0000
57.3 @@ -0,0 +1,209 @@
57.4 +/* XPM */
57.5 +static char * flag_lifebelt_xpm[] = {
57.6 +"22 22 184 2",
57.7 +" c None",
57.8 +". c #EC0000",
57.9 +"+ c #FF8B8B",
57.10 +"@ c #FFFFFF",
57.11 +"# c #DCB3B3",
57.12 +"$ c #6F3737",
57.13 +"% c #979090",
57.14 +"& c #F24343",
57.15 +"* c #FEDCDC",
57.16 +"= c #F9DEDE",
57.17 +"- c #F4C5C5",
57.18 +"; c #F3C2C1",
57.19 +"> c #F4CCCD",
57.20 +", c #FEFEFE",
57.21 +"' c #FDFCFC",
57.22 +") c #FEFDFD",
57.23 +"! c #EEE3E3",
57.24 +"~ c #8E6C6C",
57.25 +"{ c #A47F7F",
57.26 +"] c #F3B8B8",
57.27 +"^ c #F2AEB0",
57.28 +"/ c #FEEADE",
57.29 +"( c #F7DCF5",
57.30 +"_ c #D51374",
57.31 +": c #FF48A5",
57.32 +"< c #F6F1F1",
57.33 +"[ c #FCFFFF",
57.34 +"} c #FF9898",
57.35 +"| c #010000",
57.36 +"1 c #F9FBFB",
57.37 +"2 c #FAECEC",
57.38 +"3 c #E48C88",
57.39 +"4 c #D05970",
57.40 +"5 c #B41300",
57.41 +"6 c #F3F5F2",
57.42 +"7 c #FDFDF9",
57.43 +"8 c #F4D5D5",
57.44 +"9 c #F9A5A5",
57.45 +"0 c #FF2F2F",
57.46 +"a c #AAA2A2",
57.47 +"b c #FBFBFB",
57.48 +"c c #FCFCFC",
57.49 +"d c #FFFEFE",
57.50 +"e c #FCE5F9",
57.51 +"f c #816704",
57.52 +"g c #5A7357",
57.53 +"h c #E3788A",
57.54 +"i c #E37F81",
57.55 +"j c #EF8C8C",
57.56 +"k c #FFA0A0",
57.57 +"l c #C61E1E",
57.58 +"m c #FEFFFF",
57.59 +"n c #F9F9F9",
57.60 +"o c #D00C33",
57.61 +"p c #E88281",
57.62 +"q c #F58181",
57.63 +"r c #EB4343",
57.64 +"s c #8DC5C5",
57.65 +"t c #C9BFBF",
57.66 +"u c #FCFCFB",
57.67 +"v c #FFFEFF",
57.68 +"w c #D4E39F",
57.69 +"x c #8D4307",
57.70 +"y c #DD4C59",
57.71 +"z c #ED605F",
57.72 +"A c #FA4C4C",
57.73 +"B c #856565",
57.74 +"C c #E6DFDF",
57.75 +"D c #F7FDFD",
57.76 +"E c #FDFFFF",
57.77 +"F c #FEFFFA",
57.78 +"G c #C92F30",
57.79 +"H c #E6504F",
57.80 +"I c #FB4444",
57.81 +"J c #AD2828",
57.82 +"K c #EABABA",
57.83 +"L c #F6BFBF",
57.84 +"M c #F2C6C4",
57.85 +"N c #ECB8B9",
57.86 +"O c #B64640",
57.87 +"P c #E25C5B",
57.88 +"Q c #F65454",
57.89 +"R c #CC2929",
57.90 +"S c #F00000",
57.91 +"T c #F30303",
57.92 +"U c #D30B13",
57.93 +"V c #B70900",
57.94 +"W c #C8D1C2",
57.95 +"X c #F3FFFF",
57.96 +"Y c #ECFFFF",
57.97 +"Z c #D8BDBD",
57.98 +"` c #EC2424",
57.99 +" . c #F40303",
57.100 +".. c #D5130E",
57.101 +"+. c #C10813",
57.102 +"@. c #CFCBCD",
57.103 +"#. c #EBEAEA",
57.104 +"$. c #E7EAEA",
57.105 +"%. c #BE8484",
57.106 +"&. c #F86D6D",
57.107 +"*. c #F30202",
57.108 +"=. c #E21613",
57.109 +"-. c #C30201",
57.110 +";. c #FFFDFF",
57.111 +">. c #EBEBEB",
57.112 +",. c #E3E3E3",
57.113 +"'. c #976464",
57.114 +"). c #F80202",
57.115 +"!. c #EF1211",
57.116 +"~. c #CE0808",
57.117 +"{. c #AD531E",
57.118 +"]. c #F4F4F4",
57.119 +"^. c #E8E6E6",
57.120 +"/. c #DDDCDC",
57.121 +"(. c #7E5959",
57.122 +"_. c #FF5F5F",
57.123 +":. c #FD0F0F",
57.124 +"<. c #E21A1A",
57.125 +"[. c #CB0000",
57.126 +"}. c #D3F8DE",
57.127 +"|. c #6B0000",
57.128 +"1. c #FA6D68",
57.129 +"2. c #EDFFFF",
57.130 +"3. c #DACECE",
57.131 +"4. c #C7BBBB",
57.132 +"5. c #895454",
57.133 +"6. c #EF0D0D",
57.134 +"7. c #F40101",
57.135 +"8. c #F08585",
57.136 +"9. c #A1B578",
57.137 +"0. c #2F242C",
57.138 +"a. c #F40902",
57.139 +"b. c #D70404",
57.140 +"c. c #E5A5A5",
57.141 +"d. c #E2F6F6",
57.142 +"e. c #D0B4B4",
57.143 +"f. c #FF0000",
57.144 +"g. c #E1CBCB",
57.145 +"h. c #EDFAFA",
57.146 +"i. c #F5F5F5",
57.147 +"j. c #FBFCFA",
57.148 +"k. c #D8AEF0",
57.149 +"l. c #B10002",
57.150 +"m. c #F80000",
57.151 +"n. c #D60A06",
57.152 +"o. c #F30B0B",
57.153 +"p. c #F51010",
57.154 +"q. c #F20000",
57.155 +"r. c #E77878",
57.156 +"s. c #DCE9E9",
57.157 +"t. c #E4E4E4",
57.158 +"u. c #ECECEC",
57.159 +"v. c #EFEFEE",
57.160 +"w. c #F1F2EF",
57.161 +"x. c #FDE6E8",
57.162 +"y. c #DE0202",
57.163 +"z. c #E10D0B",
57.164 +"A. c #F00E0E",
57.165 +"B. c #F20F0F",
57.166 +"C. c #EE0C0C",
57.167 +"D. c #FF2424",
57.168 +"E. c #DAD4D4",
57.169 +"F. c #E6E7E7",
57.170 +"G. c #E8E8E8",
57.171 +"H. c #E9EEEE",
57.172 +"I. c #E9D2D2",
57.173 +"J. c #F20303",
57.174 +"K. c #F20E0E",
57.175 +"L. c #F50A0A",
57.176 +"M. c #D91616",
57.177 +"N. c #BBA4A4",
57.178 +"O. c #E2D4D4",
57.179 +"P. c #E8EEEE",
57.180 +"Q. c #E5F5F5",
57.181 +"R. c #E7CECE",
57.182 +"S. c #E30000",
57.183 +"T. c #E3D5D5",
57.184 +"U. c #AEB1B1",
57.185 +"V. c #B8B1B1",
57.186 +"W. c #AF9E9E",
57.187 +"X. c #DBCACA",
57.188 +"Y. c #CFADAD",
57.189 +"Z. c #DE3B3B",
57.190 +"`. c #9E4E4E",
57.191 +" ",
57.192 +" . + @ @ @ @ @ @ # $ ",
57.193 +" % & * = - ; > , ' ) @ ! ~ ",
57.194 +" { @ ] ^ / ( _ : @ @ , < [ } | ",
57.195 +" @ 1 2 3 4 5 6 7 @ 8 9 0 ",
57.196 +" a b c d e f g h i j k l ",
57.197 +" m n @ @ o p q r s ",
57.198 +" t b u v w x y z A B ",
57.199 +" C D E F G H I J ",
57.200 +" K L M N O P Q R ",
57.201 +" S T U V W X Y Z ",
57.202 +" ` ...+. @.#.$.%. ",
57.203 +" &.*.=.-. ;.>.,.'. ",
57.204 +" ).!.~.{. ].^./.(. ",
57.205 +" _.:.<.[.}. |.1.2.3.4. ",
57.206 +" 5.6.7.8.@ 9. 0.a.b.c.d.e. ",
57.207 +" f.g.h.i.j.@ @ k.l.m.n.o.p.q.r. ",
57.208 +" s.t.u.v.w.n x.y.z.A.B.C.D. ",
57.209 +" E.F.F.G.H.I.J.K.L.f.M. ",
57.210 +" N.O.P.Q.R.f.f.S.T. ",
57.211 +" U.V.W.X.Y.Z.`. ",
57.212 +" "};
58.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
58.2 +++ b/icons/flag-note.xpm Sun Jan 30 12:59:10 2005 +0000
58.3 @@ -0,0 +1,31 @@
58.4 +/* XPM */
58.5 +static const char *flag_note_xpm[] = {
58.6 +/* columns rows colors chars-per-pixel */
58.7 +"14 17 8 1",
58.8 +" c Gray100",
58.9 +". c #8b8bfd",
58.10 +"X c #3c3cfd",
58.11 +"o c #000082",
58.12 +"O c Gray0",
58.13 +"+ c None",
58.14 +"@ c Gray0",
58.15 +"# c Gray0",
58.16 +/* pixels */
58.17 +"++++++++++++++",
58.18 +"oooooooo++++++",
58.19 +"o oo+++++",
58.20 +"o OOOO oXo++++",
58.21 +"o o.Xo+++",
58.22 +"o OOOO o .Xo++",
58.23 +"o oooooo+",
58.24 +"o OOOO o+",
58.25 +"o o+",
58.26 +"o OOOOOOOOO o+",
58.27 +"o o+",
58.28 +"o OOOOOOOOO o+",
58.29 +"o o+",
58.30 +"o OOOOOOOOO o+",
58.31 +"o o+",
58.32 +"ooooooooooooo+",
58.33 +"++++++++++++++"
58.34 +};
59.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
59.2 +++ b/icons/flag-questionmark.xpm Sun Jan 30 12:59:10 2005 +0000
59.3 @@ -0,0 +1,22 @@
59.4 +/* XPM */
59.5 +static const char * flag_questionmark_xpm[] = {
59.6 +"14 17 2 1",
59.7 +" c None",
59.8 +". c #FF0000",
59.9 +" ...... ",
59.10 +" ......... ",
59.11 +" ......... ",
59.12 +" ... ",
59.13 +" ... ",
59.14 +" .... ",
59.15 +" ..... ",
59.16 +" ..... ",
59.17 +" .... ",
59.18 +" .. ",
59.19 +" .. ",
59.20 +" .. ",
59.21 +" .. ",
59.22 +" ",
59.23 +" . ",
59.24 +" ... ",
59.25 +" . "};
60.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
60.2 +++ b/icons/flag-scrolled-right.xpm Sun Jan 30 12:59:10 2005 +0000
60.3 @@ -0,0 +1,30 @@
60.4 +/* XPM */
60.5 +static char * flag_scrolled_right_xpm[] = {
60.6 +"22 22 5 1",
60.7 +" c None",
60.8 +". c #000000",
60.9 +"+ c #FFFFFF",
60.10 +"@ c #898989",
60.11 +"# c #0000FF",
60.12 +" .................. ",
60.13 +" .++++++++++++++.@@@. ",
60.14 +".++++++++++++++.@@@@@.",
60.15 +".++++++++++++++.@@@@@.",
60.16 +".++++++++++++++.@@@@@.",
60.17 +".##++++++++++++..@@@.@",
60.18 +".++#+++++++++++.@...@@",
60.19 +".++#+++++++++++.@@@@@ ",
60.20 +".###+++++++++##.@@@@ ",
60.21 +".++#++....++#++.@@ ",
60.22 +".+++##.++.##+++.@@ ",
60.23 +".++#++....++#++.@@ ",
60.24 +".###+++++++++##.@@ ",
60.25 +".++#+++++++++++.@@ ",
60.26 +".++#+++++++++++.@@ ",
60.27 +".##++++++++++++.@@ ",
60.28 +".++++++++++++++.@@ ",
60.29 +"................@@ ",
60.30 +" @@@@@@@@@@@@@@@@ ",
60.31 +" @@@@@@@@@@@@@@@@ ",
60.32 +" ",
60.33 +" "};
61.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
61.2 +++ b/icons/flag-smiley-good.xpm Sun Jan 30 12:59:10 2005 +0000
61.3 @@ -0,0 +1,28 @@
61.4 +/* XPM */
61.5 +static char * flag_smiley_good_xpm[] = {
61.6 +"22 22 3 1",
61.7 +" c None",
61.8 +". c #000000",
61.9 +"+ c #FFF200",
61.10 +" ",
61.11 +" ",
61.12 +" ...... ",
61.13 +" ...++++... ",
61.14 +" ...++++++++... ",
61.15 +" .++++++++++++. ",
61.16 +" ..++++++++++++.. ",
61.17 +" .++++.++++.++++. ",
61.18 +" ..++++.++++.++++.. ",
61.19 +" .+++++.++++.+++++. ",
61.20 +" .+++++.++++.+++++. ",
61.21 +" .++++++++++++++++. ",
61.22 +" .++.++++++++++.++. ",
61.23 +" ..++.++++++++.++.. ",
61.24 +" .+++.++++++.+++. ",
61.25 +" ..+++......+++.. ",
61.26 +" .++++++++++++. ",
61.27 +" ...++++++++... ",
61.28 +" ...++++... ",
61.29 +" ...... ",
61.30 +" ",
61.31 +" "};
62.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
62.2 +++ b/icons/flag-smiley-sad.xpm Sun Jan 30 12:59:10 2005 +0000
62.3 @@ -0,0 +1,28 @@
62.4 +/* XPM */
62.5 +static char * flag_smiley_sad_xpm[] = {
62.6 +"22 22 3 1",
62.7 +" c None",
62.8 +". c #000000",
62.9 +"+ c #FFF200",
62.10 +" ",
62.11 +" ",
62.12 +" ...... ",
62.13 +" ...++++... ",
62.14 +" ...++++++++... ",
62.15 +" .++++++++++++. ",
62.16 +" ..++++++++++++.. ",
62.17 +" .++++.++++.++++. ",
62.18 +" ..++++.++++.++++.. ",
62.19 +" .+++++.++++.+++++. ",
62.20 +" .+++++.++++.+++++. ",
62.21 +" .++++++++++++++++. ",
62.22 +" .++++++++++++++++. ",
62.23 +" ..++++......++++.. ",
62.24 +" .+++.++++++.+++. ",
62.25 +" ..+.++++++++.+.. ",
62.26 +" .++++++++++++. ",
62.27 +" ...++++++++... ",
62.28 +" ...++++... ",
62.29 +" ...... ",
62.30 +" ",
62.31 +" "};
63.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
63.2 +++ b/icons/flag-stopsign.xpm Sun Jan 30 12:59:10 2005 +0000
63.3 @@ -0,0 +1,28 @@
63.4 +/* XPM */
63.5 +static const char * flag_stopsign_xpm[] = {
63.6 +"22 22 3 1",
63.7 +" c None",
63.8 +". c #FF0000",
63.9 +"+ c #FFFFFF",
63.10 +" ",
63.11 +" .......... ",
63.12 +" ............ ",
63.13 +" .............. ",
63.14 +" ................ ",
63.15 +" .................. ",
63.16 +" .................. ",
63.17 +" .................. ",
63.18 +" .+++.+++..++..+++. ",
63.19 +" .+....+..+..+.+.+. ",
63.20 +" .+++..+..+..+.+++. ",
63.21 +" ...+..+..+..+.+... ",
63.22 +" .+++..+...++..+... ",
63.23 +" .................. ",
63.24 +" .................. ",
63.25 +" ................ ",
63.26 +" .............. ",
63.27 +" ............ ",
63.28 +" .......... ",
63.29 +" ",
63.30 +" ",
63.31 +" "};
64.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
64.2 +++ b/icons/flag-thumb-down.xpm Sun Jan 30 12:59:10 2005 +0000
64.3 @@ -0,0 +1,28 @@
64.4 +/* XPM */
64.5 +static char * flag_thumb_down_xpm[] = {
64.6 +"22 22 3 1",
64.7 +" c None",
64.8 +". c #000000",
64.9 +"+ c #FFCA4F",
64.10 +" .....++++++ ",
64.11 +" .++++.+++++ ",
64.12 +" ......++++++ ",
64.13 +" .+++++.++++++ ",
64.14 +" .++++..++++++ ",
64.15 +" .....++++++++ ",
64.16 +" .+++++.++++++. ",
64.17 +" .+++++.++++++. ",
64.18 +" .....+++++++. ",
64.19 +" .+++++.++++++. ",
64.20 +" .+++++.+++++. ",
64.21 +" .....++++++. ",
64.22 +" .+++.+++++. ",
64.23 +" .....++++. ",
64.24 +" .+++. ",
64.25 +" .++++. ",
64.26 +" .++++. ",
64.27 +" .+++. ",
64.28 +" .++. ",
64.29 +" .++. ",
64.30 +" .++. ",
64.31 +" ... "};
65.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
65.2 +++ b/icons/flag-thumb-up.xpm Sun Jan 30 12:59:10 2005 +0000
65.3 @@ -0,0 +1,28 @@
65.4 +/* XPM */
65.5 +static char * flag_thumb_up_xpm[] = {
65.6 +"22 22 3 1",
65.7 +" c None",
65.8 +". c #000000",
65.9 +"+ c #FFCA4F",
65.10 +" ... ",
65.11 +" .++. ",
65.12 +" .++. ",
65.13 +" .++. ",
65.14 +" .+++. ",
65.15 +" .++++. ",
65.16 +" .++++. ",
65.17 +" .+++. ",
65.18 +" .....++++. ",
65.19 +" .+++.+++++. ",
65.20 +" .....++++++. ",
65.21 +" .+++++.+++++. ",
65.22 +" .+++++.++++++. ",
65.23 +" .....+++++++. ",
65.24 +" .+++++.++++++. ",
65.25 +" .+++++.++++++. ",
65.26 +" .....++++++++ ",
65.27 +" .++++..++++++ ",
65.28 +" .+++++.++++++ ",
65.29 +" ......++++++ ",
65.30 +" .++++.+++++ ",
65.31 +" .....++++++ "};
66.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
66.2 +++ b/icons/flag-tmpUnscrolled-right.xpm Sun Jan 30 12:59:10 2005 +0000
66.3 @@ -0,0 +1,31 @@
66.4 +/* XPM */
66.5 +static char * flag_tmpUnscrolled_right_xpm[] = {
66.6 +"22 22 6 1",
66.7 +" c None",
66.8 +". c #000000",
66.9 +"+ c #FFFFFF",
66.10 +"@ c #898989",
66.11 +"# c #0037FF",
66.12 +"$ c #FFEE00",
66.13 +" .................. ",
66.14 +" .++++++++++++++.@@@. ",
66.15 +".++++++++++++++.@@@@@.",
66.16 +".++++++++++++++.@@@@@.",
66.17 +".++++++++++++++.@@@@@.",
66.18 +".++++++++++++++..@@@.@",
66.19 +".++++++++++++++.@...@@",
66.20 +".++..........++.@@@@@ ",
66.21 +".++.########.@+.@@@@ ",
66.22 +".++.########.@+.@@ ",
66.23 +".++.$$$$$$$$.@+.@@ ",
66.24 +".+++.$$$$$$.@@+.@@ ",
66.25 +".+++..$$$$.@@++.@@ ",
66.26 +".++++..$$.@@+++.@@ ",
66.27 +".+++++.$$.@@+++.@@ ",
66.28 +".++++.####.@@@+.@@ ",
66.29 +".+++.##$$##.@@+.@@ ",
66.30 +"....########.@..@@ ",
66.31 +" @.###$$###.@@@@@ ",
66.32 +" @.$$$$$$$$.@@@@@ ",
66.33 +" ..........@ ",
66.34 +" @@@@@@@@@@ "};
67.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
67.2 +++ b/icons/flag-url.xpm Sun Jan 30 12:59:10 2005 +0000
67.3 @@ -0,0 +1,222 @@
67.4 +/* XPM */
67.5 +static char * flag_url_xpm[] = {
67.6 +"22 22 197 2",
67.7 +" c None",
67.8 +". c #000000",
67.9 +"+ c #29673B",
67.10 +"@ c #21D167",
67.11 +"# c #010105",
67.12 +"$ c #2A30C6",
67.13 +"% c #040515",
67.14 +"& c #1B626A",
67.15 +"* c #2CFF00",
67.16 +"= c #202496",
67.17 +"- c #211A9D",
67.18 +"; c #1F447C",
67.19 +"> c #273D8B",
67.20 +", c #111E34",
67.21 +"' c #06071E",
67.22 +") c #1C208C",
67.23 +"! c #6D785C",
67.24 +"~ c #24F128",
67.25 +"{ c #1A14A0",
67.26 +"] c #2A3989",
67.27 +"^ c #1800C0",
67.28 +"/ c #20BF14",
67.29 +"( c #2C5B3F",
67.30 +"_ c #1D784E",
67.31 +": c #262BB4",
67.32 +"< c #1E2292",
67.33 +"[ c #363AC6",
67.34 +"} c #3B3FCF",
67.35 +"| c #0C258B",
67.36 +"1 c #3CCC36",
67.37 +"2 c #48E527",
67.38 +"3 c #249058",
67.39 +"4 c #42DC30",
67.40 +"5 c #32934D",
67.41 +"6 c #25976A",
67.42 +"7 c #1A4245",
67.43 +"8 c #0D0F3D",
67.44 +"9 c #181B71",
67.45 +"0 c #5559FF",
67.46 +"a c #5155FF",
67.47 +"b c #6408FF",
67.48 +"c c #28FF20",
67.49 +"d c #19FF11",
67.50 +"e c #51A249",
67.51 +"f c #2AFF00",
67.52 +"g c #2B5648",
67.53 +"h c #060100",
67.54 +"i c #111452",
67.55 +"j c #13177A",
67.56 +"k c #4549E6",
67.57 +"l c #5B5FFF",
67.58 +"m c #000086",
67.59 +"n c #794771",
67.60 +"o c #33E62B",
67.61 +"p c #2EFF00",
67.62 +"q c #20FF08",
67.63 +"r c #28006A",
67.64 +"s c #24BA53",
67.65 +"t c #2428A0",
67.66 +"u c #3539C2",
67.67 +"v c #4C50F5",
67.68 +"w c #3D41D4",
67.69 +"x c #27FF1F",
67.70 +"y c #2BF823",
67.71 +"z c #1D2899",
67.72 +"A c #368253",
67.73 +"B c #27FF1D",
67.74 +"C c #2A953E",
67.75 +"D c #1D2188",
67.76 +"E c #9795B7",
67.77 +"F c #5D61FF",
67.78 +"G c #262AA4",
67.79 +"H c #7A00FF",
67.80 +"I c #00FF05",
67.81 +"J c #74526C",
67.82 +"K c #25FF1D",
67.83 +"L c #73546B",
67.84 +"M c #1DFF15",
67.85 +"N c #0E825D",
67.86 +"O c #25AF4B",
67.87 +"P c #3F47FF",
67.88 +"Q c #040413",
67.89 +"R c #242324",
67.90 +"S c #8785A7",
67.91 +"T c #5357FF",
67.92 +"U c #4B4FF3",
67.93 +"V c #2E31FF",
67.94 +"W c #94AD7A",
67.95 +"X c #32E82A",
67.96 +"Y c #2EF126",
67.97 +"Z c #46BB3E",
67.98 +"` c #31564D",
67.99 +" . c #249659",
67.100 +".. c #1A1D7B",
67.101 +"+. c #080A28",
67.102 +"@. c #010102",
67.103 +"#. c #201F20",
67.104 +"$. c #4F53FA",
67.105 +"%. c #5A5EFF",
67.106 +"&. c #4D64EB",
67.107 +"*. c #40E335",
67.108 +"=. c #20FF00",
67.109 +"-. c #448F3A",
67.110 +";. c #1CFF00",
67.111 +">. c #1B1F8C",
67.112 +",. c #4144BC",
67.113 +"'. c #575BFF",
67.114 +"). c #3A3ECE",
67.115 +"!. c #4E60F0",
67.116 +"~. c #37C073",
67.117 +"{. c #272BA6",
67.118 +"]. c #3E42D5",
67.119 +"^. c #4A4EF0",
67.120 +"/. c #3236BC",
67.121 +"(. c #22269F",
67.122 +"_. c #02020A",
67.123 +":. c #908EC8",
67.124 +"<. c #171B83",
67.125 +"[. c #5458FF",
67.126 +"}. c #5256FF",
67.127 +"|. c #630CFF",
67.128 +"1. c #21FF00",
67.129 +"2. c #5A50FF",
67.130 +"3. c #476D67",
67.131 +"4. c #6339FF",
67.132 +"5. c #211C9C",
67.133 +"6. c #262BB1",
67.134 +"7. c #2227A1",
67.135 +"8. c #3F45FD",
67.136 +"9. c #060606",
67.137 +"0. c #464AE7",
67.138 +"a. c #4E52F9",
67.139 +"b. c #1A00A0",
67.140 +"c. c #39AC6E",
67.141 +"d. c #29FF0B",
67.142 +"e. c #26358C",
67.143 +"f. c #22367A",
67.144 +"g. c #236261",
67.145 +"h. c #112920",
67.146 +"i. c #0B0C32",
67.147 +"j. c #070B7E",
67.148 +"k. c #4044DB",
67.149 +"l. c #565AFF",
67.150 +"m. c #393DCB",
67.151 +"n. c #104858",
67.152 +"o. c #080C63",
67.153 +"p. c #474BEA",
67.154 +"q. c #5E62FF",
67.155 +"r. c #2D31B3",
67.156 +"s. c #237A6B",
67.157 +"t. c #004D21",
67.158 +"u. c #1F744D",
67.159 +"v. c #285D49",
67.160 +"w. c #3F9474",
67.161 +"x. c #3438C1",
67.162 +"y. c #474BE9",
67.163 +"z. c #3135BA",
67.164 +"A. c #4F53FB",
67.165 +"B. c #595DFF",
67.166 +"C. c #244B6E",
67.167 +"D. c #408649",
67.168 +"E. c #24674B",
67.169 +"F. c #16362B",
67.170 +"G. c #11261E",
67.171 +"H. c #0E1270",
67.172 +"I. c #131779",
67.173 +"J. c #4448E2",
67.174 +"K. c #23397A",
67.175 +"L. c #245749",
67.176 +"M. c #2C5C2B",
67.177 +"N. c #AAA59B",
67.178 +"O. c #2328DB",
67.179 +"P. c #0A0E66",
67.180 +"Q. c #676BFF",
67.181 +"R. c #2629A4",
67.182 +"S. c #00001D",
67.183 +"T. c #0D116C",
67.184 +"U. c #2429AD",
67.185 +"V. c #327259",
67.186 +"W. c #3A876A",
67.187 +"X. c #676998",
67.188 +"Y. c #4D51F5",
67.189 +"Z. c #5F63FF",
67.190 +"`. c #252B9F",
67.191 +" + c #212598",
67.192 +".+ c #171862",
67.193 +"++ c #2C654F",
67.194 +"@+ c #112B23",
67.195 +"#+ c #000085",
67.196 +"$+ c #000095",
67.197 +"%+ c #2227A4",
67.198 +"&+ c #030000",
67.199 +"*+ c #000047",
67.200 +"=+ c #353996",
67.201 +"-+ c #373A98",
67.202 +";+ c #313277",
67.203 +">+ c #222894",
67.204 +" . + @ # $ % . . . ",
67.205 +" & * = = = - ; > , . ' ",
67.206 +" = ) ! ~ { ] ^ / ( _ : . . ",
67.207 +" < [ } | 1 2 3 4 5 6 7 8 9 . . ",
67.208 +" = 0 [ a b c d e f = g & h i = . . ",
67.209 +" j k a l a m c n o p q r s = = . . . ",
67.210 +" t u v w a b c x y z A B C = = D $ . . ",
67.211 +"E F G a a a H I J K L M N O = = = P Q . R ",
67.212 +"S T U a a a V W X Y M Z ` .= = ..+.@.. #. ",
67.213 +"S $.%.a a a a &.c *.=.-.;.>.= = = . . . ,. ",
67.214 +"S '.).a a a a !.~.c {.].^./.= = = (._.. #. ",
67.215 +":.<.[.a a a a }.|.1.2.3.4.= = 5.6.. 7.8.9. ",
67.216 +" <.0.a a a a a.a a b.c.d.e.f.g.h.. i.. ",
67.217 +" j.k.l.m.a n.a o.p.q.r.= s.t.u.v.w.. . ",
67.218 +" /.x.y.a z.A.B.} q.{.).C.D.E.F.. G. ",
67.219 +" 0 [ a a a H.a I.J.= K.L.M.c . ",
67.220 +" N.O.P.Q.R.S.%.T.[.= U.. V.W. ",
67.221 +" X.Y.Z.`.F += = = .+++@+ ",
67.222 +" #+$+= = = %+&+*+. ",