Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS0
-rw-r--r--COPYING340
-rw-r--r--ChangeLog9077
-rw-r--r--INSTALL229
-rw-r--r--Makefile.am5
-rw-r--r--NEWS0
-rw-r--r--README0
-rwxr-xr-xautogen.sh20
-rw-r--r--configure.ac121
-rw-r--r--cut-n-paste/Makefile.am1
-rw-r--r--cut-n-paste/recent-files/Makefile.am32
-rw-r--r--cut-n-paste/recent-files/egg-recent-item.c440
-rw-r--r--cut-n-paste/recent-files/egg-recent-item.h78
-rw-r--r--cut-n-paste/recent-files/egg-recent-model.c1775
-rw-r--r--cut-n-paste/recent-files/egg-recent-model.h80
-rw-r--r--cut-n-paste/recent-files/egg-recent-util.c158
-rw-r--r--cut-n-paste/recent-files/egg-recent-util.h23
-rw-r--r--cut-n-paste/recent-files/egg-recent-view-bonobo.c714
-rw-r--r--cut-n-paste/recent-files/egg-recent-view-bonobo.h58
-rw-r--r--cut-n-paste/recent-files/egg-recent-view-gtk.c817
-rw-r--r--cut-n-paste/recent-files/egg-recent-view-gtk.h64
-rw-r--r--cut-n-paste/recent-files/egg-recent-view.c68
-rw-r--r--cut-n-paste/recent-files/egg-recent-view.h43
-rwxr-xr-xcut-n-paste/recent-files/update-from-egg.sh25
-rw-r--r--data/Makefile.am10
-rw-r--r--data/evince-ui.xml22
-rw-r--r--po/ChangeLog1
-rw-r--r--po/POTFILES.in8
-rw-r--r--po/de.po596
-rw-r--r--po/evince.pot593
-rw-r--r--shell/Makefile.am24
-rw-r--r--shell/ev-application.c196
-rw-r--r--shell/ev-application.h63
-rw-r--r--shell/ev-window.c509
-rw-r--r--shell/ev-window.h62
-rw-r--r--shell/global-params.cc36
-rw-r--r--shell/global-params.h36
-rw-r--r--shell/main.c66
-rw-r--r--viewer/Makefile.am15
-rw-r--r--viewer/ev-viewer.c58
-rw-r--r--viewer/ev-viewer.h55
41 files changed, 16518 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/AUTHORS
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..eefc219
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,9077 @@
+2004-10-23 Martin Kretzschmar <martink@gnome.org>
+
+ * ChangeLog, ggv/ChangeLog, gpdf/ChangeLog: merge the separate
+ ChangeLogs into one toplevel file. Keep only that.
+
+2004-09-28 Pawan Chitrakar <pawan@nplinux.org>
+
+ * ggv/configure.in: Added ne "Nepali" in ALL_LINGUAS
+
+2004-09-20 Mark McLoughlin <mark@skynet.ie>
+
+ * gpdf/xpdf/GnomeVFSStream.cc (reset, fillBuf): check gnome_vfs_foo
+ return values. Fixes crashes with gnome-vfs' http method. Bug
+ #153159, #151364, Red Hat Bug #132469, half of Debian Bug #268873.
+
+2004-09-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 2.8.0.
+
+ * gpdf/README.GPdf: the font situation is a bit better now.
+
+2004-09-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.8.0; tag GGV_2_8_0; tarball for the upcoming 2.8.0 release.
+
+2004-09-07 Gora Mohanty <gmohanty@cvs.gnome.org>
+
+ * gpdf/configure.in: Added 'or' to ALL_LINGUAS.
+
+2004-09-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.7.99; tag GGV_2_7_99; released a tarball.
+ * ggv/ggv.desktop.in (MimeType): removed application/pdf as the pdf
+ viewing functionality of ggv is, although still available, not
+ actively supported - use gpdf for PDF previewing.
+
+2004-09-04 Kjartan Maraas <kmaraas@gnome.org>
+
+ * gpdf/configure.in: Add «nb» to ALL_LINGUAS.
+
+2004-08-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 2.7.91. Disable "development
+ release" warning.
+
+2004-08-28 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_update_bkvisual):
+ nodes without link actions have NULL outline items. Don't
+ dereference them. Fixes bug #150269.
+
+2004-08-28 Akagic Amila <bono@linux.org.ba>
+
+ * configure.in: Added 'bs' to ALL_LINGUAS.
+
+2004-08-27 Akagic Amila <bono@linux.org.ba>
+
+ * ggv/configure.in: Added 'bs' to ALL_LINGUAS.
+
+2004-08-24 Dan Williams <dcbw@redhat.com>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_action_uri): don't dereference
+ app if it's NULL (i.e. no app available for that uri).
+ Fixes Bug #150476 (Red Hat Bug #127803).
+
+2004-08-17 Mark McLoughlin <mark@skynet.ie>
+
+ * gpdf/lib/recent-files/egg-recent-item.[ch],
+ lib/recent-files/egg-recent-model.c,
+ lib/recent-files/egg-recent-view-gtk.c: sync with
+ latest libegg.
+
+2004-08-17 Mark McLoughlin <mark@skynet.ie>
+
+ * ggv/src/recent-files/egg-recent-item.[ch],
+ src/recent-files/egg-recent-model.c,
+ src/recent-files/egg-recent-util.[ch],
+ src/recent-files/egg-recent-view-bonobo.c,
+ src/recent-files/egg-recent-view-gtk.c,
+ src/recent-files/egg-recent-view.[ch]: sync with
+ latest libegg.
+
+ * ggv/src/recent-files/update-from-egg.sh: add
+
+ * ggv/src/recent-files/Makefile.am: add update-from-egg.sh to
+ EXTRA_DIST.
+
+2004-08-16 Kjartan Maraas <kmaraas@gnome.org>
+
+ * ggv/configure.in: Added nb to ALL_LINGUAS.
+
+2004-08-15 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ Fix for #149954. Based on patch by Vijaykumar Patwari
+ <vijaykumar.patwari@wipro.com>
+
+ * gpdf/xpdf/gpdf-view.c, xpdf/gpdf-view.h (gpdf_view_save_as): Changed
+ to return the result of PDFDoc::saveAs.
+
+ * gpdf/xpdf/gpdf-contol.cc (overwrite_existing_file): New function, ask
+ user before overwriting existing file.
+ (save_error_dialog): New function, Throws error dialog.
+ (gpdf_control_get_filename): Morph it into
+ gpdf_control_save_file(), Check if the file already exists.
+ (verb_SaveAs_cb): Call new function to save a file.
+
+2004-08-12 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFace): prefer embedded fonts over
+ base 14 fonts. Fixes/works around Bug #149952.
+
+2004-08-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, README.GPdf: actually, we require libgnomeprint
+ 2.5.1 (for GNOME_PRINT_KEY_DUPLEX).
+ Thanks {agriffis,foser}@gentoo.org. See also
+ http://bugs.gentoo.org/show_bug.cgi?id=46913
+
+2004-08-05 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ Fixes #126719 by Jeff Muizelaar <jrmuizel@nit.ca>:
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_handle_drag_motion):
+ calculate (x,y) properly for the case where we get unhinted
+ motion events that are relative to the actual canvas window,
+ instead of the widget window.
+
+2004-08-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 2.7.90.
+
+2004-08-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (verb_FileExit_cb, gw_close_all): remove.
+
+ * gpdf/shell/gpdf-window-ui.xml: remove FileExit references.
+ Fixes Bug 148681.
+
+2004-08-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_set_pdf_doc),
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_set_pdf_doc):
+ Make the guint to pointer cast explicit.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_print): keep the print dialog
+ in a private member variable, don't destroy it unconditionally on
+ when the BonoboControl is disconnected.
+ (gpdf_control_get_filename): ditto for the file chooser.
+ (properties_response_handler, properties_delete_handler)
+ (verb_FileProperties_cb): and for the properties window.
+ (gpdf_control_disconnected): destroy any left over dialogs.
+ Fixes Bug #149062 (and lots of crash-on-exit bugs, I hope).
+
+2004-07-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded): rewrite, this time
+ respect encoding information/CID-to-GID stuff etc. Fixes Bug #148362.
+ (lookupGlyph): update for changes in getFontFaceEmbedded
+ (drawString): ditto.
+
+2004-07-21 Ray Strode <rstrode@redhat.com>
+ * ggv/ggv/ggv.desktop.in: Add MimeType line to desktop file
+ new mime sytem.
+
+2004-07-20 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_zoom): add the hack Federico did
+ for page changes for zooming as well. Still flashes when zooming,
+ but only in the background color, better than flashing with the
+ old content IMHO.
+
+2004-07-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/gpdf.desktop.in: added X-GNOME-Bugzilla-foo entries. I hope that
+ fixes Bug #147870.
+ (MimeType): add, we understand application/pdf.
+
+ * gpdf/xpdf/gpdf-control.cc (gnome_vfs_uri_new): use just
+ gnome_vfs_uri_extract_short_name (which returns the unescaped
+ basename of a vfs_uri) as title. Fixes Bug #130611.
+
+2004-07-19 Federico Mena Quintero <federico@ximian.com>
+
+ Fixes #126720:
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_goto_page_no_history): Don't render
+ the page in an idle handler.
+ (gpdf_view_render_page): Return void.
+ (gpdf_view_scroll_to_top): As a hack to keep the canvas from
+ scrolling-then-updating, set the background pixmap of the
+ container window to null, then hide the bin_window, the scroll,
+ then show the bin_window, and reset the background.
+ (gpdf_view_scroll_to_bottom): Likewise.
+
+2004-07-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.7.0; released a tarball.
+ * ggv/src/ggv-prefs.c (ggv_prefs_load): test for "/usr/usb/lpr" on Solaris.
+ * ggv/src/ggv-ui.xml: changed "Fullscreen mode" to "Full Screen"; fixes #144876.
+ * ggv/src/gtkgs.c (gtk_gs_goto_page): do a gtk_gs_set_page_size() in order to properly
+ display documents with pages of multiple sizes. now how could this one have crept in
+ and how come no one noticed it until now? fixes #147591.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_print): do not attempt to execute
+ a print command from an argv array whose first element is NULL; fixes #147705.
+
+2004-07-16 Muktha <muktha.narayan@wipro.com>
+
+ * ggv/bonobo/main.c (main): disable session manager connection for
+ ggv-postscript-viewer. Fixes bug #147710.
+
+Fri Jun 18 08:33:07 2004 Jonathan Blandford <jrb@gnome.org>
+
+ * ggv/AUTHORS: Changed the authors file to make it more obvious who's
+ really in charge.
+
+2004-06-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (verb_HelpAbout_cb): Update copyright period to
+ 1996-2004.
+
+2004-06-16 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_load): applied patch from Subrahmanyam
+ Madduri: added code for getting the filename which is to be opened,
+ from the path of the file. Also changed the order of display in title
+ to "<filename> - GGV". Fixes bug #60092
+ * ggv/bonobo/ggv-postscript-view-ui.xml: applied a patch from Udayan Kumar,
+ that adds a print icon to the toolbar, fixing #140907.
+
+2004-06-13 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_reset_link_status_cb):
+ Fixed indentation.
+ Also added c-indent-level in emacs local vars.
+
+ * gpdf/xpdf/tests/test-gpdf-view.cc (TEST_NEW): Forgot to commit the
+ test. Added the pdf doc as a param for constructor.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_populate_idle):
+ Changed the way to get the gdk window on which the cursor
+ is set. Now use the treeview widget window instead of getting
+ its parent.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (GPDF_DEFAULT_THUMB_WIDTH):
+ Removed unused define for empty page thumbnail image.
+ (gpdf_thumbnails_view_canvas_outline_event_cb)
+ (gpdf_thumbnails_view_populate_idle):
+ Changed the way to get the gdk window on which the cursor
+ is set. Now use the canvas widget window instead of getting
+ its parent.
+
+2004-06-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 2.7.2.
+
+2004-06-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_view_widgets): set a
+ step_increment for the gtk_scrolled_window's [hv]adjustments.
+ Workaround for bug #132489 (see also bug #96546). (Makes the
+ scrollbar buttons work.)
+
+2004-06-06 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_view_widgets):
+ Use new way to allocate a gpdf-view.
+
+ * gpdf/xpdf/gpdf-view.h: Removed gpdf_view_new proto.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_set_pdf_doc)
+ (gpdf_view_get_property, gpdf_view_set_property)
+ (gpdf_view_constructor, gpdf_view_class_init):
+ Change the way view is allocated to use the g_object_new
+ way. Added props for pdf doc and for parent control.
+ (gpdf_view_link_entered_cb): Init some var to NULL.
+ (gpdf_view_bookmark_selected): Added case for actionURI
+ to handle bookmarks that are URIs.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_class_init):
+ Removed params spec desc strings as a some translated ones.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_class_init):
+ Removed params spec desc strings as a some translated ones.
+ (gpdf_bookmarks_view_construct): Loaded a new (network) stock
+ icon for bookmarks wearing an actionURI link.
+ (gpdf_bookmarks_view_update_bkvisual): Got item object from
+ tree model to be able to discriminate icons to update. actionURI
+ associated icons and actionNamed associated icons need no update.
+ (gpdf_bookmarks_view_flat_recurse_outlines): Added new LinkURI
+ local instances. Init others to NULL to avoid warnings.
+ Changed strings when action is unknown to make it more
+ interpretable.
+ Add code to handle LinkURI actions instances.
+
+ * gpdf/xpdf/gpdf-annots-view.cc (gpdf_annots_view_class_init):
+ Removed params spec desc strings as a some translated ones.
+
+2004-06-06 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc: include gpdf-control-private.h for
+ prototypes.
+ (gpdf_control_private_error_dialog): add ref_parent parameter:
+ whether to _ref the parent control.
+ (destroy_widget_unref_control): signal handler for the alert's
+ "response" signal: destroy the dialog, unref the parent control.
+ (gpdf_control_private_display_help)
+ (gpdf_control_no_postscript_printer_alert): update error_dialog
+ calls.
+ (persist_file_loading_failed_cb): ditto, with ref_parent = TRUE,
+ thus the control never auto-exits before the user can ack the
+ "Loading failed" message. Fixes bug #137262.
+
+ * gpdf/xpdf/gpdf-control-private.h: update prototype.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_action_uri): update
+ error_dialog argument list.
+
+ * gpdf/shell/gpdf.c (gw_control_load_pdf):
+ s/error_stream:/error_persist_file:/
+
+ * gpdf/xpdf/tests/test-gpdf-view.cc (view_implements_ggv_document): fix
+ build.
+
+2004-06-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am: drop support for building xpdf, pdfto*.
+
+ * gpdf/configure.in: simplify more. Drop --enable-no-text-select
+ and --enable-multithreaded options. Bug #111404.
+
+2004-06-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: post release version bump. Reorder a bit, add
+ some section header comments. Remove OS/2 check. Remove checks
+ that were only necessary for the Xpdf build system.
+
+ * gpdf/fofi/Makefile.dep, splash/Makefile.dep: cvs remove. Remainings
+ of the Xpdf non-automake build system.
+
+ * gpdf/shell/gpdf.c (verb_HelpAbout_cb):
+ s/translator_credits.../translator-credits/ as requested some
+ months ago.
+
+2004-06-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/NEWS, configure.in: Version 2.7.1.
+
+2004-05-31 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: print Message Of Doom.
+
+2004-05-23 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (drawImageMask): undo 2004-02-28 change and
+ obey invert parameter instead (D'oh). Bug #142964.
+ (drawImageMask): do mask color computations and some variable
+ definitions outside of the loop. Swap if/else branches.
+ (drawImage): move variable defns outside loop.
+
+2004-05-21 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc: Changed current_gen_thumb
+ type from gint to guint to avoid warnings.
+ (gpdf_thumbnails_view_populate_idle): Init Thumb ptr
+ to NULL to avoid warning.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_entered_cb):
+ Add braces around each case to avoid warning about
+ inits and/or cross case inits.
+ (gpdf_view_render_page): Update displayPage call for
+ annots view to new xpdf3 API.
+
+2004-05-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_render_page): add missing crop
+ argument.
+
+ * gpdf/fofi/Makefile.am, splash/Makefile.am: added.
+
+ * gpdf/Makefile.am: add fofi and splash subdirs.
+
+ * gpdf/ANNOUNCE:
+ * gpdf/CHANGES:
+ * gpdf/Makefile.am:
+ * gpdf/README:
+ * gpdf/aconf-win32.h:
+ * gpdf/configure.in:
+ * gpdf/dj_make.bat:
+ * gpdf/doc/pdffonts.1:
+ * gpdf/doc/pdffonts.cat:
+ * gpdf/doc/pdffonts.hlp:
+ * gpdf/doc/pdfimages.1:
+ * gpdf/doc/pdfimages.cat:
+ * gpdf/doc/pdfimages.hlp:
+ * gpdf/doc/pdfinfo.1:
+ * gpdf/doc/pdfinfo.cat:
+ * gpdf/doc/pdfinfo.hlp:
+ * gpdf/doc/pdftopbm.1:
+ * gpdf/doc/pdftopbm.cat:
+ * gpdf/doc/pdftopbm.hlp:
+ * gpdf/doc/pdftops.1:
+ * gpdf/doc/pdftops.cat:
+ * gpdf/doc/pdftops.hlp:
+ * gpdf/doc/pdftotext.1:
+ * gpdf/doc/pdftotext.cat:
+ * gpdf/doc/pdftotext.hlp:
+ * gpdf/doc/xpdf.1:
+ * gpdf/doc/xpdf.cat:
+ * gpdf/doc/xpdf.hlp:
+ * gpdf/doc/xpdfrc.5:
+ * gpdf/doc/xpdfrc.cat:
+ * gpdf/doc/xpdfrc.hlp:
+ * gpdf/fofi/Makefile.in:
+ * gpdf/goo/GHash.cc:
+ * gpdf/goo/GHash.h:
+ * gpdf/ms_make.bat:
+ * gpdf/splash/Makefile.in:
+ * gpdf/xpdf/DisplayFontTable.h:
+ * gpdf/xpdf/ErrorCodes.h:
+ * gpdf/xpdf/FTFont.cc:
+ * gpdf/xpdf/FTFont.h:
+ * gpdf/xpdf/FontFile.cc:
+ * gpdf/xpdf/FontFile.h:
+ * gpdf/xpdf/Function.h:
+ * gpdf/xpdf/GPOutputDev.cc:
+ * gpdf/xpdf/Gfx.cc:
+ * gpdf/xpdf/Gfx.h:
+ * gpdf/xpdf/GfxFont.cc:
+ * gpdf/xpdf/GfxFont.h:
+ * gpdf/xpdf/GfxState.cc:
+ * gpdf/xpdf/GfxState.h:
+ * gpdf/xpdf/GlobalParams.cc:
+ * gpdf/xpdf/GlobalParams.h:
+ * gpdf/xpdf/Makefile.am:
+ * gpdf/xpdf/Object.cc:
+ * gpdf/xpdf/Object.h:
+ * gpdf/xpdf/Outline.cc:
+ * gpdf/xpdf/OutputDev.cc:
+ * gpdf/xpdf/OutputDev.h:
+ * gpdf/xpdf/PBMOutputDev.cc:
+ * gpdf/xpdf/PBMOutputDev.h:
+ * gpdf/xpdf/PDFDoc.cc:
+ * gpdf/xpdf/PDFDoc.h:
+ * gpdf/xpdf/PSOutputDev.cc:
+ * gpdf/xpdf/PSOutputDev.h:
+ * gpdf/xpdf/Page.cc:
+ * gpdf/xpdf/Page.h:
+ * gpdf/xpdf/Parser.cc:
+ * gpdf/xpdf/SFont.cc:
+ * gpdf/xpdf/SFont.h:
+ * gpdf/xpdf/Stream.cc:
+ * gpdf/xpdf/Stream.h:
+ * gpdf/xpdf/T1Font.cc:
+ * gpdf/xpdf/T1Font.h:
+ * gpdf/xpdf/TTFont.cc:
+ * gpdf/xpdf/TTFont.h:
+ * gpdf/xpdf/TextOutputDev.cc:
+ * gpdf/xpdf/TextOutputDev.h:
+ * gpdf/xpdf/XOutputDev.cc:
+ * gpdf/xpdf/XOutputDev.h:
+ * gpdf/xpdf/XPixmapOutputDev.cc:
+ * gpdf/xpdf/XPixmapOutputDev.h:
+ * gpdf/xpdf/XRef.cc:
+ * gpdf/xpdf/XRef.h:
+ * gpdf/xpdf/config.h:
+ * gpdf/xpdf/gpdf-control.cc:
+ * gpdf/xpdf/pdffonts.cc:
+ * gpdf/xpdf/pdfimages.cc:
+ * gpdf/xpdf/pdfinfo.cc:
+ * gpdf/xpdf/pdftopbm.cc:
+ * gpdf/xpdf/pdftops.cc:
+ * gpdf/xpdf/pdftotext.cc:
+ * gpdf/xpdf/tests/Makefile.am:
+ * gpdf/xpdf/vms_make.com:
+ * gpdf/xpdf/xpdf.cc: Imported Xpdf 3.00 and fixed build.
+
+2004-05-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/ANNOUNCE:
+ * gpdf/CHANGES:
+ * gpdf/README:
+ * gpdf/aconf2.h:
+ * gpdf/configure.in:
+ * gpdf/dj_make.bat:
+ * gpdf/doc/pdffonts.1:
+ * gpdf/doc/pdffonts.cat:
+ * gpdf/doc/pdffonts.hlp:
+ * gpdf/doc/pdfimages.1:
+ * gpdf/doc/pdfimages.cat:
+ * gpdf/doc/pdfimages.hlp:
+ * gpdf/doc/pdfinfo.1:
+ * gpdf/doc/pdfinfo.cat:
+ * gpdf/doc/pdfinfo.hlp:
+ * gpdf/doc/pdftopbm.1:
+ * gpdf/doc/pdftopbm.cat:
+ * gpdf/doc/pdftopbm.hlp:
+ * gpdf/doc/pdftops.1:
+ * gpdf/doc/pdftops.cat:
+ * gpdf/doc/pdftops.hlp:
+ * gpdf/doc/pdftotext.1:
+ * gpdf/doc/pdftotext.cat:
+ * gpdf/doc/pdftotext.hlp:
+ * gpdf/doc/xpdf.1:
+ * gpdf/doc/xpdf.cat:
+ * gpdf/doc/xpdf.hlp:
+ * gpdf/doc/xpdfrc.5:
+ * gpdf/doc/xpdfrc.cat:
+ * gpdf/doc/xpdfrc.hlp:
+ * gpdf/goo/gfile.cc:
+ * gpdf/ms_make.bat:
+ * gpdf/vms_make.com:
+ * gpdf/xpdf/Annot.cc:
+ * gpdf/xpdf/Array.cc:
+ * gpdf/xpdf/BuiltinFontTables.cc:
+ * gpdf/xpdf/CMap.cc:
+ * gpdf/xpdf/CMap.h:
+ * gpdf/xpdf/Catalog.cc:
+ * gpdf/xpdf/CharCodeToUnicode.cc:
+ * gpdf/xpdf/CharCodeToUnicode.h:
+ * gpdf/xpdf/Decrypt.cc:
+ * gpdf/xpdf/Dict.cc:
+ * gpdf/xpdf/ErrorCodes.h:
+ * gpdf/xpdf/FTFont.cc:
+ * gpdf/xpdf/FTFont.h:
+ * gpdf/xpdf/FontFile.cc:
+ * gpdf/xpdf/FontFile.h:
+ * gpdf/xpdf/Function.cc:
+ * gpdf/xpdf/Gfx.cc:
+ * gpdf/xpdf/Gfx.h:
+ * gpdf/xpdf/GfxFont.cc:
+ * gpdf/xpdf/GfxFont.h:
+ * gpdf/xpdf/GfxState.cc:
+ * gpdf/xpdf/GfxState.h:
+ * gpdf/xpdf/GlobalParams.cc:
+ * gpdf/xpdf/GlobalParams.h:
+ * gpdf/xpdf/JBIG2Stream.cc:
+ * gpdf/xpdf/Link.cc:
+ * gpdf/xpdf/Link.h:
+ * gpdf/xpdf/Makefile.am:
+ * gpdf/xpdf/OutputDev.h:
+ * gpdf/xpdf/PDFDoc.cc:
+ * gpdf/xpdf/PDFDoc.h:
+ * gpdf/xpdf/PSOutputDev.cc:
+ * gpdf/xpdf/PSOutputDev.h:
+ * gpdf/xpdf/Page.cc:
+ * gpdf/xpdf/Page.h:
+ * gpdf/xpdf/Parser.cc:
+ * gpdf/xpdf/Stream.cc:
+ * gpdf/xpdf/Stream.h:
+ * gpdf/xpdf/TTFont.cc:
+ * gpdf/xpdf/TTFont.h:
+ * gpdf/xpdf/TextOutputDev.cc:
+ * gpdf/xpdf/TextOutputDev.h:
+ * gpdf/xpdf/UnicodeMap.cc:
+ * gpdf/xpdf/UnicodeMap.h:
+ * gpdf/xpdf/UnicodeTypeTable.cc:
+ * gpdf/xpdf/UnicodeTypeTable.h:
+ * gpdf/xpdf/XOutputDev.cc:
+ * gpdf/xpdf/XOutputDev.h:
+ * gpdf/xpdf/XPDFApp.cc:
+ * gpdf/xpdf/XPDFCore.cc:
+ * gpdf/xpdf/XPDFCore.h:
+ * gpdf/xpdf/XPDFViewer.cc:
+ * gpdf/xpdf/XPDFViewer.h:
+ * gpdf/xpdf/XRef.cc:
+ * gpdf/xpdf/about-text.h:
+ * gpdf/xpdf/config.h:
+ * gpdf/xpdf/gpdf-control.cc:
+ * gpdf/xpdf/gpdf-link-canvas-item.cc:
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc:
+ * gpdf/xpdf/pdffonts.cc:
+ * gpdf/xpdf/pdfimages.cc:
+ * gpdf/xpdf/pdfinfo.cc:
+ * gpdf/xpdf/pdftopbm.cc:
+ * gpdf/xpdf/pdftops.cc:
+ * gpdf/xpdf/pdftotext.cc:
+ * gpdf/xpdf/tests/test-links.cc:
+ * gpdf/xpdf/vms_make.com:
+ * gpdf/xpdf/xpdf.cc: Imported Xpdf 2.03 and fixed build.
+
+2004-05-13 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ Reverted some of the last commits.
+
+ * gpdf/xpdf/gpdf-annots-view.cc (gpdf_annots_view_class_init)
+ (gpdf_annots_view_set_property, gpdf_annots_view_new):
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_class_init)
+ (gpdf_thumbnails_view_set_property, gpdf_thumbnails_view_new)
+ (gpdf_thumbnails_view_dispose):
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_class_init):
+ (gpdf_bookmarks_view_set_property):
+ (gpdf_bookmarks_view_new):
+ Added set_property method. Changed param_spec_pointer in object.
+ Changed get_pointer in get_object.
+ Casted gpdf_view in GPdfView.
+
+ * gpdf/xpdf/gpdf-view.cc: Added timeout handler for status reset
+ to view private struct.
+ (gpdf_view_reset_link_status_cb): New callback for status
+ reset after timeout.
+ (gpdf_view_link_entered_cb, gpdf_view_link_leaved_cb):
+ Added handler for displaying link action in app status
+ bar when link enter/leave signal are received.
+ (gpdf_view_render_page): Connect enter/leave handlers
+ on links layer signals.
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.h: Added LINK_ENTERED &
+ LINK_LEAVED signals for displaying links in app bar status
+ when mouse goes over them.
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc: Added LINK_ENTERED &
+ LINK_LEAVED signals for displaying links in app bar status
+ when mouse goes over them.
+ (link_entered_cb, link_leaved_cb): Added handler for link
+ enter/leave signals to emit link_entered/link_leaved signals.
+ (gpdf_links_canvas_layer_add_link): Connected enter/leave
+ link signal handlers.
+ (gpdf_links_canvas_layer_class_init): Declared new signals.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc:
+ (gpdf_bookmarks_view_set_property)
+ (gpdf_bookmarks_view_class_init, gpdf_bookmarks_view_new):
+ (gpdf_thumbnails_view_dispose):
+ Cleaned up constructor and add control ref;
+ Added constructor args as obj properties, added a ref on parent
+ control and unref in dispose.
+ (gpdf_bookmarks_view_update_popup_actions):
+ Check is bookmarks exists before changing tools menu (expand/
+ collapse/expand all/collapse all) sensitivity.
+ (gpdf_bookmarks_view_populate_idle): Remove control disconnect
+ handler IF had been registered.
+ (gpdf_bookmarks_view_get_tools_menu): Changed order of tools popup
+ menu items (to match real order).
+
+ * gpdf/xpdf/gpdf-annots-view.cc:
+ (gpdf_annots_view_set_property):
+ (gpdf_annots_view_class_init, gpdf_annots_view_new)
+ (gpdf_annots_view_dispose):
+ Cleaned up constructor;
+ Added constructor args as obj properties, added a ref on parent
+ control and unref in dispose.
+
+2004-05-12 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_flat_recurse_outlines):
+ Fixed missing affectation when handling link_named bookmarks.
+ The dynamic cast was just compared to NULLbut not stored in
+ link_named.
+
+2004-05-10 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc: Add gpdf-control-private header
+ for using status & ratio.
+ (gpdf_thumbnails_view_populate_idle): Set ratio & status to give
+ feedback on the thumb generation.
+ Clear ration & status, reset cursor when finished.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_bookmarks_view):
+ Give control as first arg of gpdf_bookmarks_view_new.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.h: Add parent control as new arg.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc: Add gpdf-control-private header
+ for using status & ratio.
+ Adding parent control in private struct.
+ (gpdf_bookmarks_view_new): Added control as first param to keep
+ it in private struct.
+ (gpdf_bookmarks_view_flat_recurse_outlines): Set status & advance
+ bar to give feedback about bookmarks generation.
+ (gpdf_bookmarks_view_populate_idle): Fix a problem when no bookmarks
+ are available. The idle func were always called as
+ generation_terminated was never true.
+ Set watch when generation goes on.
+ Clear status, ration & cursor when generation terminated.
+ (gpdf_bookmarks_view_set_pdf_doc): Connected remove idle
+ on control disconnect signal instead of view destroy signal.
+
+2004-05-13 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_action_uri): Fixed bug when
+ launching uri. The Link string storing URI was freed with list.
+ Now the string is duped before appending it to the list.
+ Changed uri from GString * to gchar *.
+
+2004-05-09 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_set_pdf_doc):
+ Changed priority for thumbs idle in order to do queue them at end
+ and create bookmarks before.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc
+ (gpdf_bookmarks_view_update_bookmarks_tree):
+ Changed init of idle to let user see bookmarks creation at idle.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_bookmark_selected):
+ Handle case when title is selected and action is null.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_set_pdf_doc):
+ Remove idle on parent control disconnect if killed while generating
+ bookmarks to avoid crash.
+ Set watch pointer.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc: Added struct GPdfBookmarksGenState
+ for implementing flat recursion when creating bookmarks. This
+ struct is used to store recursive generation state across idle func
+ boundary.
+ Also added necessary field in bookmarks view private struct to
+ keep this state.
+ (gpdf_bookmarks_view_row_expanded_cb)
+ (gpdf_bookmarks_view_row_collapsed_cb)
+ (gpdf_bookmarks_view_page_changed_cb):
+ (gpdf_bookmarks_view_selection_changed_cb):
+ Return if generation not yet finished.
+ (gpdf_bookmarks_view_bookmark_select_func):
+ Fixed a bug when a title Outline item exists. Such an item have no
+ action associated. We handle this case here and in gpdf-view.cc.
+ (gpdf_bookmarks_view_flat_recurse_outlines):
+ (gpdf_bookmarks_view_update_bookmarks_tree):
+ (gpdf_bookmarks_view_populate_idle):
+ Changed recursive bookmarks generation in a flat call to be able to
+ have it called several time as idle handler.
+ (gpdf_bookmarks_view_set_pdf_doc):
+ Remove idle on view destroy if killed while generating bookmarks
+ to avoid crash.
+ Set watch pointer.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_page_box_coord):
+ Removed assert and add update of thumb size guess if it was wrong.
+
+ First step for fixing Bug #137439
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ Add a counter for keeping track of current thumb generated.
+ (gpdf_thumbnails_view_set_scroll_region):
+ While setting scroll region, the loop is now between page 1
+ and last generated one (current_gen_thumb) to be able to relayout
+ while generating thumbs.
+ (gpdf_thumbnails_view_create_thumbnail):
+ Added thumb coords. Computation while creating is based on a guess.
+ The layout may be not perfect but it will be correctly relayout
+ as soon as finished.
+ (gpdf_thumbnails_view_populate_idle):
+ Changed idle logic in order to only generate one thumb for each
+ call. This way we never freeze display.
+ (gpdf_thumbnails_view_set_pdf_doc):
+ Moved thumb generation inits from idle. Set guess for page
+ width/height to have a semi correct layout.
+
+2004-05-09 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_populate_idle):
+ Use Thumb method 'ok' to ensure Thumb data availability. It should
+ avoid further crash if embed Thumb data not correctly
+ parsed.
+
+ * gpdf/xpdf/Thumb.h:
+ * gpdf/xpdf/Thumb.cc (Thumb::Thumb): Added a flag for keeping
+ Thumb data validity and the method to access it.
+
+2004-05-08 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/lib/recent-files: updated from egg:
+
+ 2004-04-15 Bastien Nocera <hadess@hadess.net>
+
+ * gpdf/libegg/recent-files/egg-recent-util.c: another unused function
+ to comment when not using libgnomeui
+
+ 2004-04-10 Bastien Nocera <hadess@hadess.net>
+
+ * gpdf/libegg/recent-files/egg-recent-util.c: remove unused function
+ when not using libgnomeui
+
+ 2004-04-05 Murray Cumming <murrayc@murrayc.com>
+
+ * gpdf/libegg/recent-files/egg-recent-item.c: Use private_data instead
+ of private, so it can compile with a C++ compiler.
+ * gpdf/libegg/recent-files/egg-recent-view.h: Add G_BEGIN_DECLS and
+ G_END_DECLS so we can use it with C++.
+
+ 2004-03-09 Bastien Nocera <hadess@hadess.net>
+
+ * gpdf/libegg/recent-files/egg-recent-util.c:
+ (egg_recent_util_get_icon): avoid warnings when the icon file
+ isn't found
+
+ 2004-01-31 James Willcox <jwillcox@gnome.org>
+
+ * gpdf/libegg/recent-files/egg-recent-model.c:
+ (egg_recent_model_lock_file):
+
+ Fix a locking bug, patch from
+ Gustavo Giráldez <gustavo.giraldez@gmx.net>
+
+ 2004-01-22 James Willcox <jwillcox@gnome.org>
+
+ * gpdf/libegg/recent-files/egg-recent-model.c:
+ (egg_recent_model_lock_file):
+
+ Make the file locking suck a little less for nfs home directories.
+ Patch from Dan Williams <dcbw@redhat.com>.
+
+ * gpdf/libegg/recent-files/egg-recent-model.c: the 2004-01-31 change
+ fixes bug #138817
+
+ * gpdf/shell/gpdf.c (gpdf_window_new): de-brand window title -> PDF
+ Viewer. Bug #137167.
+
+ * gpdf/help/C/figures/gpdf_window.png, help/de/figures/gpdf_window.png:
+ update for new window title.
+
+ * gpdf/configure.in: bump version number for GNOME 2.7.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc
+ (gpdf_thumbnails_view_render_thumbnail_image): gdk-pixbuf requires
+ always 8 bits per component. And Thumb::getPixbufData always
+ provides 8 bits per component. Fixes bug #141226.
+
+ * gpdf/xpdf/Thumb.cc (ThumbColorMap::ThumbColorMap): unused now, remove.
+
+ * gpdf/xpdf/Thumb.h: ditto.
+
+ * gpdf/xpdf/Thumb.cc (Thumb::Thumb): use a normal GfxImageColorMap.
+ Use it not only for Indexed color spaces but always. Fixes crasher
+ bugs #139211, #139477, #141725.
+
+ * gpdf/xpdf/Thumb.h: update for ColorMap changes.
+
+ * gpdf/xpdf/Thumb.cc (lookup): log to stderr because that's not
+ buffered etc.
+
+2004-05-03 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+ Fix for Bug #137952:
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_filename):
+ * gpdf/shell/gpdf.c (gw_ask_for_uri):
+ Added file filters 'application/pdf' and '*' to
+ file choosers.
+
+2004-04-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/ggv-prefs-ui.c: (ggv_prefs_dialog_new): Changed accelarators
+ for Document tab - Default Zoom and Coordination Units to resolve
+ conflicts in accelarators. patch by Archana Shah. Fixes bug#
+ 134976.
+ * ggv/src/ggv-window.c (ggv_add_open_button): added tooltip for recent
+ files button. patch by chenthill.
+ * ggv/backport of bugfixes from gnome-2-6 branch.
+ * ggv/src/ggv-window.c (verb_FileOpen): don't set the file chooser size.
+ fixes #139518. patch by Darren Adams.
+ * ggv/src/gsdefaults.c (gtk_gs_defaults_set_*): only set the new value
+ if it differs from the old: should fix #139362.
+ * ggv/src/ggv-window.c (open_button_pressed_cb): applied a patch by
+ Kouichirou Hiratsuka, fixing a crash when event parameter is NULL.
+ fixes #139408.
+
+2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
+
+ * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
+
+2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
+
+ * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
+
+2004-04-07 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ Fix for bug #139363
+
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): Added
+ chooser filter for PS docs and all files.
+
+ * ggv/src/ggv-window.c (verb_FileOpen): Added chooser filters for
+ PS docs and all files.
+
+2004-04-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/recent-files/egg-recent-model.c (egg_recent_model_filter): do not
+ test for existence of files since this is done before setting the mime
+ filter, so we can (and usually will) end up with testing a bunch of URIs,
+ many of which can be remote, which causes unacceptable delays when
+ starting GGV!
+ * ggv/configure.in: bump version to 2.7.0.
+
+2004-03-31 Christian Rose <menthos@menthos.com>
+
+ * gpdf/configure.in: Added "af" to ALL_LINGUAS.
+
+2004-03-31 Christian Rose <menthos@menthos.com>
+
+ * ggv/configure.in: Added "af" to ALL_LINGUAS.
+
+2004-03-30 Adam Weinberger <adamw@gnome.org>
+
+ * ggv/configure.in: Added en_CA (Canadian English) to ALL_LINGUAS.
+
+2004-03-29 Samúel Jón Gunnarsson <sammi@techattack.nu>
+
+ * ggv/is.po: Added "is" to ALL_LINGUAS.
+
+2004-03-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.131.
+
+2004-03-24 Guntupalli Karunakar <karunakar@freedomink.org>
+
+ * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
+
+2004-03-22 Guntupalli Karunakar <karunakar@freedomink.org>
+
+ * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
+
+2004-03-21 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.130.
+
+ * gpdf/help/c/gpdf.xml, help/de/gpdf.xml: updated for 0.130 (no
+ changes).
+
+2004-03-21 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.6.0; tagged as GGV_2_6_0.
+
+2004-03-21 Gareth Owen <gowen72@yahoo.com>
+
+ * gpdf/configure.in: Added en_GB to ALL_LINGUAS
+
+2004-03-20 Gareth Owen <gowen72@yahoo.com>
+
+ * ggv/configure.in: Added en_GB to ALL_LINGUAS
+
+2004-03-18 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/help/Makefile.am (SUBDIRS), configure.in: add help/de directory.
+
+ * gpdf/help/de: added German help.
+
+2004-03-15 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.125.
+
+ * gpdf/configure.in, README.GPdf: remove message of doom.
+
+2004-03-15 Alexander Winston <alexander.winston@comcast.net>
+
+ * gpdf/configure.in: Added en_CA to ALL_LINGUAS.
+
+2004-03-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.5.99.1; tagged as GGV_2_5_99_1.
+ * ggv/src/gtkgs.c (gtk_gs_load): only hide window if it is visible.
+ * ggv/src/main.c (create_window): don't close window if the document is
+ not loaded: this is not very nice, but doing otherwise causes
+ mayhem in both control and shell processes, the cause of which I
+ am currently unable to track down.
+ * ggv/src/ggv-window.c: applied a patch from chenthill that makes the
+ ESC key turn off fullscreen mode.
+
+2004-03-09 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/shell/gpdf.c (gpdf_window_close): Added deactivation of control
+ frame to avoid warning when setting frame ui container to null
+ at bonobo-control-frame-dispose.
+
+2004-03-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (gpdf_factory): use
+ bonobo_control_life_instrument on controls to make the factory
+ exit when the last control is destroyed. (For Bug #132703).
+
+2004-03-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.124.
+
+ * gpdf/README.GPdf: Update.
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_on_dialog_response_cb):
+ * gpdf/xpdf/gpdf-persist-stream.cc: update for changed help id of password section.
+
+ * gpdf/help/C/gpdf.xml: added comment that gpdf-password id cannot be changed freely.
+
+2004-03-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gc_set_page_cb): focus the pdf view after
+ setting the page. (Bug #136360)
+
+ * gpdf/shell/gpdf.c (gw_ask_for_uri): use gtk_dialog_run instead of a
+ nested main loop plus connection to ::response.
+ (file_dialog_response, file_dialog_delete_event): obsolete, no
+ need to check if a folder was selected. (Bug #136233).
+
+2004-03-08 Breda McColgan <breda.mccolgan@sun.com>
+
+ * ggv/help/C/ggv.xml: Updated based on technical review comments
+ * ggv/help/C/ggv-C.omf: Updated date and version number
+
+2004-03-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied patch by chenthill that improves keyboard accelerators for
+ zooming in the control.
+
+2004-03-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/recent-files/egg-recent-model.c (egg_recent_model_filter): test
+ for the existence of URI _after_ the URIs are filtered, reducing
+ overhead! fixes #136238.
+ * ggv/applied a patch from The Written Word that fixes AIX 5.1 build.
+ * ggv/bonobo/ggv-postscript-view-ui.xml, src/ggv-ui.xml: removed delimit
+ attribute from Viewer Items placeholder.
+ * ggv/src/Makefile.am (libgtkgs_la_SOURCES): removed ggv-recent.[ch].
+ * ggv/bonobo/main.c (main): Initialized the gnome libraries to provide
+ support for Edit->Preferences Help to work. Fixes bug#135273. Patch
+ by Shakti Sen.
+ * ggv/configure.in: version 2.5.99; tagged as GGV_2_5_99.
+
+2004-03-04 Breda McColgan <breda.mccolgan@sun.com>
+
+ * gpdf/help/C/gpdf.xml: Implemented editorial review comments
+ * gpdf/help/C/gpdf-C.omf: Updated date and manual version number
+ * gpdf/help/C/l10n.txt: Updated date and manual version info
+
+2004-03-02 Breda McColgan <breda.mccolgan@sun.com>
+
+ * ggv/help/C/ggv.xml: Updated for GNOME 2.6, technical review draft
+ * ggv/help/C/ggv-C.omf: Updated for GNOME 2.6
+ * ggv/help/C/l10n.txt: Updated for GNOME 2.6
+ * ggv/help/C/figures/ggv_window.png: Updated for GNOME 2.6
+
+2004-02-28 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (drawString): handle horizontal scaling
+ correctly (multiply with the x components of the text
+ transformation matrix). Fixes Bug #134803.
+ (drawImageMask): this function has always painted the mask in
+ reverse video! Fixed it now. Part of Bug #122021.
+
+2004-02-28 Julio M. Merino Vidal <jmmv@menta.net>
+
+ * gpdf/Makefile.am: don't hardcode schema installation directory. Add
+ dummy install-data-local target when GCONF_SCHEMAS_INSTALL is
+ not set, fixes build for some make variants. (Bug #135524)
+
+2004-02-26 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-util.h (E_MAKE_TYPE): kill this ancient macro.
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_destroy): unload
+ the file, plugs file handle, PDFDoc, whatnot leak (Bug #135525,
+ spotted by Ali Akcaagac).
+
+2004-02-19 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ Fix for bug #134807
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_print):
+ Add handler for disconnected control to close print
+ dialog when gpdf exists.
+ (gpdf_control_get_filename): Add handler for disconnected
+ control to close SaveAs file chooser when gpdf exists.
+ (verb_FileProperties_cb): Add handler for disconnected
+ control to close Properties dialog when gpdf exists.
+
+2004-02-18 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ Bugzilla #134609
+
+ * gpdf/xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_stream_on_dialog_response_cb):
+ Replaced old gpdf_persist_stream_on_cancelbutton_clicked,
+ gpdf_persist_stream_on_okbutton_clicked and
+ gpdf_persist_stream_on_helpbutton_clicked with
+ gpdf_persist_stream_on_dialog_response_cb.
+ (gpdf_persist_stream_create_password_dialog):
+ Changed handlers connected on dialog buttons with one
+ handler connected on dialog's response.
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_on_dialog_response_cb):
+ Replaced old gpdf_persist_file_on_cancelbutton_clicked,
+ gpdf_persist_file_on_okbutton_clicked and
+ gpdf_persist_file_on_helpbutton_clicked with
+ gpdf_persist_file_on_dialog_response_cb.
+ (gpdf_persist_file_create_password_dialog):
+ Changed handlers connected on dialog buttons with one
+ handler connected on dialog's response.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_private_destroy_dialog):
+ Removed.
+ (gpdf_control_private_error_dialog)
+ (gpdf_control_private_warn_dialog)
+ (gpdf_control_private_info_dialog):
+ Changed clicked handler set on button with response handler
+ set on dialog itself. Original handler
+ gpdf_control_private_destroy_dialog have been replaced with
+ gtk_widget_dialog.
+ (gpdf_control_no_postscript_printer_alert): Use the
+ gpdf_control_private_error_dialog instead of managing its
+ own dialog.
+ (gpdf_control_properties_dialog_response_cb): Removed old
+ dialog resp cb used for props dialog.
+ (verb_FileProperties_cb): Changed dialog handler for resp
+ with gtk_widget_destroy.
+ (persist_file_loading_failed_cb): Replaced dialog managed
+ with gpdf_control_private_error_dialog.
+
+2004-02-16 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.123.
+
+2004-02-16 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/autogen.sh: require automake 1.7 because of the way we use
+ automake conditionals. Fixes distcheck.
+
+2004-02-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: version 2.5.4; tagged as GGV_2_5_4.
+
+2004-02-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/recent-files/egg-recent-model.c (end_element_handler): only add
+ an uri to the list if it exists!
+
+2004-02-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_reload): show a dialog if the file
+ can't be reloaded.
+ * ggv/src/ggv-prefs-ui.c: remember strings when focus leaves the
+ entry.
+ * ggv/src/ggv-window.c (verb_FileOpen): allow opening multiple files
+ at once!
+ * ggv/bonobo/GNOME_GGV.server.in.in: Postscript -> PostScript!
+
+2004-02-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/recent-files/egg-recent-view-bonobo.c
+ (egg_recent_view_bonobo_clear): added sanity checks for UI container.
+ * ggv/src/ps.c (psscan): pass the filename as a parameter and use it to
+ invoke the test command on strange files that might be PS but do not
+ seem to be.
+ * ggv/bonobo/ggv-sidebar.c (page_list_selection_changed): sanity check if
+ (checklist != NULL).
+ * ggv/bonobo/ggv-postscript-view.c (load_ps): return a boolean indicating
+ success.
+ (load_ps_from_stream): set exception when loading fails.
+ (load_ps_from_file): set exception when loading fails.
+ fix for #133601.
+ * ggv/src/ggv-window.c (verb_FileOpen): keep the dialog open until user
+ either enter a non-empty filename and opens it or cancel the
+ operation. fixes #130603
+ (verb_FileOpen): load PS file before showing a new window. destroy
+ new window if the file is not valid PS. show dialog in that case.
+ fixes #133601.
+ * ggv/bonobo/ggv-postscript-view.c (add_dialog_to_view): add a dialog to
+ the list of dialogs maintained by this PS view component.
+ (ggv_postscript_view_destroy_dialogs): destroy all our dialogs.
+ (ggv_postscript_view_destroy): destroy all dialogs via above func.
+ * ggv/src/recent-files/*: synced with latest libegg, since James reverted
+ the changes he made in November. here's what I get for tracking
+ changes once...
+ * ggv/src/ggv-window.c (verb_FileOpen):
+ * ggv/src/ggv-recent.c (ggv_recent_init): use new recent-files API.
+
+2004-02-09 Breda McColgan <breda.mccolgan@sun.com>
+
+ * gpdf/help/C/gpdf.xml: Implemented technical review comments
+ * gpdf/help/C/gpdf-C.omf: Updated date
+
+2004-02-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc
+ (gpdf_thumbnails_view_populate_idle): #if'ed out one code path
+ that I missed on 2004-01-13 when commenting out thumbnail
+ generation menus. Fixes a crasher.
+
+2004-02-08 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (impl_bonobo_persist_file_load):
+ Raise Bonobo exception when file opening fails in order
+ to enable shell to catch it and discard window opening.
+ Fix for Bug #133503
+
+2004-02-08 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_view_widgets):
+ "Thumbnails"->"Pages" because many PDFs don't have thumbnails.
+
+ * gpdf/shell/gpdf.c (gpdf_window_init_fullscreen_popup): explicitly add
+ F11 keybinding.
+
+ * gpdf/shell/gpdf-window-ui.xml (keybindings): ViewFullScreen is not a
+ verb, so F11 doesn't work when in fullscreen mode. Remove it.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_print_job_prepare): use duplex
+ setting supplied by gnome-print. Part of Bug #131979.
+
+2004-02-07 Breda McColgan <breda.mccolgan@sun.com>
+
+ * gpdf/help/C/gpdf.xml: Updated for GNOME 2.6, technical review draft
+ * gpdf/help/C/gpdf-C.omf: Updated for GNOME 2.6
+ * gpdf/help/C/l10n.txt: Added for GNOME 2.6
+ * gpdf/help/C/figures/gpdf_window.png: Added for GNOME 2.6
+
+2004-02-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (set_window_icon_default): simplify, based on patch
+ by Frederic Crozat <fcrozat@mandrakesoft.com> and inline into main.
+
+2004-02-06 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/shell/gpdf.c (gpdf_window_init_fullscreen_popup):
+ Added accel group for exit full screen view and
+ ESC accel key.
+ Fix for Bug #133595.
+
+2004-02-05 Tomasz Kłoczko <kloczek@pld.org.pl>
+
+ * ggv/acinclude.m4: removed
+ This file contain private copy of few aclocal macros provided by
+ gettext. It breaks regenerata aclocal.m4 under automake diffrent
+ version than used by mantainer. All neccessary macros are copied
+ to aclocal.m4 during run autogen.sh.
+ * ggv/configure.in: Trivial cleanup: remove AC_SUBST(CFLAGS),
+ AC_SUBST(CPPFLAGS) and AC_SUBST(LDFLAGS). This variables are substed
+ by default.
+
+2004-02-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_print): no more need to
+ process GNOME_PRINT_DIALOG_RESPONSE_PREVIEW.
+ (gpdf_control_no_preview_alert): no longer necessary.
+
+2004-02-05 Andreas J. Guelzow <aguelzow@taliesin.ca>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_print_dialog_new): disable
+ print preview the right way, instead of showing some alert dialog.
+ (Bug #133326)
+
+2004-02-05 Alexander Winston <alexander.winston@comcast.net>
+
+ * gpdf/acinclude.m4: correctly quote macro definitions to silence
+ aclocal-1.8 warnings and prevent future automake problems. (Bug
+ #133226).
+
+2004-02-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): if Save is
+ clicked in the file chooser and the url is empty, rerun the dialog.
+ fixes #131656.
+ * ggv/bonobo/ggv-control.c, bonobo/ggv-postscript-view.c: added
+ sanity check (uicontainer != CORBA_OBJECT_NIL) before set prop
+ calls that were not guarded yet.
+ * ggv/src/ggv-ui.xml: removed ellipsis from "About" menu item label.
+ * ggv/acinclude.m4: applied a patch from Alexander Winston that fixes
+ the underquoted m4 definitions. fixes #133179.
+ * ggv/configure.in: require intltool >= 0.30; version 2.5.3;
+ tagged as GGV_2_5_3.
+
+2004-01-29 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/configure.in: Fixed missing coma in AC_HELP_STRING.
+
+2004-01-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-font-face.c: adapt to changes in libgnomeprint CVS.
+
+2004-01-26 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc: Include GOutputDev.h.
+ Added an embed boolean flag for thumbnails struct.
+ Added a all_generated boolean flag.
+ Removed CAN_GENERATE_THUMBNAILS define.
+ (gpdf_thumbnails_view_set_selected_page): Check if is not
+ current page before darkening thumbnail.
+ Added tools menu item update.
+ (gpdf_thumbnails_view_canvas_outline_event_cb):
+ Changed cursor when dragging in thumb.
+ (gpdf_thumbnails_view_get_page_pixbuf): New func to gen
+ pixbuf from a page with GOutputDev.
+ (gpdf_thumbnails_view_create_thumbnail_pixbuf): Renamed
+ gpdf_thumbnails_view_create_thumbnail_image that create
+ white filled thumbs in ..._create_thumbnail_pixbuf.
+ (gpdf_thumbnails_view_create_thumbnail_image): New func
+ that get page pixbuf and scale it to make thumb.
+ (gpdf_thumbnails_view_render_thumbnail_image): Added
+ embed boolean flag and update all_generated flag.
+ (gpdf_thumbnails_view_populate_idle): Moved PDF doc related
+ local vars from func context to loop context.
+ Changed gpdf_thumbnails_view_create_thumbnail_image in
+ gpdf_thumbnails_view_create_thumbnail_pixbuf.
+ Removed tools menu item update if no thumbs availables.
+ Scroll to 0,0 to show first page thumb.
+ (gpdf_thumbnails_view_popup_menu_item_generate_cb):
+ Added implem for current page thumb generation.
+ (gpdf_thumbnails_view_popup_menu_item_generate_all_cb):
+ Added implem for all pages thumbs generation.
+ (gpdf_thumbnails_view_get_tools_menu): If all thumb are
+ generated the menu is removed.
+ Now set menu items sensitivity to TRUE.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc
+ (gpdf_bookmarks_view_update_popup_actions): Now only updates
+ menu items sensitivity when some bookmarks are availables.
+ (gpdf_bookmarks_view_bookmark_select_func): Test item to be
+ sure not to select NULL bookmark (can occurs if some problem
+ occurs while parsing PDF: should be fixed).
+ (gpdf_bookmarks_view_get_tools_menu): Changed menu items init
+ stmts layout to group the expand_all/collapse_all.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): Added again
+ GOutputDev.cc/h and TextOutputDev.cc/h.
+
+ * gpdf/xpdf/GOutputDev.h: Added needFontUpdate boolean flag.
+
+ * gpdf/xpdf/GOutputDev.cc (GOutputDev::GOutputDev): Added
+ needFontUpdate init.
+ (GOutputDev::startDoc):
+ Removed TextPage::clear call.
+ (GOutputDev::endPage):
+ Added boolean flag as param for coalesce.
+ (GOutputDev::restoreState):
+ Added needFontUpdate flag set to true.
+ (GOutputDev::updateAll):
+ Set flag needFontUpdate instead of calling updateFont().
+ (GOutputDev::updateFont):
+ reset needFontUpdate flag and call TextPage::fontUpdate().
+ (GOutputDev::beginString):
+ (GOutputDev::endString):
+ Changed calls to begin/end string in begin/end word.
+ (GOutputDev::drawChar):
+ Added updateFont() call if needed. Added code param to
+ TextPage::addChar.
+ (GOutputDev::beginType3Char):
+ Added updateFont() call if needed.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc
+ (gpdf_thumbnails_view_canvas_outline_event_cb):
+ Fixed a bug in thumb drag. A zoom mult coef wrongly added.
+ It has been removed, as some useless commented out traces.
+
+2004-01-26 Andraz Tori <Andraz.tori1@guest.arnes.si>
+
+ * gpdf/configure.in: Added "sl" (Slovenian) to ALL_LINGUAS.
+
+2004-01-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/Makefile.am: update for intltool 0.29, disable-schemas-install
+ when distchecking.
+
+2004-01-23 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control-ui.xml, shell/gpdf-window-ui.xml: add some
+ explicit keybindings, menu keybindings are disabled when the
+ menubar is hidden.
+
+2004-01-22 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-sidebar.c (set_tools_button_sensitivity):
+ New func to set tools menu button sensitivity.
+ (gpdf_sidebar_set_page_tools_menu):
+ (select_page): Now call set_tools_button_sensitivity.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc
+ (gpdf_thumbnails_view_populate_idle): Added
+ missing item var.
+
+ * gpdf/xpdf/gpdf-control.cc: Removed ifdef USE_ANNOTS
+ around annots-view.h file. Ifdefs are now in the
+ header that also defines sidebar page id.
+ Removed Pages Ids from here to move them in
+ their respective view header.
+ (gpdf_control_private_reset_cursor):
+ (gpdf_control_private_set_wait_cursor):
+ (gpdf_control_private_set_cursor): Ensure window
+ is a gdk_window.
+ (gpdf_control_update_bookmarks_view_tools_menu)
+ (gpdf_control_bookmarks_view_ready)
+ (gpdf_control_update_thumbnails_view_tools_menu)
+ (gpdf_control_thumbnails_view_ready)
+ (gpdf_control_update_annots_view_tools_menu)
+ (gpdf_control_annots_view_ready):
+ Added funcs to deal with tools menu updates and
+ Ready signals for views. They should be grouped
+ in two funcs? To be fixed?...
+ (gpdf_control_enable_ui): Added tools menu update
+ in control enable UI func.
+ (gpdf_control_get_bookmarks_view): Added connection
+ to Ready signal instead of settings tools menu.
+ This is to wait asynchronous bookmarks loads to be
+ sure we have a tools menu to activate.
+ (gpdf_control_get_thumbnails_view): Same for thumbnails
+ view.
+ (gpdf_control_get_annots_view): and for annots view.
+ (gpdf_control_pdf_doc_changed): Moved control_enable_ui
+ out of the if statement.
+
+ * gpdf/xpdf/gpdf-annots-view.h
+ (GPDF_ANNOTS_VIEW_PAGE_ID):
+ Sidebar Page id now defined in here.
+ Added class func for Ready signal.
+
+ * gpdf/xpdf/gpdf-annots-view.cc: Removed unused private
+ field annots. Replaced with the total number of annotations
+ available inthe document.
+ (gpdf_annots_view_class_init):
+ Added Ready signal telling control that annotations
+ asynchronous load finished.
+ (gpdf_annots_view_emit_ready): Ready signal emission func
+ (gpdf_annots_view_have_annotations): Added a func using
+ the total num of annots to tell if some are available.
+ (gpdf_annots_view_update_annots_list): Here I count
+ total number of annotations.
+ (gpdf_annots_view_populate_idle): Moved some local
+ vars from func context to the loop context where they
+ are used.
+ (gpdf_annots_view_populate_idle): Removed a leak, annots
+ list was not deleted.
+ (gpdf_annots_view_get_tools_menu): Use new have_annotations
+ func to disable tools menu when no annotations are
+ availables.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.h
+ (GPDF_THUMBNAILS_VIEW_PAGE_ID):
+ Sidebar Page id now defined in here.
+ Added class func for Ready signal.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ (gpdf_thumbnails_view_class_init):
+ Added Ready signal to tell control that thumbnails
+ asynchronous load finished.
+ (gpdf_thumbnails_view_emit_ready): Ready signal
+ emission func.
+ (gpdf_thumbnails_view_populate_idle): Only
+ change tools menu item widget sensitivity if
+ tools menu was created (widget actually exist).
+ Changed brace position.
+ (gpdf_thumbnails_view_populate_idle): Added
+ ready signal emission.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.h (GPDF_BOOKMARKS_VIEW_PAGE_ID):
+ Sidebar Page id now defined in here.
+ Added class func for Ready signal.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc:
+ (gpdf_bookmarks_view_class_init):
+ Added the READY signal that tell control that
+ asynchronous bookmarks load finished.
+ (gpdf_bookmarks_view_emit_ready): Ready signal
+ emission func.
+ (gpdf_bookmarks_view_have_outline_items):
+ Added a func telling if some bookmarks are availables.
+ (gpdf_bookmarks_view_update_popup_actions):
+ If no bookmarks availables, no need to browse the
+ tree.
+ Set menu item widget sensitivity only if menu was
+ created.
+ (gpdf_bookmarks_view_populate_idle):
+ (gpdf_bookmarks_view_set_pdf_doc):
+ Now populate bookmarks tree in idle func.
+ (gpdf_bookmarks_view_get_tools_menu): Used
+ gpdf_bookmarks_view_have_outline_items to
+ disable tools menu creation when no bookmarks
+ availables.
+
+2004-01-20 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc (TEST_NEW):
+ Removed unused pdf_doc var.
+
+ * gpdf/shell/tests/test-uri-input.c: Added decl for
+ setup and reat_down to avoid gcc warnings.
+
+ * gpdf/xpdf/gpdf-stock-icons.c (GPDF_ADD_STOCK_ICON):
+ Add init value for icon_set vars to avoid warning.
+
+ * gpdf/xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_stream_create_password_dialog): Added
+ g_signal_connect for help button.
+
+ * gpdf/xpdf/gpdf-control.cc: Removed unused
+ gpdf_control_get_title method. Also removed some
+ unused vars.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ * gpdf/xpdf/gpdf-bookmarks-view.cc:
+ * gpdf/xpdf/gpdf-annots-view.cc: Removed undefined
+ class_finalize method decl, view_init unused method,
+ and some unused vars.
+
+ * gpdf/xpdf/Thumb.cc (ThumbColorMap::ThumbColorMap): Changed
+ field init order to match decl and to avoid warning.
+ Removed several unused vars.
+ (Thumb::Thumb): Removed unused vars.
+ (Thumb::getPixbufData): Removed unused vars.
+
+ * gpdf/xpdf/TextOutputDev.cc (TextPage::coalesce): Init a var
+ to avoid warning.
+
+ * gpdf/xpdf/GPOutputDev.cc (GPOFontMap::~GPOFontMap): Changed
+ param named to avoid shadowing of the xref class field and
+ the associated warning.
+
+ * gpdf/xpdf/Makefile.am (INCLUDES):
+ * gpdf/shell/Makefile.am (INCLUDES):
+ * gpdf/lib/ggv-sidebar/Makefile.am (INCLUDES):
+ * gpdf/configure.in: Changed the way WARN_CFLAFS & WARN_CXXFLAGS
+ were passed to compiler. Now use CFLAGS/CXXFLAGS in configure
+ instead of INCLUDES in some Makefiles.
+
+2004-01-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (MENU_FIT_WIDTH_PATH): one more "Zoom Items
+ Placeholder" occurence. (see 2004-01-13)
+
+ * gpdf/gpdf.desktop.in (_Name, _Comment): short and sweet,
+ by Ross Burton and Alexander Winston (Bug #131906).
+
+2004-01-18 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc (gpdf_bookmarks_view_construct):
+ Complement for Bug #131798: Removed shadow from scrolled
+ window to get the same look as nautilus.
+
+ * gpdf/xpdf/gpdf-annots-view.cc (gpdf_annots_view_construct):
+ Complement for Bug #131798: Removed shadow from scrolled
+ window to get the same look as nautilus.
+
+ * gpdf/xpdf/gpdf-sidebar.c (gpdf_sidebar_instance_init):
+ Changed sidebar title frame shadow type. It was ETCHED_IN
+ and it make it look slightly different than the Nautilus
+ sidebar one. With GTK_SHADOW_NONE both looks the same.
+ This fix bug #131798
+ (gpdf_sidebar_instance_init): Also changed arrow box shadows
+ as the ones in nautilus.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_save_sidebar_state):
+ Changed the source for the CONF_WINDOWS_SHOW_SIDEBAR
+ value. It was GTK_WIDGET_MAPPED, but it do not run anymore.
+ Now use GTK_WIDGET_VISIBLE.
+ Fix for Bug #131776.
+
+2004-01-17 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-control-ui.xml: Changed 'Side Pane' in
+ 'Sidebar' to be consistent with other designation for
+ this widget.
+ This fix Bug #131733.
+
+2004-01-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_private_error_dialog)
+ (gpdf_control_private_warn_dialog)
+ (gpdf_control_private_info_dialog): Ok -> GTK_STOCK_OK, suggested
+ by Christian Neumair.
+ (gpdf_control_private_question_dialog): unused and might encourage
+ use of Yes/No dialogs: remove
+ (gpdf_control_private_display_help): use "%s", not <%s>.
+
+ * gpdf/xpdf/gpdf-control-private.h (gpdf_control_private_question_dialog):
+ remove prototype.
+
+ * gpdf/gpdf.schemas.in: removed the not really long "long" descriptions
+ to reduce string count. Suggested by Christian Neumair.
+
+2004-01-16 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/configure.in: Add test to check enable_deprecation_errors
+ value in [action-if-found] arg of AC_ARG_ENBALE in order
+ to correctly handle --disable-deprecation-errors.
+ Same changes for annotations_view AC_ARG_ENABLE.
+
+ * gpdf/xpdf/Makefile.am (EXTRA_DIST): Changed value according
+ to USE_ANNOTS_VIEW cond in order to include annotations view
+ icons in dist tarball (when annots-view disabled).
+
+2004-01-15 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_action_uri)
+ (gpdf_view_link_action_uri):
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_popup_menu_item_generate_cb)
+ (gpdf_thumbnails_view_popup_menu_item_generate_all_cb):
+ * gpdf/xpdf/gpdf-annots-view.cc (gpdf_annots_view_popup_menu_item_filter_cb)
+ (gpdf_annots_view_popup_menu_item_plugins_cb):
+ Fix for Bug #131501.
+ Some messages punctuations were misplaced.
+ A syntax error was also corrected in the word "notification".
+
+2004-01-14 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_scroll_region_coord):
+ Changed abs with labs to remove ambiguity on Solaris
+ Bug #131449
+
+2004-01-13 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/Makefile.am (STOCK_ANNOTS_ICONS, ANNOTS_VIEW_SRCS):
+ Changed variables assignement to avoid undefined
+ message from automake-1.4.
+
+ * gpdf/gpdf.spec.in:
+ Removed junk help files in %files list.
+ Added gnome--pdf.png icon.
+
+ * gpdf/xpdf/Page.cc (Page::displaySlice):
+ Changed the size of the statements
+ enclosed in ifdef USE_ANNOTS_VIEW in order
+ to disable annotations display when annots
+ view is unused.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.cc:
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ * gpdf/xpdf/gpdf-annots-view.cc:
+ Changed the way to retrieve menu item widgets
+ for popup menus. gnome_app_find_menu_pos always
+ return the same widget ??? now use index in
+ GnomeUIInfo struct.
+
+ * gpdf/xpdf/gpdf-stock-icons.h: Added aconf.h
+ to get USE_ANNOTS_VIEW def.
+
+ * gpdf/xpdf/tests/test-gpdf-view.cc (TEST_NEW):
+ Added new param to gpdf-view constructor.
+ NULL instead of control for the test.
+
+ * gpdf/xpdf/tests/.cvsignore: Add .libs & .deps
+
+ * gpdf/xpdf/Thumb.cc:
+ * gpdf/xpdf/Thumb.h: Add implem for Thumb object
+ parsing.
+
+ * gpdf/xpdf/prefs-strings.h: Defines for gconf keys
+
+ * gpdf/xpdf/PDFDoc.h:
+ * gpdf/xpdf/PDFDoc.cc: Added annots display CB.
+
+ * gpdf/xpdf/Page.h: Added getThumb method. Added annots
+ display CB decl. Added Thumb object field for
+ thumbnails management.
+
+ * gpdf/xpdf/Page.cc (Page::Page): Added thumb object
+ parsing.
+ (Page::display) (Page::displaySlice): Add CB for
+ annotations in Page display.
+ (displaySlice):
+ Added conditional display of annotation in order to
+ avoid them when USE_ANNOTS_VIEW is not defined.
+
+ * gpdf/xpdf/Outline.cc: Fixed Outline object parsing.
+
+ * gpdf/xpdf/Link.cc: Changed some error handling
+ to make a difference between two parse actions
+ and have a better report (needed for debug).
+
+ * gpdf/xpdf/Makefile.am:
+ Add conditional ANNOTS_VIEW_SRCS.
+ Change eog-hig-dialog in gpdf-hig-dialog.
+ Added new files (srcs & icons) for sidebar and views.
+
+ * gpdf/xpdf/gpdf-view.h:
+ * gpdf/xpdf/gpdf-view.cc:
+ Add sidebar views interface.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.h:
+ * gpdf/xpdf/gpdf-thumbnails-view.cc:
+ Implementation of thumbnails view.
+
+ * gpdf/xpdf/gpdf-stock-icons.h:
+ * gpdf/xpdf/gpdf-stock-icons.c: Add icons for
+ sidebar views (bookmarks, thumbnails and
+ annotations).
+
+ * gpdf/xpdf/gpdf-sidebar.h:
+ * gpdf/xpdf/gpdf-sidebar.c:
+ Sidebar implem inspired from Galeon's one.
+ Could remove soon the delete page button.
+
+ * gpdf/xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_stream_on_helpbutton_clicked):
+ Added help button and its callback
+ for password dialog.
+ (gpdf_persist_stream_create_password_dialog):
+ Merged from HEAD (one dialog for both password).
+
+ * gpdf/xpdf/gpdf-persist-file.cc
+ (gpdf_persist_file_on_helpbutton_clicked):
+ Added help button and its callback
+ for password dialog.
+ (gpdf_persist_file_create_password_dialog):
+ Merged from HEAD (one dialog for both password).
+
+ * gpdf/xpdf/gpdf-marshal.list: Added marshalers
+ VOID:POINTER,INT VOID:POINTER,INT,BOOLEAN and
+ VOID:INT,INT,INT,INT,INT.
+
+ * gpdf/xpdf/gpdf-hig-dialog.c:
+ * gpdf/xpdf/gpdf-hig-dialog.h: Reused eog HIG dialog
+ in GPdf.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_private_set_status)
+ (gpdf_control_private_status_timeout, gpdf_control_private_push)
+ (gpdf_control_private_pop, gpdf_control_private_clear_stack)
+ (gpdf_control_private_set_fraction)
+ (gpdf_control_private_set_pulse_step, gpdf_control_private_pulse)
+ (gpdf_control_private_refresh, gpdf_control_private_set_cursor)
+ (gpdf_control_private_set_wait_cursor)
+ (gpdf_control_private_reset_cursor)
+ (gpdf_control_private_get_bookmarks_view)
+ (gpdf_control_private_get_thumbnails_view)
+ (gpdf_control_private_get_annots_view)
+ (gpdf_control_private_destroy_dialog)
+ (gpdf_control_private_error_dialog)
+ (gpdf_control_private_warn_dialog)
+ (gpdf_control_private_info_dialog)
+ (gpdf_control_private_question_dialog)
+ (gpdf_control_private_display_help):
+ control-private funcs that temporary stay
+ in gpdf-control but will move to avoid
+ dependency on gpdf-control.
+ (gpdf_control_no_postscript_printer_alert):
+ Changed eog_hig_dialog to gpdf_hig_dialog.
+ (gpdf_control_read_sidebar_state)
+ (gpdf_control_save_sidebar_state, gpdf_control_activate_sidebar):
+ Support for activating sidebar and saving
+ restoring its state.
+ (gpdf_control_get_title, gpdf_control_get_bookmarks_view)
+ (gpdf_control_get_thumbnails_view, gpdf_control_get_annots_view) :
+ Sidebar internal accessors.
+ (gpdf_control_update_toggles)
+ (gpdf_control_view_sidebar_changed_cb)
+ (gpdf_control_sidebar_close_requested_cb)
+ (gpdf_control_bookmark_selected_cb)
+ (gpdf_control_thumbnail_selected_cb)
+ (gpdf_control_annotation_selected_cb)
+ (gpdf_control_annotation_toggled_cb)
+ (gpdf_control_sidebar_page_changed_cb):
+ Sidebar events management.
+ (gpdf_control_setup_view_widgets):
+ Setup sidebar and its pages. Add gnome app bar and
+ necessary layout.
+ (gpdf_control_disconnected):
+ Save sidebar state when component disconnect.
+ (gpdf_control_dispose):
+ Dispose memory when component released.
+ (gpdf_control_class_init):
+ Connect compnent methods. Added global params
+ instanciation and stock icons init.
+
+2004-01-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.122.
+
+2004-01-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control-ui.xml: rename "View Items Placeholder" back
+ to "Zoom Items Placeholder", put ViewSidebar outside the
+ placeholder.
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded): port Xpdf's support
+ for embedded TrueType fonts.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc
+ (gpdf_thumbnails_view_get_tools_menu): we can't generate
+ thumbnails yet, therefore disable the (empty) tools menu.
+
+ * gpdf/xpdf/gpdf-sidebar.c: disable remove button, because we don't
+ have remove sidebar panes yet.
+
+ * gpdf/configure.in: --disable-annotations-view ->
+ --enable-annotations-view for ui-freeze.
+
+ * gpdf/xpdf/gpdf-thumbnails-view.cc (gpdf_thumbnails_view_canvas_outline_event_cb):
+ comment out debug spew.
+
+ * gpdf/xpdf/Makefile.am: fixes for USE_ANNOTS_VIEW conditional.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_setup_page_transform)
+ (gpdf_view_link_action_goto, gpdf_view_link_action_named)
+ (gpdf_view_link_clicked_cb, gpdf_view_scroll_adjustments_changed_cb)
+ (gpdf_view_set_pdf_doc):
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_class_init):
+ * gpdf/xpdf/gpdf-control-ui.xml:
+ * gpdf/xpdf/bonobo-application-x-pdf.cc:
+ * gpdf/gpdf.spec.in (Requires):
+ * gpdf/configure.in: Revert disapproved changes.
+
+2004-01-12 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-control.cc: Added support for sidebar.
+ Replaced misc string literal with defines. Added
+ AppBar for status and advancement control.
+ The Annots view is conditionned by configure var
+ and define USE_ANNOTS_VIEW.
+
+ * gpdf/xpdf/gpdf-control-ui.xml: Add accelerator for
+ Print (Ctrl-P). Changed 'Zoom Items Placeholder'
+ in 'View Items Placeholder'.
+ Added ViewSidebar menuitem (F9). This accel is
+ a potential conflict with the nautilus one (when
+ using gpdf nautilus view).
+ Changed label of Print toolitem to "Print Document".
+
+ * gpdf/xpdf/gpdf-control-private.h: The funcs grouped
+ in this header are for now in gpdf-control but
+ will move soon. They are utility funcs as
+ status control, error/warning dialog control, etc.
+
+ * gpdf/xpdf/gpdf-bookmarks-view.h:
+ * gpdf/xpdf/gpdf-bookmarks-view.cc: Implem for
+ the bookmarks view embed in the sidebar.
+
+ * gpdf/xpdf/gpdf-annots-view.h:
+ * gpdf/xpdf/gpdf-annots-view.cc: Implem for the
+ annotations view embed in the sidebar. This view
+ is experimental and may be disabled through
+ the configure arg --disable-annotations-view.
+
+ * gpdf/xpdf/eel-gconf-extensions.h:
+ * gpdf/xpdf/eel-gconf-extensions.c: Convinient
+ funcs for gconf usage. These files will move to
+ the lib directory in order for them to be used
+ by gnome-pdf-viewer and gpdf.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Moved
+ global params instanciation and stock icons
+ init from bonobo-application-x-pdf.cc to
+ gpdf-control class init.
+
+ * gpdf/xpdf/Annot.h: Added getSubtype, getDict and
+ getRefNum/Gen methods for easier annots
+ identification.
+ Added dict & subtype fields.
+
+ * gpdf/xpdf/Annot.cc (Annot::Annot): Extended Annot
+ object to read several kind of annotations.
+ Some more work (in coord with xpdf) is needed...
+ (Annots::Annots): Same extensions on annotations
+ collection object.
+
+ * gpdf/po/.cvsignore: Added .intltool*
+
+ * gpdf/shell/tests/.cvsignore:
+ * gpdf/lib/recent-files/.cvsignore:
+ * gpdf/lib/ggv-sidebar/.cvsignore: Added .deps & .libs.
+
+ * gpdf/help/C/gpdf.xml: Added a placeholder for password
+ dialog documentation (also usefull for testing help
+ button in password dialog).
+
+ * gpdf/Makefile.am (EXTRA_DIST): Added schemas
+ and spec files.
+ (schemadir): Definition
+ (schema_DATA): Definition
+ Added schemas rules and local target if schemas
+ have to be installed.
+ (ACLOCAL_AMFLAGS): Added gnome2-macros to avoid
+ failure when triggered from makefile (maintainers
+ rules).
+ (CLEANFILES): Added schemas file
+
+ * gpdf/.cvsignore: Added schemas & spec files.
+
+ * gpdf/configure.in: Updated required specs.
+ Removed useless AC_CANONICAL_HOST.
+ Made --enable-deprecation-errors arg the default
+ for this dev version.
+ Add statements for checking gconf commands availability.
+ Updated PKG_CHECK_MODULES with new requirements.
+ Added --disable-annotations-view arg for cond annots view
+ in sidebar.
+ Added gpdf.schemas & gpdf.spec in AC_OUPUT macros.
+
+ * gpdf/gpdf.spec.in: Creation of spec file.
+
+ * gpdf/gpdf.schemas.in: Creation of schemas file for GPdf.
+
+2004-01-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/recent-files/*: merge with current libegg HEAD.
+ * ggv/src/ggv-recent.c: fix in order to work with new recent-files code.
+ * ggv/src/cursors.c, bonobo/ggv-postscript-view.c: cache cursors per
+ ps_view instead of per process.
+ * ggv/src/ggv-window.c (ggv_window_new): set command sensitivity.
+ added page_count member to keep track of the document's properites.
+ * ggv/bonobo/ggv-postscript-view.c (view_realized_cb): removed one
+ unref too many. did this behaviour change with GTK 2.5? hth did
+ anything work at all in GGV 2.4.x otherwise?
+ * ggv/src/ggv-window.c (ggv_window_close): deactivate the control frame
+ before destroying the window contents.
+ * ggv/src/ggv-ui.xml: moved visibility settings in top level popup menu
+ to a submenu.
+ * ggv/Makefile.am (EXTRA_DIST): Removed OrigTree.pm from EXTRA_DIST.
+ * ggv/src/ggv-window.c (timer_callback): reload always when the window
+ has a specified file name, regardless of the previous state of the
+ document. use ggv_window_load(). fixes #127214.
+ * ggv/src/ggv-window.c (verb_FileClose): close window unconditionally. if
+ it was the last window, quit app. inspired by patch from Mikael
+ Brockman.
+ * ggv/src/ggv-ui.xml: removed Exit and New commands. patch from Mikael
+ Brockman. with the entry above, this fixes #130310.
+ * ggv/src/gtkgs.c (gtk_gs_munge_adjustments): step_increment now equals
+ the arrow keys' increment. fixes #126639.
+ * ggv/bonobo/ggv_postscript-view.c: call
+ bonobo_control_set_transient_for() and
+ gtk_window_set_destroy_with_parent() on all dialog windows. I suppose
+ this should help with #103729, but - wtf! - it doesn't...
+
+2004-01-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_get_password):
+ (gpdf_persist_file_get_owner_password)
+ (gpdf_persist_file_get_user_password): merge, use only one passwd
+ dialog.
+ (impl_bonobo_persist_file_load): use it, ask for the passwd once.
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (gpdf_persist_stream_get_password):
+ (gpdf_persist_file_get_owner_password)
+ (gpdf_persist_file_get_user_password)
+ (impl_bonobo_persist_stream_load): ditto.
+
+ * gpdf/xpdf/gpdf-stock-icons.c (gpdf_stock_icons_init): if fit-width
+ icon is not installed, use stock fit icon.
+
+2004-01-10 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf-window-ui.xml:
+ * gpdf/shell/gpdf.c (gpdf_window_open): desensitize full screen command
+ until we have a pdf.
+
+ * gpdf/shell/gpdf.c (exit_fullscreen_button_clicked_cb)
+ (update_exit_fullscreen_popup_position, screen_size_changed_cb)
+ (gpdf_window_init_fullscreen_popup): exit full screen button,
+ stolen from epipahny.
+ (gpdf_window_window_state_changed): use it.
+
+ * gpdf/shell/gpdf-window-ui.xml:
+ * gpdf/shell/gpdf.c:
+ (gpdf_window_set_fullscreen, gpdf_window_window_state_changed)
+ (listener_ViewFullScreen, gw_setup_toplevel_ui)
+ (gpdf_window_construct): implement simple full screen mode.
+
+ * gpdf/gpdf.applications: add startup_notify=true.
+
+2004-01-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: add a mnemonic for fullscreen mode. fixes #119848.
+ * ggv/ggv.desktop.in: added X-GNOME-DocPath entry - I suppose it can't
+ hurt.
+ * ggv/ggv.spec.in: fixed (hopefully) the RPM spec file. fixes #122003.
+
+2004-01-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: more strings for more fine-grained
+ translations. (cf. Bug #45462)
+
+2004-01-03 Robert Sedak <robert.sedak@sk.htnet.hr>
+
+ * configure.in: Added "hr" in ALL_LINGUAS.
+
+2004-01-02 Taneem Ahmed <taneem@bengalinux.org>
+
+ * ggv/configure.in: Added "bn" to ALL_LINGUAS.
+
+2003-12-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (main, gw_control_load_pdf): replace deprecated
+ calls.
+
+ * gpdf/shell/gpdf-recent-view-toolitem.c
+ (gpdf_recent_view_toolitem_popup): replace deprecated
+ gnome_popup_menu_do_popup_modal with gtk_menu_popup, adjust
+ parameter list. Suggested by Ali Akcaagac.
+ (gpdf_recent_view_toolitem_button_press_event)
+ (gpdf_recent_view_toolitem_key_press_event): adjust param. list.
+
+ * gpdf/xpdf/gtkgesture.c (gesture_data_append_point)
+ (gtk_gesture_handler_attach): don't use deprecated gdk_gc_unref or
+ gtk_signal_connect.
+
+ * gpdf/configure.in: add --enable-deprecation-errors option, inspired
+ by ggv's configure.
+
+ * gpdf/xpdf/Makefile.am, shell/Makefile.am,
+ lib/recent-files/Makefile.am, lib/ggv-sidebar/Makefile.am
+ (INCLUDES): use GPDF_DEPRECATED_CFLAGS.
+
+2003-12-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/Makefile.am: include intltool-modules dir in distribution tarball.
+
+2003-12-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/.cvsignore: ignore depcomp, stamp-h1.
+
+ * gpdf/configure.in: post-release version bump.
+
+ * gpdf/xpdf/pdf-properties-display.c, xpdf/pdf-info-dict-util.cc,
+ xpdf/page-control.c, xpdf/gpdf-view.cc,
+ xpdf/gpdf-links-canvas-layer.cc, xpdf/gpdf-link-canvas-item.cc,
+ shell/gpdf-recent-view-toolitem.c, shell/eel-vfs-extensions.c:
+ Use glib/gi18n.h instead of libgnome/gnome-i18n.h
+
+2003-12-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: Version 0.121.
+
+ * gpdf/NEWS: upd.
+
+2003-12-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (check_filecompressed): added sanity check
+ (NULL != file).
+ * ggv/src/recent-files/*: replace GnomeIconTheme with GtkIconTheme, since
+ the former is deprecated in upcoming GTK+.
+ * ggv/src/gtkchecklist.c: replace deprecated gtk_tree_model_get_iter_root()
+ with gtk_tree_model_get_iter_first().
+ * ggv/configure.in: added an --enable-deprecations flag in order to allow
+ configurable use of *_DISABLE_DEPRECATED flags.
+ bumped version to 2.5.1; tagged as GGV_2_5_1; release a tarball.
+ * ggv/*/Makefile.am: respect the above.
+
+2003-12-28 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: emit a warning if font embedding is disabled.
+
+ * gpdf/xpdf/GPOutputDev.cc (lookupGlyph): new, a little bit better than
+ nothing.
+ (drawString): use lookupGlyph. Fixes a part of bug #116772.
+
+2003-12-23 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/lib/recent-files/Makefile.am (INCLUDES): eek, some
+ _DISABLE_DEPRECATED defines were still here. Remove them.
+
+ * gpdf/shell/gpdf-recent-view-toolitem.c
+ (gpdf_recent_view_toolitem_instance_init): unset CAN_FOCUS flag,
+ for consistency with other toolbar button items. In response to
+ bug #126191.
+
+ * gpdf/Makefile.am, help/C/Makefile.am, help/es/Makefile.am: fix
+ distcheck for scrollkeeper stuff.
+
+ * gpdf/Makefile.am: delete intltool-* on distclean, not clean, fixes
+ make clean; make.
+
+2003-12-21 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ gcc 3.3.3 has better diagnostics :-)
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_unload):
+ add a missing ``= NULL''
+ (gpdf_persist_file_on_cancelbutton_clicked)
+ (gpdf_persist_file_create_password_dialog)
+ (gpdf_persist_file_destroy): kill dead code.
+
+ * gpdf/xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_file_on_cancelbutton_clicked)
+ (gpdf_persist_file_create_password_dialog): ditto.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_filenam)
+ (gc_ui_set_pixbufs, gpdf_control_constructor): kill unused
+ variables.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_save_as): ditto.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: kill unused factory global.
+
+2003-12-20 Arafat Medini <lumina@silverpen.de>
+
+ * configure.in: Added Arabic Locale "ar" to ALL_LINGUAS
+
+2003-12-20 Arafat Medini <lumina@silverpen.de>
+
+ * configure.in: Added Arabic locale "ar" to ALL_LINGUAS
+
+2003-12-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_set_fullscreen): applied a patch
+ from janecek at ucw.cz that uses gtk_window_fullscreen() instead
+ of my home-brewn stuff used in 2.4.
+ removed functions and includes made redundant by the above patch.
+ * ggv/src/Makefile.am: there was no need to link libgtkgs with librecent.a,
+ so we do not do that anymore.
+
+2003-12-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: drop libgnomeui-2.0 >= 2.4.0 requirement.
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_create_password_dialog),
+ * gpdf/xpdf/gpdf-persist-stream.cc (gpdf_persist_file_create_password_dialog):
+ use GTK_STOCK_DIALOG_AUTHENTICATION, not GNOME_STOCK_AUTHENTICATION.
+
+ * gpdf/help/es/.cvsignore: add.
+
+ * gpdf/.cvsignore, Makefile.am (inltool_extra): update for
+ intltool 0.28.
+
+ * gpdf/shell/gpdf.c (set_window_icon_default, main): set the default
+ window icon.
+
+ * gpdf/shell/Makefile.am (INCLUDES): define GNOMEICONDIR
+
+ * gpdf/shell/gpdf.c, xpdf/gpdf-control.cc: don't
+ gtk_window_set_default_size (cf. #128636)
+
+ * gpdf/configure.in: GtkFileChooser requires gtk+ 2.3
+
+2003-12-11 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
+
+ * gpdf/help/es, configure.in, help/Makefile.am: Added Spanish help
+
+2003-12-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_expose)
+ (gpdf_page_control_class_init): try to look better with some theme
+ engines (bug and patch for similar problem pointed out by
+ hk (Evandro)).
+
+ * gpdf/test-files/encrypted.pdf: an encrypted pdf, passwords are Foo
+ and Bar.
+
+ * gpdf/test-files/Makefile.am (EXTRA_DIST): dist encrypted.pdf.
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc: can't make canvas-item
+ properties construct time-only. Fixes links with glib 2.3.
+
+ * gpdf/configure.in: post-release version bump.
+
+2003-12-08 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: Version 0.120, add warning that this is not
+ stable.
+
+ * gpdf/NEWS: merge news from stable, update.
+
+ * gpdf/README.GPdf: update.
+
+ * gpdf/xpdf/gpdf-properties-dialog.glade: declare some atk relations.
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_instance_init)
+ (gpdf_page_control_setup_at): set some atk names.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_setup_at): set atk role and name
+ for the GPdfView, fixes #127897.
+
+ * gpdf/configure.in: require libgnomeui-2.0 >= 2.4.0 for authentication
+ stock icon.
+
+ * gpdf/xpdf/gpdf-persist-file.cc, xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_file_create_password_dialog)
+ (gpdf_persist_file_get_password)
+ (gpdf_persist_file_get_owner_password)
+ (gpdf_persist_file_get_user_password): HIGgify a bit: remove
+ window title, remove unused help button, rename OK button, add
+ authentication stock icon, frob widget spacing.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_enable_ui): enable print verb
+ only if the document allows printing.
+
+2003-12-08 Jan Arne Petersen <jpetersen@uni-bonn.de>
+
+ * gpdf/shell/gpdf.c: (file_dialog_response), (gw_ask_for_uri):
+ * gpdf/xpdf/gpdf-control.cc: Replace GtkFileSelection with
+ GtkFileChooser.
+
+2003-12-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/help/es/gpdf.xml, help/es/gpdf-es.omf: made them xmllint clean.
+
+2003-12-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_enable_ui): handle FileSaveAs
+ as well.
+
+2003-12-06 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (impl_bonobo_persist_file_load): if
+ the uri looks like a local path (no uri scheme), transform to a
+ uri, escaping special chars like '%'. Fixes #128171.
+
+ * gpdf/shell/gpdf-recent-view-toolitem.c
+ (gpdf_recent_view_toolitem_instance_init): set atk name for the
+ drop down arrow. Fixes #126190.
+ Patch by Padraig O'Briain <padraig.obriain@sun.com>
+ Fix copyright lines to include James Willcox (for the gedit code).
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_save_as): Comment that it expects
+ the filename in on-disk encoding.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_filename): comment why it
+ doesn't return utf-8, remove FIXME; s/const gchar*/gchar*/ because
+ we return g_strdupped memory. Fix fileselection title.
+ (verb_SaveAs_cb): plug leak (s/const gchar*/gchar*/)
+
+ * gpdf/xpdf/gpdf-control-ui.xml: renamed "Save document as" to "Save a
+ Copy" because we continue displaying the original file.
+
+2003-12-05 Jan Arne Petersen <jpetersen@uni-bonn.de>
+
+ * ggv/bonobo/ggv-postscript-view.c: (verb_FileSaveMarked):
+ * ggv/src/ggv-window.c: (verb_FileOpen): Replace GgvFileSel
+ (GtkFileSelection) with GtkFileChooser.
+ * ggv/src/Makefile.am:
+ * ggv/src/ggv-file-sel.[ch]: removed unused files.
+
+2003-12-01 Mohammad DAMT <mdamt@bisnisweb.com>
+
+ * gpdf/configure.in: Added "id" to ALL_LINGUAS
+ * gpdf/po/id.po: Added Indonesian Translation by Ahmad Riza H Nst <ari@160c.afraid.org>
+
+2003-11-18 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/shell/gpdf.c (gpdf_window_open):
+ Changed bonobo_object_unref with gtk_widget_destroy (more
+ appropriate :-).
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (impl_bonobo_persist_stream_load):
+ * gpdf/xpdf/gpdf-persist-file.cc (impl_bonobo_persist_file_load):
+ Fixed for BUG# 116663.
+ Raise exception for password failure to be able to cancel
+ window opening when catched in gpdf window code.
+
+ * gpdf/shell/gpdf.c:
+ Fixed for BUG# 116663.
+ (open_request_handler):
+ Changed window creation flow to be able to correctly
+ handle exceptions.
+ Moved title update (removed here after) at this point
+ just before window is mapped.
+ (gw_add_control_to_ui): Removed activation of control
+ widget (to do it later in creation flow).
+ (gw_control_load_pdf): Removed update of title to do
+ it later also.
+ (gpdf_window_open): Changed window open flow to take
+ into account exceptions. Added activation of control
+ if no exception raised.
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_persist):
+ Merged from gpdf-outlines branch.
+ Give bonobo control to bonobo persistant
+ objects for them to handle password dialogs as
+ transients.
+
+ * gpdf/xpdf/gpdf-persist-stream.h:
+ * gpdf/xpdf/gpdf-persist-stream.cc:
+ (gpdf_persist_file_on_entry_activate)
+ (gpdf_persist_file_on_cancelbutton_clicked)
+ (gpdf_persist_file_on_okbutton_clicked)
+ (gpdf_persist_file_create_password_dialog)
+ (gpdf_persist_file_get_password)
+ (gpdf_persist_file_get_owner_password)
+ (impl_bonobo_persist_stream_load)
+ (gpdf_persist_stream_set_control):
+ Merged from gpdf-outlines branch.
+ Add password protected documents support.
+ Fix BUG# 116663
+
+ * gpdf/xpdf/gpdf-persist-file.h:
+ * gpdf/xpdf/gpdf-persist-file.cc:
+ (gpdf_persist_file_on_entry_activate)
+ (gpdf_persist_file_on_cancelbutton_clicked)
+ (gpdf_persist_file_on_okbutton_clicked)
+ (gpdf_persist_file_create_password_dialog)
+ (gpdf_persist_file_get_password)
+ (gpdf_persist_file_get_owner_password)
+ (gpdf_persist_file_get_user_password)
+ (impl_bonobo_persist_file_load, gpdf_persist_file_set_control):
+ Merged from gpdf-outlines branch.
+ Add password protected documents support.
+ Fix BUG# 116663
+
+2003-11-17 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-control-ui.xml:
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_save_as):
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_filename)
+ (verb_SaveAs_cb):
+ Merge SaveAs feature from gpdf-outlines branch.
+ Fix for BUG# 117596
+
+ * gpdf/shell/gpdf.c (gw_ask_for_uri, gw_open_dialog):
+ Merged "Open multiple files" feature from
+ gpdf-outlines branch.
+ Fix for BUG# 118942.
+
+2003-11-11 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (main): call gnome_program_init
+ ( fixes #126516, ignored gconf a11y setting).
+
+2003-11-06 Breda McColgan <Breda.McColgan@sun.com>
+
+ * help/C/ggv.xml: Updated for GNOME 2.4.2
+ * help/C/ggv-C.omf : Updated to reflect new manual version number and
+ date
+ * help/C/l10n.txt: Updated Summary of Changes section
+
+2003-11-03 Shakti <shakti.sen@wipro.com>
+
+ * gpdf/gpdf.desktop.in:
+ Added "%U" as a Exec parameter variable to handle dnd PDF files on launcher.
+ Fixes the bug#126160
+
+2003-11-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: removed redundant separator above prefs item.
+ * ggv/src/ggv-window.c (verb_HelpContents): if in fullscreen mode,
+ switch to normal in order to show the help window.
+ * ggv/src/gtkchecklist.c: implemented range selection (first selected ->
+ cursor) when clicking with shift pressed. fixes #125760.
+
+2003-10-27 Sanlig Badral <badral@openmn.org>
+
+ * gpdf/configure.in: Added "mn" to ALL_LINGUAS.
+
+2003-10-25 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs-ui.[ch]: migrated to GtkComboBox.
+ removed toolbar style settings.
+ * ggv/src/ggv-prefs.[ch]: removed toolbar style settings.
+ * ggv/configure.in: version 2.5.0; tag GGV_2_5_0.
+
+2003-10-14 Chee Bin HOH <cbhoh@mimos.my>
+
+ * gpdf/help/C/gpdf.xml: upd.
+
+ * gpdf/shell/gpdf.c (verb_HelpAbout_cb): documentation
+ credits.
+ (verb_HelpContents_cb): new.
+
+2003-10-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ from stable branch:
+
+ * gpdf/xpdf/gpdf-control.cc (idle_print_handler): fix off-by-one bug
+ (gpdf_control_print, print_to_file_workaround): make print-to-file
+ work, needs investigation in gnome-print.
+
+2003-10-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_zoom_to_fit): fixed a copy'n'paste error!
+ * ggv/bonobo/ggv-control.c (sw_size_allocate): better calculation of
+ available size for GtkGS widget.
+
+2003-10-03 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-control.cc (persist_file_loading_finished_cb):
+ Fix for BUG #123638.
+ Add call to gnome_vfs_unescape_string_for_display to remove
+ escaped chars in title.
+
+ * gpdf/help/C/figures/gpdf_start_window.png:
+ * gpdf/help/C/legal.xml:
+ * gpdf/help/C/gpdf.xml:
+ * gpdf/help/C/Makefile.am:
+ * gpdf/help/C/gpdf-C.omf:
+ * gpdf/help/C/.cvsignore:
+ * gpdf/help/Makefile.am:
+ * gpdf/help/xmldocs.make:
+ * gpdf/help/.cvsignore:
+ * gpdf/help/omf.make: Added help written by Chee Bin HOH.
+
+ * gpdf/Makefile.am (SUBDIRS): Add help as a SUBDIR.
+
+ * gpdf/configure.in: Add help/Makefile and help/C/Makefile in
+ AC_OUTPUT directive.
+
+ === this is HEAD === stable branch is gnome-2-4 ===
+
+2003-09-30 Christian Rose <menthos@menthos.com>
+
+ * gpdf/configure.in: Added "eu" to ALL_LINGUAS.
+
+2003-09-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: on HP-UX with gcc 3.3, define __STDC_EXT__ (#121730).
+
+2003-09-26 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (idle_print_handler): forgot to mark one
+ message for translation. Sorry.
+
+2003-09-26 Christian Neumair <chris@gnome-de.org>
+
+ * gpdf/xpdf/gpdf-control.cc (verb_FileProperties_cb):
+ * gpdf/xpdf/gpdf-properties-dialog.glade: HIGify document property dialog.
+
+ * gpdf/xpdf/gpdf-print-progress-dialog.glade: HIGify print progress dialog.
+
+2003-09-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_print_job_prepare, idle_print_handler:
+ (gpdf_control_print_job_print, using_postscript_printer)
+ (gpdf_control_no_preview_alert, gpdf_control_no_postscript_printer_alert)
+ (gpdf_control_get_range_page, gpdf_control_print_dialog_new)
+ (gpdf_control_print, verb_FilePrint_cb): implement printing.
+ (gpdf_control_set_property): disable PersistStream implementation.
+
+ * gpdf/xpdf/gpdf-print-progress-dialog.glade: add.
+
+ * gpdf/xpdf/gpdf-control-ui.xml: add Print verb, menu item, tool item.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): include PSOutputDev
+ (glade_DATA): add gpdf-print-progress-dialog.glade.
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: don't advertise PersistStream
+
+ * gpdf/configure.in: bump version to 0.110.99; require libgnomeprint >=
+ 2.3.0.
+
+2003-09-22 Taneem Ahmed <taneem@bengalinux.org>
+
+ * gpdf/configure.in: Added "bn" to ALL_LINGUAS.
+
+2003-09-08 Mugurel Tudor <mugurelu@go.ro>
+
+ * gpdf/configure.in : Added "ro" to ALL_LINGUAS.
+
+2003-09-08 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version 0.110.
+
+ * gpdf/README.GPdf: add note about HP-UX + gcc 3.3 build (#121730).
+
+2003-09-04 Joël Brich <joel.brich@laposte.net>
+
+ * gpdf/configure.in : Added "eo" to ALL_LINGUAS.
+
+2003-09-02 Gediminas Paulauskas <menesis@delfi.lt>
+
+ * gpdf/configure.in: Added lt to ALL_LINGUAS.
+
+2003-08-29 Irene Ryan <irene.ryan@sun.com>
+
+ * ggv/help/C/ggv.sgml: removed this obsolete SGML file
+ * ggv/help/C/ggv.xml: minor updates to Help for GNOME 2.4 release
+ * ggv/help/C/ggv-C.omf: updated manual release info
+ * ggv/help/C/l10n.txt: updated instructions for L10N teams about
+ changes made in latest Help
+
+2003-08-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: Version 0.106.
+
+ * gpdf/NEWS: updated.
+
+ * gpdf/README: point to README.GPdf.
+
+ * gpdf/README.GPdf: new file.
+
+ * gpdf/gnome-pdf.png: icon from gnome-icon-theme by Jimmac (Jakub
+ Steiner).
+
+ * gpdf/Makefile.am: dist the icon.
+
+2003-08-25 Mark Finlay <sisob@tuxfamily.org>
+
+ * gpdf/gpdf.desktop.in: use gnome-pdf (gnome-icon-theme) icon.
+
+2003-08-19 Yanko Kaneti <yaneti@declera.com>
+
+ * gpdf/configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
+
+2003-08-18 Guntupalli Karunakar <karunakar@freedomink.org>
+
+ * gpdf/configure.in: Added "hi" to ALL_LINGUAS.
+
+2003-08-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/added ggv-recent.*!
+
+2003-08-12 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (ui_component_set_sensitive): move up.
+ (gpdf_control_enable_ui): new.
+ (gc_enable_go_back_verbs, gc_enable_go_forward_verbs)
+ (gc_enable_history_back_verbs, gc_enable_history_forward_verbs):
+ replaced by gpdf_control_enable_ui.
+ (gc_page_changed_enable_page_buttons, gpdf_control_activate)
+ (gpdf_control_pdf_doc_changed): use gpdf_control_enable_ui,
+ disable ui if pdf_doc == NULL.
+
+2003-08-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied patch by Glynn Foster of Sun that adds support for
+ recent files menu. Thanks!
+
+2003-08-11 Dafydd Harries <daf@parnassus.ath.cx>
+
+ * ggv/configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
+
+2003-08-09 Sajith V.K <sajith_vk@linuxmail.org>
+
+ * gpdf/configure.in: Added "ml" (Malayalam) to ALL_LINGUAS.
+
+2003-08-06 Thomas Vander Stichele <thomas at apestaart dot org>
+
+ * ggv/configure.in: make maintainer builds work
+
+2003-08-06 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/eog-hig-dialog.c (eog_hig_dialog_new): add terminating
+ NULL in g_object_set.
+
+2003-07-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/NEWS, configure.in: Version 0.105
+
+ * gpdf/shell/gpdf.c (verb_HelpAbout_cb): add Remi.
+
+2003-07-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/test-files/Makefile.am (%.pdf): run pdftex in nonstopmode, let
+ make ignore pdftex errors (we are only creating test files). Makes
+ bug #114701 less severe.
+
+2003-07-24 Dafydd Harries <daf@parnassus.ath.cx>
+
+ * gpdf/configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
+
+2003-07-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-properties-dialog.glade: declared unused dialog title
+ as not translatable. (Bug #118218).
+
+2003-07-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-info-dict-util.cc (pdf_doc_process_properties): added a
+ comment for translators in front of Yes/No (Bug #118214).
+
+2003-07-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/Makefile.am: remove built sources from distribution tarball.
+
+2003-07-18 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (impl_bonobo_persist_file_load): use
+ more informative error messages when emitting loading-failed. Kill
+ gotos :-).
+ Whitespace cleanups.
+
+ * gpdf/xpdf/gpdf-control.cc (persist_file_loading_failed_cb): kill
+ redundancy in error message; unset PDF document.
+
+ * gpdf/xpdf/eog-hig-dialog.c (eog_hig_dialog_new): remove a newline
+
+2003-07-17 Remi Cohen-Scali <rcoscali@cvs.gnome.org>
+
+ * gpdf/xpdf/gpdf-marshal.list (VOID:POINTER,INT)
+ (VOID:INT,INT,INT,INT,INT): removed wrongly
+ commited new marshalers. Should have gone to
+ gpdf-outlines.
+
+2003-07-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_class_init)
+ (impl_bonobo_persist_file_load): emit (new) loading-failed signal
+ if something goes wrong during load.
+
+ * gpdf/xpdf/gpdf-persist-file.h: add slot for loading-failed.
+
+ * gpdf/xpdf/gpdf-marshal.list: add VOID:STRING.
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc: fix include (thanks Remi).
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_persist)
+ (gpdf_control_destroy): on loading-failed signal, display error
+ alert.
+
+ * gpdf/xpdf/eog-hig-dialog.h, xpdf/eog-hig-dialog.c: copied from eog;
+ HIG conforming alert dialog.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): build eog-hig-dialog
+
+ * gpdf/NEWS: updated.
+
+2003-07-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_key_press_event): reverted the
+ page up/down keys behaviour.
+ * ggv/bonobo/GNOME_GGV.server.in.in: don't register ourselves as being
+ able to read PDF files.
+ * ggv/bonobo/bonobo-postscript-view-ui.xml: add label to File submenu.
+ fixes #115724.
+ * ggv/configure.in: bumoed version to 2.3.2; tag GGV_2_3_2: released a
+ tarball.
+
+2003-07-06 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-file.cc (gpdf_persist_file_class_init):
+ rename set_pdf signal to loading_finished.
+
+ * gpdf/xpdf/gpdf-control.cc (persist_file_loading_finished_cb)
+ (gpdf_control_setup_persist): ditto.
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc: ditto.
+
+ * gpdf/xpdf/gpdf-persist-file.h: ditto.
+
+2003-07-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (file_dialog_ok): if selected filename does not
+ exist, try to do completion, never try to open.
+
+2003-07-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (file_dialog_ok): don't try to open a
+ directory. Code stolen from Gnumeric (gui-util.c).
+ (file_dialog_cancel, file_dialog_delete_event, gw_ask_for_uri):
+ hide the file selector before destroying it.
+
+2003-07-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_clear_history): implement.
+ (gpdf_view_set_pdf_doc): clear history on set_pdf_doc (for
+ nautilus).
+
+2003-07-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.h: add scroll_to prototypes
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_key_press_event): use
+ gpdf_view_scroll_to_top and _bottom, kill superfluous/wrong
+ do_scroll = TRUE statement (twice).
+ (gpdf_view_scroll_to_top, gpdf_view_scroll_to_bottom): move above
+ gpdf_view_page_prev.
+ (gpdf_view_link_action_goto, gpdf_view_page_prev)
+ (gpdf_view_page_next, gpdf_view_page_first, gpdf_view_page_last)
+ (gpdf_view_back_history, gpdf_view_forward_history)
+ (gpdf_view_key_press_event, gpdf_view_key_press_event): when
+ jumping to another page, scroll to top of the page, except when
+ browsing backwards with Backspace. Fixes #115173.
+
+ * gpdf/xpdf/gpdf-control.cc (gc_set_page_cb): #115173 fix.
+
+2003-07-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_scroll_to_top)
+ (gpdf_view_scroll_to_bottom): implement.
+
+ * gpdf/configure.in: bump version to 0.104.99.
+
+2003-07-02 Laurent Dhima <laurenti@alblinux.net>
+
+ * ggv/configure.in: Added "sq" to ALL_LINGUAS.
+
+2003-07-02 Jordi Mallach <jordi@sindominio.net>
+
+ * ggv/ggv.desktop.in: Add X-Bugzilla entries.
+
+2003-07-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in, NEWS: Version: 0.104.
+
+2003-07-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-gpdf-control.cc (control_property_title): make
+ it pass again.
+
+ * gpdf/xpdf/GPOutputDev.cc: fix name of Dingbats font.
+
+2003-07-01 Laurent Dhima <laurenti@alblinux.net>
+
+ * gpdf/configure.in: Added "sq" to ALL_LINGUAS.
+
+2003-06-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (persist_stream_set_pdf_cb)
+ (persist_file_set_pdf_cb, persist_file_set_pdf_cb)
+ (gpdf_control_get_title, gpdf_control_constructor)
+ (property_bag_get_prop): Plug leak. Don't recompute the title
+ everytime it is needed. Silly Martin told Remi the wrong place
+ for his change.
+
+2003-06-30 Alessio Frusciante <algol@firenze.linux.it>
+
+ * gpdf/configure.in (ALL_LINGUAS): added "it" (Italian).
+
+2003-06-28 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-font-face.h: change license from GPL v2 to GPL v2 or
+ later. (with Filip's permission)
+
+ * gpdf/xpdf/gpdf-font-face.c: ditto.
+
+ * gpdf/configure.in (ALL_LINGUAS): Added "mk" and "he".
+ (EXTRA_GNOME_CFLAGS) Do not check for freetype explicitly. Build
+ fix suggested by Ali Akcaagac.
+
+ * gpdf/NEWS: updated.
+
+2003-06-26 Stanislav Brabec <sbrabec@suse.cz>
+
+ * ggv/configure.in: Fixed discontinued "head -1" syntax to "head -n 1".
+
+2003-06-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-font-face.c: GnomeFontFace wrapper class for embedded
+ fonts. Originally by me, this class is from Filip Van Raemdonck.
+
+ * gpdf/xpdf/gpdf-font-face.h: header for GPdfFontFace.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): build gpdf-font-face.[hc].
+ (INCLUDES): propagate cflags for private gnome-print headers.
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded):
+ s/gnome_font_face_download/gpdf_font_face_download/.
+
+ * gpdf/configure.in (HAVE_FONT_EMBEDDING): compile with font-embedding
+ if complete private gnome-print headers are installed.
+
+ * gpdf/NEWS: updated.
+
+2003-06-21 Remi Cohen-Scali <remi@cohen-scali.com>
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_get_title): Added
+ URI manipulation stuff for removing file:// for title
+ property.
+
+ * gpdf/shell/gpdf.c (gpdf_window_update_window_title):
+ Add handling for exception if PB cannot be retrieved.
+ Also fix a typo about last bonobo_pbclient_get_string_with_default
+ arg.
+
+2003-06-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-gpdf-control.cc (control_property_title):
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_setup_property_bag):
+ * gpdf/shell/gpdf.c (gpdf_window_update_window_title): plug property
+ bag leak.
+
+ * gpdf/configure.in: fix typo.
+
+2003-06-15 Remi Cohen-Scali <remi@cohen-scali.com>
+
+ * gpdf/xpdf/gpdf-view.h:
+ * gpdf/xpdf/gpdf-view.cc: Add support for history navigation.
+ (gpdf_free_history_node, gpdf_view_history_stack_page)
+ (gpdf_view_back_history, gpdf_view_forward_history)
+ (gpdf_view_is_first_history, gpdf_view_is_last_history): impl.
+ (gpdf_view_goto_page_no_history): renamed from
+ gpdf_view_goto_page, made static
+ (gpdf_view_goto_page): new, history-aware.
+
+ * gpdf/xpdf/gpdf-control-ui.xml: Add UI controls for history
+ navigation.
+
+ * gpdf/xpdf/gpdf-control.cc (gc_page_changed_enable_page_buttons)
+ (gc_enable_history_forward_verbs, gc_enable_history_back_verbs):
+ Add update for history controls.
+ (verb_GoHistoryPrev_cb, verb_GoHistoryNext_cb): Add callbacks and
+ bonobo verbs for history controls.
+ (gpdf_control_activate): pretend page change to update commands
+ sensitivity.
+ (gc_page_changed_enable_page_buttons): handle history buttons.
+
+2003-06-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: bumped version to 2.3.1; tag GGV_2_3_1; released a
+ tarball.
+ * ggv/src/ggv-window.c: found and released all remaining lost references.
+
+2003-06-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_new): unref the UI container.
+
+2003-06-13 Rajkumar Sivasamy <rajkumar.siva@wipro.com>
+
+ * ggv/bonobo/ggv-control-ui.xml:
+ * ggv/bonobo/ggv-control.c:
+ * ggv/bonobo/ggv-sidebar.c:
+ * ggv/bonobo/main.c:
+ * ggv/src/ggvutils.c:
+ * ggv/src/ggvutils.h:
+ * ggv/src/main.c: Register the ggv icons as stock icons, so that the
+ themes can override them.
+ Fixes bug: 109158
+
+2003-06-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (drawString): don't draw glyphs for
+ non-printing characters. Fixes #114939.
+
+2003-06-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (gpdf_window_update_window_title)
+ (gw_control_load_pdf): set window title according to control's
+ title property.
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc: add test for getCurrentFile.
+
+ * gpdf/xpdf/tests/test-gpdf-control.cc: add test for title property.
+
+ * gpdf/xpdf/gpdf-persist-file.cc
+ (impl_bonobo_persist_file_getCurrentFile): implement.
+ (gpdf_persist_file_get_current_uri): implement.
+
+ * gpdf/xpdf/gpdf-persist-file.h: declare
+ gpdf_persist_file_get_current_uri
+
+ * gpdf/xpdf/gpdf-control.cc (gc_page_changed_enable_page_buttons): do
+ nothing unless activated.
+ (gpdf_control_constructor, gpdf_control_setup_property_bag)
+ (property_bag_get_prop): add a property bag to the control.
+ (gpdf_control_get_title, persist_file_set_pdf_cb)
+ (gpdf_control_destroy, persist_stream_set_pdf_cb): impl. title
+ property (only an URI ATM).
+
+ * gpdf/NEWS: update
+
+ * gpdf/configure.in: bump version to 0.103.99.
+
+2003-06-06 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: Version 0.103.
+
+ * gpdf/NEWS: update.
+
+ * gpdf/lib/ggv-sidebar/Makefile.am (libggv_sidebar_a_SOURCES): include
+ only files that are already needed.
+
+2003-06-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: generate lib/ggv-sidebar/Makefile.
+
+ * gpdf/lib/Makefile.am (SUBDIRS): add ggv-sidebar.
+
+ * gpdf/lib/ggv-sidebar/ggvutils.h, lib/ggv-sidebar/ggv-prefs.h:
+ everything we need from the ggv files of the same name.
+
+ * gpdf/lib/ggv-sidebar/ggvutils.c: plus their implementation.
+
+ * gpdf/lib/ggv-sidebar/Makefile.am: add ggvutils.[hc], ggv-prefs.h.
+
+ * gpdf/xpdf/Makefile.am: link with ggv-sidebar.
+
+ * gpdf/xpdf/gpdf-view.cc: implement GgvDocument interface.
+ (gpdf_view_get_type): cannot use CLASS_BOILERPLATE with interfaces.
+ (gpdf_view_get_page_count, gpdf_view_get_page_names)
+ (gpdf_view_instance_init): for the interface.
+
+ * gpdf/xpdf/tests/test-gpdf-view.cc: add tests for GPdfView.
+
+ * gpdf/xpdf/tests/.cvsignore: ignore test-gpdf-view.
+
+ * gpdf/xpdf/tests/Makefile.am: add new test, link with ggv-sidebar.
+
+2003-06-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_start_scroll, gtk_gs_end_scroll): optimized:
+ invalidate 4 tiny rectangles instead of the whole window.
+ * ggv/src/cursors.c (cursor_get): optimized: create cursor only the first
+ time.
+
+2003-06-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (set_file_cmds_sensitivity): properly enable
+ or disable reload and close buttons!
+
+2003-05-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (set_zoom_items_sensitivity): disable zoom spin
+ also!
+
+2003-05-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: define HAVE_FONT_EMBEDDING if gnome-print has the
+ gnome_font_face_download function
+
+ * gpdf/xpdf/GPOutputDev.cc: use HAVE_FONT_EMBEDDING from aconf.h
+
+2003-05-29 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-gpdf-control.cc: add tests for GPdfControl
+
+ * gpdf/xpdf/tests/Makefile.am, xpdf/tests/.cvsignore: add
+ test-gpdf-control
+
+ * gpdf/xpdf/gpdf-control.cc: use BONOBO_CLASS_BOILERPLATE.
+ (gpdf_control_new, gpdf_control_construct): kill, use construct
+ time properties.
+ (gpdf_control_class_init): install constructor, properties
+ persist-stream and persist-file.
+ (gpdf_control_constructor): constructor impl.
+ (gpdf_control_setup_page_control, gpdf_control_setup_zoomable)
+ (gpdf_control_setup_view_widgets): renamed from gc_setup_foo.
+ (gpdf_control_setup_persist): ditto, connect to PersistFile, too.
+ (gpdf_control_set_property): impl.
+ (persist_file_set_pdf_cb): signal callback.
+ (persist_stream_set_pdf_cb): renamed from gc_set_pdf_cb.
+ (gpdf_control_pdf_doc_changed): factored out from gc_set_pdf_cb.
+ (verb_FileProperties_cb): get PDFDoc from priv.
+
+ * gpdf/xpdf/gpdf-control.h: kill gpdf_control_new and _construct,
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (gpdf_factory): also give the
+ control a PersistFile implementation
+
+ * gpdf/xpdf/Makefile.am: moved more code into libgpdf.a.
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: state that we implement
+ Bonobo/PersistFile.
+
+ * gpdf/shell/gpdf.c (bonobo_stream_for_uri): kill.
+ (gw_control_load_pdf): changed to load through PersistFile.
+
+2003-05-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc: add tests for GPdfPersistFile.
+
+ * gpdf/xpdf/gpdf-persist-stream.h: no need to include BonoboStream.h.
+
+ * gpdf/xpdf/gpdf-persist-file.h, xpdf/gpdf-persist-file.cc: new class,
+ implements the PersistFile interface.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): add gpdf-persist-file.cc,
+ gpdf-persist-file.h.
+
+ * gpdf/xpdf/gpdf-control.cc: reorder includes.
+
+2003-05-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_remove_control): remove timer callback
+ and free filename.
+ (ggv_window_close): call ggv_window_remove_control.
+
+2003-05-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc (gnome_canvas_item_new):
+
+ * gpdf/xpdf/gpdf-link-canvas-item.cc (gpdf_link_canvas_item_set_link):
+
+ * gpdf/xpdf/tests/test-links.cc: refactoring: the LinkItem gets its
+ directly coordinates from the Link
+
+2003-05-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-persist-stream.cc:
+ (impl_bonobo_persist_stream_load)
+ (impl_bonobo_persist_stream_save, impl_get_content_types)
+ (gpdf_persist_stream_class_init, gpdf_persist_stream_construct):
+ implement the PersistStream interface on top of BonoboPersist
+ instead of the deprecated BonoboPersistStream GObject class.
+ (gpdf_persist_stream_class_init, gpdf_persist_stream_construct):
+ changes for BONOBO_CLASS_BOILERPLATE_FULL.
+
+ * gpdf/xpdf/gpdf-persist-stream.h: derive directly from BonoboPersist.
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc (persist_stream_content_types)
+ (persist_stream_no_load): test ::getContentTypes and ::save
+ implementation in GPdfPersistStream.
+
+2003-05-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-pdf-loading.cc: new test.
+
+ * gpdf/xpdf/tests/Makefile.am (TESTS_NEEDING_PDFTEX): add
+ test-pdf-loading.
+
+ * gpdf/xpdf/Makefile.am (libgpdf_a_SOURCES): move more files to the lib.
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (gpdf_persist_stream_get_length):
+ kill.
+ (gpdf_persist_stream_delete_doc_and_stream): rename from
+ delete_pdf_doc_full, simplify.
+ (load_pdf_from_stream): make priv->pdf_stream local to this method,
+ kill redundant test for catalog.
+
+ * gpdf/xpdf/gpdf-persist-stream.h (gpdf_persist_stream_get_length):
+ kill.
+
+ * gpdf/xpdf/gpdf-control.cc (verb_FileProperties_cb): remove file size
+ argument.
+
+ * gpdf/xpdf/nautilus-pdf-property-page.cc
+ (gpdf_nautilus_property_page_set_uri): ditto.
+
+ * gpdf/xpdf/pdf-info-dict-util.cc (pdf_doc_process_properties): kill
+ file size parameter.
+
+ * gpdf/xpdf/pdf-info-dict-util.h: ditto.
+
+ * gpdf/xpdf/pdf-properties-display.c: kill traces of the file size
+ label.
+
+2003-05-25 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/README: added some content ;)
+ * ggv/bonobo/ggv-control.c (ggv_control_key_press_event): explicitly queue
+ the scrollbar for redraw when doing page wrap.
+ * ggv/bonobo/ggv-control.c: popup menu on Shift+F10. patch by Padraig
+ O'Briain.
+ * ggv/src/gtkgs.c: Execute the wait() system call in a loop
+ so that it doesn't fail with an interrupted signal which
+ will result in defunct process. fixes #113058. patch by
+ Rajkumar Sivasamy.
+ * ggv/ggv.schemas: improved descriptions. Thanx to menthos for discovering these.
+
+2003-05-24 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.[ch] (gtk_gs_set_available_size): new function to set
+ the visible size that is available to the widget. used to calculate
+ zoom-to-fit factor in a better manner.
+ * ggv/bonobo/ggv-control.c: use the above func whenever widget size
+ changes.
+
+2003-05-23 Christian Neumair <chris@gnome-de.org>
+
+ * gpdf/shell/gpdf.c: (verb_HelpAbout_cb): Splitted copyright string.
+
+2003-05-20 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-links.cc (link_item_click)
+ (link_item_enter_leave): more tests
+
+ * gpdf/xpdf/gpdf-link-canvas-item.cc (gpdf_link_canvas_item_click)
+ (gpdf_link_canvas_item_enter, gpdf_link_canvas_item_leave)
+ (gpdf_link_canvas_item_clicked, gpdf_link_canvas_item_event)
+ (gpdf_link_canvas_item_set_property)
+ (gpdf_link_canvas_item_class_init): refactor to make it more
+ better testable
+
+ * gpdf/xpdf/gpdf-link-canvas-item.h: ditto
+
+2003-05-20 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-link-canvas-item.cc
+ (gpdf_link_canvas_item_mouse_enter)
+ (gpdf_link_canvas_item_mouse_leave)
+ (gpdf_link_canvas_item_class_init): add (mouse) enter and leave
+ signals
+
+ * gpdf/xpdf/gpdf-link-canvas-item.h: add signal slots for enter and
+ leave
+
+ * gpdf/xpdf/tests/test-links.cc (link_item_enter_leave): test for the
+ signals
+
+ * gpdf/xpdf/Makefile.am: now the marshallers sources are not shipped
+ with the dist and correctly build when needed, finally
+
+ * gpdf/configure.in: version 0.102.99
+
+2003-05-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: Version 0.102
+
+ * gpdf/xpdf/Makefile.am: don't do the DONT_DIST_SOURCE thing, breaks
+ the distcheck
+
+2003-05-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_render_page): properly destroy the
+ links layer when switching pages
+
+2003-05-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am: don't distribute generated marshallers
+
+2003-05-19 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc
+ (gpdf_links_canvas_layer_dispose): plug leak
+
+ * gpdf/xpdf/tests/.cvsignore, test-files/.cvsignore: update
+
+ * gpdf/NEWS: update
+
+2003-05-18 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/tests/test-page-setup.cc, xpdf/tests/test-links.cc:
+ tests/experiments
+
+ * gpdf/xpdf/tests/Makefile.am, xpdf/tests/.cvsignore: infrastructure
+
+ * gpdf/xpdf/gpdf-view.h: signal slots for close and quit requests
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_link_action_named, link_clicked_cb)
+ (gpdf_view_class_init): implement some named action links:
+ NextPage, PrevPage, FirstPage, LastPage, signals for Close and Quit
+
+ * gpdf/xpdf/Makefile.am (SUBDIRS): add tests
+
+ * gpdf/test-files/simple-links.tex: test file, simple pdf links
+
+ * gpdf/test-files/.cvsignore, test-files/Makefile.am: infrastructure
+
+ * gpdf/configure.in: check for pdftex (not a hard requirement)
+ add test-files/Makefile and xpdf/tests/Makefile
+
+ * gpdf/NEWS: update
+
+ * gpdf/Makefile.am (SUBDIRS): add test-files
+
+2003-05-18 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_motion_notify_event)
+ (gpdf_view_handle_drag_motion): chain up to parent implementation
+ of motion-notify, factor out dragging
+ (gpdf_view_button_press_event): chain up to parent
+ (gpdf_view_render_page): use GPdfLinksCanvasLayer to draw links
+ (link_clicked_cb, gpdf_view_link_action_goto): implement simple
+ GoTo links
+ (gpdf_view_dispose): unref the links_layer
+
+ * gpdf/xpdf/gpdf-persist-stream.cc: store bonoboStream as BaseStream
+
+ * gpdf/xpdf/gpdf-marshal.list: add VOID:POINTER
+
+ * gpdf/xpdf/gpdf-links-canvas-layer.cc, xpdf/gpdf-links-canvas-layer.h:
+ new class, links are grouped in such layers
+
+ * gpdf/xpdf/gpdf-link-canvas-item.cc, xpdf/gpdf-link-canvas-item.h: new
+ class, representing links in the GPdfView
+
+ * gpdf/xpdf/Makefile.am: move away from $common_sources to convenience
+ libraries, add gpdf-link-canvas-item.{cc,h},
+ gpdf-links-canvas-layer.{cc,h}
+
+ * gpdf/xpdf/BonoboStream.cc (bfread, bfseek): fix debug messages
+
+2003-05-18 Danilo Šegan <dsegan@gmx.net>
+
+ * ggv/configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+2003-05-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/lib/recent-files/egg-recent-model.c: update from egg
+
+ * gpdf/lib/recent-files/Makefile.am: fix update target
+
+ * gpdf/lib/ggv-sidebar/update-from-ggv.sh: fix
+
+ * gpdf/lib/ggv-sidebar/ggv-document.c, lib/ggv-sidebar/ggv-document.h:
+ new interfaces from GGV
+
+ * gpdf/lib/ggv-sidebar: update from ggv
+
+ * gpdf/lib/ggv-sidebar/Makefile.am: add ggv-document.[ch], fix update
+ target, define GNOMEICONDIR
+
+2003-05-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied a patch from Martin Kretzschmar that decouples GgvSidebar
+ from GgvPostScriptView via a GgvDocument interface implemented by
+ GgvPostScriptView.
+ * ggv/bonobo/ggv-document.[ch]: new - a GgvDocument interface definition.
+ * ggv/bonobo/ggv-sidebar.[ch], bonobo/ggv-postscript-view.[ch]: use the
+ new interface instead of directly using GgvPostScriptView in the
+ sidebar.
+
+2003-05-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: bump version to 0.101.99
+
+ * gpdf/xpdf/gpdf-view.cc (setup_page_transform, gpdf_view_render_page):
+ respect offsets from a page's CropBox/MediaBox (fixes second part
+ of Bug #112884).
+
+2003-05-10 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ I'll elaborate a bit on the last change
+
+ * ggv/bonobo/ggv-document.h, bonobo/ggv-document.c: new interface with
+ methods ggv_document_get_page_count and
+ ggv_document_get_page_names
+
+ * ggv/bonobo/ggv-sidebar.c (ggv_sidebar_class_init)
+ (page_list_selection_changed, ggv_sidebar_create_page_list)
+ (ggv_sidebar_construct, ggv_sidebar_new): don't depend on
+ GgvPostScriptView but on the GgvDocument interface; emit a
+ set_page signal instead of calling ggv_postscript_view_goto_page
+
+ * ggv/bonobo/ggv-sidebar.h: ditto
+
+ * ggv/bonobo/ggv-postscript-view.h:
+ (ggv_postscript_view_get_page_count)
+ (ggv_postscript_view_get_page_names): no longer public
+
+ * ggv/bonobo/ggv-postscript-view.c (notify_page_count_change)
+ (load_ps, ggv_postscript_view_create_ui):
+ s/ggv_postscript_view_get_page_count/ggv_document_get_page_count/
+ (ggv_postscript_view_get_type): expand BONOBO_TYPE_FUNC_FULL, add
+ interface implementation stuff
+ (ggv_document_interface_init): new, interface foo
+ (ggv_postscript_view_get_page_count)
+ (ggv_postscript_view_get_page_names): make static, now they serve
+ only as implementation of the respective ggv_document:: methods
+ (ggv_postscript_view_construct, sidebar_set_page): goto_page on
+ set_page signal from sidebar
+
+ * ggv/bonobo/ggv-control.c (ggv_control_create_ui):
+ s/ggv_postscript_view_get_page_count/ggv_document_get_page_count/
+
+ * ggv/bonobo/Makefile.am (ggv_postscript_viewer_SOURCES): add
+ ggv-document.[ch] to the build
+
+2003-05-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/lib/ggv-sidebar/update-from-ggv.sh,
+ lib/ggv-sidebar/gtkchecklist.h, lib/ggv-sidebar/gtkchecklist.c,
+ lib/ggv-sidebar/ggv-sidebar.h, lib/ggv-sidebar/ggv-sidebar.c,
+ lib/ggv-sidebar/config.h, lib/ggv-sidebar/Makefile.am,
+ lib/ggv-sidebar/.cvsignore, lib/ggv-sidebar: sidebar code from
+ ggv, no changes allowed here, is not in the build yet, only
+ checked in for convenient diffing.
+
+2003-05-09 Christian Neumair <chris@gnome-de.org>
+
+ * ggv/ggv.schemas.in: s/postscript/PostScript/.
+
+2003-05-08 Christian Neumair <chris@gnome-de.org>
+
+ * ggv/ggv.schemas.in: Fixed two tiny typos.
+
+2003-05-06 Danilo Šegan <dsegan@gmx.net>
+
+ * gpdf/configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+2003-05-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/NEWS, configure.in: Version 0.101
+
+2003-05-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-g-switch.h: add GMutex,
+
+ * gpdf/shell/gpdf.c (gpdf_window_new): s/gtk_type_new/g_object_new/,
+ use construction time properties
+ (gw_setup_window): kill (replaced by constr. time props)
+ (gpdf_window_construct): don't call gw_setup_window
+ (gw_add_control_to_ui, gpdf_window_open): more simplifications due
+ to BonoboWidget
+ (gw_activate_control): ditto -> kill
+ (gw_control_load_pdf, bonobo_stream_for_uri): extract the latter
+ from the former
+ (gw_setup_local_contents, gw_setup_toplevel_ui)
+ (gw_setup_recent_menu, gw_setup_recent_toolitem): slot and
+ ui_component moved to priv
+
+ * gpdf/shell/gpdf-window.h (struct _GPdfWindow): move away remaining
+ public fields
+
+2003-05-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-info-dict-util.cc (pdf_info_dict_get_date): don't hand
+ out invalid times; work around Distiller 3.0 y2k bug.
+
+2003-05-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_key_press_event): really set
+ do_scroll when we want to scroll; on PageUp/Down move by whole
+ pages instead of screenfuls, leave Backspace/Space for that (fixes
+ Bug #112140)
+
+2003-05-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c:
+ (gpdf_window_has_contents, gw_add_control_to_ui)
+ (gw_control_load_pdf, gw_control_load_pdf, gw_destroy)
+ (gpdf_window_construct): refactor towards using BonoboWidget
+ (gw_setup_control_frame): kill
+
+2003-05-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (gw_control_load_pdf): use a vfs: moniker; check
+ for exceptions
+
+2003-05-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (gw_control_load_pdf): don't free uri
+
+2003-05-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/tests/test-uri-input.c (setup, tear_down): extract uri
+ request logging foo from tests
+ (open_shell_arg, open_shell_arg_relative): new tests
+
+ * gpdf/shell/gpdf.c (create_window): use ::open_shell_arg
+ (gw_control_load_pdf): only accept uris
+ (gw_ask_for_uri, gw_ask_for_uri, gw_open_dialog):
+ variable/function renamings
+
+ * gpdf/shell/gpdf-uri-input.h (gpdf_uri_input_open_shell_arg): add
+ prototype
+
+ * gpdf/shell/gpdf-uri-input.c (gpdf_uri_input_open_shell_arg): new
+ function
+
+ * gpdf/shell/eel-string.c, shell/eel-string.h,
+ shell/eel-vfs-extensions.c, shell/eel-vfs-extensions.h: frome eel
+
+ * gpdf/shell/Makefile.am (libgpdfshell_a_SOURCES): add eel-string and
+ eel-vfs-extensions
+
+2003-05-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-info-dict-util.cc (pdf_info_dict_get_string): kill
+ unused variable
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_construct): kill unused variables
+
+ * gpdf/xpdf/gpdf-control.cc (gc_zoom_to_fit_width_cb): kill (unused)
+ (gc_ui_set_pixbufs): kill unused variables
+
+ * gpdf/shell/tests/test-uri-input.c: include headers for exit, strcmp
+
+ * gpdf/lib/recent-files/Makefile.am (INCLUDES): fix distcheck
+
+ * gpdf/gpdf.desktop.in (Icon): use the icon for pdf documents until we
+ have a nice gpdf icon
+
+ * gpdf/NEWS: more antinews
+
+ * gpdf/Makefile.am (CLEANFILES): more cleaning
+
+2003-04-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf-recent-view-toolitem.c: add tooltip to recent files
+ drop down
+
+2003-04-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs-ui.[ch] (struct _GgvPrefsDialog): removed ok, cancel
+ and apply members and all code related to them!
+
+2003-04-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (menu_position_under_widget)
+ (open_button_pressed_cb, open_button_key_pressed_cb)
+ (gw_setup_recent_tool_item, gw_setup_recent_toolitem): factored
+ out the toolitem with the recent files list
+
+ * gpdf/shell/gpdf-recent-view-toolitem.c,
+ shell/gpdf-recent-view-toolitem.h: new class: button with dropdown
+ menu of recent files
+
+ * gpdf/shell/Makefile.am (libgpdfshell_a_SOURCES): compile
+ gpdf-recent-view-toolitem.c
+
+2003-04-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ Gotta love compiler warnings.
+
+ * gpdf/xpdf/pdf-properties-display.c (gpdf_gtk_label_make_bold): make static
+ (gpdf_properties_display_class_init): install dispose implementation
+
+ * gpdf/xpdf/pdf-info-dict-util.cc (pdf_doc_process_properties): format
+ file size with %ld, not %d
+
+ * gpdf/xpdf/page-control.c: #include stdlib.h for strtol
+
+ * gpdf/xpdf/gpdf-view.cc (canonical_multiple_of_90): return statement
+ was missing, I wonder why it worked
+ (gpdf_view_key_press_event): silence warning
+ (gpdf_view_key_press_event): ditto
+
+ * gpdf/xpdf/GPOutputDev.cc (initBase14Fonts): use guint as array index
+
+ * gpdf/xpdf/BonoboStream.cc (bfseek): silence warning
+
+ * gpdf/shell/gpdf.c (open_request_logger): don't define if not debugging
+
+ * gpdf/shell/gpdf-uri-input.h: add missing prototypes
+
+ * gpdf/shell/gpdf-uri-input.c (gpdf_uri_input_open_uri_list): add
+ missing return type
+
+ * gpdf/xpdf/Makefile.am, shell/Makefile.am, configure.in: use maximum
+ compiler warnings
+
+2003-04-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/NEWS: updated.
+
+ * gpdf/shell/gpdf.c (gpdf_window_construct, gw_setup_recent_tool_item)
+ (open_button_key_pressed_cb, open_button_pressed_cb)
+ (menu_position_under_widget): implement recent files drop-down
+ tool item (taken from gedit)
+ (verb_HelpAbout_cb): updated (c)
+ (gw_setup_recent_menu): renamed from gw_setup_recent_files_ui
+
+ * gpdf/shell/gpdf-window-ui.xml: added recent files drop-down control
+
+ * gpdf/shell/gpdf-recent-facade.c (gpdf_recent_facade_get_model): added
+ missing return.
+
+2003-04-27 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/NEWS: added news and anti-news.
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_render_page): honor Rotate info
+ of the page object. Don't set page layout in print config object,
+ we handle the page format with calls to the canvas.
+ (setup_page_transform): renamed from setup_upside_down_transform,
+ take rotation angle argument.
+ (canonical_multiple_of_90): new function.
+
+2003-04-24 Abel Cheung <maddog@linux.org.hk>
+
+ * ggv/src/ggv-window.c(verb_HelpAbout): Add documenter credits, and
+ mark more translatable strings.
+ * ggv/Makefile.am, configure.in, ggv.schemas.in: Make schemas
+ translatable. Don't shutdown gconfd when installing schemas.
+
+2003-04-23 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am (CLEANFILES): rm GNOME_PDF.server.in on clean,
+ not on distclean (fixes Bug #111404)
+
+2003-04-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs-ui.c: added a prefs entry for PDF->DSC command.
+ * ggv/src/gtkgs.c (gtk_gs_get_postscript): convert PDF to PS before
+ printing!
+ * ggv/src/gsdefaults.[ch], ggv.schemas: added property pdf2dsc that
+ stores PDF->DSC conversion command.
+ * ggv/src/gtkgs.c (check_pdf): reverted to the old way of handling PDFs:
+ create a DSC file and use the original PDF to show it.
+
+2003-04-19 Hasbullah Bin Pit <sebol@ikhlas.com>
+
+ * gpdf/configure.in (ALL_LINGUAS): Added "ms".
+
+2003-04-15 Mike Lei <mike.lei>
+
+ * ggv/configure.in: Added Makefile support for l10n help files
+ * ggv/Add online help files for de es fr it sv ja ko zh_CN zh_TW
+
+2003-04-14 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (main, gw_open_recent_file, gw_destroy)
+ (gw_setup_recent_files_ui, gpdf_window_construct): implement
+ recent files menu items
+
+ * gpdf/shell/gpdf-window-ui.xml: add placeholder for recent files menu
+ items
+
+ * gpdf/shell/gpdf-recent-facade.h (gpdf_recent_facade_get_model): add
+ prototype, slot for virtual
+
+ * gpdf/shell/gpdf-recent-facade.c (gpdf_recent_facade_get_model): new
+ (gpdf_recent_facade_instance_init): set limit to list of recent
+ files
+
+2003-04-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c (no_contents, find_empty_or_create_new_window)
+ (open_request_handler, open_request_logger): new functions
+ (create_window, main, gw_control_load_pdf, gw_drag_data_received)
+ (gw_open_dialog): use GPdfUriInput
+ (gpdf_window_has_contents): rename from gw_has_contents, no longer
+ static
+ (gpdf_window_open): s/gw_has_contents/gpdf_window_has_contents/
+
+ * gpdf/shell/gpdf-window.h: add prototype for gpdf_window_has_contents
+
+ * gpdf/shell/gpdf-recent-facade.h, shell/gpdf-recent-facade.c,
+ shell/mock-recent-facade.c: new class, plus a mock of it
+
+ * gpdf/shell/gpdf-uri-input.h, shell/gpdf-uri-input.c: new class
+
+ * gpdf/shell/tests/test-uri-input.c, shell/tests/Makefile.am: unit
+ tests for gpdf-uri-input
+
+ * gpdf/shell/Makefile.am: add new files, compile them into a
+ convenience library for testing, link gpdf with that lib and with
+ recent files stuff
+
+ * gpdf/lib/recent-files: copy of egg recent files stuff
+
+ * gpdf/lib, lib/unit-test.h, lib/Makefile.am, lib/.cvsignore: new
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded): fix bad C++, detected
+ by Sun compilers. Thanks to Rich Burridge / Sun (Bug: #110402)
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_button_press_event): ditto
+
+ * gpdf/xpdf/gpdf-util.h (GPDF_BOILERPLATE): kill, identical with
+ BONOBO_BOILERPLATE since libbonobo 2.2.1
+
+ * gpdf/xpdf/nautilus-pdf-property-page.cc (BONOBO_ARG_GET_STRING):
+ ditto
+
+ * gpdf/configure.in: bumped version to 0.100.99, require libbonobo 2.2.1
+ generate Makefiles in lib, lib/recent-files, shell/tests
+
+ * gpdf/Makefile.am (SUBDIRS): add lib dir
+
+ * gpdf/.cvsignore: ignore release tarballs
+
+2003-04-08 Michael Meeks <michael@ximian.com>
+
+ * gpdf/Version 0.100.0
+
+2003-04-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_key_press_event): don't wrap on
+ arrow keys - only on space and backspace!
+ * ggv/src/main.c (create_windows_from_cmdline): fix differentiation
+ of URIs and local file paths.
+ * ggv/src/gtkgs.c (gtk_gs_size_allocate): always update adjustments.
+ (gtk_gs_munge_adjustments): if we zoom mode is fit (width|page)
+ set corresponding adjustments properly.
+
+2003-04-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/merged from gnome-2-2 branch - the instant-apply patch.
+ * src/main.c (main): save geometry upon exit.
+ * src/ggv-prefs-ui.c: made prefs dialog instant apply.
+ * src/ggv-prefs.[ch] (ggv_prefs_save): removed.
+ * src/gsdefaults.[ch] (gtk_gs_defaults_save): removed. moved gconf
+ operation to gtk_gs_defaults_set_*() functions.
+ * bonobo/ggv-postscript-view.c (verb_FileSaveMarked): warn even when
+ overwriting an empty file.
+
+2003-04-05 Samúel Jón Gunnarsson <sammi@techattack.nu>
+
+ * gpdf/configure.in: Added "is" in ALL_LINGUAS
+
+2003-04-03 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/Makefile.am (ui_DATA): no need for
+ bonobo-application-x-pdf-ui.xml.
+
+2003-04-03 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded): use
+ getFontFaceFallback
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_setup_tooltips): fix
+ tooltip string.
+ (gpdf_page_control_setup_tooltips): ref the tooltips object
+
+ * gpdf/xpdf/gpdf-properties-dialog.glade, xpdf/pdf-properties-display.c
+ (gpdf_properties_display_set_property): disable file size label.
+
+2003-04-03 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_instance_init)
+ (gpdf_page_control_setup_tooltips, gpdf_page_control_class_init)
+ (gpdf_page_control_destroy): add tooltips to the widget
+
+ * gpdf/xpdf/pdf-info-dict-util.cc: there are PDFs without
+ info-dictionary (e.g. OpenOffice.org's), don't crash on them
+
+ * gpdf/Makefile.am (EXTRA_DIST): distribute gpdf.applications
+
+2003-04-02 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/gpdf.applications: add
+
+ * gpdf/Makefile.am install gpdf.applications
+
+ * gpdf/gpdf.keys.in: update.
+
+ * gpdf/goo/Makefile.am, shell/Makefile.am, xpdf/Makefile.am: add
+ top_srcdir to include path for aconf2.h.
+
+ * gpdf/goo/Makefile.am, xpdf/Makefile.am: rename libgoo.a to libGoo.a
+ for consistency with Xpdf, don't install this library;
+ makefile.w32 is no more.
+
+ * gpdf/README: added note that this does not describe the GNOME version.
+
+ * gpdf/Makefile.am: don't distribute README.CVS, ANNOUNCE,
+ makefile.w32, distribute aconf2.h.
+
+ * gpdf/CHANGES: added reference to ChangeLog and NEWS.
+
+ * gpdf/AUTHORS, NEWS: updated.
+
+ * gpdf/configure.in: add bugzilla url to AC_INIT.
+
+ * gpdf/xpdf/gpdf-view.cc, xpdf/gpdf-persist-stream.cc,
+ xpdf/gpdf-control.cc, xpdf/GPOutputDev.cc: consistently wrap debug
+ messages.
+
+2003-04-02 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/configure.in: added tests from Xpdf's configure.in
+
+ * gpdf/CHANGES: added note that this describes only Xpdf upstream
+ changes
+
+2003-04-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ Merge with Xpdf 2.01 and make it build
+
+ * gpdf/ANNOUNCE, CHANGES, README, aconf-win32.h: update
+
+ * gpdf/xpdf/CharCodeToUnicode.cc, xpdf/Decrypt.cc, xpdf/FTFont.cc,
+ xpdf/FTFont.h, xpdf/FontEncodingTables.cc, xpdf/Gfx.cc,
+ xpdf/GfxFont.cc, xpdf/GfxState.cc, xpdf/GfxState.h,
+ xpdf/GlobalParams.cc, xpdf/GlobalParams.h, xpdf/Link.cc,
+ xpdf/NameToUnicodeTable.h, xpdf/Stream.cc, xpdf/TextOutputDev.cc,
+ xpdf/TextOutputDev.h, xpdf/XOutputDev.cc, xpdf/config.h,
+ xpdf/pdftotext.cc, xpdf/xpdf.cc, xpdf/Outline.cc, xpdf/XPDFApp.cc,
+ xpdf/XPDFApp.h, xpdf/XPDFCore.cc, xpdf/XPDFCore.h,
+ xpdf/XPDFViewer.cc, xpdf/XPDFViewer.h: update.
+
+ * gpdf/goo/GMutex.h: new file
+
+ * gpdf/goo/gfile.cc: update.
+
+ * gpdf/goo/Makefile.am: use GMutex.h
+
+ * gpdf/doc/pdffonts.1, doc/pdffonts.cat, doc/pdfimages.1,
+ doc/pdfimages.cat, doc/pdfinfo.1, doc/pdfinfo.cat, doc/pdftopbm.1,
+ doc/pdftopbm.cat, doc/pdftops.1, doc/pdftops.cat, doc/pdftotext.1,
+ doc/pdftotext.cat, doc/pdftotext.hlp, doc/xpdf.1, doc/xpdf.cat,
+ doc/xpdf.hlp, doc/xpdfrc.5, doc/xpdfrc.cat, doc/xpdfrc.hlp: update
+
+2003-04-01 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ Merge with Xpdf 2.02 and make it build
+
+ * gpdf/aconf2.h, aconf-dj.h, aconf-win32.h, ANNOUNCE, CHANGES, README,
+ vms_make.com: update.
+
+ * gpdf/xpdf/about-text.h, xpdf/Annot.cc, xpdf/Annot.h, xpdf/Array.cc,
+ xpdf/Array.h, xpdf/BuiltinFont.cc, xpdf/BuiltinFont.h,
+ xpdf/BuiltinFontTables.cc, xpdf/BuiltinFontTables.h,
+ xpdf/Catalog.cc, xpdf/Catalog.h, xpdf/CharCodeToUnicode.cc,
+ xpdf/CharCodeToUnicode.h, xpdf/CharTypes.h, xpdf/CMap.cc,
+ xpdf/CMap.h, xpdf/CompactFontTables.h, xpdf/config.h,
+ xpdf/Decrypt.cc, xpdf/Decrypt.h, xpdf/Dict.cc, xpdf/Dict.h,
+ xpdf/DisplayFontTable.h, xpdf/Error.cc, xpdf/ErrorCodes.h,
+ xpdf/Error.h, xpdf/FontEncodingTables.cc,
+ xpdf/FontEncodingTables.h, xpdf/FontFile.cc, xpdf/FontFile.h,
+ xpdf/FTFont.cc, xpdf/FTFont.h, xpdf/Function.cc, xpdf/Function.h,
+ xpdf/Gfx.cc, xpdf/GfxFont.cc, xpdf/GfxFont.h, xpdf/Gfx.h,
+ xpdf/GfxState.cc, xpdf/GfxState.h, xpdf/GlobalParams.cc,
+ xpdf/GlobalParams.h, xpdf/ImageOutputDev.cc,
+ xpdf/ImageOutputDev.h, xpdf/JBIG2Stream.cc, xpdf/JBIG2Stream.h,
+ xpdf/Lexer.cc, xpdf/Lexer.h, xpdf/Link.cc, xpdf/Link.h,
+ xpdf/NameToCharCode.cc, xpdf/NameToCharCode.h,
+ xpdf/NameToUnicodeTable.h, xpdf/Object.cc, xpdf/Object.h,
+ xpdf/Outline.cc, xpdf/Outline.h, xpdf/OutputDev.cc,
+ xpdf/OutputDev.h, xpdf/Page.cc, xpdf/Page.h, xpdf/Parser.cc,
+ xpdf/Parser.h, xpdf/PBMOutputDev.cc, xpdf/PBMOutputDev.h,
+ xpdf/PDFDoc.cc, xpdf/PDFDocEncoding.cc, xpdf/PDFDocEncoding.h,
+ xpdf/PDFDoc.h, xpdf/pdffonts.cc, xpdf/pdfimages.cc,
+ xpdf/pdfinfo.cc, xpdf/pdftopbm.cc, xpdf/pdftops.cc,
+ xpdf/pdftotext.cc, xpdf/PSOutputDev.cc, xpdf/PSOutputDev.h,
+ xpdf/PSTokenizer.cc, xpdf/PSTokenizer.h, xpdf/SFont.cc,
+ xpdf/SFont.h, xpdf/Stream.cc, xpdf/Stream-CCITT.h, xpdf/Stream.h,
+ xpdf/T1Font.cc, xpdf/T1Font.h, xpdf/TextOutputDev.cc,
+ xpdf/TextOutputDev.h, xpdf/TTFont.cc, xpdf/TTFont.h,
+ xpdf/UnicodeMap.cc, xpdf/UnicodeMap.h, xpdf/UnicodeMapTables.h,
+ xpdf/UTF8.h, xpdf/vms_make.com, xpdf/XOutputDev.cc,
+ xpdf/XOutputDev.h, xpdf/XPDFApp.cc, xpdf/XPDFApp.h, xpdf/xpdf.cc,
+ xpdf/XPDFCore.cc, xpdf/XPDFCore.h, xpdf/XPDFTree.cc,
+ xpdf/XPDFTree.h, xpdf/XPDFTreeP.h, xpdf/XPDFViewer.cc,
+ xpdf/XPDFViewer.h, xpdf/XPixmapOutputDev.cc,
+ xpdf/XPixmapOutputDev.h, xpdf/XRef.cc, xpdf/XRef.h: update
+
+ * gpdf/goo/gfile.cc, goo/gfile.h, goo/GHash.cc, goo/GHash.h,
+ goo/GList.cc, goo/GList.h, goo/gmem.c, goo/gmem.h, goo/gmempp.cc,
+ goo/GMutex.h, goo/GString.cc, goo/GString.h, goo/gtypes.h,
+ goo/parseargs.c, goo/parseargs.h, goo/vms_make.com: update.
+
+ * gpdf/doc/pdffonts.1, doc/pdffonts.cat, doc/pdffonts.hlp,
+ doc/pdfimages.1, doc/pdfimages.cat, doc/pdfimages.hlp,
+ doc/pdfinfo.1, doc/pdfinfo.cat, doc/pdfinfo.hlp, doc/pdftopbm.1,
+ doc/pdftopbm.cat, doc/pdftopbm.hlp, doc/pdftops.1,
+ doc/pdftops.cat, doc/pdftops.hlp, doc/pdftotext.1,
+ doc/pdftotext.cat, doc/pdftotext.hlp, doc/xpdf.1, doc/xpdf.cat,
+ doc/xpdf.hlp, doc/xpdfrc.5, doc/xpdfrc.cat, doc/xpdfrc.hlp:
+ update.
+
+2003-03-31 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ Merge with Xpdf 2.00 and make it build
+
+ * gpdf/xpdf/Makefile.am: kill traces of ltk, incorporate new sources
+
+ * gpdf/Makefile.am, configure.in: don't build the ltk subdir
+
+ * gpdf/ANNOUNCE, CHANGES, ChangeLog, README, aconf-dj.h, aconf-win32.h,
+ dj_make.bat, ms_make.bat, vms_make.com: update
+
+ * gpdf/xpdf/LTKOutputDev.cc, xpdf/LTKOutputDev.h, xpdf/postscript.xbm,
+ xpdf/xpdf-flip.ltk, xpdf/xpdf-ltk.h, xpdf/xpdf-top.ltk,
+ xpdf/xpdf.ltk: remove.
+
+ * gpdf/xpdf/Annot.cc, xpdf/Annot.h, xpdf/Array.cc, xpdf/Array.h,
+ xpdf/BuiltinFont.cc, xpdf/BuiltinFont.h,
+ xpdf/BuiltinFontTables.cc, xpdf/CMap.cc, xpdf/CMap.h,
+ xpdf/Catalog.cc, xpdf/Catalog.h, xpdf/CharCodeToUnicode.cc,
+ xpdf/CharCodeToUnicode.h, xpdf/Decrypt.cc, xpdf/Decrypt.h,
+ xpdf/Dict.cc, xpdf/Dict.h, xpdf/Error.cc, xpdf/Error.h,
+ xpdf/FTFont.cc, xpdf/FTFont.h, xpdf/FontFile.cc, xpdf/FontFile.h,
+ xpdf/Function.cc, xpdf/Function.h, xpdf/Gfx.cc, xpdf/Gfx.h,
+ xpdf/GfxFont.cc, xpdf/GfxFont.h, xpdf/GfxState.cc,
+ xpdf/GfxState.h, xpdf/GlobalParams.cc, xpdf/GlobalParams.h,
+ xpdf/ImageOutputDev.cc, xpdf/ImageOutputDev.h, xpdf/Lexer.cc,
+ xpdf/Lexer.h, xpdf/Link.cc, xpdf/Link.h, xpdf/NameToCharCode.cc,
+ xpdf/NameToCharCode.h, xpdf/NameToUnicodeTable.h, xpdf/Object.cc,
+ xpdf/Object.h, xpdf/OutputDev.cc, xpdf/OutputDev.h,
+ xpdf/PBMOutputDev.cc, xpdf/PBMOutputDev.h, xpdf/PDFDoc.cc,
+ xpdf/PDFDoc.h, xpdf/PSOutputDev.cc, xpdf/PSOutputDev.h,
+ xpdf/PSTokenizer.cc, xpdf/PSTokenizer.h, xpdf/Page.cc,
+ xpdf/Page.h, xpdf/Parser.cc, xpdf/Parser.h, xpdf/SFont.cc,
+ xpdf/SFont.h, xpdf/Stream.cc, xpdf/Stream.h, xpdf/T1Font.cc,
+ xpdf/T1Font.h, xpdf/TTFont.cc, xpdf/TTFont.h,
+ xpdf/TextOutputDev.cc, xpdf/TextOutputDev.h, xpdf/UnicodeMap.cc,
+ xpdf/UnicodeMap.h, xpdf/XOutputDev.cc, xpdf/XOutputDev.h,
+ xpdf/XRef.cc, xpdf/XRef.h, xpdf/config.h, xpdf/pdffonts.cc,
+ xpdf/pdfimages.cc, xpdf/pdfinfo.cc, xpdf/pdftopbm.cc,
+ xpdf/pdftops.cc, xpdf/pdftotext.cc, xpdf/vms_make.com,
+ xpdf/xpdf.cc: update.
+
+ * gpdf/goo/GHash.cc, goo/GHash.h, goo/GList.cc, goo/GList.h,
+ goo/GString.cc, goo/GString.h: mostly Mac OS X gcc fixage.
+
+ * gpdf/doc/pdffonts.1, doc/pdffonts.cat, doc/pdffonts.hlp,
+ doc/pdfimages.1, doc/pdfimages.cat, doc/pdfimages.hlp,
+ doc/pdfinfo.1, doc/pdfinfo.cat, doc/pdfinfo.hlp, doc/pdftopbm.1,
+ doc/pdftopbm.cat, doc/pdftopbm.hlp, doc/pdftops.1,
+ doc/pdftops.cat, doc/pdftops.hlp, doc/pdftotext.1,
+ doc/pdftotext.cat, doc/pdftotext.hlp, doc/xpdf.1, doc/xpdf.cat,
+ doc/xpdf.hlp, doc/xpdfrc.5, doc/xpdfrc.cat, doc/xpdfrc.hlp:
+ update docs.
+
+ * gpdf/ltk: remove this directory, Xpdf has switched to Lesstif.
+
+ * gpdf/aconf2.h, xpdf/JBIG2Stream.cc, xpdf/JBIG2Stream.h,
+ xpdf/Outline.cc, xpdf/Outline.h, xpdf/PDFDocEncoding.cc,
+ xpdf/PDFDocEncoding.h, xpdf/XPDFApp.cc, xpdf/XPDFApp.h,
+ xpdf/XPDFCore.cc, xpdf/XPDFCore.h, xpdf/XPDFTree.cc,
+ xpdf/XPDFTree.h, xpdf/XPDFTreeP.h, xpdf/XPDFViewer.cc,
+ xpdf/XPDFViewer.h, xpdf/XPixmapOutputDev.cc,
+ xpdf/XPixmapOutputDev.h, xpdf/about-text.h, xpdf/backArrowDis.xbm,
+ xpdf/dblLeftArrowDis.xbm, xpdf/dblRightArrowDis.xbm,
+ xpdf/findDis.xbm, xpdf/forwardArrowDis.xbm, xpdf/leftArrowDis.xbm,
+ xpdf/print.xbm, xpdf/printDis.xbm, xpdf/rightArrowDis.xbm: new
+ files.
+
+2003-03-31 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/zoomOut.xbm, xpdf/zoomIn.xbm, xpdf/makefile.w32,
+ xpdf/Makefile.in, goo/makefile.w32, makefile.w32: remove, they are
+ neither in Xpdf 1.01 nor necessary for GPdf
+
+2003-03-13 Christian Rose <menthos@menthos.com>
+
+ * ggv/configure.in: Added "ml" to ALL_LINGUAS.
+
+2003-03-11 Paul Duffy <dubhthach@frink.nuigalway.ie>
+
+ * gpdf/configure.in: Added Irish (ga) to ALL_LINGUAS
+
+2003-03-07 Irene Ryan <irene.ryan@sun.com>
+
+ * ggv/help/C/ggv.xml, ggv-C.omf: updated the help to reflect changes in
+ V1.99.98 of the application
+ * ggv/help/C/l10n.txt: added to the instructions for L10N teams translating
+ the help
+ * ggv/help/C/figures/ggv_window.png: updated screenshot of the application
+ for the help
+
+2003-03-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc: undo accidental commit (thanks for telling
+ me, Ross)
+
+2003-03-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gsdefaults.c (gtk_gs_defaults_changed): fixed a typo:
+ int->float.
+ * ggv/src/gtkgs.c (set_up_page): use HAVE_LOCALE_H instead of
+ HAVE_SETLOCALE.
+
+2003-03-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc, xpdf/nautilus-pdf-property-page.cc:
+ extract common pdf properties code:
+
+ * gpdf/xpdf/pdf-info-dict-util.cc, xpdf/pdf-info-dict-util.h: the
+ common code.
+
+ * gpdf/xpdf/Makefile.am: compile pdf-info-dict-util.{cc,h}.
+
+ * gpdf/xpdf/gpdf-control.cc (verb_FileProperties_cb): make the dialog
+ transient for the control's parent.
+
+2003-03-03 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/nautilus-pdf-property-page.cc
+ (gpdf_nautilus_property_page_set_uri): plug leaks
+
+2003-03-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/nautilus-pdf-property-page.cc,
+ xpdf/nautilus-pdf-property-page.h: new class, just what the name
+ says, uses GnomeVFSStream for loading PDFDocs.
+
+ * gpdf/xpdf/GnomeVFSStream.cc, xpdf/GnomeVFSStream.h: BaseStream
+ implementation based on (synchronous) gnome-vfs calls.
+
+ * gpdf/xpdf/BonoboStream.cc, xpdf/BonoboStream.h: coding style fixage,
+ include only what's needed.
+
+ * gpdf/xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): also compile
+ GnomeVFSStream.{cc,h}, nautilus-pdf-property-page.{cc,h}
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: add stanza for the Property Page.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: clean up a bit
+ (gpdf_factory): now we produce the Property Page, too.
+
+ * gpdf/xpdf/gpdf-control.cc: include time.h for strftime, mktime.
+
+2003-03-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ I've run intltool-prepare to make the desktop file translatable
+
+ * gpdf/gpdf.desktop.in: added
+
+ * gpdf/gpdf.desktop: removed
+
+ * gpdf/Makefile.am: make gpdf.desktop from gpdf.desktop.in
+
+ * gpdf/.cvsignore: ignore gpdf.desktop
+
+2003-02-28 Kaushal Kumar <kaushal.kumar@wipro.com>
+
+ * ggv/src/ggv-file-sel.c (ggv_file_sel_ok_clicked): Click on 'OK' should
+ not close File Open dialog if selection field is blank/null.
+ Fixes bug #107241.
+
+2003-02-27 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c: disable zoom items when auto fit mode is
+ selected.
+
+2003-02-26 Ross Burton <ross@burtonini.com>
+
+ * gpdf/gpdf.desktop: Fix so that it validates.
+
+ * gpdf/Makefile.am: Install the .desktop file into the correct
+ folder. Also remove intltool-*, which are generated.
+
+2003-02-26 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-properties-display.c
+ (gpdf_properties_display_setup_glade): get glade file from its
+ installed location. Martin, repeat after me: I Will Test The
+ Installed Program.
+
+ * gpdf/xpdf/Makefile.am: Added the Glade file to the dist. (Originally
+ by Ross, thanks)
+
+2003-02-23 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-properties-display.c, xpdf/pdf-properties-display.h,
+ xpdf/gpdf-properties-dialog.glade:
+ new widget: table with labels displaying properties of PDFs
+
+ * gpdf/xpdf/gpdf-control.cc (has_unicode_marker)
+ (utf16_big_endian_to_utf8, info_dict_get_string)
+ (info_dict_get_date, gpdf_control_process_string_property)
+ (gpdf_control_process_date_property)
+ (gpdf_control_process_properties)
+ (gpdf_control_properties_dialog_response_cb)
+ (verb_FileProperties_cb): new: a PDF properties command
+
+ * gpdf/xpdf/Makefile.am: build pdf-properties-display.[ch], install
+ glade file
+
+ * gpdf/xpdf/.cvsignore: ignore gpdf-properties-dialog.gladep
+
+ * gpdf/xpdf/gpdf-persist-stream.h, xpdf/gpdf-persist-stream.cc
+ (gpdf_persist_stream_get_length): new function
+
+ * gpdf/xpdf/gpdf-control-ui.xml: add FileProperties command and menu
+ item inside a "File Items Placeholder"
+
+ * gpdf/shell/gpdf-window-ui.xml: add "File Items Placeholder"
+
+ * gpdf/configure.in: check for libglade-2.0
+
+ * gpdf/Makefile.am (EXTRA_DIST): don't dist gpdf.mime
+
+ * gpdf/xpdf/PDFDoc.cc, xpdf/Function.cc, xpdf/FontFile.cc,
+ goo/parseargs.c: call atof only in the "C" locale
+
+2003-02-21 Roozbeh Pournader <roozbeh@sharif.edu>
+
+ * ggv/configure.in: Added "fa" to ALL_LINGUAS.
+
+2003-02-21 Paisa Seeluangsawat <paisa@colorado.edu>
+
+ * ggv/configure.in (ALL_LINGUAS): Added "th".
+
+2003-02-21 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_remove_control): remove control
+ from the control frame.
+ (ggv_window_load): resolve the loaded uri to a desired bonobo
+ object. this allows for easy integration of gpdf viewer in the
+ ggv shell.
+ (ggv_window_new): don't create control here. just reserve a place
+ for it.
+
+2003-02-20 Naba Kumar <naba@gnome.org>
+
+ * ggv/configure.in, po/hi.po: Added new Hindi translation from
+ Gnome Hindi Team <indlinux-hindi-gnome@lists.sourceforge.net>
+ and added hi to ALL_LINGUAS.
+
+2003-02-20 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GfxState.cc: Applied a patch to fix buffer overflow (CVE:
+ CAN-2002-1384, Redhat: RHSA-2003:037-09, Debian: DSA-222)
+ Reminder by Michael
+
+2003-02-20 Dmitry G. Mastrukov <dmitry@taurussoft.org>
+
+ * gpdf/configure.in: Added Belarusian to ALL_LINGUAS.
+
+2003-02-18 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: remove GNOME2_X_CHECKS check (currently unused,
+ will be removed from gnome-common)
+
+2003-02-16 Mohammad DAMT <mdamt@bisnisweb.com>
+
+ * ggv/po/id.po: Added Indonesian translation
+ * ggv/configure.in: Added "id" to ALL_LINGUAS
+
+2003-02-16 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/page-control.c, xpdf/page-control.h: show label " of n
+ pages" next to the text entry
+ (gpdf_page_control_set_total_pages): new
+
+ * gpdf/xpdf/gpdf-control.cc (gc_set_pdf_cb): notify page toolitem
+ about page-count
+
+2003-02-15 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.h, xpdf/gpdf-view.cc (gpdf_view_first_page)
+ (gpdf_view_last_page): new
+ (gpdf_view_goto_page): kill #if'ed out debug message
+
+ * gpdf/xpdf/gpdf-control.cc (gc_setup_page_control, gc_setup_zoomable)
+ (gc_setup_view_widgets): move signal connect calls to places where
+ they belong
+ (gc_zoom_changed_report_to_zoomable)
+ (gc_page_changed_update_page_control): renamed from
+ gc_zoom_changed_cb resp. gc_page_changed_cb
+ (ui_component_set_sensitive, gc_enable_go_back_verbs)
+ (gc_enable_go_forward_verbs, gc_page_changed_enable_page_buttons)
+ (gc_set_ui_container): new, disable some page navigation commands
+ on first/last page
+ (gc_set_zoom_items_visibility): do nothing if we can't find a
+ ui-component (don't g_assert that it's !=NULL)
+
+2003-02-15 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-stock-icons.h, xpdf/gpdf-stock-icons.c: new. register
+ gpdf-zoom-fit-width stock icon with a GtkIconFactory
+
+ * gpdf/xpdf/fitwidth.png: redone in 24x24pix instead of 26x26, based on
+ gtk's zoom-out stock icon and the original fitwidth.png
+
+ * gpdf/xpdf/gpdf-control.cc (gc_set_ui_container): s/gc_set_ui_pixbufs/
+ gc_ui_set_pixbufs/
+ (gc_ui_set_pixbufs): rewrite to use stock icon machinery, let it
+ do the correct scaling
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (main): init our stock icons
+
+ * gpdf/xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): add
+ gpdf-stock-icons.[ch]
+
+2003-02-15 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceEmbedded): change (disabled)
+ font embedding code
+
+ * gpdf/shell/gpdf.c (gw_setup_window): set window title
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in, shell/gpdf.c: s/Gnome/GNOME/ in
+ strings
+
+ * gpdf/xpdf/page-control.c, xpdf/gpdf-view.cc,
+ xpdf/gpdf-persist-stream.cc: use our own marshallers
+
+ * gpdf/configure.in, xpdf/Makefile.am, xpdf/gpdf-marshal.list: check
+ for and use glib-genmarshal
+
+ * gpdf/xpdf/.cvsignore: ignore generated marshallers
+
+ * gpdf/xpdf/Makefile.am: clean up server.in, server files
+
+ * gpdf/Makefile.am, gpdf.mime: remove gpdf.mime, application/pdf is
+ provided by gnome-vfs.mime
+
+2003-02-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in, Makefile.am: applied a patch from Julio Merino
+ that uses gconf2 AM macros instead of home-brewed code.
+
+2003-02-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_realize): make page
+ number entry 5 chars wide
+
+ * gpdf/xpdf/gpdf-control.cc (gc_setup_page_control): don't set width of
+ page-control here
+
+ * gpdf/xpdf/gpdf-control-ui.xml, xpdf/gpdf-control.cc
+ (gc_set_ui_pixbufs): scale down Fit Width icon for the View menu
+
+2003-02-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFaceFallback): use the system
+ aliases for fallback
+
+2003-02-11 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gc_setup_page_control)
+ (gc_page_changed_cb): handle set_page of the page-control
+
+ * gpdf/xpdf/gpdf-view.h: make gpdf_view_goto_page public
+
+ * gpdf/xpdf/page-control.c (gpdf_page_control_return_pressed)
+ (gpdf_page_control_key_press_event, gpdf_page_control_class_init):
+ add a set_page signal, emit when <RET> is pressed.
+
+ * gpdf/xpdf/page-control.h: fix indentation, add set_page signal.
+
+2003-02-10 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/page-control.c, xpdf/page-control.h: page number entry
+ widget (for the toolbar)
+
+ * gpdf/xpdf/gpdf-control.cc (gc_page_changed_cb)
+ (gc_ui_add_page_control, gc_setup_page_control): add a
+ page-control to the toolbar (currently displays page number only)
+ (gc_set_ui_pixbufs): extracted from gc_set_ui_container
+ (gc_setup_view_widgets): renamed from gc_setup_widgets
+
+ * gpdf/xpdf/gpdf-view.cc, xpdf/gpdf-view.h: add a page_changed signal,
+ wrap g_signal_emit calls for improved readability
+
+ * gpdf/xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): add page-control.c,
+ page-control.h
+
+ * gpdf/xpdf/gpdf-control-ui.xml: add placeholder for page-control
+
+2003-02-09 Christian Rose <menthos@menthos.com>
+
+ * gpdf/configure.in: Added "kn" to ALL_LINGUAS.
+
+2003-02-09 Christian Rose <menthos@menthos.com>
+
+ * ggv/configure.in: Added "kn" to ALL_LINGUAS.
+
+2003-02-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am: fix a comment that prevented definition of
+ gnome_pdf_viewer_LDADD
+ Patch by Benjamin Dauvergne <feanor@tol-eressea.org>
+
+2003-02-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: 1.99.98. tagged as GGV_1_99_98.
+ * ggv/bonobo/ggv-postscript-view.c, bonobo/ggv-control.c: flip
+ pages when using cursor keys to scroll.
+
+2003-01-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-file-sel.c: applied a patch from Satyajit Kanungo to make
+ the file selector modal.
+
+2003-01-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc, xpdf/Makefile.am: disable font embedding
+ hack introduced on 2002-12-09 to fix build with current,
+ extra-clean gnome-print
+
+2003-01-21 Christian Rose <menthos@menthos.com>
+
+ * ggv/configure.in: Added "mn" to ALL_LINGUAS.
+
+2003-01-20 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * ggv/configure.in: Added Macedonian (mk) to ALL_LINGUAS
+
+2003-01-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_construct): don't unref the
+ widget. ps_view needs to hold the reference!
+ * ggv/src/ps.c (pages_new): fixed a possible buffer overflow.
+ * ggv/src/gtkgs.c: applied a patch from Satyajit Kanungo that allows
+ viewing of non-conformant PDFs.
+
+Wed Jan 15 17:51:50 2003 Jonathan Blandford <jrb@redhat.com>
+
+ * ggv/bonobo/ggv-postscript-view.c (ps_view_get_tmp_file): return NULL
+ in error state instead of just returning. Fixes a warning. It
+ occurs to me that there is no code to handle this being NULL.
+ mkstemp almost never fails, so this is low priority.
+
+2003-01-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc: change list of fonts even more to work with
+ URW fonts on my system FIXME
+ (~GPOFontMap, startDoc, getFontFaceEmbedded): cache the fonts
+ extracted from the PDF and downloaded to the print context.
+ (~GPOutputDev): plug a leak
+
+ * gpdf/xpdf/GPOutputDev.h: update class declarations
+
+2003-01-06 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
+
+ * gpdf/configure.in: Added Spanish (es) to ALL_LINGUAS.
+
+2003-01-05 Artis Trops <hornet@navigator.lv>
+
+ * gpdf/configure.in: Added Latvian (lv) to ALL_LINGUAS.
+
+2003-01-03 Roozbeh Pournader <roozbeh@sharif.edu>
+
+ * gpdf/configure.in: Added "fa" (Persian) to ALL_LINGUAS.
+
+2002-12-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: bumped version to 1.99.97; tagged as GGV_1_99_97.
+ * ggv/bonobo/ggv-sidebar.c: fixed a typo causing a mis-cast.
+ * ggv/src/ggv-window.c: applied a patch from chris at gnome-de dot org
+ that fixes the copyright string.
+
+2002-12-20 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc (GPOFontMap, ~GPOFontMap): add c'tor, d'tor
+ (initBase14Fonts, getFontFaceBase14, getFontFaceFallback)
+ (getFontFace): refactor getFontFace, default to URW fonts for Base
+ 14 fonts, keep these font faces in a hash
+
+2002-12-17 Rajkumar Sivasamy <rajkumar.siva@wipro.com>
+
+ * ggv/ggv-prefs-ui.c: Set mnemonics to controls in preferences dialog.
+ Fixes bug #101434
+
+2002-12-17 Miloslav Trmac <mitr@volny.cz>
+
+ * gpdf/configure.in (ALL_LINGUAS): Add Czech (cs)
+
+2002-12-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied patches that add startup notification and priority text
+ to icons.
+
+2002-12-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/fitwidth.png: copy from ggv.
+
+ * gpdf/xpdf/Makefile.am, xpdf/gpdf-control-ui.xml, xpdf/gpdf-control.cc
+ (gc_set_ui_container): use it.
+
+ * gpdf/stock-zoom-fit-tall.xpm, stock-zoom-fit-wide.xpm,
+ stock-zoom-fit.xpm, stock-zoom-in.xpm, stock-zoom-out.xpm: kill
+ Gnome 1 style pixmaps.
+
+2002-12-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ Using the ``nobody is using this code, just break it'' joker: This
+ adds some kind of support for embedded Type1 fonts. Doesn't
+ respect gnome-print's privacy. No caching of extracted fonts.
+
+ * gpdf/xpdf/GPOutputDev.cc (GPOutputDev::startDoc, setPrintContext):
+ hand through to the font map
+ (getStreamContents): adapted from glib
+ (getFontFaceEmbedded): new, uses experimental
+ gpdf_gnome_print_add_font
+ (getFontFace): use getFontFaceEmbedded for fonts with embedded
+ font files
+
+ * gpdf/xpdf/GPOutputDev.h: update declarations,
+ (GPOFontMap::startDoc, setPrintContext): implemented inline
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_set_pdf_doc): call startDoc
+
+ * gpdf/xpdf/gpdf-gnome-font.h, xpdf/gpdf-gnome-font.c: new files;
+ hackish implementation of gnome_print_add_font
+
+ * gpdf/xpdf/Makefile.am (gnome_pdf_viewer_SOURCES): add
+ gpdf-gnome-font.[hc]
+
+2002-11-29 Yanko Kaneti <yaneti@declera.com>
+
+ * ggv/src/ggv-window.c (ggv_window_load): add a missing prameter to the
+ g_locale_to_utf8 call from the previous patch. Fixes tinderbox.
+
+2002-11-28 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_load): applied a patch from Hidetoshi
+ Tajima to convert title to utf-8 before setting it.
+
+2002-11-27 Michael Meeks <michael@ximian.com>
+
+ * gpdf/xpdf/gpdf-control.cc,
+ * gpdf/xpdf/gpdf-view.cc: add math.h includes.
+
+2002-11-27 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_set_page_size): respect bounding box if
+ requested.
+ * ggv/bonobo/ggv-control.c (ggv_control_create_ui): set fit width pixbuf
+ to popup ui component. use smaller pixbufs for menu and popup menu
+ than for toolbar.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: removed pixtype="none".
+
+2002-11-24 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/GPOutputDev.cc: remove unused includes
+ (drawImageMask): implement
+
+ * gpdf/xpdf/GPOutputDev.h (drawImageMask): uncomment declaration
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (load_pdf_from_stream): allow reuse
+ of a GPdfPersistStream: delete its old contents, go on as usual
+
+2002-11-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_goto_page): a fix for bug #85004.
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): renamed right-hans side
+ panel option.
+ * ggv/src/ggvutils.c: removed zoom factors larger than 6.0 and smaller
+ than 1.0/6.0.
+
+2002-11-21 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_render_page): kill page parameter,
+ get it from priv->requested_page, change return type from void to
+ gboolean for use as idle handler, always return FALSE
+ (priv): new field requested_page, rename page => current_page
+ (gpdf_view_goto_page): don't call ::render_page directly,
+ g_idle_add it instead
+ (gpdf_view_page_prev, gpdf_view_page_next): interprete prev and
+ next relative to requested_page
+ (gpdf_view_key_press_event): s/page/current_page/
+ (gpdf_view_set_pdf_doc): don't ::render_page, ::goto_page instead
+
+2002-11-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view-ui-xml: removed "Override*" commands
+ and menu items. added "OrientationDocument" and "PaperSizeDoc"
+ commands and menu items. this allows for single-click setting of
+ orientation and size.
+ * ggv/bonobo/ggv-postscript-view.c: support the above changes.
+ optimized menu syncing.
+ * ggv/src/gtkgs.[ch]: constification of parameters.
+ * ggv/src/gtkgs.c, src/ps.c: better handling of page and document
+ orientations.
+
+2002-11-17 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/gpdf.c: include aconf.h before gpdf-window.h to
+ enable translation of the shell
+
+2002-11-15 Martin Kretzschmar <mk793652@mail.inf.tu-dresden.de>
+
+ * gpdf/configure.in: require libgnomeprint(ui)-2.2
+
+2002-11-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_create_ui): freeze
+ UI component _before_ merging UI. this enables us to put sidebar
+ on the right when opening a window.
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): fixed placement of
+ orientation choice menu.
+
+2002-11-13 Dmitry G. Mastrukov <dmitry@taurussoft.org>
+
+ * ggv/configure.in: Added Belarusian to ALL_LINGUAS.
+
+2002-11-10 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gc_set_zoom_items_visibility)
+ (ui_component_set_hidden): hide zoom commands if we have a
+ zoomable frame
+
+2002-11-10 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gc_zoom_changed_cb): report gpdf_view's
+ changed zoom level to bonobo zoomable
+ (gc_setup_widgets): install zoom_changed handler
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_class_init): install zoom_changed
+ signal
+ (gpdf_view_zoom): emit zoom_changed signal
+
+ * gpdf/xpdf/gpdf-view.h (GPdfViewClass): add zoom_changed signal slot
+
+ * gpdf/configure.in: yacob Added am to ALL_LINGUAS without change log
+ entry
+
+2002-11-10 Jaka Mocnik <jaka@gnu.org>
+
+ * configure.in: moved version to 1.99.96. tagged as GGV_1_99_96.
+
+2002-11-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am: don't build pdf_view.o, GOutputDev.o
+
+2002-11-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc: remove all references to old PdfView class
+ (preferred_zoom_levels, preferred_zoom_level_names): add more zoom
+ levels
+ (gc_zoom_level_from_index): kill
+ (gpdf_control_zoom_in, gpdf_control_zoom_out)
+ (gpdf_control_zoom_fit_width, gpdf_control_zoom_fit)
+ (gpdf_control_zoom_default, gc_zoomable_set_zoom_level_cb):
+ rewrite using GPdfView methods
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_zoom_in, gpdf_view_zoom_fit)
+ (gpdf_view_zoom_fit_width): implement
+
+ * gpdf/xpdf/gpdf-view.h: add zoom function prototypes
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (main):
+ * gpdf/shell/gpdf.c (main): s/PACKAGE/GETTEXT_PACKAGE/ in *textdomain
+ functions
+
+ * gpdf/xpdf/Makefile.am, goo/Makefile.am: fix distcheck
+
+2002-11-09 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_key_press_event): xpdf page
+ numbering is not zero-based!
+
+ * gpdf/xpdf/GfxState.cc (GfxDeviceCMYKColorSpace::getRGB): special case
+ cmyk k-only colors
+
+ * gpdf/xpdf/GPOutputDev.h: declare drawImage
+
+ * gpdf/xpdf/GPOutputDev.cc (getFontFace): forgot to rename one
+ font_name to gfont_name; cleanup whitespace in the source
+ (drawImage): implement. (Does not render output on
+ GnomePrintPreview older than 2002-06-14)
+
+ * gpdf/shell/gpdf.c (gw_control_load_pdf): s|file://|file:|
+
+2002-11-09 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: moved Layout submenu from Edit to View menu.
+ fixes #97843.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: fixed accelerators for
+ navigation. fixes #97842.
+ * ggv/src/gtkgs.c (gtk_gs_goto_page): applied patch from satyajit that
+ fixes occasional erroneous refreshes of non-structured docs. fixes
+ #97828.
+ * ggv/bonobo/ggv-sidebar.c (ggv_sidebar_construct): change coordinate
+ widget to GtkEntry instead of GtkLabel in order to prevent resizing
+ when text grows. make it horizontally as small as possible! fixes
+ #97711.
+
+2002-11-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/acconfig.h: remove. changes from 2002-11-04 have rendered it
+ unnecessary.
+
+2002-11-05 Martin Kretzschmar <mk793652@mail.inf.tu-dresden.de>
+
+ * gpdf/xpdf/GPOutputDev.cc (updateFont): extract GfxFont->GnomeFont
+ mapping into its own class: GPOFontMap
+ (getFontFace): I'm cheating. This first implementation makes only
+ some Basic-14-PostScript fonts look nice
+
+ * gpdf/xpdf/GPOutputDev.h: add GPOFontMap class
+ (GPOutputDev): add GPOFontMap member
+
+2002-11-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.[ch], src/gsdefaults.[ch], src/ggv-prefs-ui.c,
+ bonobo/ggv-postscript-view.c, ggv.schemas: from now on, we no
+ longer make a DSC file from PDF and use it to navigate through PDF,
+ but instead we convert every PDF to PS and show it. benefits?
+ enables printing and saving of PDF files and solves some issues
+ with deducing orientation and page size from PDFs. cost? a bit
+ slower, especially for large PDFs.
+
+2002-11-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/acconfig.h: removed, so that newer autoconfs don't spit warnings
+ about deprecation at us.
+ * ggv/configure.in: added 3rd arg to AC_DEFINE*() in order to get nice
+ comments in config.h.
+ * ggv/bonobo/main.c (ggv_postscript_viewer_factory): removed signal
+ handlers as they caused ggv to hang when rapidly starting/stopping
+ interpreter.
+ * ggv/bonobo/ggv-control.c: sync auto-fit items with defaults on startup
+ and set their sensitivity according to the status of the loaded
+ document.
+
+2002-11-03 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/GPOutputDev.cc (GPOutputDev): kill one-arg constructor,
+ more initializations in zero-arg constructor
+ (startPage, restoreState, updateFillColor)
+ (updateFillColorIfNecessary, updateStrokeColor)
+ (updateStrokeColorIfNecessary, stroke, fill, eoFill): remember if
+ the last color set was for stroking or for non-stroking
+ operations, set the color again IfNecessary
+ (updateLineDash, updateFillColor, updateStrokeColor, updateFont)
+ (doPath): this is C++, so move declarations of variables to their
+ first use and initialize them there
+ (updateFillColor, updateStrokeColor, updateFillOpacity)
+ (updateStrokeOpacity): hande opacity, always set color and opacity
+ together
+ (updateFont): store the GnomeFont we want to use later; font
+ handling still non-existant
+ (updateTextPos): store the text position
+ (updateTextShift): new, updates text position
+ (getFillColorRGBA): new, creates a RRGGBBAA gint from a GfxState
+ (drawString): rewritten to use Glyphlist machinery, quite okay
+ ( for western locales) now
+
+ * gpdf/xpdf/GPOutputDev.h: update prototypes, new private members
+
+ * gpdf/xpdf/gpdf-control.cc (gc_key_press_event_cb): kill, GPdfView
+ handles all its key events
+ (gc_setup_widgets): don't connect killed handler; gpdf_view, grab
+ focus!
+
+ * gpdf/xpdf/gpdf-view.cc (gpdf_view_construct): factor out:
+ (gpdf_view_setup_page_background): and add:
+ (gpdf_view_setup_gesture_handler): guess what it does
+ (gesture_page_next_event_cb, gesture_page_prev_event_cb)
+ (gesture_page_first_event_cb, gesture_page_last_event_cb)
+ (gesture_zoom_in_event_cb, gesture_zoom_out_event_cb): add gesture
+ handling
+ (gpdf_view_dispose): destroy gesture handler
+ (gpdf_view_render_page): improve readability, split out:
+ (setup_upside_down_transform):
+ (gpdf_view_zoom, gpdf_view_zoom_in, gpdf_view_zoom_out): new
+ (gpdf_view_key_press_event): new
+ (gpdf_view_button_press_event, gpdf_view_button_release_event)
+ (gpdf_view_motion_notify_event): for dragging the page
+ (gpdf_view_class_init): install signal handlers
+
+2002-11-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c: handle selection of auto-fit mode.
+ (ggv_control_construct): unref the GtkGS we get from GgvPostScriptView.
+ * ggv/bonobo/ggv-control-ui.xml: added a menu for selection of auto-fit
+ mode.
+ * ggv/src/ggv-prefs-ui.[ch]: implemented a choice menu for setting the
+ default zoom mode for GtkGS widgets!
+ * ggv/src/ggvutils.[ch]: removed some obsolete func prototypes.
+ added ggv_auto_fit_modes.
+ * ggv/src/gsdefaults.[ch]: handle default zoom mode.
+ * ggv/src/gtkgs.[ch]: added GtkGSZoomMode enum and zoom_mode member to
+ GtkGS. implemented auto-fit functionality.
+
+2002-10-31 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ The work on a Gnome Print Output Device starts here. The last
+ version of the old pixmap based rendering code is tagged
+ BEFORE_GNOME_PRINT.
+
+ * gpdf/xpdf/gpdf-control.cc (_GpdfControlPrivate): add field for
+ GPdfView
+ (gc_setup_widgets, gc_set_pdf_cb, verb_GoPageLast_cb)
+ (verb_GoPageFirst_cb, verb_GoPageNext_cb, verb_GoPagePrev_cb): use
+ GPdfView instead of PdfView
+
+ * gpdf/xpdf/gpdf-view.cc, xpdf/gpdf-view.h: widget for for GPOutputDev
+ to draw on. Using GnomePrintPreview.
+
+ * gpdf/xpdf/GPOutputDev.cc, xpdf/GPOutputDev.h: new Gnome Print Output
+ Device class, strokes and fills look (surprisingly) quite okay,
+ font and text handling is throw-away code
+
+ * gpdf/xpdf/gpdf-util.h (BEGIN_C_DECLS, END_C_DECLS): remove macros,
+ use those from glib
+ (GPDF_BOILERPLATE, GPDF_CLASS_BOILERPLATE, GPDF_REGISTER_TYPE):
+ macros from bonobo-macros.h and gnome-macros.h compatible with
+ c++ type system rules
+
+ * gpdf/xpdf/OutputDev.h: declare class Object
+
+ * gpdf/xpdf/Gfx.h: include Object.h
+
+ * gpdf/configure.in: check for libgnomeprint(ui)-2.0
+
+2002-10-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: added G*_DISABLE_DEPRECATED to GGV_CFLAGS.
+ * ggv/*/*.[ch]: elimination of deprecated code.
+ * ggv/ggv.schemas: added pageflip and scrollstep keys.
+ * ggv/src/gsdefaults.c: added scroll_step setting: tells what percentage
+ of viewable area size will be used for scrolling.
+ * ggv/src/ggv-prefs.[ch], src/ggv-prefs-ui.[ch]: implemented configuration
+ for scroll step.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct):
+ read gconf setting for "pageflip": if true, pages will be flipped
+ automatically when scrolled to the edge of document.
+ * ggv/bonobo/ggv-control.c (zoomable_set_zoom_level_cb): only modify the
+ adjustment value if it is different from the zoom level being set.
+ * ggv/src/gtkgs.c (gtk_gs_get_postscript): copy whole non-structured doc.
+ * ggv/bonobo/ggv-control-ui.xml: added missing tooltips.
+
+2002-10-29 Christian Neumair <chris@gnome-de.org>
+
+ * ggv/src/ggv-prefs-ui.c: Make button sequence HIG compliant.
+
+2002-10-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (verb_FileClose): if the document being closed is
+ the last one, just tell the PostScriptView component to unload the
+ document and leave the window open. fixes #96792.
+ (control_property_changed_handler): only display status message if
+ status is non-empty.
+ * ggv/idl/Ggv.idl: added close() method.
+ * ggv/bonobo/ggv-postscript-view.c (impl_GNOME_GGV_PostScriptView_close):
+ implemented the close() method.
+
+2002-10-23 Martin Kretzschmar <mk793652@mail.inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (PARENT_TYPE): that last s/// was
+ obviously scrambling too many words, make that
+ BONOBO_TYPE_PERSIST_STREAM
+
+2002-10-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: unreverted. et.po is now really added.
+
+2002-10-22 jacob berkman <jacob@ximian.com>
+
+ * ggv/configure.in (ALL_LINGUAS): revert until et.po gets added
+
+2002-10-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in (ALL_LINGUAS): added "et".
+ * ggv/po/et.po: added Estonian translation. contributed by Ilmar Kerm.
+
+2002-10-21 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-sidebar.c: fixed some typos.
+
+2002-10-20 Fatih Demir <kabalak@gtranslator.org>
+
+ * ggv/configure.in: Added "ta" to the languages' list.
+
+2002-10-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: "head -c 1" -> "head -1" for portability reasons.
+ * ggv/src/ggv-file-sel.c: #include <libgnomevfs/gnome-vfs-utils.h>.
+ * ggv/applied a patch by people at bugzilla-gnome at thewrittenword.com
+ to enable GGV to find the UI XML files when installed in a different
+ prefix than bonobo.
+
+2002-10-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (verb_FileOpen): remember path of file selector.
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): remember path
+ of file selector.
+ * ggv/src/ggv-file-sel.c (ggv_file_sel_set_uri): properly unescape uri.
+
+2002-10-16 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-persist-stream.cc: use gpdf-g-switch.h,
+ s/BONOBO_PERSIST_STREAM_TYPE/BONOBO_TYPE_STREAM_PERSIST/
+
+ * gpdf/xpdf/gpdf-control.cc (gpdf_control_zoom_fit_width)
+ (gpdf_control_zoom_fit): s/gtk_idle_add/g_idle_add/
+ (gpdf_control_activate): use BONOBO_CALL_PARENT macro
+ (gc_setup_widgets): use g_signal_connect, not gtk_signal_connect
+
+ * gpdf/xpdf/gpdf-control.h, gpdf-persist-stream.h: replace GTK_CHECK
+ macros with G_TYPE_CHECK, GtkType with GType
+
+2002-10-16 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_set_layer): set window layer.
+ (ggv_window_set_fullscreen): toggle between normal and fullscreen
+ mode.
+ * ggv/src/ggv-ui.xml: added full screen command and menu items.
+ * ggv/bonobo/ggv-control.c (_set_zoom_items_sensitivity): simplified code.
+ * ggv/src/ggvutils.c: added 3/4 and 3/2 zoom levels.
+ * ggv/bonobo/ggv-control.c (listener_ZoomLevel_cb): simplified code.
+ * ggv/bonobo/ggv-control-ui.xml: added 3/4 and 3/2 zoom levels.
+
+2002-10-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (gw_open, gw_close): rename to gpdf_window_open,
+ gpdf_window_close and make them public
+ (handle_cmdline_args): s/gtk_idle_add/g_idle_add/
+ (gw_control_load_pdf): fix leaks for error cases
+ (gpdf_window_open): simplify
+ (gw_ask_for_filename): use g_signal_connect, not gtk_signal_connect
+
+ * gpdf/shell/gpdf-window.h: replace GTK_CHECK macros with G_TYPE_CHECK,
+ s/bonobo.h/libbonoboui.h/, declare gpdf_window_open, gpdf_window_close
+
+2002-10-13 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/Makefile.am (-DGNOMELOCALEDIR): define as everybody does
+
+ * gpdf/shell/gpdf-window.h: godf_window_get_type returns GType
+
+ * gpdf/shell/gpdf.c: use GNOME_CLASS_BOILERPLATE, no need for
+ gpdf-util.h, GPDF_EMBEDDABLE_IID
+ (gpdf_window_class_init, gpdf_window_instance_init): rename from
+ class_init, init
+ (verb_HelpAbout_cb): gnome_about_new doesn't return a GnomeDialog,
+ modify to allow only one about dialog
+ (raise_and_focus): for verb_HelpAbout_cb, from EogWindow
+ (gw_close): bonobo_main_quit is correct here
+ (gw_open): release and unref control after adding it to the
+ control frame. Refcounting seems to work! The server autoexits :-)
+
+ * gpdf/xpdf/gpdf-control-ui.xml: add accelerator to View menu
+
+2002-10-12 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control-ui.xml: hide ZoomFitWidth toolbar button
+
+ * gpdf/xpdf/gpdf-control.cc (struct _GPdfControlPrivate): don't store a
+ GPdfPersistStream
+ (gc_setup_persist): ditto
+ (gpdf_control_destroy): don't unref GPdfPersistStream, we
+ add_interface'd it
+ (gc_setup_zoomable): setup a BonoboZoomable, add_interface
+ (gc_zoomable_set_zoom_level_cb, gc_zoomable_set_frame_cb):
+ Callbacks for the zoomable
+ (gpdf_control_construct): use gc_setup_zoomable
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: add Zoomable repo id
+
+ * gpdf/configure.in: don't create intl/Makefile
+
+2002-10-12 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/.cvsignore: add GNOME_PDF.server, GNOME_PDF.server.in
+
+ * gpdf/xpdf/pdf-view.cc: don't #include bonobo_application_x_pdf.h,
+ update for new GObject, GSignal, Bonobo signatures
+ (setup_pixmap): don't use double buffering
+
+ * gpdf/xpdf/gtkgesture.h: s/BEGIN_GNOME_DECLS/G_BEGIN_DECLS/
+
+ * gpdf/xpdf/gpdf-persist-stream.h, xpdf/gpdf-control.h, pdf-view.h
+ (#includes): update, use gpdf-g-switch.h,
+ s/BEGIN_GNOME_DECLS/G_BEGIN_DECLS/
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (#includes): update
+ (load_pdf_from_stream): Bonobo_Unknown_ref our stream
+ (delete_pdf_doc_full): unref our stream
+ (all around) update for new GObject, GSignal, Bonobo signatures
+ (gpdf_persist_stream_new, gpdf_persist_stream_construct): take iid
+ parameter to be passed on to bonobo_persist_stream_construct
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc: don't include
+ bonobo-application-x-pdf.h
+
+ * gpdf/xpdf/gpdf-control.cc: PARENT_TYPE is BONOBO_TYPE_CONTROL;
+ update for new GObject, GtkWidget, Bonobo signatures
+
+ * gpdf/xpdf/gpdf-control-ui.xml: use gtk-stock-pixmaps
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (#includes): use
+ gpdf-g-switch.h, update
+ (gpdf_factory): don't create embeddable, gpdf_persist_stream_new
+ takes iid parameter
+ (init_gpdf_factory, init_corba, init_bonobo): kill
+ (main): no need to init gdk_rgb; use BONOBO_FACTORY_INIT,
+ bonobo_generic_factory_main
+
+ * gpdf/xpdf/Makefile.am (INCLUDES, LDADD): update
+ (bin_PROGRAMS): move gnome-pdf-viewer to libexec_PROGRAMS
+ (gnome_pdf_viewer_SOURCES): nobody needs
+ bonobo-application-x-pdf.h, don't build embeddable stuff
+ (oafdir, oaf_DATA): kill
+ (server_in_files, serverdir): add, do libexec sed job on
+ .server.in.in file, add @INTLTOOL_SERVER_RULE@
+ (uidir): s/gnome/gnome-2.0/
+
+ * gpdf/xpdf/GOutputDev.cc (#includes): use gpdf-g-switch.h
+ (GOutputDev::GOutputDev): get size and depth of pixmap with
+ gdk_drawable_get_foo background color to white
+ (all around): gdk_region_foo now destructively update their first
+ argument, use gdk_rgb to find colors
+ (drawImageMask): don't gdk_image_new_bitmap
+
+ * gpdf/xpdf/gpdf-g-switch.h: new file, include it when switching
+ between goo and glib headers
+
+ * gpdf/xpdf/GNOME_PDF.server.in.in: factory is in @LIBEXECDIR@
+ s|GNOME/GenericFactory|Bonobo/GenericFactory|, make it
+ translatable, kill embeddable stanza
+
+ * gpdf/xpdf/GNOME_PDF.oafinfo: remove
+
+ * gpdf/xpdf/BonoboStream.cc:
+ s/Bonobo_Stream_SEEK_SET/Bonobo_Stream_SeekSet/ et al. (see
+ libbonobo/ChangeLog#2002-03-31)
+
+ * gpdf/shell/gpdf.c (#includes): use G2 headers
+ (main): copy from eog
+ (struct _Component): kill (was embeddable code)
+ (USE_CONTROL): kill #define, kill all code surrounded by #if
+ !USE_CONTROL (i.e. embeddable code)
+ (all around): add Corba_Environment argument where it's needed now
+ (gw_control_load_pdf): s/BonoboStream \*stream/Bonobo_Stream
+ stream/. get the stream using monikers, unref it later
+ (gw_drag_data_received): use uri handling code from gnome-vfs
+ (verb_HelpAbout_cb): update for new gnome_about_new
+ (verb_DebugDumpXml_cb): kill
+ (gw_destroy): may be called more than once, so update assertions
+ (gw_finalize): is a GObject method now, chain up to parent
+ (class_init): update for GObject methods
+ (gw_setup_window): blend of bonobo_window_construct and old
+ gw_setup_geometry
+ (gw_setup_geometry): kill
+ (gw_setup_toplevel_ui): use BonoboUIContainer from BonoboWindow
+ (gpdf_window_construct): use gw_setup_window, not
+ bonobo_window_construct, not gw_setup_geometry
+
+ * gpdf/shell/gpdf-window.h: s/BEGIN_GNOME_DECLS/G_BEGIN_DECLS/, kill
+ struct _Component decl (was used for embeddable)
+
+ * gpdf/shell/gpdf-window-ui.xml: kill DebugDumpXml verb
+
+ * gpdf/shell/Makefile.am: update INCLUDES, LD_ADD;
+ (gpdf_SOURCES): add missing gpdf-window.h
+ (uidir): s/gnome/gnome-2.0/
+
+ * gpdf/configure.in: clean it a bit; set version to 0.100 (version was
+ at 0.90.1 for ever and I don't want to call it 1.01.1, this is not
+ 1.something quality code); use GNOME2 macros;
+ (i18n): update according to G2 porting guide
+ (gnome-lib-checks): use PKG_CHECK
+
+ * gpdf/autogen.sh: PKG_NAME="gpdf:", USE_GNOME2_MACROS
+
+ * gpdf/.cvsignore: add intltool-... files
+
+ Initial port to GNOME 2
+
+2002-10-08 Peteris Krisjanis <peteris.krisjanis@os.lv>
+
+ * ggv/configure.in: added Latvian (lv) to ALL_LINGUAS.
+
+2002-10-08 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-view.cc: access private fields through priv field,
+ don't use view_data_t
+ (pv_realize): calls render_page if we already have a pdf_doc;
+ install as realize default handler
+ (redraw_on_realize_cb): kill
+ (pdf_view_set_pdf_doc): if we're not realized yet, just don't
+ render page
+
+ * gpdf/xpdf/pdf-view.h: kill view_data_t typedef, move PdfView's fields
+ to PdfViewPrivate
+
+ * gpdf/configure.in: check for gdk-pixbuf
+
+ * gpdf/xpdf/GOutputDev.cc (drawImage): replace bogus GdkImage code with
+ GdkPixbuf code. I don't have any PDFs here which use
+ drawImageMask, so drawImageMask I haven't rewritten drawImageMask.
+
+2002-10-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-view.cc (first_page, last_page, next_page, prev_page):
+ inline into pdf_view_page_first and friends
+ (render_page): static again
+
+2002-10-07 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/xpdfsrc.txt, xpdf/xpdfobj.txt: kill
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (gev_set_pdf_cb)
+ (gpdf_embeddable_view_construct): see gc_set_pdf_cb entry below
+
+ * gpdf/xpdf/gpdf-control.cc (GPdfControlPrivate: store persist_stream
+ (gpdf_control_destroy): write, install
+ (gc_setup_persist, gc_set_pdf_cb): pdf_view_set_pdf_doc on set_pdf
+ signal from persist_stream (used to be done in PdfView)
+ (gc_setup_widgets): pdf_view_new takes no parameter
+
+ * gpdf/xpdf/pdf-view.h: s/extern "C" {// around headers
+ update declarations
+
+ * gpdf/xpdf/pdf-view.cc (PdfViewPrivate): store only a PDFDoc, not a
+ GPdfPersistStream
+ (view_is_good): replace with IS_PDF_VIEW_WITH_DOC macro, use that
+ (last_page, next_page): get pdf_doc from priv
+ (setup_size): ditto, add parameter assertion
+ (render_page, pdf_view_get_page_width): get pdf_doc from priv
+ (pdf_view_set_zoom): only render_page if pdf_poc != NULL
+ (set_pdf_cb): inline into:
+ (pdf_view_set_pdf_doc): new method, eventually we can switch the
+ pdf to be displayed
+ (pv_destroy, pdf_view_construct, pdf_view_new): don't store a
+ GPdfPersistStream
+
+ * gpdf/xpdf/gtkgesture.h: include gtk.h, protect with BEGIN_GNOME_DECLS
+
+ * gpdf/xpdf/gpdf-persist-stream.h: move GPdfPersistStreamPrivate to
+ gpdf-persist-stream.cc
+ (gpdf_persist_stream_get_pdf_doc): declare
+
+ * gpdf/xpdf/gpdf-persist-stream.cc (gpdf_persist_stream_get_pdf_doc):
+ new accessor method
+
+ * gpdf/MAINTAINERS: mail your questions to me
+
+2002-10-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control.cc (gc_key_press_event_cb): add _cb suffix
+ (gc_zoom_level_from_index, gc_set_policy_idle_cb): add gc_ prefix
+ (gpdf_control_zoom_in, gpdf_control_zoom_out)
+ (gpdf_control_zoom_fit_width, gpdf_control_zoom_fit): extract from
+ verb implementations
+ (gc_zoom_in_cb, gc_zoom_out_cb, gc_zoom_to_fit_cb)
+ (gc_zoom_to_fit_width_cb, gc_zoom_to_default_cb): callbacks for
+ PdfView zoom signals
+
+ * gpdf/xpdf/pdf-view.h (PdfViewClass): add signal slots
+ (PdfView): kill unused mainbox field
+
+ * gpdf/xpdf/pdf-view.cc: kill old zooming code, when we want to zoom,
+ we just emit signals. Our container can connect to these and make
+ the right calls (i.e. pdf_view_set_zoom).
+ (pv_key_press_event): emit zoom signals instead of setting our
+ zoom level directly
+ (class_init): install signals
+ (zoom_to_fit): kill
+ (pdf_view_construct): connect each gesture to its own callback
+ (gesture_page_event_cb, gesture_zoom_event_cb, view_zoom_verb)
+ (view_switch_page): kill old gesture callbacks and helpers
+ (gesture_page_next_event_cb, gesture_page_prev_event_cb)
+ (gesture_page_first_event_cb, gesture_page_last_event_cb)
+ (gesture_zoom_in_event_cb, gesture_zoom_out_event_cb): new gesture
+ callbacks
+
+ * gpdf/xpdf/bonobo-application-x-pdf-ui.xml: kill zooming verbs from
+ embeddable view ui
+
+ * xpdf/gpdf-embeddable-view.cc (view_zoom_verb)
+ (page_zoom_fit_width_cb, page_zoom_fit_height_cb)
+ (page_enlarge_cb, page_shrink_cb, view_zoom_query): kill zooming
+ machinery in embeddable view
+
+ * gpdf/xpdf/pdf-view.cc (view_zoom_query): kill unused method
+
+2002-10-05 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-control-ui.xml: rename ZoomFitHeight back (2001-08-12)
+ to ZoomFit, label it Best Fit as seen in HIG; it was never really
+ ZoomFitHeight
+
+ * gpdf/xpdf/gpdf-control.cc (zoom_level_from_index, verb_ZoomIn_cb)
+ (verb_ZoomOut_cb, set_policy_idle_cb, verb_ZoomFitWidth_cb)
+ (verb_ZoomFit_cb): reimplement zooming (no BonoboZoomable yet;
+ zoom-on-key-press still uses old code), rename ZoomFitHeight back
+ to ZoomFit
+ (gpdf_control_class_init): kill local variables
+
+ * gpdf/xpdf/pdf-view.h: add prototypes
+
+ * gpdf/xpdf/pdf-view.cc (configure_size): kill this empty function
+ (setup_pixmap): don't call configure_size
+ (pdf_view_get_zoom, pdf_view_set_zoom, MIN_ZOOM_FACTOR)
+ (MAX_ZOOM_FACTOR): add nice, short zooming methods
+ (pdf_view_get_page_width, pdf_view_get_page_height): add
+
+ * gpdf/shell/gpdf.c (gw_control_load_pdf, gw_open, verb_HelpAbout_cb)
+ (gpdf_window_construct): make it compile again. The wonders of
+ emacs dabbrev-expand and me only recompiling half of the
+ directories.
+
+ * gpdf/AUTHORS: update Xpdf copyright notice
+
+ * gpdf/.cvsignore: ignore more automake generated files
+
+2002-10-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-view.cc (setup_pixmap): get our GdkWindow directly from
+ our parent window, not from the win field
+ (mainbox_realize): kill, (it only assigns to the win field)
+ (pdf_view_construct): don't connect to "realize" to killed
+ mainbox_realize
+ (real_redraw_view): don't call realize_mainbox (which would assign
+ to win, render_page, configure_size which is empty),
+ redraw_view_all does already render page
+ (realize_mainbox): kill, its only caller doesn't use it anymore
+ (real_redraw_view): rename to redraw_on_realize_cb to reflect its
+ only use
+ (redraw_view): rename to set_pdf_cb for same reason, clean if
+ else, call redraw_view_all instead of real_redraw_view
+ (key_press_event_cb): rename to pv_key_press_event, make it the
+ default handler for our key_press_event, use pdf_view_page bla,
+ not view_switch_page
+ (button_press_event_cb): rename to pv_button_press_event, make it
+ the default handler, check if we already have focus
+ (class_init): install pv_key_press_event, pv_button_press_event
+ (pdf_view_construct): don't connect key_press_event_cb,
+ button_press_event_cb
+ (redraw_view_all): fuse with render_page, use that in all places
+
+ * gpdf/xpdf/pdf-view.h: kill win field
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc: s/redraw_view_all/render_page/g
+
+ I don't know how to write a GtkWidget, but the code for the
+ PdfView widget had a lot of artificial complexity, in my eyes.
+ Is this from the time before it used GtkPixmap (1999-09-01)?
+
+2002-10-04 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/shell/Makefile.am (EXTRA_DIST): distribute gpdf-window-ui.xml
+
+ * gpdf/shell/gpdf-window-ui.xml: new file, based on xpdf/gpdf-ui.xml
+
+ * gpdf/shell/gpdf.c (GPDF_IS_NON_NULL_WINDOW): add macro
+ (GW_RETURN_UNLESS_GW, GW_RETURN_VAL_UNLESS_GW): kill macros, use
+ GPDF_IS_NON_NULL_WINDOW with g_return_bla instead, this looks
+ more G'ish to me
+
+ * gpdf/xpdf/.cvsignore: ignore gnome-pdf-viewer binary
+
+ * gpdf/xpdf/Makefile.am (XML_FILES): don't distribute gpdf-ui.xml
+ (EXTRA_DIST): no ChangeLog here
+
+ * gpdf/xpdf/gpdf-ui.xml: remove
+
+ * gpdf/xpdf/gpdf-control-ui.xml: new file, based on
+ bonobo-application-x-pdf-ui.xml, half-hearted attempts to be
+ HIG-compliant
+
+ * gpdf/xpdf/gpdf-control.cc (GPDF_IS_NON_NULL_CONTROL): add, use it
+ (gc_key_press_event): keyhandling mostly copied from embeddable
+ (verb_GoPagePrev_cb, verb_GoPageNext_cb, verb_GoPageFirst_cb)
+ (verb_GoPageLast_cb, gc_verbs []): add page verbs
+ (gc_set_ui_container, gc_unset_ui_container)
+ (gpdf_control_activate): install UI merging
+ (gc_set_zoom_items_visibility): only a dummy
+ (gpdf_control_construct): decompose into:
+ (gc_setup_persist, gc_setup_widgets): construct helpers
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc: use pdf_view_page_bla
+
+ * gpdf/xpdf/gpdf-embeddable.h (bed_t): kill already unused typedef
+
+ * gpdf/xpdf/pdf-view.h (pdf_view_page_prev, pdf_view_page_next)
+ (pdf_view_page_first, pdf_view_page_last): export
+
+ * gpdf/xpdf/pdf-view.cc (first_page, last_page, next_page, prev_page):
+ static again
+ (pdf_view_page_prev, pdf_view_page_next, pdf_view_page_first)
+ (pdf_view_page_last): methods to be called by the control (and the
+ embeddable view) to do what their names say
+ (IS_NON_NULL_PDF_VIEW): like IS_PDF_VIEW with obvious extra check
+
+2002-10-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: removed duplicate AC_OUTPUT entries.
+ * ggv/src/ggvutils.c (ggv_quote_filename): use g_shell_quote().
+
+2002-10-02 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/Makefile.am: factory file name is gnome-pdf-viewer,
+ s/GNOME_XPDF.oafinfo/GNOME_PDF.oafinfo/
+
+ * gpdf/xpdf/GNOME_PDF.oafinfo: s/XPDF/PDF/g, the factory file name
+ is now gnome-pdf-viewer, add oaf_server entry for the control
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (gpdf_factory): multi factory
+ function, replaces embeddable_factory, creates controls, too
+
+ * gpdf/xpdf/gpdf-control.cc, xpdf/gpdf-control.h: new files, first code
+ for PDF viewer bonobo control.
+
+ * gpdf/shell/gpdf.c: handle priv field in GPdfWindow, add code for using
+ a control instead of an embeddable (use it when USE_CONTROL != 0)
+
+ * gpdf/shell/gpdf-window.h (GPdfWindow): add priv field, kill app field
+ (struct _Component) is private, moved back to gpdf.c
+
+ * gpdf/configure.in: PACKAGE and VERSION are set by AM_INIT_AUTOMAKE,
+ kill explicit assignments
+
+ * gpdf/xpdf/GNOME_XPDF.oafinfo: remove
+
+2002-10-01 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (gpdf_embeddable_view_construct):
+ pdf_view_new takes persist_stream, not embeddable
+
+ * gpdf/xpdf/pdf-view.cc: add priv struct, use it to get persist_stream,
+ not bed field
+ (pdf_view_new): take persist_stream, not embeddable
+ (pdf_view_construct): ditto, store it in priv
+ (init): g_new0 priv
+ (class_init): we need finalize:
+ (pv_finalize): for priv
+ (pv_destroy): unref priv->persist_stream
+
+ * gpdf/xpdf/pdf-view.h: use BEGIN_GNOME_DECLS, we have a priv field now,
+ kill bed field, new and construct take a GPdfPersistStream now, not
+ GPdfEmbeddable (of course, this is still ugly)
+
+ Various source files: remove \n from g_message calls,
+ update Michael's email address, s/Helix Code/Ximian/
+
+2002-10-01 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (save_session): fixed possible buffer overflow.
+
+2002-09-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/gpdf-embeddable.h (GPdfEmbeddable): kill already commented
+ out fields
+ (GPdfEmbeddableClass): kill pdf_changed signal slot
+
+2002-09-30 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/xpdf/pdf-view.cc: get PDFDoc from GPdfPersistStream, not
+ directly from our embeddable (various places).
+
+ * gpdf/xpdf/Makefile.am: fix gui variable, add gpdf-persist-stream
+ files
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: include GlobalParams.h,
+ (embeddable_factory): create a GPdfPersistStream first, then
+ create an embeddable.
+
+ * gpdf/xpdf/gpdf-embeddable.cc (bed_free_data): move to
+ gpdf-persist-stream.cc as delete_pdf_doc_full
+ (load_pdf_from_stream): move to gpdf-persist-stream.cc
+ (finalize): free priv field
+ (class_init): kill pdf_changed signal, GPdfPersistStream has
+ set_pdf signal, use finalize
+ (gpdf_embeddable_add_interfaces): kill
+ (gpdf_embeddable_construct): take GPdfPersistStream param,
+ use bonobo_object_add_interface not gpdf_embeddable_add_intf
+ (gpdf_embeddable_new): take GPdfPersistStream param
+
+ * gpdf/xpdf/gpdf-embeddable.h: remove extern "C" around bonobo
+ includes, they protect themselves. Introduce private struct,
+ still public. Use GPdfPersistStream
+
+ * gpdf/xpdf/gpdf-persist-stream.cc, xpdf/gpdf-persist-stream.h:
+ files for new GPdfPersistStream class. Contains PDF loading code
+
+ * gpdf/xpdf/BonoboStream.h: hide GList before including gnome headers
+
+2002-09-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (load_ps_from_file): properly unescape
+ local uri.
+ * ggv/src/ggvutils.c (ggv_filename_to_uri): use
+ gnome_vfs_get_uri_from_local_path().
+
+2002-09-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ps.c: fixed unsafe sscanf usage. reported in iDEFENSE Security
+ Advisory 09.26.2002: Exploitable Buffer Overflow in gv
+
+2002-09-25 Martin Kretzschmar <m_kretzschmar@gmx.net>
+
+ * gpdf/configure.in: don't use macro dir, don't call AC_ARG_PROGRAM
+ ( AM_INIT_AUTOMAKE does this), inline autoheader templates from
+ acconfig.h, use AC_HELP_STRING where appropriate.
+
+ * gpdf/acconfig.h: Remove.
+
+ * gpdf/autogen.sh: switch from macro dir to gnome-common.
+
+2002-09-24 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf-window.h: kill the Container typedef, everybody uses
+ GPdfWindow now.
+ (Component): rename container field to gpdf_window
+
+ * gpdf/shell/gpdf.c (gw_has_contents): ``readability function'', use it
+ instead of testing gpdf_window->view_widget
+ (gw_drag_data_received): inline code from container_new, clean it
+ (gw_open_dialog): ditto
+ (main): moe gpdf_popt_options, poptContext globals here, make
+ command line handling an idle handler -- again, shamelessly stolen
+ from eog:
+ (handle_cmdline_args, create_window): command line handlers
+ (container_new): not needed anymore, kill
+
+2002-09-24 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c: s/containers/window_list/g and move definition
+ down to GPdfWindowClass
+ (GW_RETURN_NULL_UNLESS_GW): kill this macro, use
+ GW_RETURN_VAL_UNLESS_GW
+ (gw_close_all): write while loop with less ink
+
+2002-09-23 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/bonobo-application-x-pdf-ui.xml: kill HelpAbout verb,
+ only the shell implements it.
+
+2002-09-23 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (gw_setup_dnd): use TARGET_URI_LIST enum constant
+ in GtkTargetEntry drag_types[]
+ (component_destroy): rename to gw_component_destroy, move down to
+ its only caller gw_destroy, add != NULL assertion
+ (gw_destroy): call it with new name
+ (container_set_view): rename to gw_add_component_view_to_ui, add
+ parameter asserts, use bonobo_client_site_new_view_full, don't
+ call bonobo_wrapper_set_visibility, bonobo_view_frame_set_covered
+ (container_launch_component): s/container/gw/, add gpdf_window
+ parameter, get BonoboItemContainer from it, kill goad_id
+ parameter, always use GPDF_EMBEDDABLE_IID (new #define)
+ (container_activate_component): s/container/gw/, kill goad_id
+ param, check gpdf_window param, use gw_launch_component
+ (open_pdf): rename to gw_open, factor out PersistStream loading
+ into gw_component_load_pdf
+ (container_destroy): kill,
+ (container_new): use gw_close instead
+
+ Kill some prototype declarations.
+
+2002-09-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): set spacing between
+ buttons.
+
+2002-09-18 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/ChangeLog: merge in xpdf/ChangeLog and shell/ChangeLog using
+ the excellent MergeLog.awk and Emacs ediff tools.
+
+ * gpdf/shell/ChangeLog: remove
+
+ * gpdf/xpdf/ChangeLog: remove
+
+2002-09-17 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable.cc (load_pdf_from_stream): don't try to
+ check for catalog after having discovered that !pdf->isOk and
+ having already deleted it. I introduced my first goto to this
+ code. Edsger Dijkstra in memoriam
+
+2002-09-17 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (container_exit_cmd): => (verb_FileExit_cb)
+ (gw_close_all): close all windows, causing the program to exit
+ (verb_FileExit_cb): use gw_close_all
+ (container_open_cmd): => (verb_FileOpen_cb) which calls the new
+ (gw_open_dialog): extract file selection code into
+ (gw_ask_for_filename):
+ (file_dialog_delete_event): move down to gw_ask_for_filename
+ (set_ok): ditto, rename to file_dialog_ok
+
+2002-09-17 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (container_close_cmd): turn into
+ (verb_FileCloseWindow_cb) with BonoboUIVerbFn prototype
+ (container_dump_cmd): ditto (verb_DebugDumpXml_cb)
+ (container_about_cmd): ditto (verb_HelpAbout_cv), Michael says I
+ maintain gpdf now, added Ravi Pratap, Xpdf copyright holder is
+ Glyph & Cog, LLC, Derek B. Noonburg's pdf consulting business
+ (verbs []) rename: gw_verbs, make static, move to where it is
+ needed: right before gw_setup_toplevel_ui, use new verb callback
+ names
+
+2002-09-17 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (filenames_dropped): turn into
+ (gw_drag_data_received) use for for (ed.'s note: not a typo)
+ iterating the list, not while, free list after use
+ (class_init): install gw_drag_data_received as default handler for
+ drag_data_received
+ (gw_setup_dnd): don't connect filenames_dropped to
+ drag_data_received
+ (gw_delete_event): renamed from (gw_delete) for consistency with
+ signal name
+
+2002-09-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/Makefile.am: don't build gpdf here
+
+ * gpdf/xpdf/gpdf.cc: move to shell/gpdf.c
+
+2002-09-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c (gw_destroy): destructor (code from container_destroy)
+ (gw_delete): delete_event default handler
+ (gw_close): other half of container_destroy
+ (gpdf_window_construct): no need to gtk_object_set_data
+ "container_data", don't connect to delete_event
+ (class_init): init parent_class, install destroy and delete_event
+ default handler
+ (container_close): kill, just use gw_close
+ (container_close_cmd): call gw_close
+
+2002-09-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/gpdf.c: include gpdf-window.h, pull out struct defns,
+ implement GPdfWindow class here for now (let's see if it's more
+ convenient)
+ (gpdf_window_new, gpdf_window_construct): new (with helper
+ functions)
+ (container_new): mostly moved to gpdf_window_construct, use that
+ (container_destroy): don't explicitly destroy and free the
+ toplevel widget
+
+ * gpdf/shell/gpdf-window.h: new file, new class GPdfWindow (was
+ Container struct)
+
+ * gpdf/shell/gpdf.c: M-x mark-whole-buffer, M-x indent-region
+
+2002-09-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/shell/Makefile.am: create, bin_PROGRAMS = gpdf and friends
+
+ * gpdf/shell/gpdf.c: cvs copy of xpdf/gpdf.cc, Code was plain C except
+ some extern "C" declarations :-), removed them and it compiled,
+ don't include xpdf/config.h, bonobo-application-x-pdf.h
+ (container_about_cmd): s/xpdfVersion/VERSION/ so we really don't
+ need xpdf/config.h (FIXME: unify aconf.h and config.h?)
+
+ New directory. Start ChangeLog
+
+2002-09-15 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/configure.in, Makefile.am: add subdirectory
+
+ * gpdf/shell: new directory
+
+2002-09-14 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (destroy_view): kill already commented
+ out, previously unused destructor
+ (gev_destroy): set mainbox member = NULL
+
+ * gpdf/xpdf/pdf-view.cc (pv_destroy): new destructor
+ (class_init): use it, init parent_class
+ (pdf_view_construct): reindent
+
+2002-09-14 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable-view.h (GPdfEmbeddableView): kill bed member
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc: removed newlines from g_message calls
+ (class_init): use checked casts, we now have destroy, no need to
+ keep a ref to our embeddable here
+ (gev_destroy): new destructor
+
+2002-09-14 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (gpdf_embeddable_view_new):
+ s/printf/g_message/
+ (view_create_menus, view_remove_menus): rename to
+ (gev_set_ui_container, gev_unset_ui_container): and rewrite in EOG
+ style
+
+2002-09-13 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (gev_activate): chain up to parent's
+ activate handler, not to grand parent's
+
+2002-09-13 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (embeddable_factory): don't
+ initialize embeddable (where did that come from?)
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (gpdf_embeddable_view_construct): don't
+ handle "activate" by connecting...
+ (class_init): ...install a default signal handler...
+ (gev_activate): cleaned up "activate" handler, renamed from
+ (view_activate)
+
+2002-09-13 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/Makefile.am: add pdf-view.cc, pdf-view.h
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (view_is_good, first_page, last_page)
+ (next_page, prev_page, configure_size, setup_size, setup_pixmap)
+ (render_page, realize_mainbox, redraw_view_all, real_redraw_view)
+ (redraw_view): kill
+ (first_page, last_page, next_page, prev_page, redraw_view_all):
+ only declare here, use definitions from pdf-view.cc
+ (page_first_cb, page_next_cb, page_prev_cb, page_last_cb):
+ s/view_data_t/PdfView/ etc.
+ (view_switch_page): kill
+ (zoom_to_fit): leave only declaration
+ (view_zoom_verb, page_zoom_fit_width_cb, page_zoom_fit_height_cb)
+ (page_enlarge_cb, page_shrink_cb, view_zoom_query): s///
+ (verbs[]): make static
+ (view_create_menus, view_remove_menus, view_activate): s///
+ (button_press_event_cb, gesture_page_event_cb)
+ (gesture_zoom_event_cb): kill
+ (key_press_event_cb): s///, only handle scrolling here
+ (mainbox_realize): kill
+ (destroy_view): comment out for now
+ (init): empty
+ (gpdf_embeddable_view_construct): mainbox = pdf_view_new,
+ remove mainbox construction code
+
+ * gpdf/xpdf/pdf-view.cc (view_is_good): s/view_data_t/PdfView/
+ (first_page, last_page, next_page, prev_page): non-static
+ (setup_pixmap): view_data is our mainbox now
+ (render_page): s/view_data_t/PdfView/ s/view_data/view/
+ (redraw_view_all): ditto
+ (realize_mainbox): /GPdfEmbeddableView/PdfView/ etc.
+ (real_redraw_view): ditto
+ (redraw_view): ditto, view is our mainbox now
+ (page_first_cb, page_next_cb, page_prev_cb, page_last_cb): kill
+ here (verb implementations)
+ (view_switch_page): s/// as above
+ (zoom_to_fit): non-static, commented out for now
+ (view_zoom_verb, view_zoom_query): s/// as above
+ (page_zoom_fit_width_cb, page_zoom_fit_height_cb)
+ (page_enlarge_cb, page_shrink_cb): kill here (verb impl)
+ (verbs[], view_create_menus, view_remove_menus, view_activate):
+ kill here (bonobo stuff)
+ (gesture_page_event_cb, gesture_zoom_event_cb): s///
+ (key_press_event_cb): don't handle scrolling here, s///
+ (destroy_view): kill here
+ (pdf_view_construct): kill everything except mainbox construction
+
+ * gpdf/xpdf/gpdf-embeddable-view.h: view_data_t is no longer a typedef'd
+ GPdfEmbeddableView. Remove PdfView related members from
+ GPdfEmbeddableView
+
+ * gpdf/xpdf/pdf-view.h: s/GPdfEmbeddableView/PdfView/ with some AI ;)
+ GPdfEmbeddableView still typedef'd view_data_t. Super class
+ is GtkEventBox
+
+ Split bonobo / non-bonobo parts of GPdfEmbeddableView:
+
+ * gpdf/xpdf/pdf-view.h: new file (cvs copy of gpdf-embeddable.h)
+
+ * gpdf/xpdf/pdf-view.c: ditto. These will contain non-bonobo parts
+
+2002-09-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/main.c: per-display registration of factory.
+ * ggv/src/main.c (create_window): graciously handle cases when no
+ windows could be opened because of errors.
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): added colons as
+ suggested by Muktha.
+ added ESC as an accelerator for the Cancel button.
+ * ggv/bonobo/ggv-sidebar.c (ggv_sidebar_construct): add tool tips to
+ "toggle marked" and "clear all" buttons.
+ * ggv/ggv.desktop.in (Exec): added %U so that URIs are passed to
+ launcher (patch by Arvind Samptur).
+
+2002-09-08 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/GOutputDev.h: add missing gdk include
+
+ * gpdf/xpdf/GOutputDev.cc (GOutputDev::drawLink): don't #if 0, just don't
+ use it
+ (GOutputDev::drawImage, GOutputDev::drawImageMask): use Michael's
+ broken image handling code from gpdf 0.90.1 instead of my even
+ more broken code
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc (render_page): disable links here.
+ (realize_mainbox): view == view_data now. Don't have to
+ gtk_object_get_data anymore
+ (real_redraw_view): ditto
+ (redraw_view): ditto, make it static again
+ (gpdf_embeddable_view_construct): connect redraw_view to
+ pdf_changed signal, don't gtk_object_set_data "view_data"
+ (view_switch_page, view_zoom_verb, view_activate)
+ (button_press_event_cb, gesture_page_event_cb)
+ (gesture_zoom_event_cb, key_press_event_cb, mainbox_realize): make
+ them static again
+
+ * gpdf/xpdf/gpdf-embeddable.cc (class_init): add "pdf_changed" signal
+ (load_pdf_from_stream): emit it, don't redraw_view explicitly
+
+ * gpdf/xpdf/gpdf-embeddable.h: add signal to class struct
+
+2002-09-01 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable.cc (gpdf_embeddable_view_factory): move here
+ from bonobo-application-x-pdf.cc
+
+ * gpdf/xpdf/GOutputDev.cc (GOutputDev::drawLink): comment out for
+ now. Segfaults. I don't understand this.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: move view_data_t related code
+ ( except view_factory) to gpdf-embeddable-view.cc, remove lots of
+ includes
+
+ * gpdf/xpdf/gpdf-embeddable-view.h: new files with new GPdfEmbeddableView
+ class
+
+ * gpdf/xpdf/gpdf-embeddable-view.cc:
+
+ * gpdf/xpdf/gtkgesture.h: double include protection
+
+ * gpdf/xpdf/XOutputDev.h: add missing include "Object.h"
+
+ * gpdf/xpdf/GOutputDev.h: add missing include "Object.h"
+
+2002-08-31 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/gpdf-embeddable.cc:
+
+ * gpdf/xpdf/gpdf-embeddable.h: bed_t: Replace Data Value with Object
+ [Fowler] i.e. turn it into the GPdf::Embeddable class.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: temporarily make some functions
+ non-static
+ (view_is_good): move up in file, use it in more places.
+ (setup_pixmap): remove window parameter, get it from view_data
+ (destroy_embed): move to GPdfEmbeddable::destroy
+ (embeddable_factory): drastically simplify, work is done in
+ GPdfEmbeddable::new and friends
+ remove count of running_objects.
+
+ * gpdf/xpdf/gpdf-util.h: new file
+ (E_MAKE_TYPE): copied from gal
+
+2002-08-29 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: move struct bed_t to
+ gpdf-embeddable.{cc,h}
+ (setup_pixmap) remove doc parameter. (Get it from view_data param)
+
+ * gpdf/xpdf/gpdf-embeddable.cc: New files to contain the embeddable class
+
+ * gpdf/xpdf/gpdf-embeddable.h:
+
+ * gpdf/xpdf/gpdf.cc (main): remove call to setlocale (done in
+ gnome_init...), ignore return value of oaf_init, let bonobo_init
+ figure out which orb to use.
+
+ * gpdf/xpdf/Link.h: declare some methods as const.
+ * gpdf/xpdf/Link.cc:
+
+2002-08-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): string change -
+ "Jump to beginning of page etc." -> "Jump to beginning of page".
+ * ggv/bonobo/ggv-control.c (ggv_control_new): removed auto-jump as it
+ was moved to ggv-postscript-view.c.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_goto_page):
+ respect auto-jump setting everytime we switch pages.
+
+2002-08-21 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c: set step_increment to make stepper buttons work.
+ * ggv/bonobo/ggv-postscript-view.c (sidebar_key_press_event): handle
+ presses of Left/Right/Up/Down to pan.
+ * ggv/src/gtkchecklist.c (key_press_event): handle key presses in our
+ own fashion - PgUp/Dn do the same as in ps view - move one page
+ at a time.
+
+2002-08-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (load_ps_from_file): don't make a
+ temporary copy if it is a local file.
+ * ggv/src/gtkgs.c (gtk_gs_size_allocate): removed gdk_window_move() calls
+ before changing adjustments as this will do the move anyway. also
+ removed explicit event processing, as this caused trouble with
+ zoom spin button and the infamous "erratic scrolling" bug.
+ * ggv/bonobo/ggv-postscript-view.c (set_file_items_sensitivity): make
+ Save & Print items insensitive when viewing a pdf file.
+ * ggv/src/ggv-window.c (ggv_window_load): unescape URI for display.
+
+2002-08-12 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/GOutputDev.cc: make it compile (without Type 3 support for now)
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Derek has removed the global xref
+ variable. Remove the ``Ugly global xref fix''
+
+2002-08-11 Ross Burton <ross@burtonini.com>
+
+ * ggv/ggv.desktop.in: Add encoding keyword, and fix up Terminal and
+ Categories keywords.
+
+2002-08-09 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/BonoboStream.h: ditto.
+
+ * gpdf/xpdf/BonoboStream.cc: sync with FileStream.
+
+ Merge in Xpdf 1.01 files
+
+ * gpdf/xpdf/GOutputDev.cc (drawImage), (drawImageMask): use gdk_image_get
+ as XGetSubImage
+
+2002-08-09 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/goo/Makefile.am: ditto.
+
+ * gpdf/configure.in: merged in Xpdf 1.01 changes.
+
+2002-08-05 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/GOutputDev.h: ditto.
+
+ * gpdf/xpdf/GOutputDev.cc: sync with XOutputDev.cc.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (printCommands): is in Gfx.cc now
+
+2002-08-04 Satyajit Kanungo <satyajit.kanungo@wipro.com>
+
+ * ggv/src/gtkgs.c : Added gdk_pointer_ungrab while showing the error
+ message. Fixes #90639 .
+
+2002-08-04 Martin Kretzschmar <Martin.Kretzschmar@inf.tu-dresden.de>
+
+ * gpdf/xpdf/BonoboStream.cc: merge in decryption code from FileStream 0.92
+ (close): new method, from FileStream,
+ (~bonoboStream): use close
+
+ * gpdf/xpdf/BonoboStream.h: #define bonoboStreamBufSize as in FileStream
+ 0.92,
+ (bonoboStream): use it.
+
+2002-08-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view-ui.xml: "Move to" -> "Go to".
+
+2002-08-01 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-file-sel.[ch]: a file selection dialog for GGV. nothing
+ special for now except that it returns URIs and has a convenience
+ function to run a selector in modal mode and return the selected file.
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): use our file
+ selector instead of deprecated bonobo one.
+ * ggv/src/ggv-window.c (verb_FileOpen): likewise.
+
+2002-07-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: the last of the single-digit micro version releases:
+ 1.99.9. tagged as GGV_1_99_9. released a tarball.
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): use VFS enabled
+ file selector.
+ * ggv/src/ggv-window.c (sync_toolbar_style): respect both_horiz toolbar
+ style when using GNOME defaults for toolbar style.
+ (verb_FileOpen): use VFS enabled file selector.
+ * ggv/src/main.c (create_windows_from_cmdline): escape file names to be
+ URI-like.
+ * ggv/src/ggvutils.c (ggv_filename_to_uri): new function. escape file name
+ to conform to URI specification.
+
+2002-07-28 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (impl_GNOME_GGV_PostScriptView_reload):
+ update page list & status.
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): uses bonobo
+ file_selector.
+ (ps_view_save_doc): save doc to URI using gnome vfs.
+ removed all file selection related stuff.
+ * ggv/ggv.schemas: fixed some typos.
+ removed file selection size keys.
+ * ggv/src/ggv-prefs.[ch]: removed file selector width/height.
+ * ggv/bonobo/ggv-postscript-view.c (load_ps_from_file): uses gnome VFS
+ for accessing the files.
+ * ggv/src/ggv-window.c (verb_FileOpen): uses bonobo file selector.
+ removed all file selection related stuff.
+
+2002-07-27 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_create_ui): set pixbuf to fit
+ width command.
+ * ggv/configure.in: commented out check for Xinerama.
+ * ggv/bonobo/Makefile.am: commented out use of Xinerama libs.
+ * ggv/src/gtkgs.c (compute_?dpi): reverted the broken Xinerama patch.
+ * ggv/bonobo/ggv-control-ui.xml: added pixmap for fit width command.
+ added a fit width button to toolbar.
+ * ggv/src/stock/fitwidth.png: image for the fit width button, which was
+ kindly provided by johannes at sipsolutions dot de.
+
+2002-07-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (main): handle stdin if '-' is passed as the cmdline
+ argument.
+
+2002-07-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (create_window): parse geometry if given.
+ (main): added geometry option.
+
+2002-07-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: added Edit/Layout menu instead of the
+ toplevel Settings menu.
+ * ggv/bonobo/ggv-control-ui.xml: added accelerators for zoom items.
+ * ggv/bonobo/ggv-control.c (ggv_control_key_press_event): move to top
+ of page _after_ switching page.
+ * ggv/src/gtkgs.c (gtk_gs_scroll_to_edge): fixed a nasty typo.
+
+2002-07-17 Michael Meeks <michael@ximian.com>
+
+ * ggv/bonobo/GNOME_GGV.server.in.in: rename to this,
+ point at libexecdir.
+
+ * ggv/bonobo/Makefile.am: install component in $(libexecdir)
+
+2002-07-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: changed order of help menus.
+ * ggv/bonobo/ggv-sidebar.c (page_list_selection_changed): scroll to cell
+ selected.
+
+2002-07-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: include Xlib.h when checking for Xinerama header.
+
+2002-07-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view-ui.xml: changed navigation accelerators
+ to use Control instead of Alt.
+ * ggv/released 1.99.8 tarball, tagged as GGV_1_99_8.
+
+2002-07-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (notify_page_count_change): recreate
+ page list.
+ * ggv/src/gtkgs.c: fixed a number of segfaults when a non-realized widget
+ is loaded.
+
+2002-07-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_create_ui): moved
+ object_set() out of freeze/thaw pair. it seems to fix the vicious bug
+ #86235. thank to satyajit for this one...
+
+2002-06-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (sync_settings_popup_items): fix a bug that caused
+ GGV not to freeze ui component twice instead of freeze/thaw. popup
+ menu crashes the control due to accel group trouble, though...
+
+2002-06-27 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_destroy): fixed zoom_control
+ ref counting.
+
+2002-06-20 jacob berkman <jacob@ximian.com>
+
+ * ggv/src/ggv-window.c (verb_HelpAbout): fix tyop
+
+2002-06-20 Abel Cheung <maddog@linux.org.hk>
+
+ * ggv/src/ggv-window.c (verb_HelpAbout): Added translator credits and
+ documentor placeholders.
+
+2002-06-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/wrap sequences of bonobo_ui_component_set_prop() in a freeze/thaw
+ pair.
+ * ggv/src/ps.c (readline): skip blanks & 0x0c chars in front of DSC
+ comments - chema came accross a PS file created from dvi that
+ contains 0x0c char in front of a DSC comment. it seems appropriate
+ that we handle such cases.
+
+2002-06-16 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c: fixed some typos.
+
+2002-06-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (load_ps): notify of a possible status
+ change.
+ * ggv/src/ggv-window.c (control_property_changed_handler): get error
+ message from the "status" property of the control.
+ * ggv/bonobo/ggv-postscript-view.c
+ (ggv_postscript_view_get_default_orientation): fixed a memory leak.
+ * ggv/src/gtkgs.[ch]: add a status field and update it.
+ improved scroll region outlining.
+
+2002-06-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/tagged as GGV_1_99_7. released a tarball.
+ * ggv/bonobo/ggv-sidebar.c (ggv_sidebar_page_changed): fixed a bug that
+ caused not to select the first page.
+ * ggv/removed a few warnings.
+ * ggv/src/gtkgs.c (gtk_gs_munge_adjustments): set adjustments' page
+ increment.
+
+2002-06-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (prefs_changed): apply visibility setting
+ changes immediately.
+ * ggv/src/ggv-prefs-ui.c (ggv_prefs_dialog_new): removed "by default"
+ from strings. This behaviour is now less confusing.
+ * ggv/*/*.c: dewarningization. it should now compile cleanly with -Wall.
+
+2002-06-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ps.c: use the same orientation enums as GtkGS.
+ * ggv/src/gtkgs.c: take care of per-page orientations.
+ * ggv/src/main.c: handle the SIGINT and SIGTERM.
+
+2002-06-08 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-ui.xml: fixed a typo.
+ * ggv/idl/Ggv.idl: added reload() method to GgvPostScriptView interface.
+ * ggv/gtkgs.[ch] (gtk_gs_reload): a new function.
+ * ggv/bonobo/ggv-postscript-view.c (document_changed-cb): use above.
+ (impl_GNOME_GGV_PostScriptView_reload): implement the above method.
+ * ggv/src/ggv-window.c (verb_FileReload): invoke reload() method of
+ GgvPostScriptView interface.
+ * ggv/src/ggv-window.c (gnome_toolbar_prefs_changed): respect GNOME
+ toolbar style.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_prefs_changed):
+ handle setting changes here and not in gtkgs.c.
+ (ggv_postscript_view_construct): set above to be called when
+ GtkGS related settings change.
+ (ggv_postscript_view_destroy): remove the above notification.
+ * ggv/ggv-prefs-ui.c (ggv_prefs_dialog_apply): don't set OK button
+ to insensitive.
+ * ggv/src/ggv-prefs.c (ggv_prefs_changed): fixed a typo.
+ * ggv/src/Makefile.am, bonobo/Makefile.am: fix the locale dir.
+
+2002-06-08 Hasbullah Bin Pit <sebol@ikhlas.com>
+
+ * ggv/configure.in: Added Malay (ms)to ALL_LINGUAS.
+ * ggv/po/ms.po: Added Malay Translation.
+
+2002-06-05 Yanko Kaneti <yaneti@declera.com>
+
+ * ggv/configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
+
+2002-06-05 Federico Mena Quintero <federico@ximian.com>
+
+ GGV still compiles with a lot of warnings if you do -Wall, but
+ these seem to fix the most egregious control bugs.
+
+ * ggv/src/gtkgs.c (gtk_gs_set_page_size): Do not index on pageid if
+ pageid is less than zero.
+
+ * ggv/bonobo/ggv-postscript-view.c (set_file_items_sensitivity): See
+ if the UI component is bound to a container before trying to set
+ properties on it.
+ (_set_page_items_sensitivity): Likewise.
+
+ * ggv/bonobo/ggv-control.c (sync_zoom_level_items): Likewise.
+ (_set_zoom_items_sensitivity): Likewise.
+ (ggv_control_construct): Save the GConfClient notify ID.
+ (ggv_control_destroy): Remove the GConfClient notification so the
+ control doesn't get notified after it is destroyed.
+
+2002-06-01 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c: added proper scrolling interface.
+ * ggv/bonobo/*: fixed ref counting issues.
+ * ggv/the above should fix most crashes, warnings, assertions, etc.
+
+2002-05-31 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * gpdf/configure.in: Added Vietnamese (vi) and Walloon (wa) to All_LINGUAS.
+
+2002-05-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-sidebar.[ch]: fixed a stupid typo. this fixes the lost
+ reference bug!
+
+2002-05-29 Federico Mena Quintero <federico@ximian.com>
+
+ * ggv/bonobo/ggv-postscript-view.c
+ (ggv_postscript_view_add_interfaces): Pass the OAFIID to
+ bonobo_persist_stream_new() as well.
+
+2002-05-27 Kjartan Maraas <kmaraas@gnome.org>
+
+ * ggv/src/ggv-pref-ui.c: Mark some strings for translation.
+
+2002-05-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs.[ch], src/ggv-prefs-ui.[ch]: enable use of GNOME-wise
+ defaults or custom settings for toolbar style.
+ * ggv/src/ggv-window.c (sync_toolbar_style): comply to the above.
+ * ggv/bonobo/ggv-postscript-view.c (save_file_sel_ok_clicked): always hide
+ the file selection.
+ * ggv/src/gtkgs.c (gtk_gs_get_postscript): fixed a crash when an EPS file
+ was printed/saved.
+
+2002-05-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c: applied a patch from jacob berkman that fixes session
+ management bugs.
+
+2002-05-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (main): perform bonobo_debug_shutdown() before
+ exiting.
+
+ * ggv/bonobo/main.c (ggv_postscript_viewer_factory): add a handler for
+ TERM signal that performs a bonobo_debug_shutdown() in order to
+ track reference count.
+
+2002-05-14 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * ggv/configure.in: Added Vietnamese (vi) to ALL_LINGUAS
+
+2002-05-13 Kjartan Maraas <kmaraas@gnome.org>
+
+ * ggv/src/ggv-ui.xml: Add mnemonics and correct Help menu.
+
+2002-05-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/ggv.desktop.in: changed name to GGV PostScript Viewer. fixes #81366.
+ * ggv/bonobo/ggv-postscript-view-ui.xml:
+ * ggv/bonobo/ggv-control-ui.xml:
+ * ggv/src/ggv-ui.xml:
+ some changes to be more HIG compliant (although not fully, as
+ I personally don't like some suggestions). fixes #81230.
+ * ggv/src/main.c (main): added --windows parameter specifying how many
+ empty windows should be created (needed to restore the number of
+ windows from old session in order not to confuse the window
+ manager).
+ (main): connect "save_yourself" and "die" signals to SM client.
+ (save_session): save session state (documents & empty windows).
+ command line is used for this - no persistent data is stored.
+ (client_die): nicely kill all windows.
+ * ggv/src/ggv-window.c (verb_FileOpen): connect delete event of file
+ selection to appropriate callback. fixes #81540.
+ * ggv/fixed a few bugs with setting of sensitivity of menu items.
+
+2002-05-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct):
+ fixed a stupid bug that caused us not to unref properly.
+ (ggv_postscript_view_destroy): fixed a reference counting bug.
+
+2002-05-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied a patch from Satyajit Kanungo <satyajit.kanungo@wipro.com>
+ fixing bug #81215 - now it compiles with latest GDK libs
+ * ggv/src/gtkgs.c gdk_send_xevent changed to it's new signature.
+ * ggv/configure.in: version 1.99.5. tag GGV_1_99_5.
+ * ggv/release a new tarball.
+
+2002-05-11 Jacob Berkman <jacob@ximian.com>
+
+ * ggv/src/gtkgs.c (gtk_gs_next_page): fix previous commit to not break
+ with gtk 2.0. work also with gtk 2.1 by not using *private* gdk
+ calls; just use XSendEvent
+ * ggv/configure.in: include X libs in our link line
+
+2002-05-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (verb_FileReload): switch back to previously
+ displayed page after reloading.
+ * ggv/bonobo/ggv-postscript-view.c (document_changed_cb): redisplay
+ the page that was displayed before reloading.
+
+2002-05-06 Murray Cumming <murrayc@usa.net>
+
+ * ggv/src/ggv-window.c: Replaced use of bonobo_window_construct() with
+ construct-time properties and bonobo_window_get_ui_container(),
+ now that BonoboWindow has been corrected.
+
+2002-05-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/configure.in: version 1.99.4. tag GGV_1_99_4.
+
+2002-05-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (verb_FileSaveMarked): set the current
+ path in the file selection.
+ * ggv/src/ggv-window.c (verb_FileReload): a handler for FileReload verb.
+ (verb_FileOpen): set the current path in the file selection.
+ * ggv/src/ggv-ui.xml: add a verb for reloading files.
+ * ggv/src/gtkgs.c (gtk_gs_class_init): add a document_changed signal.
+ how did this get removed?
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct): add
+ handler for document_changed signal to reload file.
+
+2002-05-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (notify_page_change): notify sidebar
+ of page change.
+
+2002-05-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_get_ps): fixed
+ a segfault because PrintAll verb passes NULL to indicate that all
+ pages should be returned.
+
+2002-04-25 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (ggv_control_create_ui): added a zoom control
+ showing current zoom factor.
+ * ggv/*.xml: added placeholders and a zoom control to sidebar.
+ * ggv/src/main.c (main): applied patch from Satyajit Kanungo to add help
+ items.
+ * ggv/implemented a setting for left/right placement of the side panel.
+ currently only works in Nautilus.
+
+2002-04-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_set_page_size): properly handle boundingbox
+ size. fixes bug #79097.
+
+2002-04-19 jaka mocnik <jaka@gnu.org>
+
+ * ggv/applied a build fixage patch from kind people at mandrakesoft.
+
+2002-04-18 jacob berkman <jacob@ximian.com>
+
+ * ggv/acconfig.h: fix tyop busting build
+
+2002-04-17 Satyajit Kanungo <satyajit.kanungo@wipro.com>
+
+ * ggv/configure.in added AM_GCONF_SOURCE_2 to put the schemas file
+ gconf.xml.defaults.
+ Check for 'gs' package and get the path for 'gs' on a system where
+ gs is not in the path.
+
+2002-04-16 Abel Cheung <maddog@linux.org.hk>
+
+ * ggv/TRANSLATABLE_FILES: moved to po/ directory.
+ * ggv/ABOUT-NLS, INSTALL, TRANSLATABLE_FILES, install-sh,
+ missing, mkinstalldirs, stamp-h.in, po/Makefile.in.in:
+ Remove autogen'ed file.
+ * ggv/acconfig.h: Added GETTEXT_PACKAGE
+ * ggv/configure.in: GETTEXT_PACKAGE related cleanup, and removed
+ AC_ARG_PROGRAM (does automake 1.5/1.6 require it?)
+ * ggv/src/main.c: Use GETTEXT_PACKAGE for *textdomain*().
+
+2002-04-11 jacob berkman <jacob@ximian.com>
+
+ * ggv/configure.in (AC_OUTPUT): add src/cursors/Makefile
+
+2002-04-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (save_file_sel_ok_clicked): ask before
+ overwriting file.
+ (view_button_press_cb): use hand cursor when moving page.
+ (ggv_postscript_view_get_ps): really retrieve all pages if none
+ are marked.
+ (set_file_items_sensitivity): moved here from ggv-window.c.
+ * ggv/bonobo/ggv-sidebar.c (ggv_sidebar_construct): set AUTOMATIC policy
+ for page list scrollbars.
+ * ggv/bonobo/ggv-control.c (ggv_control_construct): set AUTOMATIC policy
+ for scrolled window scrollbars.
+ * ggv/src/cursors.[ch]: copied hand cursors from eog.
+ * ggv/src/cursors/*: hand cursors
+
+2002-04-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/major revamp of sidebar, which is now a control, created by
+ GgvPostScriptView andmerged in the container's UI. this enables us
+ to view it in nautilus as well as in the GGV shell! according to
+ this the save/print items have been moved to GgvPostScripView as well.
+ * ggv/configure.in: barf in GS isn't installed. version 1.99.3. tarball
+ release. tagged as GGV_1_99_3.
+
+2002-03-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c: take care of popup items sensitivity.
+ * ggv/bonobo/ggv-control-ui.xml: add zoom to fit width menu items.
+ * ggv/configure.in: bumped version to 1.99.2.
+ * ggv/message-of-doom: made it less threatening ;)
+ * ggv/tagged as GGV_1_99_2. released a new tarball.
+
+2002-03-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_init): initialize scroll_start_? to -1.
+ * ggv/src/ggv-ui.xml: add show/hide items to button 3 popup menu.
+ * ggv/src/ggv-control-ui.xml: add navigation & zoom items to button 3
+ popup menu.
+ * ggv/src/ggv-window.c: get the popup UI component and merge our popup
+ menu items into it.
+ * ggv/bonobo/ggv-control.c: create popup menu. show it on button 3 press.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_verbs): made global as control
+ needs them as well to set to popup UI component.
+
+2002-03-28 jacob berkman <jacob@ximian.com>
+
+ * ggv/bonobo/ggv-control.c: add a dummy field to this empty struct
+
+ * ggv/bonobo/ggv-postscript-view.c: add a dummy field to this empty
+ struct
+
+2002-03-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs.c (ggv_prefs_dialog_class_init): fix a delete_event
+ handler being set to a wrong class.
+ * ggv/src/ggv-window.c (sync_toolbar_style): sync toolbar style with
+ ggv_toolbar_labels setting.
+ (ggv_window_drag_data_received): a handler for received dnd data.
+ (ggv_window_new): set window as a drag destination.
+ (verb_DnD*): verbs for DnD popup menu.
+
+2002-03-24 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-msg-window.[ch]: a window for display of ghostscript
+ output, based on the obsolete gsmessage.[ch].
+ * ggv/src/gsmessage.[ch]: removed.
+ * ggv/bonobo/ggv-postscript-view.c (interpreter_message_cb): display
+ output using ggv-msg-window API.
+
+2002-03-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: always use x11alpha as the antialiased device.
+ * ggv/released 1.99.1 tarball, tagged as GGV_1_99_1.
+
+2002-03-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view-ui.xml: added static paper size menu
+ items.
+ * ggv/bonobo/ggv-control-ui.xml: added static zoom level menu items.
+ * ggv/bonobo/ggv-postscript-view.c (sync_size_items): made it work with
+ static paper menu items.
+ * ggv/bonobo/ggv-control.c (listener_ZoomLevel_cb): listener for zoom
+ level menu items.
+ (sync_zoom_level_items): sync zoom level items state with current
+ zoom setting.
+
+2002-03-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_load): qualify the file to load with
+ its full path as the control does not run with the same working dir.
+ * ggv/configure.in: explicitly check for popt library.
+ * ggv/[src|bonobo]/Makefile.am: link with popt.
+
+2002-03-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (check_pdf): use mkstemp to avoid potential security
+ risks.
+ (check_filecompressed): use mkstemp to avoid potential security
+ risks.
+ * ggv/bonobo/ggv-postscript-view.c (load_ps_from_stream): use mkstemp to
+ avoid potential security risks.
+
+2002-03-16 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c: fixed error dialogs when saving/printing with
+ no pages are marked.
+ * ggv/Makefile.am: install desktop files in $(prefix)/share/applications.
+
+2002-03-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c: make save and print items sensitive only when a
+ valid document is loaded.
+ * ggv/bonobo/ggv-control.c: make zoom items sensitive only when a valid
+ document is loaded.
+ * ggv/src/gtkgs.c: less erratic current_page when a bad file is loaded.
+ * ggv/bonobo/ggv-postscript-view.[ch]
+ (ggv_postscript_view_get_current_page): new function.
+
+2002-03-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (control_property_changed_handler): handle change
+ of page number to -1 as error.
+ * ggv/src/gtkgs.[ch]: added interpreter_error signal.
+ (gtk_gs_interpreter_message): handle output containing string "Error:"
+ as an error and emit interpreter_error signal.
+ (stop_interpreter): handle gs exiting with status 1 as error and
+ emit interpreter_error signal.
+
+2002-03-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: added --enable-bonobo-debug that logs bonobo component
+ output to a file.
+ * ggv/bonobo/main.c: implemented logging to a file to help debugging.
+
+2002-03-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: check for Xinerama.
+ * ggv/gtkgs.c (compute_?dpi): take possible multihead displays into
+ accont. patch by Mike Hicks <hick0088@tc.umn.edu>.
+ * ggv/[src|bonobo]/Makefile.am: link with Xinerama if found.
+
+2002-03-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gsdefaults.c (gtk_gs_defaults_changed): fixed a bug that wrote
+ alpha params to interpreter command.
+ * ggv/bonobo/ggv-postscript-view.c (view_button_press_cb): grab keyboard
+ focus of gtkgs widget.
+
+2002-03-12 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_get_ps_from_control): get the whole
+ document or only a set of marked pages from the control via CORBA.
+ (ggv_window_print_postscript): asynchronously spawn the printing
+ command and feed the postscript to its stdin.
+ (verb_FilePrint*): implemented.
+ added message and question dialogs where appropriate.
+ * ggv/bonobo/ggv-postscript-view.c: emit changes to page_count, page
+ and orienation properties when appropriate.
+
+2002-03-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/idl/Ggv.idl: added getDocument and getPages methods.
+ * ggv/bonobo/ggv-postscript-view.c: added implementation of the above.
+ * ggv/src/gsio.[ch]: a wrapper for output destination for pscopy*()
+ routines, as we dont want them to always write to a file anymore.
+ * ggv/src/ggv-ui.xml: added FileSaveMarked, FilePrintMarked and
+ FilePrintAll menu items.
+ * ggv/src/ggv-window.c: implement verb FileSaveMarked. get postscript
+ via CORBA from the PostScriptView.
+
+2002-03-08 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * ggv/configure.in (ALL_LINGUAS): added Basque
+
+2002-03-07 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: remove AC_PACKAGE_NAME and _VERSION. they prevented
+ proper make distcheck.
+ * ggv/Makefile.am: include xmldocs.make and message-of-doom in distribution
+ tarball.
+ * ggv/src/ggvutils.c: don't include the zoom icons as we don't need them
+ anymore.
+ * ggv/po/POTFILES.in: fixed.
+ * ggv/tagged as GGV_1_99_0 and released a 1.99.0 tarball.
+
+2002-03-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c: added page marking buttons.
+ (ggv_window_new): sync menu items with default values.
+
+2002-03-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs.[ch]: derive prefs dialog from GtkWindow instead of
+ GtkDialog.
+ fixed major bugs. prefs now seem to work!
+ (ggv_prefs_dialog_apply): apply prefs from dialog.
+
+2002-03-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs.c: create prefs dialog. use the old layout from ggv
+ 1.0, just use a GtkDialog with a notebook instead of GnomePropertyBox.
+ * ggv/src/gtkgs.c (start_interpreter): use configurable alpha parameters.
+ * ggv/src/gsdefaults.[ch]: merged configurable alpha parameters code from
+ ggv-gnome-1 branch.
+ * ggv/configure.in: added check for GS version and appropriate setting
+ of default alpha parameters.
+ * ggv/ggv.schemas: add alpha parameters key.
+
+2002-03-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-prefs.[ch]: a new source for GGV shell prefs and prefs
+ editing dialog. The former is there, the latter is coming...
+ * ggv/src/Makefile.am: add the above to build.
+ * ggv/src/ggv-window.c (ggv_window_destroy): save default window size.
+ (file_sel_unmap): save default file selection size.
+ * ggv/src/main.c (main): load and save GGV prefs.
+ * ggv/src/ggv-ui.xml: Settings menu.
+ * ggv/src/ggvutils.[ch]: moved zoom level stuff here from
+ bonobo/ggv-control.c as it will also be needed by the shell itself.
+ * ggv/bonobo/ggv-control.c (ggv_control_class_init): create a template
+ for zoom level menus.
+ (ggv_control_create_ui): merge the zoom level menus. it currently does
+ not work well.
+
+2002-03-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control-ui.xml: added.
+ * ggv/po/POTFILES.in: updated to reflect the real situation.
+
+2002-03-03 Carlos Perelló Marín <carlos@gnome-db.org>
+
+ * ggv/src/callbacks.c: Fixed the translator option at about dialog.
+ * ggv/configure.in: Added AC_PREREQ(2.52), this way, if you have also
+ autoconf 2.13 it works.
+
+2002-03-02 John Fleck <jfleck@inkstain.net>
+
+ add
+ * ggv/xmldocs.make
+ * ggv/help/C/ggv.xml, help/C/legal.xml,
+ help/C/figures/example_screenshot.eps & example_screenshot.png
+ changed
+ * ggv/help/Makefile.am
+ * ggv/help/C/Makefile.am
+ * ggv/help/C/ggv-C.omf
+ adding Sun docs
+
+2002-03-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control-ui.xml: moved ui from source to file. extend it
+ with toolbar buttons for zooming.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: added first and last page items.
+ added navigation buttons.
+ * ggv/bonobo/ggv-postscript-view.c: added verbs for first and last page.
+ * ggv/bonobo/ggv-control.c: fixed zooming. zoomable is not derived from
+ GTK_OBJECT!
+ * ggv/src/stock/Makefile.am: only install the toggle pixmaps as we
+ won't need the others.
+ * ggv/src/ggv-window.c: added about dialog.
+ * ggv/src/ggvutils.[ch] (ggv_raise_and_focus_widget): new utility function.
+
+2002-02-28 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c: removed old ggv code. it remains in ggv-gnome-1
+ branch in order to reuse pieces of it in the new ggv.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct):
+ add key press event mask to gs widget.
+ * ggv/ggv.schemas: key "/apps/ggv/layout/autojump" changed to
+ "/apps/ggv/control/autojump" as it became a control-specific
+ setting.
+ * ggv/src/gtkgs.c (gtk_gs_scroll_step): new function that performs
+ scroll stepping.
+ (gtk_gs_scroll_to_edge): scrolls to desired edges.
+ fix scrolling rect drawing. it required processing the events
+ caused by gdk_window_move() before drawing rectangle.
+ * ggv/bonobo/ggv-control.c (ggv_control_construct): added key press
+ handler.
+ added gconf notify for key "/apps/ggv/control/autojump".
+ show scrolling rectangle when using scrollbars to scroll.
+
+2002-02-26 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c: fixed scrolling policy to comply with scrolled
+ window's requirements.
+ * ggv/bonobo/ggv-postscript-view.c: add panning.
+ * ggv/src/ggv-window.[ch]: get rid of the scrollpane as the control
+ now provides scrollbars.
+
+2002-02-25 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gg-prefs-ui.c: applied a patch from Hidetoshi Tajima to make
+ page sizes in prefs dialog translatable.
+ * ggv/src/ggv-window.c (ggv_window_remove_control): only deactivate
+ control if there actually is one ;)
+
+2002-02-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (page_list_selection_changed): change pages
+ when a new cell in the check list changes.
+ (control_property_changed_handler): handle changes of page
+ property.
+
+2002-02-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_create_page_list): new function that
+ fetches page names from the control and puts them in the check list.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_get_prop):
+ implement page, page_count and page_names properties.
+
+2002-02-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkchecklist.c: migrated to Gtk+2 tree MVC framework.
+ * ggv/src/ggv.window.c: add a checklist to sidebar. we don't populate
+ it yet as we first need a CORBA interface to our PostscriptView
+ to allow for fetching page names.
+ * ggv/idl/Ggv.idl: added typedefs for PageName and PageNameList.
+
+2002-02-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_create_ui):
+ fixed a buggy path that prevented merging of size menus. They
+ still don't show quite right though.
+
+2002-02-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggv-window.c (ggv_window_new): add event source listener to
+ property bag.
+ (control_property_changed_handler): handler for events from property
+ bag.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct): add
+ status & title properties.
+ (ggv_postscript_view_get_prop): return title & status properties.
+ (load_ps): loads ps from file & emits all the necessary notifications.
+ used in both load_ps_from_stream & load_ps_from_file.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: cmd/menuitem separation.
+
+2002-02-17 Duarte Loreto <happyguy_pt@hotmail.com>
+
+ * gpdf/configure.in: Added pt to All_LINGUAS.
+
+2002-02-16 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkscrollpane.c: changed in order to behave in a gtkscrollbar
+ manner which is compatible with gtkviewport.
+ * ggv/src/gtkscrollpane.[ch]: removed all traces of unsued member
+ aspect_ratio.
+ * ggv/src/ggv-window.c (ggv_window_new): add scrollpane to scrollbar.
+ window-sizing fix.
+ (ggv_app_verbs): added New & Close.
+ * ggv/src/Makefile.am: readded gtkscrollpane.[ch] to sources.
+ * ggv/src/ggv-ui.xml: fixed verb names.
+ * ggv/idl/Ggv.idl: UPSIDE_DOWN -> UPSIDEDOWN to match GtkGS names.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_construct):
+ add width, height and orientation properties.
+
+2002-02-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_next_page): fixed broken XEvent abusing code.
+ (gtk_gs_load): call gtk_gs_set_page_size().
+ * ggv/src/ggv-window.[ch]: main window for GGV, derived from BonoboWindow.
+ * ggv/src/main.c: all-new-startup code.
+ * ggv/src/ggv-ui.xml: bonobo UI for GGV.
+ * ggv/bonobo/*: some bugfixes.
+ * ggv/removed most of the old stuff from build.
+ * ggv/GGV now barely shows the PS in a control and allows to move fwd/bwd.
+
+2002-02-08 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/imported Gnome2 port from Satyajit Kanungo.
+ * ggv/fixed build system.
+ * ggv/bonobo/*: port to Gnome2. it currently compiles.
+ * ggv/updated AUTHORS, MAINTAINERS and, most important, TODO
+
+2002-01-20 Stanislav Brabec <utx@penguin.cz>
+
+ * ggv/gtkgs.c: Be able to scroll exactly to margin (especially
+ with mouse wheel). This makes visible another bug - scroll
+ pane is able to scroll only few pixels apart from margin.
+ * ggv/callbacks.c: Cosmetical (spaces).
+
+2001-11-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (start_interpreter): chdir() to the current dir of
+ ps file in the child process to prevent screwing up the ggv's cwd.
+ * ggv/ggv/ggv.schemas: fix a typo.
+ * ggv/released 1.1.93 tarball.
+
+2001-11-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/*.[ch]: applied a patch from Laurent Mazet that adds a
+ --nostatusbar option to ggv.
+ added (popup)menu items for statusbar visibility.
+ handle showstatusbar preferences option properly.
+ added show statusbar option to preferences menu.
+ * ggv/ggv.schemas: add nostatusbar boolean key.
+ * ggv/help/C/ggv.sgml: described --nostatusbar option.
+
+2001-11-15 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.[ch]: added document_changed signal that is emitted
+ when the loaded file changes.
+ * ggv/src/gtkgs.c (timer_callback): emit document_changed signal.
+ * ggv/src/callbacks.c (document_changed_callback): a handler for the
+ document_changed signal that reloads the file.
+ * ggv/help/C/ggv.sgml: removed last traces of "media".
+
+2001-11-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c: fix setting UI from xml.
+ * ggv/src/stock: added missing pixmaps.
+ * ggv/src/main.c: removed last traces of 'media'.
+ * ggv/configure.in: add --disable-install-schemas switch.
+ * ggv/Makefile.am: install schemas conditionally if INSTALL_SCHEMAS
+ is true. Install schemas file to $(sysconfdir)/gconf/schemas.
+ * ggv/ggv.spec.in: install schemas stuff in %post phase.
+ * ggv/released 1.1.92 tarball.
+
+2001-11-12 Stanislav Brabec <utx@penguin.cz>
+
+ * ggv/idl/Ggv.idl, src/ps.h, src/main.c, src/ps.c, src/callbacks.c,
+ src/ggvwindow.h, src/gtkgs.c, src/gtkgs.h, src/gsdefaults.c,
+ src/gsdefaults.h, bonobo/ggv-postscript-view.h,
+ bonobo/ggv-postscript-view-ui.xml, bonobo/ggv-postscript-view.c,
+ ggv.schemas, help/C/ggv.sgml: Terminology change - change "media"
+ to "page size" or "media size" everywhere to prevent ambiguities
+ of PostScript parameters. Page Media is a set of PostScript
+ parameters, containing page size, media color, media type etc.
+
+2001-11-09 Wang Jian <lark@linux.net.cn>
+
+ * ggv/configure.in(ALL_LINGUAS): Renamed zh_CN.GB2312 to zh_CN.
+
+2001-11-06 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (ggv_toolbar_set_labels): new function.
+ * ggv/src/main.c: add a checkbox for toolbarlabels setting in prefs
+ dialog.
+ * ggv/src/prefs.c (ggv_prefs_load): added handling of toolbarlabels
+ setting.
+ * ggv/ggv.schemas: added toolbarlabels key.
+ * ggv/released 1.1.91 tarball.
+
+2001-11-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/configure.in: use AM_GCONF_SOURCE.
+ * ggv/Makefile.am: use GCONF_SCHEMA_CONFIG_SOURCE provided by above.
+ * ggv/help/C/ggv.sgml: use "-//GNOME//DTD DocBook PNG Variant V1.1//EN".
+
+2001-11-02 John Fleck <jfleck@inkstain.net
+
+ * ggv/help/C/ggv.sgml - checking in Jonathan Bartlett's updated help
+ doc
+
+2001-10-30 Roy-Magne Mo <rmo@sunnmore.net>
+
+ * gpdf/configure.in: Added nn to All_LINGUAS.
+
+2001-10-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_load): "absolutize" relative filename paths.
+
+2001-10-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/GNOME_GGV.oaf.in: removed embeddable server.
+ * ggv/bonobo/ggv-postscript-view.c: removed conf_client
+ initialization.
+
+2001-10-09 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (start_interpreter): properly handle multiple
+ arguments in interpreter command.
+
+2001-09-26 Abel Cheung <maddog@linux.org.hk>
+
+ * gpdf/configure.in: Added zh_TW to ALL_LINGUAS.
+
+2001-09-25 Fatih Demir <kabalak@gtranslator.org>
+
+ * ggv/\*/.cvsignore: Added some small cvsignore files.
+
+2001-09-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-control.c (zoomable_zoom_to_fit_cb): properly compute
+ new zoom level.
+ * ggv/bonobo/ggv-postscript-view.c (view_button_[press|release]_cb): call
+ gtk_gs_[start|end]_scroll(), respectively.
+ (ggv_postscript_view_zoom_to_fit): make it return zoom level that
+ will make the document fit.
+
+2001-09-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/added gconf initialization to bonobo component.
+ * ggv/applied some patches for compilation with gcc 3.0.
+
+2001-09-09 Wang Jian <lark@linux.net.cn>
+
+ * gpdf/configure.in(ALL_LINGUAS): Renamed zh_CN.GB2312 to zh_CN.
+
+2001-08-31 Abel Cheung <maddog@linux.org.hk>
+
+ * ggv/configure.in (ALL_LINGUAS): zh_TW.Big5 -> zh_TW
+
+2001-08-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/applied a patch by Werner Koerner
+ <wernerk.koerner@zae.uni-wuerzburg.de>. see below.
+ * ggv/main.c: Added new function zoom_to_fit. It sets the new zoom factor
+ and updates the status line and the zoom submenu accordingly.
+ Added possibility to zoom to page width.
+ Added menu 'fit to width' to zoom submenu.
+ * ggv/gtkgs.c (gtk_gs_zoom_to_fit): this function now only calculates the
+ zoom factors, changing them is done in main.c/zoom_to_fit
+ * ggv/callbacks.c: added zoom_to_fit_width_callback
+ * ggv/main.c (refresh_coordinates): Refresh coordinates only if sidebar is
+ visible. Remove call to ggv_menus_set_visible which overrides
+ hiding/showing the menubar.
+ * ggv/main.c (ggv_panel_set_visible): Add call to refresh_coordinates to
+ initialize coordinate display when panel is shown.
+ * ggv/gtkchecklist.c (gtk_check_list_clear): fixed memory leak
+ * ggv/gtkgs.c (gtk_gs_destroy): fixed memory leak
+ (gtk_gs_unrealize): new unrealize handler. fixes a mem-leak.
+ * ggv/gtkgs.c (start_interpreter): It makes no sense to quote the filename
+ in the argv-array - removed. Now most files containing special
+ characters should work except uncompressed pdf-files.
+ * ggv/gsdefaults.c (gtk_gs_defaults_get_scan_pdf_cmd): Remove quotes from
+ default command line as filenames are either already quoted or
+ temporary files which dont contain any special characters.
+ * ggv/ggvutils.c (ggv_quote_filename): Quote '%'-character.
+ * ggv/gtkgs.c (start_interpreter): Change to the directory of the input
+ file, then start gs. This helps with some postscript files which
+ include other files using relative paths (i.e. ghostscript's example
+ chess.ps).
+
+2001-08-20 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/MAINTAINERS : Create and add Michael and myself to it.
+
+2001-08-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/help/C/ggv.sgml: described dash filename.
+ * ggv/src/main.c (main): don't open stdin if no filenames have been
+ specified and the stdin isn't a tty. implement reading stdin if a
+ dash was specified among filenames.
+
+2001-08-19 Zbigniew Chyla <cyba@gnome.pl>
+
+ * gpdf/Makefile.am (SUBDIRS): Added po.
+
+ * gpdf/configure.in (AC_OUTPUT): Added intl/Makefile po/Makefile.in.
+
+ * gpdf/xpdf/Makefile.am (INCLUDES): Added -DGNOMELOCALEDIR.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (main): Set textdomain and locale.
+
+ * gpdf/xpdf/gpdf.cc (main): ditto.
+ Marked a few strings for translation.
+
+2001-08-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (open_prefs_dialog): add a check button for outlining
+ last visible part of page when scrolling.
+ * ggv/configure.in: bumped version to 1.1.1 and released a new tarball.
+
+2001-08-12 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/xpdf/bonobo-application-x-pdf-ui.xml : Add ZoomFitHeight verb and toolbar
+ item.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.h (VERB_Z_FIT): Rename to VERB_Z_FIT_WIDTH
+ (VERB_Z_FIT_HEIGHT): Add
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (verbs): Update to use the new
+ verbs and names.
+ (view_zoom_verb): update accordingly
+ (zoom_to_fit): Modify to take an extra argument determining type of fit. Use
+ the scrolled_window to determine allocation height and width.
+
+ * gpdf/xpdf/Makefile.am : Comment out unnecessary targets
+
+2001-08-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_*_scroll): functions to mark beginning and
+ end of a scrolling session.
+ (*) wrapped all gdk_window_move(gs->pstarget ...) in drawing
+ rectangles if we are scrolling.
+ (gtk_gs_defaults_changed): get new values directly from gconf as we
+ can't be sure that the other callback (the one from gsdefaults.c)
+ was called before us.
+ * ggv/src/gsdefaults.c (gtk_gs_defaults_changed): act properly on
+ configuration changes.
+ * ggv/ggv.schemas: add show_scroll_rect.
+
+2001-08-10 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/xpdf/stock-zoom-in.xpm : Add
+
+ * gpdf/xpdf/stock-zoom-out.xpm : Add
+
+ * gpdf/xpdf/stock-zoom-fit.xpm : Add
+
+ * gpdf/xpdf/stock-zoom-fit-wide.xpm : Add
+
+ * gpdf/xpdf/stock-zoom-fit-tall.xpm : Add
+
+ * gpdf/xpdf/Makefile.am : Update, add targets etc.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (view_zoom_verb): Change zoom
+ factor to 1.2 which is more correct
+ (zoom_to_fit): Small tweak to enable better approximation
+
+ * gpdf/xpdf/bonobo-application-x-pdf-ui.xml : Change ZoomFit to ZoomFitWidth.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc : Update to use the new name.
+
+2001-08-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c, src/callbacks.c: fixed increasing/decreasing
+ magnification. removed magstep member from ggv_window.
+
+2001-08-09 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/xpdf/bonobo-application-pdf-ui.xml: Add Zoom items to the
+ toolbar
+
+2001-08-01 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (ggv_*_set_visible): functions for setting visibility
+ of panel/menus/toolbar.
+ * ggv/src/prefs.c: finished migration to gconf. new prefs behaviour
+ is to sync all open ggvs with prefs changes of both UI shell and
+ the GtkGS widget.
+
+2001-07-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (synchronize_*_wd): new functions that sync UI with
+ default values. these are needed as we can't rely on the order
+ that the gconf notify functions will be called in.
+
+2001-07-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (start_interpreter): enclose filename in quotes when
+ creating GS command line in order to properly handle filenames with
+ spaces.
+
+2001-07-18 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_defaults_changed): redisplay when zoom
+ changes.
+ * ggv/src/main.c: improve logic for determining magstep from zoom factor.
+
+2001-07-14 Kjartan Maraas <kmaraas@gnome.org>
+
+ * ggv/configure.in: Added "nn" to ALL_LINGUAS.
+
+2001-07-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/moved the rest of config code in ggv to gconf.
+ * ggv/ggvutils.[ch] (ggv_compute_zoom): moved here from main.c.
+ (ggv_compute_spec): new function. inverse of ggv_compute_zoom().
+ * ggv/gsdefaults.c: moved gconf client initialization from GtkGS class
+ code to here.
+
+2001-07-10 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/xpdf/gpdf.cc (main): Make indentation consistent with the
+ rest of the source
+
+2001-07-08 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_init): add notification callbacks to gtkgs
+ gconf client.
+ (gtk_gs_class_init): get default gconf client. assert if gconf
+ is not initialized!
+ (gtk_gs_get_gconf_client): access to the gtkgs gconf client.
+ * ggv/src/prefs.c: removed gtkgs prefs as these are now handled by
+ gconf.
+ * ggv/src/main.c (main): initialize gconf.
+ (set_gs_prefs): removed setting of GtkGS prefs as this is now
+ handled by GtkGS gconf notification callbacks.
+ * ggv/src/callbacks.c (prefs_apply_callback): save GtkGS prefs separately.
+ * ggv/src/gtkscrollpane.c: removed some warnings. make use of default
+ unrealize signal handler.
+
+2001-07-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gsdefaults.[ch]: home for all the gtk_gs_defaults_* stuff that
+ was once in gtkgs.[ch].
+ (gtk_gs_defaults_load, gtk_gs_defaults_save): restore/save config
+ using GConf.
+ ggvutils.[ch]: moved unit and orientation labels, paper sizes and
+ unit factors here from various places.
+ (ggv_split_string, ggv_get_index_of_string): utility functions
+ that were once static to their sources.
+
+2001-07-02 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.c (sync_*_items): removed debugging
+ output.
+ (ggv_postscript_view_construct): fixed media property of PropertyBag.
+ (listener_Media_cb): don't free media: arg_release() will take care of
+ it.
+ prefs.[ch]: removed gs*_cmd global variables as they are now stored
+ in GtkGSDefaults. fixed prefs io functions to respect this.
+ * ggv/main.c (synchronize_*_items): new function to enable/disable
+ paper/orientation items according to respective override setting.
+
+2001-07-01 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/xpdf/gpdf-ui.xml: Make the print menu item visible.
+
+2001-06-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/prefs.c (set_prefs): apply settings for auto jump to
+ beginning of the page.
+
+2001-06-22 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/configure.in: Fix a daft error of mine; ask for cflags
+ and libs of bonobox instead
+
+2001-06-20 Karl Eichwalder <ke@suse.de>
+
+ * ggv/configure.in: Remove AM_PROG_XML_I18N_TOOLS (duplicate).
+
+2001-06-16 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/configure.in: Fix logic for bonobo checking to stop if
+ bonobo is not found.
+
+2001-05-31 Karl Eichwalder <ke@suse.de>
+
+ * ggv/bonobo/GNOME_GGV.oaf.in: s/Postscript/PostScript/ for _value
+ strings.
+
+ * ggv/Merge in xml-i18n-tools-0-8-4-branch.
+
+ * ggv/configure.in (ALL_LINGUAS): Add 'hr'.
+
+ * ggv/Start to apply xml-i18n-toolization running xml-i18n-prepare
+ (0.8.4):
+ * ggv/Makefile.am (EXTRA_DIST): Add xml-i18n-extract.in
+ xml-i18n-merge.in xml-i18n-update.in.
+ * ggv/xml-i18n-extract.in: Add from xml-i18n-tools 0.8.4.
+ * ggv/xml-i18n-update.in: Ditto.
+ * ggv/xml-i18n-merge.in: Ditto.
+
+ * ggv/configure.in: Add AM_PROG_XML_I18N_TOOLS.
+
+ * ggv/Makefile.am (Graphics_DATA): Fix ggv.desktop entry.
+ * ggv/.cvsignore: Add ggv.desktop.
+ * ggv/ggv.desktop: Remove file.
+ * ggv/ggv.desktop.in: New file.
+
+2001-05-30 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/ggvwindow.h (struct _ggv_window): added more members for
+ some menu & popup-menu items.
+ * ggv/src/main.c: added First/Last Page menu and popup menu-items.
+ patch submitted by Dan E. Kelley <dan.kelley@dal.ca>.
+ Implemented setting of sensitivity of new menu & popup-menu items.
+
+2001-05-25 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/prefs.c (load_prefs): really set default zoom factor. fixes
+ bug #55182.
+
+2001-05-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/callbacks.c: apply/save file selection dialog dimensions.
+ * ggv/src/prefs.[ch]: save/load file selection dialog dimensions to/from
+ config file. fixes bug #54652.
+
+2001-05-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (create_popup_menus): added more keyboard accelerators.
+ (create_menus): fixed keyboard accelerators clashes. fixes bug #54654.
+ * ggv/src/callbacks.c (toggle_*_pages_callback): really _toggle_,
+ don't just _set_ them. fixes bug #54653.
+
+2001-05-11 Gediminas Paulauskas <menesis@delfi.lt>
+
+ * ggv/src/callbacks.c: add missing }
+
+2001-05-10 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/callbacks.c (button_press_callback): added zoom-in function to
+ middle-button.
+ * ggv/src/gtkgs.[ch] (gtk_gs_set_center): new function.
+ * ggv/bonobo/ggv-postscript-view.c (sync_radio_items): fix syncing for
+ orientation items.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: added needed verbs with their
+ states.
+
+2001-05-03 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view.[ch]: move media menu template to
+ class structure.
+ (ggv_postscript_view_class_init): build media menus. properly
+ encode translated strings.
+
+2001-04-28 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (create_toolbar): respect toolbar labels preferences.
+
+2001-04-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/ggv-postscript-view-ui.xml: added a placeholder for media
+ menus.
+ * ggv/bonobo/ggv-postscript-view.c (build_media_menu): build a
+ BonoboUINode tree for a menu of media types.
+ (ggv_postscript_view_construct): build a template for media menus.
+ (ggv_postscript_view_create_ui): copy media menu template and create
+ set the copied tree.
+
+2001-04-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.[ch] (gtk_gs_get_current_page, gtk_gs_get_page_count): new
+ functions.
+ * ggv/bonobo/ggv-postscript-view-ui.xml: added NextPage and PrevPage verbs
+ and menuitems.
+ * ggv/bonobo/ggv-postscript-view.c (verb_NextPage_cb, verb_PrevPage_cb):
+ verb callbacks.
+ (ggv_postscript_view_create_ui): add verbs.
+ (set_page_item_sensitivity): set PrevPage and NextPage sensitivity.
+
+2001-04-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/merged in changes from ggv-1.0 where appropriate,
+ * ggv/gtkgs.[ch]: implemented missing accessors in GtkGS API.
+ * ggv/bonobo/ggv-postscript-view.c: worked on UI stuff.
+ * ggv/finally commited changes to CVS.
+
+2001-04-20 Jaka Mocnik <jaka@barbara>
+
+ * ggv/src/callbacks.[ch] (zoom_to_fit_callback): new function.
+ * ggv/src/gtkgs.[ch] (gtk_gs_zoom_to_fit): new function.
+ * ggv/src/main.c (create_menus): added "Zoom to fit" item.
+ * ggv/bonobo/ggv-postscript-view.c (ggv_postscript_view_zoom_to_fit):
+ implemented.
+
+2001-04-13 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/bonobo/*: new directory with bonobo stuff.
+ * ggv/removed old bonobo embeddable.
+ * ggv/compile GtkGS in a library that links with both GGv and
+ bonobo component.
+ * ggv/fixed lots of compile warnings.
+ * ggv/added prototypes for functions that didn't have them yet.
+
+2001-03-29 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/ps.h (struct documentmedia): Moved to gtkgs.h and renamed to
+ GtkGSPaperSize.
+ * ggv/ps.c: comply to above.
+ * ggv/src/gtkgs.h (struct _GtkGS): changed default_page_media to
+ default_media.
+ (gtk_gs_*_default_media): add prototypes.
+ (gtk_gs_defaults_get_paper_sizes, gtk_gs_defaults_get_paper_count):
+ new functions.
+ * ggv/src/gtkgs.c: comply with above changes.
+ (gtk_gs_defaults_get_paper_sizes, gtk_gs_defaults_get_paper_count):
+ new functions. return array of GtkGSPaperSizes and length of that
+ array. this will allow us to add paper types in the future.
+ * ggv/ggvwindow.h (struct _ggv_window): make menudata and paper_menu
+ members pointers instead of fixed-size arrays.
+ (struct _ggv_prefs): do the same with media_choice member.
+ * ggv/main.c: dynamically allocate/free above members.
+
+2001-03-28 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.[ch]: major beautification of GtkGS APIs.
+ (gtk_gs_set_pagemedia): becomes gtk_gs_set_page_media().
+ (gtk_gs_set_orientation): becomes gtk_gs_set_default_orientation().
+ (gtk_gs_get_default_orientation): new accessor.
+ (gtk_gs_document*): become gtk_gs_get_document*().
+ (gtk_gs_set_override_orientation, gtk_gs_get_override_orientation,
+ gtk_gs_set_override_media, gtk_gs_get_override_media): new accessors.
+ Changed name of all gtkgs_defaults functions.
+ * ggv/src/prefs.c (save_prefs): save respect EOF settiing.
+ * ggv/*.[ch]: changed all to comply with above API changes.
+
+2001-03-24 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (refresh_coordinates): refresh coordinates label.
+ (apply_gs_prefs): call refresh_coordinates().
+ (open_prefs_dialog): add another choice menu for units for coordinate
+ display.
+ * ggv/src/callbacks.c (motion_callback): only set new coordinate members
+ of ggv_window to cursor position in inches.
+ * ggv/src/prefs.[ch]: renaming.
+ load & save preferred coordinate display units.
+
+2001-03-23 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/callbacks.c (motion_callback): report coordinates. currently in
+ points. TODO: implement conversion to metric and anglo-saxon units.
+ * ggv/src/main.c (load_gs): clear coordinates label.
+ (create_toolbar): added navigation and zoom buttons.
+ (create_sidebar): removed navigation and zoom buttons, moved
+ coordinates label below scrollpane.
+
+2001-03-17 Ravi Pratap <ravi@che.iitm.ac.in>
+
+ * gpdf/configure.in : Fixed logic to determine bonobo
+ version.
+
+ * gpdf/gpdf.desktop : Exec=gpdf and not xpdf.
+
+2001-03-08 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/removed german help translation from ditribution.
+ * ggv/bumped version to 1.0 and released a new tarball for GNOME 1.4.
+
+2001-03-05 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (open_prefs_dialog): left-align labels.
+ * ggv/po/sl.po: defuzzy strings.
+
+2001-03-03 John Fleck <jfleck@inkstain.net>
+
+ * ggv/added:
+ app-docs.make, omf-install/Makefile.am, help/C/ggv-C.omf,
+ help/de/ggv-de.omf, help/it/ggv-it.omf, help/ja/ggv-ja.omf
+ changed:
+ help/C/Makefile.am, help/de/Makefile.am, help/it/Makefile.am,
+ help/ja/Makefile.am, configure.in, Makefile.am
+ Adding support for ScrollKeeper
+
+2001-03-03 - John Fleck <jfleck@inkstain.net>
+
+ * ggv/adding COPYING-DOCS
+
+2001-02-25 Fatih Demir <kabalak@gtranslator.org>
+
+ * ggv/help/C/.cvsignore: Be quiet about ggv.info.
+
+2001-02-20 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkscrollpane.c (gtk_scrollpane_motion_notify): fixed a bug
+ that caused the scroll pane not to properly set value when the slider
+ was dragged to top and/or left edge.
+
+2001-02-19 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c: "Attend" should read "At end";
+ * ggv/src/*.po: updated because of the above string change.
+
+2001-02-15 Gediminas Paulauskas <menesis@delfi.lt>
+
+ * ggv/src/main.c: made ~15 strings translatable.
+
+2001-02-14 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/bonobo-application-ps.c (set_page_item_sensitivity): check
+ if gs->doc is NULL in order to prevent segfaults.
+
+2001-02-03 Simos Xenitellis <simos@hellug.gr>
+
+ * gpdf/gpdf.desktop: Added Greek messages.
+
+ * gpdf/configure.in: Added el to ALL_LINGUAS.
+
+2001-02-01 Fatih Demir <kabalak@gmx.net>
+
+ * ggv/help/de/.cvsignore, help/ja/.cvsignore: Added these ignore
+ files.
+
+2001-01-31 Karl Eichwalder <ke@suse.de>
+
+ * ggv/configure.in (ALL_LINGUAS): Remove 1 uk entry (we've had 2).
+
+2001-01-24 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
+
+ * gpdf/configure.in: Added sk to ALL_LINGUAS.
+ * gpdf/gpdf.desktop: Added Slovak messages
+
+2001-01-23 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/callbacks.c (about_callback): Added Tim Theisen and Johannes
+ Plass as authors. There is a lot of code based on gv
+ (including the parser) so IMHO it is fair to acknowledge them. I
+ updated Jaka as the current maintainer.
+
+2001-01-22 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkgs.c (gtk_gs_set_pagemedia): fixed a bug that prevented proper
+ paper size overriding.
+ * ggv/src/ps.c (psscan), gtkgs.c: made respect_eof configurable.
+ * ggv/src/main.c, src/callbacks.c: added respect eof option to prefs dialog.
+ * ggv/configure.in: now we're at 1.0-test7. boy, does this testing wear me
+ out...
+
+2001-01-22 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/gtkgs.c (set_up_page): Remove a g_print message
+
+2001-01-21 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/gtkgs.c (gtk_gs_set_pagemedia): added a check for
+ gs->doc->pages != NULL before dereferencing them. stupid me...
+
+2001-01-21 Fatih Demir <kabalak@gmx.net>
+
+ * gpdf/configure.in: Added tr to ALL_LINGUAS.
+
+2001-01-21 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/ps.c (psscan): Implemented ignoring EOF in structured
+ documents. Unfortunately some Structured Documents do not properly
+ protect EOF of embedded documents.
+
+2001-01-17 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/gtkgs.[ch]: added member loaded. set to TRUE when a document is
+ loaded.
+ * ggv/(struct _ggv_window): removed member loaded.
+ * ggv/fixed paper menu and choice menu syncing.
+ * ggv/gtkgs.c (gtk_gs_realize, compute_size, set_up_page): show white
+ background of fallback media type when no document is loaded.
+ (gtk_gs_set_pagemedia): hopefully this is now finally fixed. it
+ gets media type in this order: page media, doc media, page bbox,
+ doc bbox.
+ fixed orientation menu syncing and handling.
+
+2001-01-14 Stanislav Brabec <utx@penguin.cz>
+
+ * src/main.c: Swapped odd/even in menus to finish odd/even
+ cosmetics.
+
+2001-01-14 Jonathan Blandford <jrb@redhat.com>
+
+ * ggv/src/main.c (create_menus): oops. Forgot to change this.
+
+2001-01-14 Jonathan Blandford <jrb@redhat.com>
+
+ * ggv/src/callbacks.c (*_toggled_*): Changed to use the new checklist.
+ * ggv/src/main.c (toggle_pages): removed
+ * ggv/src/gtkchecklist.[ch]: new widget.
+ * ggv/src/stock/.cvsignore: added
+ * ggv/src/main.c: Removed %800 as a zoom option. It uses a _lot_ of
+ memory needlessly.
+
+2001-01-14 Jaka Mocnik <jaka@barbara>
+
+ * ggv/src/gtkgs.c: renamed gtkgs_errmsg to gtk_gs_emit_error_msg, to be
+ consistent with the overall naming style.
+ (gtk_gs_set_pagemedia): attempt to use page bounding box if no
+ page media or document media are set. fixes problems with some PDF
+ dsc files.
+
+2001-01-13 Stanislav Brabec <utx@penguin.cz>
+
+ * ggv/src/main.c: Changed bad term "Paper Type" to "Page Size" to
+ prevent ambiguity between PageSize and MediaType Postscript
+ resources.
+
+ * ggv/src/callbacks.c: Synchronize wheel mouse events with long time
+ established GIMP behavior (i.e. Control=HScroll, Shift=Zoom).
+ Increased whellmouse step. Still different from GIMP where wheel
+ step is window size relative (1/4).
+
+ * ggv/src/main.c, src/stock/toggleodd.xpm, src/stock/toggleeven.xpm:
+ Prevent odd/even ambiguities: Use natural order (odd, even),
+ swap images to be more intuitive.
+
+ * ggv/ggv.desktop: Updated cs.
+
+2001-01-11 John Fleck <jfleck@inkstain.net>
+ * ggv/help/C/ggv.sgml, help/de/ggv.sgml, help/it/ggv.sgml, help/ja/ggv.sgml:
+ fixing bug in the docs that prevented them from rendering in
+ Nautilus: "DOCTYPE" in the dtd must be capitalized. Also changed
+ "%" to "&percnt;" so as not to choke the poor Nautilus browser
+
+2001-01-11 John Fleck <jfleck@inkstain.net>
+ * ggv/added help/de/Makefile.am
+ * ggv/help/C/Makefile.am, help/it/Makefile.am, help/ja/Makefile.am,
+ help/Makefile.am, configure.in:
+ update help doc makefiles to build html at package build time, so
+ the packager rather than the end user needs DocBook tools to build
+ the static html from the DocBook sgml. Also, install .sgml files
+ in help directories for future Nautilus compatibility
+
+2001-01-11 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/gpdf.cc (container_launch_component): don't add the client
+ site to the item container.
+
+2001-01-11 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c: include stock/*.xpm, not *.xpm.
+ * ggv/src/foot*.xpm: removed.
+ * ggv/src/gtkgs.c (check_filecompressed): free filename after possible
+ error messages; also uncompress files by passing the uncompressing
+ command the compressed filename in commandline and not via redirection
+ of stdin, as some bzip2 version seem to have problems with the latter.
+
+2001-01-09 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/ggv.spec.in: removed the line for sysconfdir/CORBA/servers as
+ .gnorba files no longer exist.
+
+2001-01-08 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/gtkscrollpane.c (gtk_scrollpane_class_init): add handler for
+ draw signal to fix some redrawing issues.
+ * ggv/src/main.c (restore_session, save_session): save & restore document
+ page, zoom and scrolled position.
+ (synchronize_user_interface): set zoom menu option to the current
+ window magnification and NOT to the default magnification.
+
+2000-12-24 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/application-ps.oafinfo: becomes Bonobo_GGV.oafinfo. also changed
+ OAFIIDs.
+ * ggv/application-ps.gnorba: removed.
+ * ggv/Makefile.am: removed application-ps.gnorba.
+ * ggv/configure.in: bumped version to 1.0-test1. released the first
+ test before 1.0.
+ * ggv/MAINTAINERS: changed to jaka@gnu.org.
+
+2000-12-22 Zbigniew Chyla <cyba@gnome.pl>
+
+ * ggv/ggv.desktop: Updated Polish translation.
+
+2000-12-21 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Kill mutex / thread init code,
+ it screws gtk.
+
+ * gpdf/xpdf/gpdf.cc: update the IID naming scheme.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (init_bonobo_application_x_pdf_factory): ditto. (init_server_factory): setup ORB properly.
+
+ * gpdf/xpdf/Makefile.am: De-goadize; update oafinfo fnames.
+
+2000-12-21 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in (xpdf_cv_func_select_arg): remove oaf
+ checking cruft.
+
+2000-12-18 Dan Damian <dand@dnttm.ro>
+
+ * ggv/configure.in: Added "ro" to ALL_LINGUAS.
+
+2000-12-16 Jaka Mocnik <jaka@gnu.org>
+
+ src/bonobo-application-ps.c: updated to work with latest bonobo:
+ changed references to EmbeddableFactory to GenericFactory.
+
+2000-12-08 Fatih Demir <kabalak@gmx.net>
+
+ * gpdf/configure.in: Added "ko" to ALL_LINGUAS.
+
+2000-12-04 Jaka Mocnik <jaka@gnu.org>
+
+ * ggv/src/main.c (open_window): return the new ggv_window and take
+ parameters for x, y, width and height of the window.
+ (restore_session, save_session, client_die): new functions to
+ support session management.
+ (main): implement session management.
+
+2000-12-04 Darin Adler <darin@eazel.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc:
+ s/bonobo_embeddable_factory_new/bonobo_generic_factory_new/.
+
+2000-11-23 Jaka Mocnik <jaka@activetools.si>
+
+ * ggv/src/bonobo-application-ps.c (reload_all_views): set menu item
+ sensitivity for each view.
+
+2000-11-21 Yukihiro Nakai <nakai@gnome.gr.jp>
+
+ * ggv/configure.in (ALL_LINGUAS): add zh_CN.GB2312
+
+2000-11-16 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
+
+ * ggv/configure.in (ALL_LINGUAS): added Slovak [sk]
+
+2000-11-16 Ramiro Estrugo <ramiro@eazel.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc:
+ Make the signatures of callbacks match the declaraed types to
+ avoid compiler warnings.
+
+2000-11-16 Darin Adler <darin@eazel.com>
+
+ * gpdf/xpdf/.cvsignore:
+ * gpdf/xpdf/Makefile.am:
+ Remove remnants of old ui translation scheme
+ now that we have Kenneth's new one (see po).
+
+2000-11-15 Zbigniew Chyla <cyba@gnome.pl>
+
+ * gpdf/configure.in: Added pl to ALL_LINGUAS.
+
+2000-11-15 Maciej Stachowiak <mjs@eazel.com>
+
+ * ggv/configure.in: Make OAF support unconditional (Bonobo always uses
+ OAF now).
+ * ggv/Makefile.am: Likewise.
+ * ggv/acconfig.h: Likewise.
+ * ggv/src/bonobo-application-ps.c: Likewise.
+
+2000-11-10 Robert Brady <robert@suse.co.uk>
+
+ * gpdf/configure.in: Added Tamil translation.
+
+2000-11-07 Fatih Demir <kabalak@gmx.net>
+
+ * gpdf/xpdf/.cvsignore: Added bonobo-application-x-pdf-ui.h and
+ gpdf-ui.h to the ignores.
+
+2000-11-06 Jason Leach <leach@wam.umd.edu>
+
+ * ggv/src/bonobo-application-ps.c (stream_read): s/copy_to/copyTo/ to
+ compile with the latest studlyCaps bonobo.
+
+2000-11-05 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * gpdf/po/da.po,configure.in: Added Danish translation.
+
+2000-11-02 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in: check for Bonobo >= 0.27
+
+2000-10-27 Szabolcs Ban <shooby@gnome.hu>
+
+ * gpdf/configure.in: Added Hungarian (hu) entry (ALL_LINGUAS)
+ * gpdf/gpdf.desktop: Added Hungarian entries.
+
+2000-10-20 Darin Adler <darin@eazel.com>
+
+ * gpdf/.cvsignore: Add aclocal.m4.
+ * gpdf/xpdf/bonobo-application-x-pdf.cc:
+ Change BonoboUIHandler to BonoboUIComponent.
+
+2000-10-19 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/gpdf.cc: update for Dietmer internal changes.
+
+2000-10-19 Jarkko Ranta <jjranta@cc.joensuu.fi>
+
+ * gpdf/configure.in: Added Finnish (fi) entry (ALL_LINGUAS).
+ * gpdf/gpdf.desktop: Added Finnish entries.
+
+2000-10-18 Christophe Merlet <christophe@merlet.net>
+
+ * gpdf/configure.in: Added French (fr) to ALL_LINGUAS.
+ * gpdf/gpdf.desktop: Added French strings.
+
+2000-10-17 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/gpdf.xml: add.
+
+ * gpdf/xpdf/Makefile.am: sort out xml files.
+
+ * gpdf/xpdf/gpdf.cc: Re-engineer to the new UI handler.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: update to new UI handler
+
+ * gpdf/xpdf/bonobo-appliation-x-pdf-ui.xml: create.
+
+ * gpdf/xpdf/gpdf-ui.xml: create.
+
+2000-10-17 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/Makefile.am (WIN32_EXTRA): remove cruft so we distcheck.
+
+2000-10-17 Almer S. Tigelaar <almer1@dds.nl>
+
+ * gpdf/configure.in: Added Dutch (nl) to ALL_LINGUAS.
+
+2000-10-15 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/src/bonobo-application-ps.c: converted to new bonobo UI code.
+
+2000-10-09 Darin Adler <darin@eazel.com>
+
+ * gpdf/aclocal.m4: Removed this file which is generated
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Ifdef'd out code that doesn't
+ compile with the latest verb changes.
+
+2000-10-08 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/src/*.c: unified capitalization: Gnome Ghostview and GGv.
+ no more GNOME and ggv.
+
+2000-10-07 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/gpdf.cc (main): cut out stale gnorba fat.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (init_server_factory),
+ (init_bonobo_application_x_pdf_factory): ditto.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (embeddable_factory): remove the
+ sizeable interface.
+
+2000-10-07 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in: check for Bonobo >= 0.20
+
+2000-10-07 Jesus Bravo Alvarez <jba@pobox.com>
+
+ * gpdf/configure.in: Added Galician (gl) to ALL_LINGUAS
+
+2000-10-06 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/callbacks.c
+ * ggv/src/callbacks.h
+ * ggv/src/ggvutils.c
+ * ggv/src/ggvutils.h
+ * ggv/src/ggvwindow.h
+ * ggv/src/main.c
+ * ggv/src/prefs.c
+ * ggv/src/prefs.h: Added a toolbar and icons for the sidebar.
+ Coded by Paolo Maggi <maggi@athena.polito.it>
+
+2000-10-05 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/callbacks.c (button_press_callback): Support for
+ wheel mice. Coded by Tomas Kindahl <tomas.kindahl@codefactory.se>
+ * ggv/src/prefs.c: Aligned some labels in prefs window.
+
+2000-10-04 Yukihiro Nakai <nakai@gnome.gr.jp>
+
+ * gpdf/configure.in: Add Japanese to ALL_LINGUAS
+
+2000-10-04 Yukihiro Nakai <nakai@gnome.gr.jp>
+
+ * gpdf/gpdf.desktop: Add Japanese translation.
+
+2000-10-04 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (view_create_menus): upd.
+
+ * gpdf/xpdf/gpdf.cc (container_launch_component): update for ItemContainer
+ rename. (container_new): update to bonobo-win stuff.
+ (container_set_view): use compat_get_container.
+
+2000-10-04 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in (xpdf_cv_func_select_arg): check for bonobo 0.19
+
+2000-10-04 Kjartan Maraas <kmaraas@gnome.org>
+
+ * gpdf/configure.in: Added ALL_LINGUAS and all current languages.
+
+2000-10-04 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/src/bonobo-application-ps.c (view_merge_menus): use
+ Bonobo_UIContainer instead of Bonobo_UIHandler.
+
+2000-09-25 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/help/C/ggv.texi: texinfo version of the sgml docs. automatic
+ conversion does not work well and it had to be tweaked manually.
+ therefore I have commited it to CVS.
+ * ggv/help/C/Makefile.am: generate and install the info file.
+
+2000-09-18 Yukihiro Nakai <nakai@gnome.gr.jp>
+
+ * Update help/ja/ggv.sgml
+ * Add ja entry to help/Makefile.am
+
+2000-09-15 Mathieu Lacage <mathieu@eazel.com>
+
+ * gpdf/gpdf.keys.in: fix evil evil buggy: mime types DO NOT HAVE
+ a ":" after them
+ * gpdf/gpdf.mime: idem
+
+2000-08-24 Daniel M German <dmgerman@acm.org>
+
+ * src/callbacks.c
+ * src/callbacks.h
+ * src/ggvwindow.h
+ * src/gtkgs.c
+ * src/main.c
+ - Added support for orientation on on a per window basis.
+ - To be consistent, I added the option to override orientation
+ instead of the automatic option
+ * src/prefs.c
+ * src/prefs.h:
+ - Added orientation parameters in the setup window.
+
+ - There are still some bugs to fix, among them:
+ *set new paper media after the document is loaded
+ *there are still some bugs to fix for orientation
+ *try to test documents with multiple media
+ *try to see if there are documents with different orientation
+
+2000-08-22 Daniel M German <dmgerman@acm.org>
+
+ * src/callbacks.c
+ * src/callbacks.h
+ * src/ggvwindow.h
+ * src/gtkgs.c
+ * src/main.c
+ * src/prefs.c
+ * src/prefs.h:
+ - Added zoom magnification to the list of persistent parameters.
+ - Synchronized correctly all parameters between the document
+ and the user interface (zoom, override media, default media,
+ etc).
+
+2000-08-15 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/gtkgs.c:
+ * ggv/src/callbacks.c: Added the ability to set up the orientation
+ _before_ the document is loaded, and to set up the orientation
+ on a window basis, instead of globally. Both zoom and orientation
+ require options in the preferences dialog window.
+
+ * ggv/src/callbacks.c
+ * src/main.c
+ * src/ggvwindow.h:
+ Added support for individual window zooming in the menu. I also
+ synchronized the zoom button actions with the currently selected
+ value in the zoom radio buttons in the main menu.
+
+2000-08-13 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/gtkgs.c: added bounding box options for media type
+
+ * ggv/src/prefs.c
+ * ggv/src/main.c
+ * ggv/src/callbacks.c: Added the ability to set watchfile and
+ antialiasing on a document level (previously it was a global
+ setting).
+
+2000-08-13 Arik Devens <arik@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (view_create_menus): Switched
+ page_enlarge_cb and page_shrink_cb to get zooming in and out
+ workin correctly in the menu.
+
+2000-08-10 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/src/bonobo-application-ps.c: call bonobo_object_unref() instead
+ of bonobo_object_destroy(). also fixed the factory code and some
+ unref()ing issues.
+ * ggv/src/gtkgs.[ch]: renamed gtkgs_defaults_struct to GtkGSDefaults
+ for consistency and made it private to gtkgs.c.
+ * ggv/some renaming and code reformating was done for consistency.
+ * ggv/configure.in: fixed the bonobo check, as we need to link with both
+ libbonobox and libbonobo.
+
+2000-08-08 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/prefs.c
+ * ggv/src/main.c
+ * ggv/src/gtkgs.c
+ * ggv/src/gtkgs.h
+ * ggv/src/prefs.h
+ * ggv/src/bonobo-application-ps.c
+ * ggv/src/callbacks.c
+ - Revamped the way the defaults for the gtkgs widget are
+ stored. Instead of global variables I created a structure
+ gtkgs_defaults and a bunch of functions to set and read its
+ values. This will be more maintable and modular.
+ - I removed the old variables gs_antialiasing,
+ gs_default_page_media. etc, ... and replace them with calls to
+ their corresponding functions.
+ - Fixed bug in which landscape documents were not recognized as
+ such when opened. I also changed the default of Landscape (as
+ 270 degrees instead of 90) so landscape documents are shown
+ properly)
+ - Currently working on the automatic discovery of paper type,
+ orientation and the ability to set defaults on a per window basis.
+ * ggv/src/main.c the default message in the status bar shows more info
+ about the current document, including magnification,
+ filename, and type of PostScript document.
+
+2000-08-07 Daniel M German <dmgerman@acm.org>
+
+ * ggv/TODO: Updated it. It still needs work.
+
+2000-08-06 Daniel M German <dmgerman@acm.org>
+
+ * ggv/help/Makefile.am (SUBDIRS): there was a japanese translation
+ entry but no subdirectory for its translation. Maybe somebody
+ forgot to upload it? I removed it.
+
+2000-08-02 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/Makefile.am (gpdf_LDADD): kill ghastly hack adding -lbonobo.
+ (bonobo_application_x_pdf_LDADD): add EXTRA_GNOME_LIBS
+
+2000-08-02 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in: set '$bonobo' for EXTRA_GNOME_LIBS, use bonobox
+
+ * gpdf/po/POTFILES.in: add.
+
+2000-07-25 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (embeddable_factory): s/gtk/bonobo/
+ on unref. Junk 2 stop tabs throught, Derek can have my kittens.
+ (view_create_menus): create the pdf toolbar before using it.
+ (button_press_event_cb): return a value.
+
+2000-07-16 Karl Eichwalder <ke@suse.de>
+
+ * ggv/help/C/ggv.sgml: "page" vs. "pane".
+
+ * ggv/help/de/topic.dat: New file.
+ * ggv/help/de/ggv.sgml: Start translation.
+
+ * ggv/help/C/ggv.sgml: Normalize the word "PostScript".
+
+2000-07-04 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/GOutputDev.cc (drawImage): kill double free.
+
+ * gpdf/xpdf/BonoboStream.cc (bfread): update for new API.
+
+2000-06-22 JP Rosevear <jpr@arcavia.com>
+
+ * ggv/src/bonobo-application-ps.c (view_next_page_cb): Constify param
+ (view_prev_page_cb): ditto
+ (view_recenter_page_cb): ditto
+ (load_ps_from_stream): No return type any more (void).
+
+ * ggv/configure.in: Improve bonobo/oaf check
+
+2000-06-21 Daniel M German <dmgerman@acm.org>
+
+ * ggv/src/Makefile.am (COMPONENT_LDADD): fixed a minor error in order
+ to compile without bonobo support.
+
+2000-06-11 Fatih Demir <kabalak@gmx.net>
+
+ * gpdf/gpdf.desktop: Corrected a stupid [tr]-entry.
+
+2000-06-07 Pavel Cisler <pavel@eazel.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc:
+ Renamed BonoboUIHandlerCallbackFunc to BonoboUIHandlerCallback
+ to match new naming.
+
+2000-06-02 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/application-ps.oafinfo: added the OAF info file that I forgot
+ during last commit.
+
+2000-06-01 Darin Adler <darin@eazel.com>
+
+ * gpdf/xpdf/application-x-pdf.oafinfo:
+ * gpdf/xpdf/gpdf.cc:
+ Fixed spelling of component in IID.
+
+2000-05-28 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/configure.in, Makefile.am, src/Makefile.am: added optional
+ use of OAF for the bonobo component. thank god we're past GNORBA.
+ * ggv/src/bonobo-application-ps.c (init_server_factory,
+ init_embeddable_application_ps_factory): added OAF support.
+ * ggv/application-ps.oafinfo: relevant OAF information for our
+ bonobo component.
+ * ggv/src/main.c (recent_add): yes, Postscript is application/postscript
+ and not text/plain.
+ * ggv/acconfig.h: add USING_OAF.
+
+2000-05-27 Pauli Virtanen <pauli.virtanen@saunalahti.fi>
+
+ * ggv/ggv.desktop: added finnish
+
+2000-05-26 Darin Adler <darin@eazel.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (load_pdf_from_stream),
+ (embeddable_factory):
+ * gpdf/xpdf/gpdf.cc: (open_pdf):
+ Updated for new PersistStream interface. I mostly just passed
+ NULLs. Not 100% sure that's correct.
+
+2000-05-26 Dan Winship <danw@helixcode.com>
+
+ * gpdf/xpdf/gpdf.cc (open_pdf): Note that the data passed to the
+ PersistStream is "application/pdf".
+
+2000-05-24 Darin Adler <darin@eazel.com>
+
+ * gpdf/.cvsignore:
+ * gpdf/goo/.cvsignore:
+ * gpdf/ltk/.cvsignore:
+ * gpdf/xpdf/.cvsignore:
+ Added a bunch of generated files.
+
+ * gpdf/xpdf/GOutputDev.cc: (GOutputDev::updateLineAttrs):
+ Fixed a type to avoid a warning.
+
+2000-05-15 Kjartan Maraas <kmaraas@gnu.org>
+
+ * ggv/TRANSLATABLE_FILES: Added list of files containing
+ translatable strings / text.
+
+2000-05-14 Andreas Hyden <a.hyden@cyberpoint.se>
+
+ * ggv/ggv.desktop: Added Swedish translation.
+
+2000-05-11 Daniel M German <dmgerman@acm.org>
+
+ * ggv/ggv.desktop (Comment): Changed
+
+ to:Gnome Ghostscript frontend
+ Comment=A Ghostscript frontend to visualize PostScript files.
+ (submitted by Karl Eichwalder <ke@gnu.franken.de>)
+
+ * ggv/Added the option to save the current geometry. Its only current
+ defect is that it saves the geometry of the last window open
+ (remember, we can open more than one window at a time).
+
+2000-05-10 Karl Eichwalder <ke@suse.de>
+
+ * ggv/src/main.c (create_menus): Add missing shortcut.
+
+2000-05-10 Karl Eichwalder <ke@suse.de>
+
+ * ggv/ggv.desktop: Improve de.
+
+2000-05-10 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/configure.in: bumped version to 0.95 and released a new tarball.
+ * ggv/pixmaps/foot*.xpm: moved back to src as these are actually
+ source files and libtool doesn't like sources in another subdir.
+ * ggv/pixmaps/Makefile.am: removed feet from SOURCES ;)
+ * ggv/src/Makefile.am: added foot*.xpm to GTK_GS_SOURCES.
+
+2000-05-07 Maciej Stachowiak <mjs@eazel.com>
+
+ Work with OAF and fix various bugs:
+
+ * gpdf/configure.in, aclocal.m4: Detect when Bonobo is built with OAF
+ support, and if so use OAF.
+ * gpdf/xpdf/Makefile.am: When using OAF, link against OAF and install
+ oafinfo file.
+ * gpdf/xpdf/gpdf.cc: Include oaf headers when using OAF.
+ (openpdf): Use OAFIID to activate the component when using OAF.
+ (container_set_view), (container_launch_component),
+ (container_new): Put the view in an EventBox, not a
+ ScrolledWindow; the component now handles scrolling itself.
+ (key_press_event_cb): Removed; key press handling moved to
+ component.
+ (main): Initialize OAF instead of GOAD when using OAF.
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Include OAF headers when using
+ OAF.
+ (redraw_view): Handle the case where we are loading before the
+ view is realized by connecting to the "realize" signal handler
+ and deferring redrawing until then in that case.
+ (real_redraw_view): Function to do the real redrawing.
+ (load_pdf_from_stream): Don't call `realize_mainbox' directly, let
+ `real_redraw_view' do it.
+ (key_press_event_cb): In response to various key bindings, scroll
+ the view, navigate pages, or zoom in/out.
+ (button_press_event_cb): Grab the keyboard focus on a press of
+ button 1.
+ (view_create_menus): Rename menus to be more standard, and provide
+ accelerators for menus and items.
+ (realize_mainbox): Get window ourselves if we have to.
+ (view_factory): Put the view in a scrolled window so scrolling can
+ be handled by the component itself. Connect to "key_press" and
+ "button_press" for keyboard and focus handling. Set the
+ GTK_CAN_FOCUS flag for the main view widget.
+ (init_bonobo_application_x_pdf_factory, init_server_factory): Use
+ OAF when appropriate.
+
+ * gpdf/xpdf/application-x-pdf.oafinfo: New file, OAF activation record.
+
+2000-04-18 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * ggv/configure.in (ALL_LINGUAS): added Catalan
+
+2000-04-13 Fatih Demir <kabalak@gmx.net>
+
+ * ggv/ggv.desktop : Added [tr] ..
+
+2000-04-11 Pablo Saratxaga <pablo@mandrakesoft.com>
+
+ * ggv/configure.in (ALL_LINGUAS): added Lithuanian and Ukrainian
+
+2000-04-10 Fatih Demir <kabalak@gmx.net>
+
+ * gpdf/gpdf.desktop : Added [tr] ..
+
+2000-04-10 Dima Sivachenko <dima@Chg.RU>
+
+ * ggv/Update Russian translation.
+
+2000-04-03 Karl EICHWALDER <ke@suse.de>
+
+ * ggv/ggv.desktop: New entries for "de".
+
+2000-04-01 Jason Leach <leach@wam.umd.edu>
+
+ * ggv/main.c (recent_update): more optimization/cleaning, lets not
+ do g_list_length where we can just use an integer counter
+ (recent_add): a postscript isn't mime-type "text/plain" is it?
+ shouldn't it be "application/postscript"?
+
+2000-03-30 Jason Leach <leach@wam.umd.edu>
+
+ * ggv/main.c (parse_an_arg): fix indentation to 8-space;
+ (free_wwd): removed a duplicated if()
+ (recent_update_menus): here too.
+
+ * ggv/prefs.c (load_prefs): you don't need to do an if() check before
+ a g_free(), the if() check is actually already done at the top of
+ g_free()
+
+2000-03-30 Christopher R. Gabriel <cgabriel@firenze.linux.it>
+
+ * ggv/configure.in: added help/it/Makefile for italian user documentation
+
+2000-03-29 Jason Leach <leach@wam.umd.edu>
+
+ * ggv/main.c (open_prefs_dialog): set the title of the Preferences
+ window to "GGV Preferences" rather than have it inherit "ggv" from
+ the parent
+
+2000-03-27 Christopher R. Gabriel <cgabriel@firenze.linux.it>
+
+ * ggv/configure.in (ALL_LINGUAS): added italian (it) translation.
+
+2000-03-24 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/configure.in (ALL_LINGUAS): Added Slovene (sl) translation.
+ * ggv/callbacks.c (about_callback): made the authors list shorter.
+ as I've left no one out I hope no one gets mad ;) and prevented
+ the about box from being shown multiple times.
+
+2000-03-10 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/gpdf.cc: s/GNOME/Bonobo/
+
+ * gpdf/xpdf/application-x-pdf.gnorba: s/GNOME/Bonobo/
+
+2000-03-10 Alastair McKinstry <mckinstry@computer.org>
+
+ * ggv/configure.in (ALL_LINGUAS): Added Irish (ga) translation.
+
+2000-03-04 bertrand <bertrand@helixcode.com>
+
+ * ggv/application-ps.gnorba: take into account the
+ latest Bonobo name changes.
+
+ * ggv/bonobo-application-ps.c (view_factory):
+ no need to create the ui handler for the view,
+ it's been already done when the view is
+ constructed.
+
+2000-02-28 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (view_factory): kill spurious
+ UI handler creation.
+
+ * gpdf/xpdf/gpdf.cc (container_set_view): update to new bonobo api.
+
+2000-02-25 NotZed <NotZed@HelixCode.com>
+
+ * gpdf/xpdf/Makefile.am: Fixed up lists of sources so that distcheck
+ works. Also, only build gpdf if with gnome (otherwise distcheck
+ fails).
+
+ * gpdf/xpdf/gpdf.cc (container_about_cmd): Define it if we are going to
+ be using it.
+
+2000-02-25 NotZed <NotZed@HelixCode.com>
+
+ * gpdf/configure.in: Do AM_GNOME_GETTEXT for INTLLIBS def.
+
+ * gpdf/Makefile.am: Dont include gjgppcf by default, can this
+ be done in an automatic way?
+
+ * gpdf/ltk/Makefile.am (libltk_a_SOURCES): Add missing sources.
+
+2000-02-09 Michael Meeks <michael@helixcode.com>
+
+ gpdf/xpdf/ Clean unused & lack of casting all round the place.
+
+2000-02-08 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in: update bonobo check for latest ver.
+
+2000-02-08 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * gtkgs.h: Added macros to access components of structure GtkGS:
+ the filename of the uncompressed file and flags that show if the
+ file is compressed or a pdf file.
+ * ggv/callbacks.c (print_callback), gtkgs.c (start_interpreter),
+ main.c (save_marked_pages): use this macros.
+ * ggv/Makefile.am: new files ggvutils.[ch]
+ * ggv/ps.c (psscan), gtkgs.c (gtk_gs_load):
+ Moved uncompress functionality from ps.c (psscan) to gtkgs.c
+ (gtk_gs_load new function check_filecompressed).
+ Possible error messages from the uncompress command are displayed
+ in the same way as ghostscript warnings (normally in the message
+ window).
+ Added support for bzip2-compressed files.
+ Moved pdf-scan functionality from ps.c (psscan) to gtkgs.c
+ (gtk_gs_load, new function check_pdf).
+ Both functions quote the filenames for the system() calls to allow
+ filenames containing special characters.
+ BUG: The list of recent files don't show filenames containing spaces
+ (and possibly other 'special' characters).
+ * ggv/main.c (load_gs): Don't show error dialog if gtk_gs_load fails
+ because an error message is already shown in the message window.
+ * ggv/main.c (open_window): Don't delete ggv window if loading of a
+ file given in the command line fails because the user should have
+ a chance to read the error messages.
+ * ggv/gtkgs.h (GtkGS), gtkgs.c (gtk_gs_init, start_interpreter),
+ bonobo-application-ps.c (view-factory): Removed local copies of the
+ commandlines for gzip and gs; use global variables instead.
+ * ggv/callbacks.c (prefs_apply_callback), ggv_window.h (ggv_prefs),
+ main.c (open_prefs_dialog), prefs.c, prefs.h:
+ Support for bzip2-compressed files.
+ * ggv/callbacks.c (print_callback): quote filename for
+ gnome_execute_shell so that printing of files containing spaces
+ works.
+ * ps.c: The error checking of malloced memory is useless as
+ g_malloc, g_new etc abort the application if out of memory;
+ removed.
+ * ggv/prefs.c (load_prefs, save_prefs, set_prefs), prefs.h:
+ New option gs_watch_doc.
+ * main.c (open_prefs_dialog), callbacks.c (prefs_apply_callback):
+ New option "watch file" in configuration dialog.
+ * main.c (load_gs): Start gtk_timeout function to check for changes
+ of the loaded file.
+ * gtkgs.c (gtk_gs_cleanup): stop timeout function.
+ * callbacks.[ch] (timer_callback): new function; reload file if
+ changed.
+ * gtkgs.h: #defines for the timing behaviour: The check for file
+ changes is performed every second, a reload is started 2 seconds
+ after the file was changed.
+ * ggv/main.c (open_prefs_dialog): Connect "help" callback.
+ * ggv/callbacks.c: New function prefs_help_callback.
+ * ggv/gtkgs.c (gtk_gs_cleanup): Close gs_psfile and set to NULL.
+ (gtk_gs_load, gtk_gs_goto_page): Dont change gs_psfile here.
+ (gtk_gs_set_pagemedia): set gs->changed when pagemedia was changed.
+ * ggv/main.c (close_window): Delete status window before deleting main window.
+ (set_gs_prefs): Reload file if page medium is changed.
+ (load_gs): Disable menu item "save marked pages" if a pdf file is
+ loaded. Some additional cosmetic changes...
+ (save_marked_pages): If a pdf file is loaded, use the name of the
+ dsc file as input to pscopydoc. The resulting ps file can be used
+ to print the marked pages.
+ * ggv/ps.c (pscopydoc): Removed status messages to stdout.
+ * ggv/help/C/ggv.sgml: Added short description of the new option
+ "watch file" and the changed/added command lines for gzip and
+ bzip2 in options/ghostscript.
+ * ggv/po/POTFILES.in: Added all source files which contain strings that
+ should be translated.
+ * ggv/configure.in: bumped the version to 0.90.
+ * ggv/bonobo-applicaton-ps.c (set_page_item_sensitivity): new function
+ that sets sensitivity of Next/Previous Page menu items when the
+ menus are merged.
+ (view_[prev|next]_page_cb, view_merge_menus): use the above.
+ * ggv/most of the above work is by Werner Koerner
+ <wernerk.koerner@zae.uni-wuerzburg.de>
+
+2000-02-07 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: fix typo.
+
+2000-02-07 Michael Meeks <michael@helixcode.com>
+
+ * gpdf/configure.in (VERSION): bump.
+
+2000-02-06 Daniel German <dmg@csg.uwaterloo.ca>
+
+ * ggv/ps.c (gettextline): gettextline was returning the EOL at the end
+ of the string. This resulted in a window title bar with an EOL at
+ the end. the panel was showing it.
+
+2000-02-02 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c: comply to changes in Bonobo API
+ namespace.
+ * ggv/configure.in: require bonobo >= 0.6.
+
+2000-01-28 Daniel German <dmg@csg.uwaterloo.ca>
+
+ * ggv/Added Greek (el.po) to ALL_LINGUAS (Submitted by
+ Spyridon Papadimitriou <Spyridon_Papadimitriou@gs91.sp.cs.cmu.edu>
+
+1999-12-21 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * gtk_gs.c (input): removed call to gtk_main_iteration in the
+ callback function input - this sometimes caused a endless
+ recursion.
+ * gtkgs.c (start_interpreter):
+ The pipe to ghostscript was not set to non-blocking IO (the code
+ was there, but not used).
+ Some cleanup and small changes to enable reading from stdin.
+ * main.c (main):
+ Reading files from comandline: try adding '.pdf.gz' to filename,
+ allow "-" as filename, if no filename is given and input is no tty
+ then use stdin as input.
+ * ps.c (psscan): Added code to scan ps files with a pjl header
+ (many printer drivers for laser printers send a pjl command to
+ switch the printer to postscript mode).
+ psscan now ignores a leading ^D in the postscript-file.
+ cleaned up uncompress and pdf-scan code (no recursion or goto's)
+ replaced some more malloc, realloc, etc calls by their glib
+ counterparts.
+ * commented out some messages printed to stdout.
+ Some of these messages were printed while ggv has both mouse
+ and keyboard focus. When these call blocks (e.g. when ggv was
+ started in a xterm in the background) the whole X server was
+ blocked.
+ * patches by Werner Koerner <Werner.Koerner@zae.uni-wuerzburg.de>.
+
+1999-12-17 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/gpdf.cc (container_set_view): make wrapper invisible.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (embeddable_factory): kill
+ diff id string. + constify lots of paths.
+ (view_factory): kill size query. (view_size_query): kill.
+
+1999-12-16 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c (embeddable_factory): don't pass goad id
+ as a parameter to gnome_persist_stream_new().
+ (#define GGV_GOAD_ID): removed as it was not referenced anymore.
+
+1999-12-14 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/callbacks.c (open-callback, save_callback): g_free() dirname.
+ * ggv/gsmessage.[ch]: new files, implement a dialog for showing
+ GS error messages in a single dialog instead of a bunch of
+ error dialogs. this was sorely needed: thanks, Werner.
+ * ggv/main.c (load_gs): create/clear the message dialog.
+ if no document is available, show filename as title of the main
+ window.
+ * ggv/callbacks.c (interpreter_message_callback): add text to message
+ dialog and show it.
+ * ggv/gtkgs.[ch] (struct _GtkGS): removed filename_raw member.
+ removed all references to the above member.
+ * ggv/file.[ch]: removed.
+ * ggv/callbacks.c (about_callback): added Werner to the about dialog.
+ it's the least I can do to show my appreciation of his patches ;)
+ * ggv/configure.in: increased version once again. we're at 0.83 now.
+
+1999-12-11 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (input): replace call to g_main_iteration() with
+ gtk_main_iteration().
+ (set_up_page): clear newly allocated pixmap before it is used.
+ (float compute_xdpi, float compute_ydpi): changed prototypes.
+ * ggv/gtkgs.c, main.c: add checks when using document structure
+ information (gs->doc, gs->doc->media, gs->doc->pages,
+ gs->pages_marked).
+ * ggv/callbacks.c (select_page_button_press_callback): fixed typo.
+ * ggv/ps.c (psscan): ambiguous if-else constuction; added braces.
+ add prototypes for static functions.
+ * ggv/callbacks.h (zoom_to, recent_update): add prototypes
+ * ggv/main.c (get_number, ggv_parse_geometry, escape_underlines,
+ create_pixmap, parse_an_arg, ggv_file_readable): made static
+ * ggv/gtkscrollpane.c, main.c, prefs.c: fix compiler warnings
+ * ggv/main.c (recent_update): when duplicate filenames occur then
+ free memory of one of them.
+ (load_gs): gtk_clist_append makes its own copies of the used strings,
+ so an additional strdup is not necessary.
+ (create_ggv_window): removed widget vbox which was created, but never
+ used or freed.
+ * ggv/all of the above is courtesy of bug-spotting and coding skills of
+ Werner Koerner <Werner.Koerner@zae.uni-wuerzburg.de>.
+ * ggv/main.c (recent_update_menus): only allocate menu once, as only one
+ instance is required. free it upon completing menu updating. free the
+ label.
+ * ggv/configure.in: bumped version to 0.82.
+
+1999-12-11 Daniel M German <dmg@csg.uwaterloo.ca>
+
+ * ggv/Updated help/C/Makefile.am to make sure that help html files are
+ included in the distribution file.
+ * ggv/Released version 0.82
+
+1999-12-07 Daniel M German <dmg@csg.uwaterloo.ca>
+
+ * ggv/TODO: Added request to use gdk_pixbuf (might improve performance
+ in slow machines).
+
+1999-12-05 <dmg@csg.uwaterloo.ca>
+
+ * ggv/configure.in: bumped version to 0.81.
+
+ * ggv/Added command line options to the help file. Make sure the help
+ files are part of the distribution.
+
+ * ggv/main.c: commented code for save_as option. If somebody really
+ wants to save "as" then she can mark all the pages and then save
+ marked pages. Otherwise, it is just needed to implement a "copy"
+ from the source file to the destination file.
+
+ * ggv/ps.c (pscopyuntil): make sure we don't read beyond the end of
+ file.
+
+ * ggv/main.c (open_prefs_dialog): make sure the source file is the
+ uncompressed one (if the source file is compressed). Fixes bug in
+ which a "save pages" from a compressed file did not workx
+
+1999-12-03 Nat Friedman <nat@helixcode.com>
+
+ * ggv/bonobo-application-ps.c (view_size_query_cb): Removed.
+ (view_realize_cb): Removed call to deleted function
+ gnome_view_size_request.
+ (reload_all_views): Likewise.
+ (view_factory): Removed signal connect to "size_query" on the
+ View.
+
+1999-12-02 Daniel M German <dmg@csg.uwaterloo.ca>
+
+ * ggv/configure.in: created version 0.80
+
+ * ggv/prefs.c (load_prefs): ggv uses the shell to execute two
+ commands: one to convert from pdf to ps and another to
+ decompress. I protected the file names with " " so the file name
+ does not get interpreted by the shell. This has a disadvantage: if
+ the file name contains " then this will not work. Thanks to
+ Christian Hammers <ch@lathspell.westend.com> for the bug report.
+
+1999-11-30 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/ggvwindow.h (struct _ggv_window): added GtkWidget * members for
+ menu and popupmenu items for clearing and toggling pages.
+ * ggv/main.c: included <ctype.h> in order to get prototype for isdigit().
+ (load_gs, create_popup_menu, create_menus): set sensitivities for the
+ page marking items.
+ * ggv/ps.c: removed file_getTmpFileName() and replaced it with use of
+ tempnam() and g_get_tmp_dir().
+ * ggv/gtkgs.c (gtk_gs_cleanup): free all filenames and set them to NULL.
+ once again, thanx for discovering these bug and providing the fixes go
+ to Werner Koerner <werner.koerner@zae.uni-wuerzburg.de>.
+
+1999-11-28 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (start_intrepreter): pass filename of the uncompressed
+ file to gs if the original file was compressed.
+ (gtk_gs_load): return FALSE if the document could not be loaded -
+ this prevents segfaults when an empty document is loaded.
+ (set_up_page): set LC_NUMERIC locale to C before printing floats for
+ ghostscript and reset it back afterwards as ghostscript expects a
+ '.' decimal point while some european locales use ','.
+ * ggv/main.c (recent_update_menus): fixed occasional segfaults when
+ updating menus. also fixed a memory leak by freeing window_with_data
+ structures associated with menu items. don't translate the menu paths
+ as libgnomeui does that on the fly.
+ (recent_update): store files in a global list.
+ (recent_update_menus): don't free the list passed in as the parameter.
+ * ggv/ggvwindow.h (struct _ggv_window): changed recent_instantiated to
+ num_recent (if >0 then recent file menus have been instantiated).
+ * ggv/prefs.[ch]: removed gs_num_recent.
+ * ggv/thanx for reporting recent files list, compressed files and locale
+ problems and even sending patches for them go to Werner Koerner
+ <werner.koerner@zae.uni-wuerzburg.de>
+
+1999-11-21 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (load_gs): call recent_add().
+ (open_window): call recent_update() after successfully loading a
+ document.
+ * ggv/callbacks.c (file_open_ok_callback): remove call to recent_add(), as
+ we now call it from load_gs().
+
+1999-11-20 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (gtk_gs_load): call gtk_gs_clean() even if the
+ fname is NULL.
+ * ggv/callbacks.c (print_callback): if the loaded document was compressed
+ use the uncompressed temp file as the argument for the print command.
+ * ggv/main.c: fix setting the sensitivity of 'File' menu items.
+ (open_prefs_dialog): handle "changed" signal of all GtkEntries with
+ prefs_changed_callback(). this fixes a bug that caused new values to
+ be applied only if the user "activated" the entry by pressing Enter.
+ * ggv/ggvwindow.h: add printmarked member to struct _ggvwindow.
+
+1999-11-15 Yuri Syrota <rasta@renome.rovno.ua>
+
+ * ggv/configure.in (ALL_LINGUAS): Added Ukrainian (uk).
+
+1999-11-06 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/gtkgesture.c (gesture_data_append_point): fix leak.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.c (setup_pixmap): Fix leak +
+ flicker.
+
+ * gpdf/xpdf/GOutputDev.cc (~GOutputDev): Add clear of state stack +
+ clear text page + delete font. (startPage): fic gdkGC leaks.
+ (findColor): clean.
+
+1999-11-02 Daniel M German <dmg@csg.uwaterloo.ca>
+
+ * ggv/main.c, callbacks.c: Moved error message "not marked pages" in
+ saved_as before the file dialog
+ * ggv/ps.c: Added code to fix a "feature" of NT in which
+ code is added after the %%EndSetup and before
+ the first %%Page: x y. This code belongs to
+ the Setup.
+
+1999-10-26 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_popup_menus): add all the "Toggle *" items to the
+ popup menu.
+ (toggle_pages): return immediately if no document is loaded.
+ * ggv/foot.xpm, foot_white.xpm: change background to None.
+
+1999-10-26 Daniel M German <dmg@csg.uwaterloo.ca>
+
+ * ggv/Released version 0.70
+
+1999-10-24 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c (verb_*_page): check if a document
+ is loaded before turning the page.
+ * ggv/foot.xpm, foot_white.xpm: make the background transparent
+ instead of white.
+ * ggv/main.c, callbacks.c: removed some redundant marking code and
+ unneeded printouts.
+
+1999-10-24 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (set_page_sensitivities): enable the next button when
+ a non-structured document is loaded.
+ (load_gs): clear page list if a non-structured doc is loaded.
+
+1999-10-23 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (gtk_gs_load): set send_filename_to_gs to FALSE in case
+ of a structured doc. this fixes a nasty bug that caused ggv to
+ hang if a structured doc was loaded after a non-structured one.
+
+1999-10-21 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_menus): add a 'Print marked pages' item.
+ (save_marked_pages): a utility function that saves marked pages to
+ a file. copied code from file_save_ok_callback().
+ * ggv/callbacks.[ch] (file_save_ok_callback): call save_marked_pages().
+ (print_marked_pages_callback): save marked pages to a tmp file and
+ print them. does not unlink the tmp file.
+ * ggv/ggvwindow.h: renamed bRecentHasBeenInstantiated to
+ recent_instantiated.
+ * ggv/gtkgs.c (gtk_gs_marshall_signal_0): removed.
+ some formatting and var naming changes to make the code look nicer.
+
+1999-10-20 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c (view_factory): set a UIHandler to our
+ view.
+ (view_activate_cb): merge/remove view menus on (de)activation.
+ (view_next_page_cb, view_prev_page_cb, view_recenter_page_cb):
+ callbacks for view menus.
+
+1999-10-11 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/GOutputDev.cc: Re-enable stroke color setting.
+
+1999-10-08 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/gpdf.cc (container_new): add to list before possibly removing.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (destroy_embed): Quit on last
+ component close.
+ (load_pdf_from_stream): inline redraw-all with new API.
+ (redraw_view): implement (redraw_all): remove. (realize_mainbox):
+ remould.
+ (destroy_view): Fix serious memory corruption freeing pixmap
+ twice.
+ (view_activate): kill debug.
+
+1999-10-06 Peter Teichman <pat4@acpub.duke.edu>
+
+ * gpdf/xpdf/GOutputDev.cc: add return type for GOutputServerFont::isOk()
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: casting fixes, for compiling
+ with recent gcc
+
+ * gpdf/xpdf/PSOutputDev.cc: same, more casting fixes
+
+1999-10-06 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/BonoboStream.cc (bfseek): Add debug case.
+ (bfread): nail immense leak.
+
+ * gpdf/xpdf/gpdf.cc (container_set_view): Activate the component to
+ allow gestures to work.
+
+1999-10-05 Michael Meeks <mmeeks@gnu.org>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (setup_pixmap): Connect
+ gestures + add event mask.
+
+ * gpdf/xpdf/gpdf.cc (container_close): Created. (container_close_cmd):
+ Use it. Huge header clean.
+
+ * gpdf/xpdf/gtkgesture.[ch]: Create.
+
+1999-10-05 Jesus Bravo Alvarez <jba@pobox.com>
+
+ * ggv/configure.in (ALL_LINGUAS): Added Galician (gl).
+
+1999-09-20 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.[ch]: removed all traces of non-existant foo() signal ;).
+ add an "interpreter_message" signal that gets called with lines of
+ interpreter output as a parameter. the default handler simply frees
+ the space allocated for message. seems like a nice way to pass
+ interpreter errors to the widget user.
+ * ggv/callbacks.[ch]: new files. moved all callbacks here from main.c
+ since it was growing too large.
+ (interpreter_message_callback): popup an error message with
+ interpreter output. line by line unfortunately :(
+ changed all instances of _cb to _callback - for consistency ;)
+ * ggv/main.c: make some variables non-static in order to be accessed
+ from callbacks.c. make all functions non-static.
+ * ggv/ggvwindow.h: add enums and declarations of variables and functions
+ shared by main.c and callbacks.c.
+ * ggv/Makefile.am: add callbacks.c to build process.
+
+1999-09-19 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c: added some checks if the widget is realized before calling
+ set_up_page(). removed some commented-out messages and improved the
+ looks of some parts of the code.
+ (gtk_gs_goto_page): pass a duplicated gs_filename gtk_gs_load() as
+ gs_filename is freed in gtk_gs_load() before parameter is used.
+ * ggv/bonobo-application-ps.c (verb_next_page, verb_prev_page): make them
+ proper GnomeViewVerbFuncs.
+ (view_factory): register verbs. connect realize signal handler to
+ GtkGS in order to load and display document at realization time if it
+ has been loaded before the view was created. connect size_query signal
+ handler to the view.
+ (view_realize_cb): render & display the document.
+ (view_button_press_cb): popup verbs on button 3 click.
+ (view_size_query_cb): ask for as much space as GtkGS needs...
+ (stream_read): removed old code as I've implemented _Stream_copy_to()
+ ages ago.
+ (load_ps_from_stream): move view updating here from stream_read().
+ (update_all_views): renamed to reload_all_views(), as this is really
+ what it does.
+
+1999-09-13 Karl Eichwalder <ke@suse.de>
+
+ * ggv/main.c (create_menus): Add accel key for "Save As..."
+ (cf. gnumeric).
+
+ * ggv/main.c (about_callback): Fix typo.
+ * ggv/main.c (about_callback): Fix another one: It's PostScript, but
+ Ghostscript (note the case of "...script") ;)
+ * ggv/main.c (open_prefs_dialog): Ditto.
+
+1999-09-11 Michael Meeks <michael@nuclecu.unam.mx>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (destroy_view): destroy don't
+ unref, make more paranoid add debug. (destroy_embed): Clean.
+
+ * gpdf/xpdf/gpdf.cc (key_press_event_cb): Added all manner of
+ shortcuts.
+ (container_new): Add key stuff (container_destroy_cb): Implement.
+ (container_destroy): Add paranoid check.
+
+1999-09-08 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/ggvwindow.h: it is plain ugly to define and not only declare a
+ GdkCursor in a header file, so I removed the definition.
+ * main.c (pan_cursor): define static GdkCursor *pan_cursor;
+ (create_popup_menus): make #defines for indexes of relevant items
+ in the popupMenu[] array in order to avoid sensitivity setting
+ mayhem that followed when someone inserted new items in the menu.
+ * ggv/bonobo-application-ps.c (pan_cursor): same as above.
+ (verbs, embeddable_factory): sync with bonobo verb changes.
+ (view_factory): remove call to set_prefs() and instead duplicate
+ most of its code, as it was changed to take ggvwindow* as parameter
+ instead of GtkGS*. next time I'd appreciate if people checked how
+ bonobo parts compiled before comitting their changes.
+ * ggv/application-ps.gnorba: brought up-to-date.
+
+1999-09-07 Tomas Ogren <stric@ing.umu.se>
+
+ * ggv/main.c: Fixed a typo
+
+1999-09-07 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/gpdf.cc (container_new): Fiddled with scrollpane
+
+1999-09-07 <dmg@csg.uwaterloo.ca>
+
+ * ggv/main.c: updated authors
+
+1999-09-06 Daniel M. German <dmg@csg.uwaterloo.ca>
+
+ * ggv/main.c, added ggvwindow.h, prefs.h, prefs.c
+ Modified prefs so they apply to the ggv_window
+ instead of gs, since some options apply to the former.
+
+1999-09-06 Andreas Persenius <andreas@alfaskop.net>
+
+ * ggv/main.c, prefs.h, prefs.c:
+ Added the option to jump at the beginning of a page when
+ scrolling with pageup, page down.
+
+1999-09-03 Miguel de Icaza <miguel@nuclecu.unam.mx>
+
+ * ggv/main.c (about_callback): Use the imlib visual for displaying the
+ image loaded with imlib. Fixes crashes on multi-depth visuals.
+
+1999-09-03 Andreas Persenius <andreas@alfaskop.net>
+
+ * ggv/main.c:
+ Adds ... to File/Open
+ Removes ... from File/Print... since no dialog comes up.
+ Sets the cursor position to 0 in the text entrys in the preferences
+ dialog.
+
+1999-09-03 Daniel M. German <dmg@csg.uwaterloo.ca>
+
+ * ggv/prepared version 0.61
+ * ggv/main.c, gtkgs.c, ps.c
+ Finished support to save marked pages.
+
+1999-09-02 Matthias Warkus <mawa@iname.com>
+
+ * ggv/ggv-splash.png: Added beautiful image for about widget.
+
+1999-09-01 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Fix a massive leak :-).
+ Considerably simplified with GtkPixmap. Fixed location problems.
+
+1999-08-29 Miguel de Icaza <miguel@gnu.org>
+
+ * ggv/main.c (escape_underlines): Include escape_underlines (copies
+ from mc/gnome/gpopup2.c).
+ (recent_update_menus): Escape file names from underlines.
+
+1999-08-27 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc: Remove count of embeddable
+ servers: seems to be handled inside Bonobo now.
+
+1999-08-27 Karl Eichwalder <ke@suse.de>
+
+ * ggv/ggv.spec.in: Minor fixes.
+
+1999-08-27 Karl Eichwalder <ke@suse.de>
+
+ * ggv/ggv.desktop (Comment): PostScript vs. Ghostscript. Typo.
+
+1999-08-27 <dmg@csg.uwaterloo.ca>
+
+ * ggv/gtkgs.c,main.c: Finished support for selecting pages
+ * ggv/ps.c: Started implementation of saving selected pages
+ * ggv/foot.xpm, foot_white.xpm: Added the pixmaps for the marks
+
+1999-08-26 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/gpdf.cc (component_destroy): Improved clean up.
+
+ * gpdf/xpdf/bonobo-application-x-pdf.cc (bed_free_data): Expand, and
+ clean; remove redundant pdf_stream delete.
+
+1999-08-25 <dmg@csg.uwaterloo.ca>
+
+ * ggv/main.c: Starting adding support to select individual pages
+ * ggv/main.c: Added fullscreen command line option
+
+1999-08-24 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/application-x-pdf.gnorba: Update to new mime type.
+
+ * gpdf/xpdf/Makefile.am (gnorba_DATA): Rename mime type.
+ Remove glade.
+
+ * gpdf/xpdf/gpdf.cc (main): File up a container if we fail to load any
+ of the command line files.
+
+1999-08-24 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/Makefile.am: Cleaned + added thread bits.
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc: Add locking round 'xref' global.
+ Remove CORBA_Environment global.
+
+1999-08-24 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc (bed_free_data): Rationalised Stream
+ duplicate / release, and scoped BonoboFile correctly.
+
+ * gpdf/xpdf/BonoboStream.cc (bfseek): Add init / free to all corba
+ exceptions, ( stupidly lost this code somehow ).
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc (render_page): Add startDoc.
+ (main): Add freeParams.
+
+1999-08-24 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/configure.in: Removed check for Glade.
+
+ * gpdf/Makefile.am (gpdf.*): Renamed from xpdf.*
+
+1999-08-24 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/configure.in: Add EXTRA_GLIB_LIBS/CFLAGS to include thread
+ support.
+
+1999-08-24 <dmg@csg.uwaterloo.ca>
+
+ * ggv/prepared version 0.51
+ * ggv/Added MAINTAINERS file
+ * ggv/gtkgs.c: Now it _deletes_ temporal files :)
+ * ggv/main.c: Added geometry, spartan and nomenubar command line options
+ and support for them
+ * ggv/main.c: Add .ps or .pdf extension if not specified in the command line
+ * ggv/ps.c: changed all free and mallocs to their gnome counterparts
+
+1999-08-23 Miguel de Icaza <miguel@gnu.org>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc: Replace exit() with gtk_main_quit()
+
+1999-08-23 Miguel de Icaza <miguel@gnu.org>
+
+ * ggv/bonobo-application-ps.c (embeddable_factory): Adapt to current Bonobo.
+
+1999-08-23 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/gpdf.cc (container_launch_component): Fix flags.
+ (container_create_toolbar): Fix for new Bonobo.
+
+1999-08-23 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/Makefile.am: Added helper programs back in.
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc (view_create_menus): Toolbars.
+
+1999-08-23 <dmg@csg.uwaterloo.ca>
+
+ * ggv/Started support for command line options
+ * ggv/Close window is now active
+
+1999-08-22 Nat Friedman <nat@gnome-support.com>
+
+ * ggv/bonobo-application-ps.c (main): Use bonobo_main.
+
+1999-08-22 Miguel de Icaza <miguel@gnu.org>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc (main): Add error checking for
+ factory registration.
+
+1999-08-22 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc: Add zoom.
+
+1999-08-22 Herbert Valerio Riedel <hvr@hvrlab.dhs.org>
+
+ * ggv/main.c: changed type of data in struct _window_with_data to
+ pointer (caused problems when sizeof(gpointer) > sizeof(gint) -
+ eg. on alphas...)
+
+1999-08-21 Herbert Valerio Riedel <hvr@hvrlab.dhs.org>
+
+ * ggv/Makefile.am: integrated spec file
+ * ggv/ggv.spec.in: reworked spec file, based on old ggv.spec
+ * ggv/configure.in: added ggv.spec.in to AC_OUTPUT
+ * ggv/ggv.spec: removed, as it is autogenerated now
+
+1999-08-20 Daniel M. German <dmg@csg.uwaterloo.ca>
+
+ * ggv/prepared version 0.50
+ * ggv/removed debug messages
+ * ggv/added support for most recently used documents
+ * ggv/it deletes temporal files now
+
+1999-08-19 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/PDFDoc.cc: Altered to read / write lines.
+
+ * gpdf/xpdf/PDFDoc.cc: Move FileStream::checkHeader so its called in
+ FileStream constructor.
+
+1999-08-18 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/gpdf.cc: cloned from test-container.
+ (launch_server): use GOAD_ACTIVATE_SHLIB not '0'
+
+1999-08-16 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/Makefile.am (bin_PROGRAMS): Hack to only make bonobo
+ component.
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc (view_factory): Init all members.
+
+1999-08-15 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/Now bonobo-image-x-pdf works, but everything else is
+ broken: use
+
+ make bonobo-image-xpdf to compile...
+
+1999-08-11 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc: Fixed innumerable bugs, some in
+ bonobo :-)
+ (load_image_from_stream): Try closing the file to let its contents
+ hit disk before reading from it :-)
+ (configure_size): Don't get scared by configure_size.
+ (redraw_view): Get the parameters in some sort of order.
+
+1999-08-11 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/bonobo-image-x-pdf.cc: Added.
+
+ * gpdf/xpdf/Makefile.am: added bonobo-image-x-pdf.c
+
+1999-08-03 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/gpdf.cc: Lots of updates, gives up on logging changes
+ ( for a bit. )
+
+1999-08-02 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/GOutputDev.cc: Fix more silly region merging bugs.
+
+1999-08-01 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/Makefile.in: Added -lglade, -lglade-gnome & Added -Wall
+
+ * gpdf/xpdf/gpdf.glade: Added.
+
+ * gpdf/xpdf/gpdf.cc (loadFile): Add typecast.
+ Remove all DOC_ROOT's magic numbers.
+ Add glade GUI,
+ Lots of other bits ...
+
+1999-07-29 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/GOutputDev.cc: Hahaaa... the bug ! :-) A difference in how
+ GDK / X deal with merging rectangles and regions. Good.
+
+ * gpdf/xpdf/gpdf.cc (doc_redraw_event): Messing around.
+
+ * gpdf/xpdf/GOutputDev.cc (drawChar): Fix char printed as string.
+
+1999-07-13 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/application-ps.gnorba: use GNOME/Embeddable*.
+ * ggv/main.c (load_gs): if the loaded document is the same as the one
+ viewed, don't reset the page to 0.
+ (set_gs_prefs): really reload the document.
+ (print_callback): use gnome_execute_shell()
+ * ggv/prefs.c (load_prefs): add %s to the default printing command.
+
+1999-07-11 Tomas Ogren <stric@ing.umu.se>
+
+ * ggv/gtkgs.c: Process events to keep the UI somewhat alive..
+
+1999-07-09 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Fix some cvsignores
+
+1999-07-08 Daniel M. German <dmg@csg.uwaterloo.ca>
+
+ * ggv/ps.c, gtkgs.c There seem to exist some PostScript documents that
+ do not have !PS at the beginning. Heck, they have nothing. For example,
+ I was trying to read a file that started with:
+
+ %! coverpage
+
+ /beginword % Usage: str x y beginword
+ {
+ ...
+
+ Even if a remove the line with %! it is still a valid PostScript
+ file.
+
+ Sooo, I decided (temporarily at least) to do what gv does: pass
+ the file to GhostScript in the hope that it will be able to deal
+ with it. The current error messages are sent to stderr. We should
+ handle them in a nicer way.
+
+1999-07-08 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/From: Alexander Savelyev <fano@alfacom.net>
+ patch to fix small buglet
+
+1999-07-08 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Add keystrokes to menu entries.
+
+1999-07-08 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Fixed my own caused bug - accelerators should
+ work again.
+
+1999-07-03 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * ggv/gtkgs.c fixed a bug that froze the
+ interface whenever a encapsulated postscript
+ file was displayed.
+ * ggv/main.c added functionality to the file_open_window
+ it now uses the directory where the current
+ document is as the default directory.
+
+1999-07-02 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Add '+' and '-' keys for zoom in & out
+ * ggv/clean up key_pressed_event_callback by moving out the
+ stop_emit
+
+1999-07-02 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Allow the prefix to be just %!PS, not just %!PS-Adobe.
+ Many files have just that.
+
+1999-06-25 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/test-container.c: removed. it was just another nuisance
+ that had to be updated all the time. test-container-autoload
+ from bonobo package will do for testing the component.
+ * ggv/Makefile.am: updated to reflect the above.
+
+1999-06-22 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * ggv/main.c Improved the file open window. It does not close
+ if the selected file is a directory or if the
+ file does not exist. It now handles wildcards in the
+ file name.
+
+1999-06-22 Nat Friedman <nat@gnome-support.com>
+
+ * ggv/test-container.c: Use gnome_bonobo_object_client_free_verbs
+ instead of gnome_bonobo_object_free_verbs. Ditto with
+ gnome_bonobo_object_client_get_verbs and
+ gnome_bonobo_object_client_do_verb.
+
+ * ggv/bonobo-application-ps.c (view_factory): Accept the ViewFrame as
+ a parameter.
+
+1999-06-22 Matt Loper <matt@gnome-support.com>
+
+ * ggv/bonobo-application-ps.c (bonobo_object_factory): Changed to
+ eliminate need for path, and to reflect GnomeBonoboObjectFactory
+ -> GnomeComponentFactory change. Return GnomeObject instead of
+ GnomeBonoboObject.
+
+1999-06-21 <dmg@csg.uwaterloo.ca>
+ * ggv/Contributed to the help
+
+1999-06-20 <dmg@csg.uwaterloo.ca>
+
+ * ggv/Released version 0.40
+ * ggv/Fixed pt_BR.po
+
+1999-06-18 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_ggv_window): fix toplevel sizing.
+
+1999-06-16 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (hide_menubar_callback): becomes show_menubar_callback.
+ (hide_toolbar_callback): becomes show_panel_callback.
+ (show_menubar_callback): small fix to properly enable the togglebuttons
+ when the menus are not created upon startup.
+ * ggv/main.c, prefs.[ch]: changed gs_toolbar to gs_panel.
+
+1999-06-15 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c: take care of the reload item sensitivity. turn hide/show items
+ into toggleitems. some general work on code aesthethics.
+
+1999-06-14 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/test-container.c: use new convenience functions for handling
+ the verbs instead of using CORBA functions.
+ * ggv/bonobo-application-ps.c: use the GNOME_Stream_copy_to() function,
+ as I've just implemented it for GnomeStreamFS in bonobo.
+
+1999-06-12 Daniel M. German <dmg@csg.uwaterloo.ca>
+
+ * ggv/Added pt_BR.po, contributed by Lalo Martins <lalo@webcom.com>
+
+1999-06-09 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Help file small edit
+
+1999-06-09 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/gpdf.cc (main): Add error init.
+
+1999-06-06 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (gtk_gs_load): set document size parameters to 0.
+ * ggv/main.c (create_menus): added tooltip strings to UI items. install
+ menu hints.
+ (load_gs): report some status via appbar flashes.
+ (create_ggv_window): add a statusbar.
+
+1999-06-05 Tomas Ogren <stric@ing.umu.se>
+
+ * ggv/configure.in: Add sv to ALL_LINGUAS
+
+1999-06-05 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c (gtk_gs_load): don't try to print out page order
+ unless we've successfully loaded the document.
+
+1999-06-04 Sergey Panov <sipan@mit.edu>
+
+ * configure.in: Add ru to ALL_LINGUAS
+
+1999-06-03 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/GOutputDev.cc (GOutputDev): Actually set up pixmapW & H
+ (GOutputDev): Setup 'depth' correctly.
+
+ * gpdf/xpdf/gpdf.cc (main): Moved freeParams() to after the main loop !
+
+ * gpdf/xpdf/Params.cc (initParams): Added assert on fontPathLen.
+ (freeParams): Clean global pointers on free.
+
+ * gpdf/xpdf/Makefile.in (CXXFLAGS): Added LTKSRCDIR and Xpm_CFLAGS to
+ CXXFLAGS.
+
+1999-06-02 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_menus): moved show/hide menubar/side panel to
+ settings menu. disable the menu items that do nothing yet.
+ (print_callback): print by system()ing a command on the ps file.
+ usually, this would be lpr.
+ (open_prefs_dialog): add a Printing page, letting the user specify
+ the command used to print files.
+ * ggv/prefs.[ch]: added preferences for printing command.
+ * ggv/help/C/ggv.sgml: describe the menus and the new printing feature.
+ * ggv/configure.in: check if we have lpr's path for default print
+ command.
+
+1999-06-01 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c, test-container.c: respect recent
+ changes to the Verbs interface (no more verb codes).
+
+1999-05-31 Matt Loper <matt@gnome-support.com>
+
+ * ggv/application-ps.gnorba: Changed two goad_id's and one repo id to
+ reflect the Component -> BonoboObject namechange.
+
+ * ggv/test-container.c: Changed minor things to reflect Component ->
+ BonoboObject renaming.
+
+ * ggv/bonobo-application-ps.c: Changed comment to reflect
+ renaming. Changed component_data_t typedef to
+ bonobo_object_data_t.
+ (bonobo_object_destroy_cb): Renamed component_destroy_cb function
+ to bonobo_object_destroy_cb.
+ (bonobo_object_factory): Renamed component_factory function to
+ bonobo_object_factory.
+
+1999-05-31 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (struct _ggv_window): add prev[item|pu] and next[item|pu]
+ members that point to Next/Prev page [popup]menu items. use these
+ for setting their sensitivity.
+ (set_page_sensitivities): new function to set sensitivity of all
+ next/prev widgets (buttons, menuitems) properly.
+ (select_page_callback, goto_page): use the above.
+ (create_popup_menu): add zoom in/out items.
+ * ggv/help/C/ggv.sgml: some changes to make english look more english ;)
+ added another chapter on the preferences.
+
+1999-05-30 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (goto_page): set prev/next button sensitivity properly.
+ (about_callback): added myself to the authors ;)
+ * ggv/bonobo-application-ps.c (component_factory): add some verbs
+ to our component and connect a handler for do_verb signal.
+ gtk_object_set_data() our component_data to the actual
+ GnomeComponent as we'll need this in do_verb_cb().
+ (do_verb_cb): handler for do_verb signal.
+ * ggv/test-container.c (add_verb): add an item with the verb
+ name to Verbs menu. connect "activate" signal handler and
+ gtk_object_set_data() the GnomeComponent that the verb was
+ acquired from to the item.
+ (add_cmd): get component's verb list and create menu items
+ with their names in Verbs menu.
+ (verb_cb): get the GnomeComponent that the verb was acquired from
+ using a gtk_object_get_data() and do a GNOME_Component_do_verb()
+ on it with verb_name set to NULL as we don't pass it to the
+ callback.
+
+1999-05-29 Michael Meeks <michael@edenproject.org>
+
+ * gpdf/xpdf/Makefile.in (GPDF_OBJS): Remove XOutputDev
+ (all): Remove all but gpdf.
+
+ * gpdf/xpdf/gpdf.cc: Add define GString / undef.
+ (main): Argc not Argv :)
+
+ * gpdf/xpdf/GOutputDev.cc (findColor): Made pigs ear of colour
+ mappings.
+
+1999-05-28 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/GOutputDev.cc (drawChar16): XChar2b -> GdkWChar
+
+1999-05-28 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * gtkgs.c
+ * ggv/gtkgs.h
+ * ggv/main.c
+ Added support for non structured documents. It still
+ requires testing.
+ * ggv/main.c
+ Disable buttons when document has not been opened
+ Enable buttons once it has been open
+ Disable prev page in structured documents
+
+1999-05-27 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/xpdf/GOutputDev.cc (GOutputFont): Hacks.
+ (GOutputFont): Renamed.
+ (getFont): killed redundant 'display'
+ getGdkFont not getXFont.
+ (GOutputDev): NB. colormap -> gtk_widget_get_default_colormap ()
+ which returns GdkColormap *, killed colormap & depth1 in prototype.
+ Removed redundant assigns.
+ NB. Miguel says 'miguel> michael: a GdkPixmap is a GdkWindow'
+ Many misc. fixes upto convertSubPath.
+
+ * gpdf/xpdf/GOutputDev.h: Comments 'G'd and GOutputDev updated.
+ XPoint -> GdkPoint
+
+ * gpdf/xpdf/Makefile.in (CXXFLAGS): Add GOOSRCDIR.
+
+1999-05-27 Michael Meeks <michael@imaginator.com>
+
+ * gpdf/README.CVS: Elucidated the GPL nature of xpdf.
+
+1999-05-27 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c (main): remove hardcoded GtkGS
+ instead load GS configuration from /bonobo-application-ps/...
+ * ggv/prefs.[ch] (load_prefs, save_prefs): pass prefix as a parameter
+ to enable loading prefs for both ggv and bonobo component.
+ (set_prefs): apply prefs to a GtkGS widget.
+ * ggv/ps.h: enclosed in #ifndef __GGV_PS_H__/#endif.
+ * ggv/main.c: respect changes to prefs.[ch].
+ * ggv/test-container.c: activate component after creating the view so
+ that it can receive mouse events.
+ * ggv/Makefile.am: share prefs sources between ggv and bonobo component.
+
+1999-05-27 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/bonobo-application-ps.c: new file. a bonobo component that
+ displays postscript via gtkgs widget.
+ * ggv/test-container.c: a test container app for bonobo component.
+ stolen from bonobo source tree.
+ * ggv/configure.in: check for bonobo.
+ * ggv/Makefile.am: if bonobo is present, build ps component and
+ test-container.
+ * ggv/application-ps.gnorba: gnorba file for the component. note that
+ none of the bonobo stuff is installed yet. to use the component,
+ you have to copy bonobo-application-ps somewhere in your PATH and
+ the .gnorba file to $prefix/etc/CORBA/servers and run test-container.
+
+1999-05-26 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Start a help file
+
+1999-05-24 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkscrollpane.c (gtk_scrollpane_update_slider_size): fixed
+ the size calculation code. gdk_window_move_resize() works as it
+ should now.
+ (gtk_scrollpane_motion_notify): fixed this also.
+
+1999-05-23 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/Implement the zoomin/zoomout buttons and change to using
+ magsteps.
+ * ggv/Prevent the scrollpane from growing indefinitely (odd bug,
+ now commented out as FIXME in gtkscrollpane.c)
+
+1999-05-23 Tuomas J. Lukka <lukka@iki.fi>
+
+ * ggv/main.c : add zoomin, zoomout buttons. We need gnome stock
+ buttons for these!
+ The buttons don't do anything yet, though: we need to
+ make the variable have a reasonable meaning (I'd prefer magstep,
+ opinions?)
+
+1999-05-23 Jaka Mocnik <jaka-mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (main): load preferences BEFORE opening files from
+ command line arguments.
+
+1999-05-20 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/prefs.[ch]: added preferences for toolbar and menubar
+ visibility.
+ * ggv/main.c (open_prefs_dialog): new Layout properties page for
+ the above settings.
+ (button_press_callback, button_release_callback):
+ moved commented out cropping code to middle-button click and
+ assigned left-button to start panning.
+ (motion_callback): pan if left mouse button is pressed.
+ * ggv/gtkgs.[ch] (gtk_gs_scroll): new public function to scroll the
+ visible parts.
+ * ggv/gtkscrollpane.h: added in_slider member. set to true when
+ pointer is in the slider window.
+ * ggv/gtkscrollpane.c: respect themes. fixed size requisition signal
+ handler.
+
+1999-05-20 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c: some sanitizing of cases when a document can't be loaded.
+ * ggv/gtkgs.c: hide gs target window when a document can't be loaded and
+ show it when a document is successfully loaded.
+ * ggv/gtkscrollpane.c: fixed a bug in expose signal handler that caused
+ the shadow around the trough not to be redrawn.
+
+1999-05-19 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_ggv_window): cosmetics. removed the frame
+ around "sidebar" and added one around GtkGS widget.
+ (hide_menubar_callback): fixed.
+ (reload_callback): fixed.
+ (set_gs_prefs, apply_gs_prefs): new functions for setting
+ preferences for a single and all open GtkGS widget.
+ (open_prefs_dialog): a dialog for setting preferences.
+ * ggv/gtkscrollpane.c (gtk_scrollpane_update_slider_size):
+ fixed a bug that caused the scrollpane to require more space
+ with each size_request signal.
+ * ggv/prefs.[ch]: new files; loading and saving of preferences.
+ * ggv/gtkgs.[ch]: changed members gs_gs_cmd_scan_pdf to gs_scan_pdf_cmd
+ and gs_uncompress_command to gs_uncompress_cmd.
+ (gtk_gs_set_pagemedia): changed the interface a bit.
+ * ggv/ps.[ch]: add a #define PAPER_SIZE_COUNT in order to use papersizes[]
+ in prefs dialog.
+ * ggv/Makefile.am: added prefs.[ch] to ggv sources.
+
+1999-05-18 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (create_menus): use gnome-app-helper stuff where
+ appropriate. restructured the menus a bit.
+ (create_popup_menus): use gnome-popup-menu for this.
+ (about_callback): cosmetics.
+ (file_open_destroy_callback): in order to reflect its use,
+ changed to file_open_cancel_callback.
+ (file_open_delete_callback): new handler for file selection's
+ delete event.
+ (struct _ggv_window, open_callback, file_open_ok_callback,
+ file_open_cancel_callback): use ggv->file_sel instead of a
+ global file_sel.
+ * ggv/gtkscrollpane.c (gtk_scrollpane_size_request): make it work
+ as it should.
+
+1999-05-17 Tuomas J. Lukka <lukka@iki.fi>
+ * ggv/main.c: factor out goto_page and make it jump in the list if
+ the entry is not visible.
+ * ggv/Update fi.po
+
+1999-05-06 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/main.c (struct _ggv_window): put _window_with_data arrays
+ for menus here instead of dynamically allocating it.
+ (open_window, close_window): new helper functions to open and close
+ ggv windows.
+ (create_menus, new_callback): add a "New Window" item to "File"
+ menu to open a new window.
+ (delete_callback): new function, called instead of exit_callback()
+ on window delete_events.
+ (close_cmd): becomes close_callback().
+ (create_ggv_window): make windows accept dropped files.
+ (drop_callback): new function: load files dropped on a window.
+ also g_free() what needs to be freed all over the code.
+
+1999-05-05 Jaka Mocnik <jaka.mocnik@kiss.uni-lj.si>
+
+ * ggv/gtkgs.c: add checks if the GtkGS widget is realized before
+ calling gtk_gs_munge_adjustments() preventing segfaulting due
+ to moving and resizing a non-existant window.
+
+1999-04-23 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * ggv/gtkscrollpane.h, gtkscrollpane.c
+ I modified the API for scrollpane in order to
+ replace scroll up, scroll down, scroll left
+ and scroll right with one function:
+ gtk_scrollpane_step.
+ Added scroll_page_goto_edge
+ Added wrapping option to scrolling, this
+ allows the user to move from one page to another
+ when pressing space or backspace
+ * ggv/main.c
+ Replace calls to scrolling functions for new functions
+ When scrollign through document (space), it moves
+ the pane to the top corner in a new page. Backspace
+ should be modified accordingly. New functions allows
+ to write less code when handling different orientations.
+ The idea is to have less repetion of code. The API for scrolling
+ might change again in order to accomodate this.
+
+1999-04-22 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * ggv/main.c
+ * Changed 'q' accelerator to Ctrl-Q, which is the
+ GNOME standard. I also changed the location of the
+ quit accelerator to the menu definition, so it
+ uses the proper callback.
+ * ggv/Added other accelerators to the menu
+
+1999-04-22 Tuomas J. Lukka <lukka@iki.fi>
+ * ggv/Add the 'q' accelerator for getting out a la ghostview.
+ * ggv/Add size requests to try to behave well
+ * ggv/Add a scrollbar (scrolled_window) around the page list
+
+1999-04-15 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * ggv/main.c
+ It now kills all windows before exiting (exit_callback), ergo
+ no gs process are left running.
+ o
+
+1999-04-14 Daniel M. German <dmg@csg.uwaterloo.ca>
+ * Released version 0.30
+ * ggv/gtkgs.c, gtkgs.h
+ Fixed the bad bug in which GS stopped processing input.
+ The "truly bad hack" is history (I hope :)
+
+1999-04-09 Shooby Ban <bansz@szif.hu>
+ * ggv/Added hungarian translation
+
+1999-03-28 Tuomas J. Lukka <lukka@iki.fi>
+ * ggv/Add fi to all_linguas
+ * ggv/set usize of scrollpane in main.c
+ * ggv/Fix gtk_gs bug: the adjustments were not set properly
+ since size_allocate was called when gs->width was
+ not yet set. My fix needs to be looked at.
+ The scrollpane now works.
+ * ggv/Does not allocate full document size any more - this
+ is bad because it goes over screen size easily.
+
+1999-03-28 Tuomas J. Lukka <lukka@iki.fi>
+ * ggv/Fix desktop fi entry
+
+1999-03-13 Daniel M. German <dmg@csg.uwaterloo.ca
+ * ggv/main.c
+ Added error handling when loading file
+ Fixed bugs and finished support for multiple windows (only
+ from command line)
+ Automatic resizing when opening files
+ Page up (next page) and page down (prev page) reversed to mimic
+ ghostview behaviour
+ Modified zoom menu and (and simplified) zoom callback to reflect
+ ghostview options (1/10, 1/8, 1/4, 1/2, 1/1.44, 1/1, etc)
+ * ggv/gtkgs.c
+ Fixed zooming bug
+
+1999-02-25 Jonathan Blandford <jrb@redhat.com>
+
+ * ggv/ggv.desktop (Comment): added German translation by Matthias
+ Warkus.
+
+1998-11-28 Raja R Harinath <harinath@cs.umn.edu>
+
+ * ggv/main.c (create_ggv_window):
+ Remove call to deleted function `gtk_clist_set_policy' which
+ was non-functional anyway. (xref gtk+/ChangeLog:
+ Wed Nov 19 01:22:42 1998 Tim Janik <timj@gtk.org>).
+
+ * ggv/gtkgs.c (gtk_gs_init):
+ Removed setting of the GTK_BASIC flag (xref gtk+/ChangeLog:
+ Wed Nov 18 22:54:36 1998 Tim Janik <timj@gtk.org>).
+
+1998-11-10 Raja R Harinath <harinath@cs.umn.edu>
+
+ * ggv/configure.in (paths.h): New check.
+ (GS_PROG): Check for the full path of `gs'.
+ (GS_PATH): New #define, defined to GS_PROG.
+ * ggv/acconfig.h (GS_PATH): New define.
+ * ggv/file.c: Protect inclusion of `paths.h' with HAVE_PATHS_H.
+ * ggv/gtkgs.c (gtk_gs_init): Don't hardcode "/usr/bin/gs", use the
+ discovered GS_PATH.
+ From "Brandon S. Allbery" <allbery@ece.cmu.edu>.
+
+1998-08-12 Nuno Ferreira <nmrf@rnl.ist.utl.pt>
+
+ * ggv/configure.in (ALL_LINGUAS): Added Portuguese translation after
+ the split of gnome-graphics.
+
+Fri Aug 7 11:54:03 1998 Jonathan Blandford <jrb@redhat.com>
+ * ggv/main.c: commented out crop code temporarily.
+ * ggv/when it works correctly, i'll uncomment it... (:
+
+1998-08-07 Nuno Ferreira <nmrf@rnl.ist.utl.pt>
+
+ * ggv/ggv.desktop: Added Portuguese translation.
+
+Wed Jul 29 18:19:12 1998 Jonathan Blandford <jrb@redhat.com>
+ many changes. A bit more stable now.
+ * ggv/main.c: Added support for key presses and some mouse click support.
+ * ggv/gtkscrollpane.c (gtk_scrollpane_update_slider_size): fixed a big bug.
+ * ggv/gtkgs.c: fixed many bugs.
+
+Mon Jul 27 14:50:28 1998 Tom Tromey <tromey@cygnus.com>
+
+ Some `-ansi -Wall -Wmissing-declarations' fixes:
+ * ggv/gtkgs.c (catchPipe): Now static.
+ (start_interpreter): Removed unused variables.
+ Include <sys/types.h>, <sys/wait.h>, and <stdio.h>.
+ (gtk_gs_goto_page): Removed unused variable.
+ (is_interpreter_ready): Now static.
+ (is_interpreter_running): Likewise.
+ * ggv/file.c: Turned C++ comments into C comments.
+ * ggv/file.h (file_getTmpFilename): Fixed declaration to match
+ definition.
+ * ggv/ps.c: Include "file.h", <glib.h>.
+ (file_getTmpFilename): Argument now const.
+ (get_next_text): Renamed from `gettext' to avoid clash with GNU
+ gettext.
+
+ Added gettext and argument parsing:
+ * ggv/main.c (startup_files): New global.
+ Include <config.h> first.
+ (parse_an_arg): New function.
+ (parser): New structure.
+ (main): Pass parser to gnome_init.
+ (orientationMenu2): Wrapped strings with N_.
+ (fileMenu): Likewise.
+ (documentMenu): Likewise.
+ (helpMenu): Likewise.
+ (mainMenu): Likewise.
+ (about_callback): Use _() around user-visible strings.
+ (open_callback): Likewise.
+
+Fri Jul 10 20:10:37 Jonathan Blandford <jrb@redhat.com>
+
+ * ggv/rewrite of ggv. many files removed. some added.
+ following files have been added: TODO, main.c, gtkgs.c, gtkgs.h
+ gtkscrollpane.h gtkscrollpane.c
+ ggv is no longer nearly as dependent on the old ghostview code
+ any more.
+
+1998-08-07 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ Split of gnome-graphics into ee and ggv modules:
+
+ * ggv/autogen.sh:
+ * ggv/configure.in:
+ * ggv/Makefile.am: Adjusted for new ggv module.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..54caf7c
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,229 @@
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..afb1c96
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,5 @@
+SUBDIRS = cut-n-paste data lib shell viewer po
+
+intltool_extra = intltool-extract.in intltool-merge.in intltool-update.in
+
+EXTRA_DIST = $(intltool_extra)
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/README
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..7eaf1f1
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="evince"
+
+(test -f $srcdir/configure.ac) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level $PKG_NAME directory"
+ exit 1
+}
+
+which gnome-autogen.sh || {
+ echo "You need to install gnome-common from the GNOME CVS"
+ exit 1
+}
+
+USE_COMMON_DOC_BUILD=yes REQUIRED_AUTOMAKE_VERSION=1.8 USE_GNOME2_MACROS=1 . gnome-autogen.sh
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..6a45bb0
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,121 @@
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT(evince, 0.1.0)
+AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
+
+dnl make sure we keep ACLOCAL_FLAGS around for maintainer builds to work
+AC_SUBST(ACLOCAL_AMFLAGS, "$ACLOCAL_FLAGS")
+
+AM_CONFIG_HEADER(config.h)
+
+AM_MAINTAINER_MODE
+
+AM_PROG_LIBTOOL
+
+AC_ISC_POSIX
+AC_PROG_CC
+AM_PROG_CC_STDC
+AC_PROG_CXX
+AC_STDC_HEADERS
+AC_PROG_RANLIB
+AC_PROG_INTLTOOL
+
+ALL_LINGUAS="de"
+
+AM_GLIB_GNU_GETTEXT
+
+GETTEXT_PACKAGE=AC_PACKAGE_NAME
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
+
+PKG_CHECK_MODULES(LIBEVPRIVATE, gtk+-2.0 >= 2.4.0)
+PKG_CHECK_MODULES(RECENT_FILES, gtk+-2.0 >= 2.4.0 libgnomeui-2.0 >= 2.4.0 libbonobo-2.0)
+PKG_CHECK_MODULES(SHELL, gtk+-2.0 >= 2.5.0 libgnomeui-2.0 gnome-vfs-2.0 libbonoboui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libglade-2.0)
+
+dnl Compile with disable-deprecated switches
+
+AC_ARG_ENABLE(deprecated,
+AC_HELP_STRING([--disable-deprecated],
+ [Don't allow any deprecated GTK+/etc. features.]),
+set_enable_deprecated="$enableval",[
+if test -f $srcdir/autogen.sh; then
+ is_cvs_version=true
+ set_enable_deprecated=no
+else
+ set_enable_deprecated=yes
+fi
+])
+AC_MSG_CHECKING([whether to disable deprecated glib/gtk+/etc. features])
+if test "$set_enable_deprecated" != "yes"; then
+ AC_MSG_RESULT(yes)
+ EVINCE_DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED -DBONOBO_DISABLE_DEPRECATED"
+else
+ AC_MSG_RESULT(no)
+ EVINCE_DISABLE_DEPRECATED=""
+fi
+AC_SUBST(EVINCE_DISABLE_DEPRECATED)
+
+dnl Turn on the additional warnings last, so -Werror doesn't affect other tests.
+dnl stolen from nautilus and gnome-common
+
+AC_ARG_ENABLE(more-warnings,
+[ --enable-more-warnings Maximum compiler warnings],
+set_more_warnings="$enableval",[
+if test -f $srcdir/autogen.sh; then
+ is_cvs_version=true
+ set_more_warnings=yes
+else
+ set_more_warnings=no
+fi
+])
+AC_MSG_CHECKING(for more warnings, including -Werror)
+if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
+ AC_MSG_RESULT([yes, using gcc])
+ CFLAGS="\
+ -Wall \
+ -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
+ -Wnested-externs -Wpointer-arith \
+ -Wcast-align -Wsign-compare \
+ -Werror \
+ $CFLAGS"
+
+dnl case " $CFLAGS " in
+dnl *[\ \ ]-ansi[\ \ ]*) ;;
+dnl *) CFLAGS="$CFLAGS -ansi" ;;
+dnl esac
+dnl case " $CFLAGS " in
+dnl *[\ \ ]-pedantic[\ \ ]*) ;;
+dnl *) CFLAGS="$CFLAGS -pedantic" ;;
+dnl esac
+
+ for option in -Wno-strict-aliasing -Wno-sign-compare; do
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $option"
+ AC_MSG_CHECKING([whether gcc understands $option])
+ AC_TRY_COMPILE([], [],
+ has_option=yes,
+ has_option=no,)
+ if test $has_option = no; then
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ AC_MSG_RESULT($has_option)
+ unset has_option
+ unset SAVE_CFLAGS
+ done
+ unset option
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl ==========================================================================
+
+AC_OUTPUT([
+Makefile
+cut-n-paste/Makefile
+cut-n-paste/recent-files/Makefile
+data/Makefile
+po/Makefile.in
+shell/Makefile
+viewer/Makefile
+])
diff --git a/cut-n-paste/Makefile.am b/cut-n-paste/Makefile.am
new file mode 100644
index 0000000..bd1def4
--- /dev/null
+++ b/cut-n-paste/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = recent-files
diff --git a/cut-n-paste/recent-files/Makefile.am b/cut-n-paste/recent-files/Makefile.am
new file mode 100644
index 0000000..c3b3dbd
--- /dev/null
+++ b/cut-n-paste/recent-files/Makefile.am
@@ -0,0 +1,32 @@
+NULL =
+
+INCLUDES = \
+ $(RECENT_FILES_CFLAGS) \
+ $(NULL)
+
+# Uses the deprecated GnomeIconTheme
+# $(EVINCE_DISABLE_DEPRECATED)
+
+EGG_FILES = \
+ egg-recent-model.c \
+ egg-recent-model.h \
+ egg-recent-item.c \
+ egg-recent-item.h \
+ egg-recent-view.c \
+ egg-recent-view.h \
+ egg-recent-view-bonobo.c \
+ egg-recent-view-bonobo.h \
+ egg-recent-view-gtk.c \
+ egg-recent-view-gtk.h \
+ egg-recent-util.c \
+ egg-recent-util.h
+
+noinst_LIBRARIES = librecent.a
+
+librecent_a_SOURCES = $(EGG_FILES)
+
+EXTRA_DIST = update-from-egg.sh
+
+EGGDIR=$(srcdir)/../../../libegg/libegg/recent-files
+regenerate-built-sources:
+ EGGFILES="$(EGG_FILES)" EGGDIR="$(EGGDIR)" $(srcdir)/update-from-egg.sh
diff --git a/cut-n-paste/recent-files/egg-recent-item.c b/cut-n-paste/recent-files/egg-recent-item.c
new file mode 100644
index 0000000..9be7970
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-item.c
@@ -0,0 +1,440 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * James Willcox <jwillcox@cs.indiana.edu>
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+#include <glib.h>
+#include <libgnomevfs/gnome-vfs.h>
+#include <libgnomevfs/gnome-vfs-mime-utils.h>
+#include "egg-recent-item.h"
+
+
+
+EggRecentItem *
+egg_recent_item_new (void)
+{
+ EggRecentItem *item;
+
+ item = g_new (EggRecentItem, 1);
+
+ item->groups = NULL;
+ item->private_data = FALSE;
+ item->uri = NULL;
+ item->mime_type = NULL;
+
+ item->refcount = 1;
+
+ return item;
+}
+
+static void
+egg_recent_item_free (EggRecentItem *item)
+{
+ if (item->uri)
+ g_free (item->uri);
+
+ if (item->mime_type)
+ g_free (item->mime_type);
+
+ if (item->groups) {
+ g_list_foreach (item->groups, (GFunc)g_free, NULL);
+ g_list_free (item->groups);
+ item->groups = NULL;
+ }
+
+ g_free (item);
+}
+
+EggRecentItem *
+egg_recent_item_ref (EggRecentItem *item)
+{
+ item->refcount++;
+ return item;
+}
+
+EggRecentItem *
+egg_recent_item_unref (EggRecentItem *item)
+{
+ item->refcount--;
+
+ if (item->refcount == 0) {
+ egg_recent_item_free (item);
+ }
+
+ return item;
+}
+
+
+EggRecentItem *
+egg_recent_item_new_from_uri (const gchar *uri)
+{
+ EggRecentItem *item;
+
+ g_return_val_if_fail (uri != NULL, NULL);
+
+ item = egg_recent_item_new ();
+
+ if (!egg_recent_item_set_uri (item ,uri)) {
+ egg_recent_item_free (item);
+ return NULL;
+ }
+
+ item->mime_type = gnome_vfs_get_mime_type (item->uri);
+
+ if (!item->mime_type)
+ item->mime_type = g_strdup (GNOME_VFS_MIME_TYPE_UNKNOWN);
+
+ return item;
+}
+
+/*
+static GList *
+egg_recent_item_copy_groups (const GList *list)
+{
+ GList *newlist = NULL;
+
+ while (list) {
+ gchar *group = (gchar *)list->data;
+
+ newlist = g_list_prepend (newlist, g_strdup (group));
+
+ list = list->next;
+ }
+
+ return newlist;
+}
+
+
+EggRecentItem *
+egg_recent_item_copy (const EggRecentItem *item)
+{
+ EggRecentItem *newitem;
+
+ newitem = egg_recent_item_new ();
+ newitem->uri = g_strdup (item->uri);
+ if (item->mime_type)
+ newitem->mime_type = g_strdup (item->mime_type);
+ newitem->timestamp = item->timestamp;
+ newitem->private_data = item->private_data;
+ newitem->groups = egg_recent_item_copy_groups (item->groups);
+
+ return newitem;
+}
+*/
+
+/*
+EggRecentItem *
+egg_recent_item_new_valist (const gchar *uri, va_list args)
+{
+ EggRecentItem *item;
+ EggRecentArg arg;
+ gchar *str1;
+ gchar *str2;
+ gboolean priv;
+
+ item = egg_recent_item_new ();
+
+ arg = va_arg (args, EggRecentArg);
+
+ while (arg != EGG_RECENT_ARG_NONE) {
+ switch (arg) {
+ case EGG_RECENT_ARG_MIME_TYPE:
+ str1 = va_arg (args, gchar*);
+
+ egg_recent_item_set_mime_type (item, str1);
+ break;
+ case EGG_RECENT_ARG_GROUP:
+ str1 = va_arg (args, gchar*);
+
+ egg_recent_item_add_group (item, str1);
+ break;
+ case EGG_RECENT_ARG_PRIVATE:
+ priv = va_arg (args, gboolean);
+
+ egg_recent_item_set_private (item, priv);
+ break;
+ default:
+ break;
+ }
+
+ arg = va_arg (args, EggRecentArg);
+ }
+
+ return item;
+}
+*/
+
+gboolean
+egg_recent_item_set_uri (EggRecentItem *item, const gchar *uri)
+{
+ gchar *utf8_uri;
+
+ /* if G_BROKEN_FILENAMES is not set, this should succede */
+ if (g_utf8_validate (uri, -1, NULL)) {
+ item->uri = gnome_vfs_make_uri_from_input (uri);
+ } else {
+ utf8_uri = g_filename_to_utf8 (uri, -1, NULL, NULL, NULL);
+
+ if (utf8_uri == NULL) {
+ g_warning ("Couldn't convert URI to UTF-8");
+ return FALSE;
+ }
+
+ if (g_utf8_validate (utf8_uri, -1, NULL)) {
+ item->uri = gnome_vfs_make_uri_from_input (utf8_uri);
+ } else {
+ g_free (utf8_uri);
+ return FALSE;
+ }
+
+ g_free (utf8_uri);
+ }
+
+ return TRUE;
+}
+
+gchar *
+egg_recent_item_get_uri (const EggRecentItem *item)
+{
+ return g_strdup (item->uri);
+}
+
+G_CONST_RETURN gchar *
+egg_recent_item_peek_uri (const EggRecentItem *item)
+{
+ return item->uri;
+}
+
+gchar *
+egg_recent_item_get_uri_utf8 (const EggRecentItem *item)
+{
+ /* this could fail, but it's not likely, since we've already done it
+ * once in set_uri()
+ */
+ return g_filename_to_utf8 (item->uri, -1, NULL, NULL, NULL);
+}
+
+gchar *
+egg_recent_item_get_uri_for_display (const EggRecentItem *item)
+{
+ return gnome_vfs_format_uri_for_display (item->uri);
+}
+
+/* Stolen from gnome_vfs_make_valid_utf8() */
+static char *
+make_valid_utf8 (const char *name)
+{
+ GString *string;
+ const char *remainder, *invalid;
+ int remaining_bytes, valid_bytes;
+
+ string = NULL;
+ remainder = name;
+ remaining_bytes = strlen (name);
+
+ while (remaining_bytes != 0) {
+ if (g_utf8_validate (remainder, remaining_bytes, &invalid))
+ break;
+
+ valid_bytes = invalid - remainder;
+
+ if (string == NULL)
+ string = g_string_sized_new (remaining_bytes);
+
+ g_string_append_len (string, remainder, valid_bytes);
+ g_string_append_c (string, '?');
+
+ remaining_bytes -= valid_bytes + 1;
+ remainder = invalid + 1;
+ }
+
+ if (string == NULL)
+ return g_strdup (name);
+
+ g_string_append (string, remainder);
+/* g_string_append (string, _(" (invalid file name)")); */
+ g_assert (g_utf8_validate (string->str, -1, NULL));
+
+ return g_string_free (string, FALSE);
+}
+
+/**
+ * egg_recent_item_get_short_name:
+ * @item: an #EggRecentItem
+ *
+ * Computes a valid UTF-8 string that can be used as the name of the item in a
+ * menu or list. For example, calling this function on an item that refers to
+ * "file:///foo/bar.txt" will yield "bar.txt".
+ *
+ * Return value: A newly-allocated string in UTF-8 encoding; free it with
+ * g_free().
+ **/
+gchar *
+egg_recent_item_get_short_name (const EggRecentItem *item)
+{
+ GnomeVFSURI *uri;
+ char *short_name;
+ gboolean valid;
+
+ g_return_val_if_fail (item != NULL, NULL);
+
+ if (item->uri == NULL)
+ return NULL;
+
+ uri = gnome_vfs_uri_new (item->uri);
+ if (uri == NULL)
+ return NULL;
+
+ short_name = gnome_vfs_uri_extract_short_name (uri);
+ valid = FALSE;
+
+ if (strcmp (gnome_vfs_uri_get_scheme (uri), "file") == 0) {
+ char *tmp;
+
+ tmp = g_filename_to_utf8 (short_name, -1, NULL, NULL, NULL);
+ if (tmp) {
+ g_free (short_name);
+ short_name = tmp;
+ valid = TRUE;
+ }
+ }
+
+ if (!valid) {
+ char *tmp;
+
+ tmp = make_valid_utf8 (short_name);
+ g_assert (tmp != NULL);
+ g_free (short_name);
+ short_name = tmp;
+ }
+
+ gnome_vfs_uri_unref (uri);
+
+ return short_name;
+}
+
+void
+egg_recent_item_set_mime_type (EggRecentItem *item, const gchar *mime)
+{
+ item->mime_type = g_strdup (mime);
+}
+
+gchar *
+egg_recent_item_get_mime_type (const EggRecentItem *item)
+{
+ return g_strdup (item->mime_type);
+}
+
+void
+egg_recent_item_set_timestamp (EggRecentItem *item, time_t timestamp)
+{
+ if (timestamp == (time_t) -1)
+ time (&timestamp);
+
+ item->timestamp = timestamp;
+}
+
+time_t
+egg_recent_item_get_timestamp (const EggRecentItem *item)
+{
+ return item->timestamp;
+}
+
+G_CONST_RETURN GList *
+egg_recent_item_get_groups (const EggRecentItem *item)
+{
+ return item->groups;
+}
+
+gboolean
+egg_recent_item_in_group (const EggRecentItem *item, const gchar *group_name)
+{
+ GList *tmp;
+
+ tmp = item->groups;
+ while (tmp != NULL) {
+ gchar *val = (gchar *)tmp->data;
+
+ if (strcmp (group_name, val) == 0)
+ return TRUE;
+
+ tmp = tmp->next;
+ }
+
+ return FALSE;
+}
+
+void
+egg_recent_item_add_group (EggRecentItem *item, const gchar *group_name)
+{
+ g_return_if_fail (group_name != NULL);
+
+ if (!egg_recent_item_in_group (item, group_name))
+ item->groups = g_list_append (item->groups, g_strdup (group_name));
+}
+
+void
+egg_recent_item_remove_group (EggRecentItem *item, const gchar *group_name)
+{
+ GList *tmp;
+
+ g_return_if_fail (group_name != NULL);
+
+ tmp = item->groups;
+ while (tmp != NULL) {
+ gchar *val = (gchar *)tmp->data;
+
+ if (strcmp (group_name, val) == 0) {
+ item->groups = g_list_remove (item->groups,
+ val);
+ g_free (val);
+ break;
+ }
+
+ tmp = tmp->next;
+ }
+}
+
+void
+egg_recent_item_set_private (EggRecentItem *item, gboolean priv)
+{
+ item->private_data = priv;
+}
+
+gboolean
+egg_recent_item_get_private (const EggRecentItem *item)
+{
+ return item->private_data;
+}
+
+GType
+egg_recent_item_get_type (void)
+{
+ static GType boxed_type = 0;
+
+ if (!boxed_type) {
+ boxed_type = g_boxed_type_register_static ("EggRecentItem",
+ (GBoxedCopyFunc)egg_recent_item_ref,
+ (GBoxedFreeFunc)egg_recent_item_unref);
+ }
+
+ return boxed_type;
+}
diff --git a/cut-n-paste/recent-files/egg-recent-item.h b/cut-n-paste/recent-files/egg-recent-item.h
new file mode 100644
index 0000000..5b3b405
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-item.h
@@ -0,0 +1,78 @@
+
+#ifndef __EGG_RECENT_ITEM_H__
+#define __EGG_RECENT_ITEM_H__
+
+#include <time.h>
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define EGG_TYPE_RECENT_ITEM (egg_recent_item_get_type ())
+
+#define EGG_RECENT_ITEM_LIST_UNREF(list) \
+ g_list_foreach (list, (GFunc)egg_recent_item_unref, NULL); \
+ g_list_free (list);
+
+typedef struct _EggRecentItem EggRecentItem;
+
+struct _EggRecentItem {
+ /* do not access any of these directly */
+ gchar *uri;
+ gchar *mime_type;
+ time_t timestamp;
+
+ gboolean private_data;
+
+ GList *groups;
+
+ int refcount;
+};
+
+GType egg_recent_item_get_type (void) G_GNUC_CONST;
+
+/* constructors */
+EggRecentItem * egg_recent_item_new (void);
+
+EggRecentItem * egg_recent_item_ref (EggRecentItem *item);
+EggRecentItem * egg_recent_item_unref (EggRecentItem *item);
+
+/* automatically fetches the mime type, etc */
+EggRecentItem * egg_recent_item_new_from_uri (const gchar *uri);
+
+gboolean egg_recent_item_set_uri (EggRecentItem *item, const gchar *uri);
+gchar * egg_recent_item_get_uri (const EggRecentItem *item);
+gchar * egg_recent_item_get_uri_utf8 (const EggRecentItem *item);
+gchar * egg_recent_item_get_uri_for_display (const EggRecentItem *item);
+gchar * egg_recent_item_get_short_name (const EggRecentItem *item);
+
+void egg_recent_item_set_mime_type (EggRecentItem *item, const gchar *mime);
+gchar * egg_recent_item_get_mime_type (const EggRecentItem *item);
+
+void egg_recent_item_set_timestamp (EggRecentItem *item, time_t timestamp);
+time_t egg_recent_item_get_timestamp (const EggRecentItem *item);
+
+G_CONST_RETURN gchar *egg_recent_item_peek_uri (const EggRecentItem *item);
+
+
+/* groups */
+G_CONST_RETURN GList * egg_recent_item_get_groups (const EggRecentItem *item);
+
+gboolean egg_recent_item_in_group (const EggRecentItem *item,
+ const gchar *group_name);
+
+void egg_recent_item_add_group (EggRecentItem *item,
+ const gchar *group_name);
+
+void egg_recent_item_remove_group (EggRecentItem *item,
+ const gchar *group_name);
+
+void egg_recent_item_set_private (EggRecentItem *item,
+ gboolean priv);
+
+gboolean egg_recent_item_get_private (const EggRecentItem *item);
+
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_ITEM_H__ */
diff --git a/cut-n-paste/recent-files/egg-recent-model.c b/cut-n-paste/recent-files/egg-recent-model.c
new file mode 100644
index 0000000..f36053b
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-model.c
@@ -0,0 +1,1775 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * James Willcox <jwillcox@cs.indiana.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <gtk/gtk.h>
+#include <libgnomevfs/gnome-vfs.h>
+#include <libgnomevfs/gnome-vfs-mime-utils.h>
+#include <gconf/gconf-client.h>
+#include "egg-recent-model.h"
+#include "egg-recent-item.h"
+
+#define EGG_RECENT_MODEL_FILE_PATH "/.recently-used"
+#define EGG_RECENT_MODEL_BUFFER_SIZE 8192
+
+#define EGG_RECENT_MODEL_MAX_ITEMS 500
+#define EGG_RECENT_MODEL_DEFAULT_LIMIT 10
+#define EGG_RECENT_MODEL_TIMEOUT_LENGTH 200
+
+#define EGG_RECENT_MODEL_KEY_DIR "/desktop/gnome/recent_files"
+#define EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY EGG_RECENT_MODEL_KEY_DIR "/default_limit"
+#define EGG_RECENT_MODEL_EXPIRE_KEY EGG_RECENT_MODEL_KEY_DIR "/expire"
+
+struct _EggRecentModelPrivate {
+ GSList *mime_filter_values; /* list of mime types we allow */
+ GSList *group_filter_values; /* list of groups we allow */
+ GSList *scheme_filter_values; /* list of URI schemes we allow */
+
+ EggRecentModelSort sort_type; /* type of sorting to be done */
+
+ int limit; /* soft limit for length of the list */
+ int expire_days; /* number of days to hold an item */
+
+ char *path; /* path to the file we store stuff in */
+
+ GHashTable *monitors;
+
+ GnomeVFSMonitorHandle *monitor;
+
+ GConfClient *client;
+ gboolean use_default_limit;
+
+ guint limit_change_notify_id;
+ guint expiration_change_notify_id;
+
+ guint changed_timeout;
+};
+
+/* signals */
+enum {
+ CHANGED,
+ LAST_SIGNAL
+};
+
+static GType model_signals[LAST_SIGNAL] = { 0 };
+
+/* properties */
+enum {
+ PROP_BOGUS,
+ PROP_MIME_FILTERS,
+ PROP_GROUP_FILTERS,
+ PROP_SCHEME_FILTERS,
+ PROP_SORT_TYPE,
+ PROP_LIMIT
+};
+
+typedef struct {
+ GSList *states;
+ GList *items;
+ EggRecentItem *current_item;
+}ParseInfo;
+
+typedef enum {
+ STATE_START,
+ STATE_RECENT_FILES,
+ STATE_RECENT_ITEM,
+ STATE_URI,
+ STATE_MIME_TYPE,
+ STATE_TIMESTAMP,
+ STATE_PRIVATE,
+ STATE_GROUPS,
+ STATE_GROUP
+} ParseState;
+
+typedef struct _ChangedData {
+ EggRecentModel *model;
+ GList *list;
+}ChangedData;
+
+#define TAG_RECENT_FILES "RecentFiles"
+#define TAG_RECENT_ITEM "RecentItem"
+#define TAG_URI "URI"
+#define TAG_MIME_TYPE "Mime-Type"
+#define TAG_TIMESTAMP "Timestamp"
+#define TAG_PRIVATE "Private"
+#define TAG_GROUPS "Groups"
+#define TAG_GROUP "Group"
+
+static void start_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error);
+
+static void end_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error);
+
+static void text_handler (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+
+static void error_handler (GMarkupParseContext *context,
+ GError *error,
+ gpointer user_data);
+
+static GMarkupParser parser = {start_element_handler, end_element_handler,
+ text_handler,
+ NULL,
+ error_handler};
+
+static gboolean
+egg_recent_model_string_match (const GSList *list, const gchar *str)
+{
+ const GSList *tmp;
+
+ if (list == NULL || str == NULL)
+ return TRUE;
+
+ tmp = list;
+
+ while (tmp) {
+ if (g_pattern_match_string (tmp->data, str))
+ return TRUE;
+
+ tmp = tmp->next;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+egg_recent_model_write_raw (EggRecentModel *model, FILE *file,
+ const gchar *content)
+{
+ int len;
+ int fd;
+ struct stat sbuf;
+
+ rewind (file);
+
+ len = strlen (content);
+ fd = fileno (file);
+
+ if (fstat (fd, &sbuf) < 0)
+ g_warning ("Couldn't stat XML document.");
+
+ if ((off_t)len < sbuf.st_size) {
+ ftruncate (fd, len);
+ }
+
+ if (fputs (content, file) == EOF)
+ return FALSE;
+
+ fsync (fd);
+ rewind (file);
+
+ return TRUE;
+}
+
+static GList *
+egg_recent_model_delete_from_list (GList *list,
+ const gchar *uri)
+{
+ GList *tmp;
+
+ if (!uri)
+ return list;
+
+ tmp = list;
+
+ while (tmp) {
+ EggRecentItem *item = tmp->data;
+ GList *next;
+
+ next = tmp->next;
+
+ if (!strcmp (egg_recent_item_peek_uri (item), uri)) {
+ egg_recent_item_unref (item);
+
+ list = g_list_remove_link (list, tmp);
+ g_list_free_1 (tmp);
+ }
+
+ tmp = next;
+ }
+
+ return list;
+}
+
+static void
+egg_recent_model_add_new_groups (EggRecentItem *item,
+ EggRecentItem *upd_item)
+{
+ const GList *tmp;
+
+ tmp = egg_recent_item_get_groups (upd_item);
+
+ while (tmp) {
+ char *group = tmp->data;
+
+ if (!egg_recent_item_in_group (item, group))
+ egg_recent_item_add_group (item, group);
+
+ tmp = tmp->next;
+ }
+}
+
+static gboolean
+egg_recent_model_update_item (GList *items, EggRecentItem *upd_item)
+{
+ GList *tmp;
+ const char *uri;
+
+ uri = egg_recent_item_peek_uri (upd_item);
+
+ tmp = items;
+
+ while (tmp) {
+ EggRecentItem *item = tmp->data;
+
+ if (gnome_vfs_uris_match (egg_recent_item_peek_uri (item), uri)) {
+ egg_recent_item_set_timestamp (item, (time_t) -1);
+
+ egg_recent_model_add_new_groups (item, upd_item);
+
+ return TRUE;
+ }
+
+ tmp = tmp->next;
+ }
+
+ return FALSE;
+}
+
+static gchar *
+egg_recent_model_read_raw (EggRecentModel *model, FILE *file)
+{
+ GString *string;
+ char buf[EGG_RECENT_MODEL_BUFFER_SIZE];
+
+ rewind (file);
+
+ string = g_string_new (NULL);
+ while (fgets (buf, EGG_RECENT_MODEL_BUFFER_SIZE, file)) {
+ string = g_string_append (string, buf);
+ }
+
+ rewind (file);
+
+ return g_string_free (string, FALSE);
+}
+
+
+
+static void
+parse_info_init (ParseInfo *info)
+{
+ info->states = g_slist_prepend (NULL, STATE_START);
+ info->items = NULL;
+}
+
+static void
+parse_info_free (ParseInfo *info)
+{
+ g_slist_free (info->states);
+}
+
+static void
+push_state (ParseInfo *info,
+ ParseState state)
+{
+ info->states = g_slist_prepend (info->states, GINT_TO_POINTER (state));
+}
+
+static void
+pop_state (ParseInfo *info)
+{
+ g_return_if_fail (info->states != NULL);
+
+ info->states = g_slist_remove (info->states, info->states->data);
+}
+
+static ParseState
+peek_state (ParseInfo *info)
+{
+ g_return_val_if_fail (info->states != NULL, STATE_START);
+
+ return GPOINTER_TO_INT (info->states->data);
+}
+
+#define ELEMENT_IS(name) (strcmp (element_name, (name)) == 0)
+
+static void
+start_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ ParseInfo *info = (ParseInfo *)user_data;
+
+ if (ELEMENT_IS (TAG_RECENT_FILES))
+ push_state (info, STATE_RECENT_FILES);
+ else if (ELEMENT_IS (TAG_RECENT_ITEM)) {
+ info->current_item = egg_recent_item_new ();
+ push_state (info, STATE_RECENT_ITEM);
+ } else if (ELEMENT_IS (TAG_URI))
+ push_state (info, STATE_URI);
+ else if (ELEMENT_IS (TAG_MIME_TYPE))
+ push_state (info, STATE_MIME_TYPE);
+ else if (ELEMENT_IS (TAG_TIMESTAMP))
+ push_state (info, STATE_TIMESTAMP);
+ else if (ELEMENT_IS (TAG_PRIVATE)) {
+ push_state (info, STATE_PRIVATE);
+ egg_recent_item_set_private (info->current_item, TRUE);
+ } else if (ELEMENT_IS (TAG_GROUPS))
+ push_state (info, STATE_GROUPS);
+ else if (ELEMENT_IS (TAG_GROUP))
+ push_state (info, STATE_GROUP);
+}
+
+static gint
+list_compare_func_mru (gpointer a, gpointer b)
+{
+ EggRecentItem *item_a = (EggRecentItem *)a;
+ EggRecentItem *item_b = (EggRecentItem *)b;
+
+ return item_a->timestamp < item_b->timestamp;
+}
+
+static gint
+list_compare_func_lru (gpointer a, gpointer b)
+{
+ EggRecentItem *item_a = (EggRecentItem *)a;
+ EggRecentItem *item_b = (EggRecentItem *)b;
+
+ return item_a->timestamp > item_b->timestamp;
+}
+
+
+
+static void
+end_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ ParseInfo *info = (ParseInfo *)user_data;
+
+ switch (peek_state (info)) {
+ case STATE_RECENT_ITEM:
+ info->items = g_list_append (info->items,
+ info->current_item);
+ if (info->current_item->uri == NULL ||
+ strlen (info->current_item->uri) == 0)
+ g_warning ("URI NOT LOADED");
+ break;
+ default:
+ break;
+ }
+
+ pop_state (info);
+}
+
+static void
+text_handler (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
+{
+ ParseInfo *info = (ParseInfo *)user_data;
+
+ switch (peek_state (info)) {
+ case STATE_START:
+ case STATE_RECENT_FILES:
+ case STATE_RECENT_ITEM:
+ case STATE_PRIVATE:
+ case STATE_GROUPS:
+ break;
+ case STATE_URI:
+ egg_recent_item_set_uri (info->current_item, text);
+ break;
+ case STATE_MIME_TYPE:
+ egg_recent_item_set_mime_type (info->current_item,
+ text);
+ break;
+ case STATE_TIMESTAMP:
+ egg_recent_item_set_timestamp (info->current_item,
+ (time_t)atoi (text));
+ break;
+ case STATE_GROUP:
+ egg_recent_item_add_group (info->current_item,
+ text);
+ break;
+ }
+
+}
+
+static void
+error_handler (GMarkupParseContext *context,
+ GError *error,
+ gpointer user_data)
+{
+ g_warning ("Error in parse: %s", error->message);
+}
+
+static void
+egg_recent_model_enforce_limit (GList *list, int limit)
+{
+ int len;
+ GList *end;
+
+ /* limit < 0 means unlimited */
+ if (limit <= 0)
+ return;
+
+ len = g_list_length (list);
+
+ if (len > limit) {
+ GList *next;
+
+ end = g_list_nth (list, limit-1);
+ next = end->next;
+
+ end->next = NULL;
+
+ EGG_RECENT_ITEM_LIST_UNREF (next);
+ }
+}
+
+static GList *
+egg_recent_model_sort (EggRecentModel *model, GList *list)
+{
+ switch (model->priv->sort_type) {
+ case EGG_RECENT_MODEL_SORT_MRU:
+ list = g_list_sort (list,
+ (GCompareFunc)list_compare_func_mru);
+ break;
+ case EGG_RECENT_MODEL_SORT_LRU:
+ list = g_list_sort (list,
+ (GCompareFunc)list_compare_func_lru);
+ break;
+ case EGG_RECENT_MODEL_SORT_NONE:
+ break;
+ }
+
+ return list;
+}
+
+static gboolean
+egg_recent_model_group_match (EggRecentItem *item, GSList *groups)
+{
+ GSList *tmp;
+
+ tmp = groups;
+
+ while (tmp != NULL) {
+ const gchar * group = (const gchar *)tmp->data;
+
+ if (egg_recent_item_in_group (item, group))
+ return TRUE;
+
+ tmp = tmp->next;
+ }
+
+ return FALSE;
+}
+
+static GList *
+egg_recent_model_filter (EggRecentModel *model,
+ GList *list)
+{
+ EggRecentItem *item;
+ GList *newlist = NULL;
+ gchar *mime_type;
+ gchar *uri;
+
+ g_return_val_if_fail (list != NULL, NULL);
+
+ while (list) {
+ gboolean pass_mime_test = FALSE;
+ gboolean pass_group_test = FALSE;
+ gboolean pass_scheme_test = FALSE;
+ item = (EggRecentItem *)list->data;
+ list = list->next;
+
+ uri = egg_recent_item_get_uri (item);
+
+ /* filter by mime type */
+ if (model->priv->mime_filter_values != NULL) {
+ mime_type = egg_recent_item_get_mime_type (item);
+
+ if (egg_recent_model_string_match
+ (model->priv->mime_filter_values,
+ mime_type))
+ pass_mime_test = TRUE;
+
+ g_free (mime_type);
+ } else
+ pass_mime_test = TRUE;
+
+ /* filter by group */
+ if (pass_mime_test && model->priv->group_filter_values != NULL) {
+ if (egg_recent_model_group_match
+ (item, model->priv->group_filter_values))
+ pass_group_test = TRUE;
+ } else if (egg_recent_item_get_private (item)) {
+ pass_group_test = FALSE;
+ } else
+ pass_group_test = TRUE;
+
+ /* filter by URI scheme */
+ if (pass_mime_test && pass_group_test &&
+ model->priv->scheme_filter_values != NULL) {
+ gchar *scheme;
+
+ scheme = gnome_vfs_get_uri_scheme (uri);
+
+ if (egg_recent_model_string_match
+ (model->priv->scheme_filter_values, scheme))
+ pass_scheme_test = TRUE;
+
+ g_free (scheme);
+ } else
+ pass_scheme_test = TRUE;
+
+ if (pass_mime_test && pass_group_test && pass_scheme_test)
+ newlist = g_list_prepend (newlist, item);
+
+ g_free (uri);
+ }
+
+ if (newlist) {
+ newlist = g_list_reverse (newlist);
+ g_list_free (list);
+ }
+
+
+ return newlist;
+}
+
+
+
+#if 0
+static void
+egg_recent_model_monitor_list_cb (GnomeVFSMonitorHandle *handle,
+ const gchar *monitor_uri,
+ const gchar *info_uri,
+ GnomeVFSMonitorEventType event_type,
+ gpointer user_data)
+{
+ EggRecentModel *model;
+
+ model = EGG_RECENT_MODEL (user_data);
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_DELETED) {
+ egg_recent_model_delete (model, monitor_uri);
+ g_hash_table_remove (model->priv->monitors, monitor_uri);
+ }
+}
+
+
+
+static void
+egg_recent_model_monitor_list (EggRecentModel *model, GList *list)
+{
+ GList *tmp;
+
+ tmp = list;
+ while (tmp) {
+ EggRecentItem *item = (EggRecentItem *)tmp->data;
+ GnomeVFSMonitorHandle *handle;
+ GnomeVFSResult res;
+ gchar *uri;
+
+ tmp = tmp->next;
+
+ uri = egg_recent_item_get_uri (item);
+ if (g_hash_table_lookup (model->priv->monitors, uri)) {
+ /* already monitoring this one */
+ g_free (uri);
+ continue;
+ }
+
+ res = gnome_vfs_monitor_add (&handle, uri,
+ GNOME_VFS_MONITOR_FILE,
+ egg_recent_model_monitor_list_cb,
+ model);
+
+ if (res == GNOME_VFS_OK)
+ g_hash_table_insert (model->priv->monitors, uri, handle);
+ else
+ g_free (uri);
+ }
+}
+#endif
+
+
+static gboolean
+egg_recent_model_changed_timeout (EggRecentModel *model)
+{
+ egg_recent_model_changed (model);
+
+ return FALSE;
+}
+
+static void
+egg_recent_model_monitor_cb (GnomeVFSMonitorHandle *handle,
+ const gchar *monitor_uri,
+ const gchar *info_uri,
+ GnomeVFSMonitorEventType event_type,
+ gpointer user_data)
+{
+ EggRecentModel *model;
+
+ g_return_if_fail (user_data != NULL);
+ g_return_if_fail (EGG_IS_RECENT_MODEL (user_data));
+ model = EGG_RECENT_MODEL (user_data);
+
+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED) {
+ if (model->priv->changed_timeout > 0) {
+ g_source_remove (model->priv->changed_timeout);
+ }
+
+ model->priv->changed_timeout = g_timeout_add (
+ EGG_RECENT_MODEL_TIMEOUT_LENGTH,
+ (GSourceFunc)egg_recent_model_changed_timeout,
+ model);
+ }
+}
+
+static void
+egg_recent_model_monitor (EggRecentModel *model, gboolean should_monitor)
+{
+ if (should_monitor && model->priv->monitor == NULL) {
+
+ gnome_vfs_monitor_add (&model->priv->monitor,
+ model->priv->path,
+ GNOME_VFS_MONITOR_FILE,
+ egg_recent_model_monitor_cb,
+ model);
+
+ /* if the above fails, don't worry about it.
+ * local notifications will still happen
+ */
+
+ } else if (!should_monitor && model->priv->monitor != NULL) {
+ gnome_vfs_monitor_cancel (model->priv->monitor);
+ model->priv->monitor = NULL;
+ }
+}
+
+static void
+egg_recent_model_set_limit_internal (EggRecentModel *model, int limit)
+{
+ model->priv->limit = limit;
+
+ if (limit <= 0)
+ egg_recent_model_monitor (model, FALSE);
+ else {
+ egg_recent_model_monitor (model, TRUE);
+ egg_recent_model_changed (model);
+ }
+}
+
+static GList *
+egg_recent_model_read (EggRecentModel *model, FILE *file)
+{
+ GList *list=NULL;
+ gchar *content;
+ GMarkupParseContext *ctx;
+ ParseInfo info;
+ GError *error;
+
+ content = egg_recent_model_read_raw (model, file);
+
+ if (strlen (content) <= 0) {
+ g_free (content);
+ return NULL;
+ }
+
+ parse_info_init (&info);
+
+ ctx = g_markup_parse_context_new (&parser, 0, &info, NULL);
+
+ error = NULL;
+ if (!g_markup_parse_context_parse (ctx, content, strlen (content),
+ &error)) {
+ g_warning (error->message);
+ g_error_free (error);
+ error = NULL;
+ goto out;
+ }
+
+ error = NULL;
+ if (!g_markup_parse_context_end_parse (ctx, &error))
+ goto out;
+
+ g_markup_parse_context_free (ctx);
+out:
+ list = info.items;
+
+ parse_info_free (&info);
+
+ g_free (content);
+
+ /*
+ g_print ("Total items: %d\n", g_list_length (list));
+ */
+
+ return list;
+}
+
+
+static gboolean
+egg_recent_model_write (EggRecentModel *model, FILE *file, GList *list)
+{
+ GString *string;
+ gchar *data;
+ EggRecentItem *item;
+ const GList *groups;
+ int i;
+ int ret;
+
+ string = g_string_new ("<?xml version=\"1.0\"?>\n");
+ string = g_string_append (string, "<" TAG_RECENT_FILES ">\n");
+
+ i=0;
+ while (list) {
+ gchar *uri;
+ gchar *mime_type;
+ gchar *escaped_uri;
+ time_t timestamp;
+ item = (EggRecentItem *)list->data;
+
+
+ uri = egg_recent_item_get_uri_utf8 (item);
+ escaped_uri = g_markup_escape_text (uri,
+ strlen (uri));
+ g_free (uri);
+
+ mime_type = egg_recent_item_get_mime_type (item);
+ timestamp = egg_recent_item_get_timestamp (item);
+
+ string = g_string_append (string, " <" TAG_RECENT_ITEM ">\n");
+
+ g_string_append_printf (string,
+ " <" TAG_URI ">%s</" TAG_URI ">\n", escaped_uri);
+
+ if (mime_type)
+ g_string_append_printf (string,
+ " <" TAG_MIME_TYPE ">%s</" TAG_MIME_TYPE ">\n", mime_type);
+ else
+ g_string_append_printf (string,
+ " <" TAG_MIME_TYPE "></" TAG_MIME_TYPE ">\n");
+
+
+ g_string_append_printf (string,
+ " <" TAG_TIMESTAMP ">%d</" TAG_TIMESTAMP ">\n", (int)timestamp);
+
+ if (egg_recent_item_get_private (item))
+ string = g_string_append (string,
+ " <" TAG_PRIVATE "/>\n");
+
+ /* write the groups */
+ string = g_string_append (string,
+ " <" TAG_GROUPS ">\n");
+ groups = egg_recent_item_get_groups (item);
+
+ if (groups == NULL && egg_recent_item_get_private (item))
+ g_warning ("Item with URI \"%s\" marked as private, but"
+ " does not belong to any groups.\n", uri);
+
+ while (groups) {
+ const gchar *group = (const gchar *)groups->data;
+ gchar *escaped_group;
+
+ escaped_group = g_markup_escape_text (group, strlen(group));
+
+ g_string_append_printf (string,
+ " <" TAG_GROUP ">%s</" TAG_GROUP ">\n",
+ escaped_group);
+
+ g_free (escaped_group);
+
+ groups = groups->next;
+ }
+
+ string = g_string_append (string, " </" TAG_GROUPS ">\n");
+
+ string = g_string_append (string,
+ " </" TAG_RECENT_ITEM ">\n");
+
+ g_free (mime_type);
+ g_free (escaped_uri);
+
+ list = list->next;
+ i++;
+ }
+
+ string = g_string_append (string, "</" TAG_RECENT_FILES ">");
+
+ data = g_string_free (string, FALSE);
+
+ ret = egg_recent_model_write_raw (model, file, data);
+
+ g_free (data);
+
+ return ret;
+}
+
+static FILE *
+egg_recent_model_open_file (EggRecentModel *model)
+{
+ FILE *file;
+ mode_t prev_umask;
+
+ file = fopen (model->priv->path, "r+");
+ if (file == NULL) {
+ /* be paranoid */
+ prev_umask = umask (077);
+
+ file = fopen (model->priv->path, "w+");
+
+ umask (prev_umask);
+
+ g_return_val_if_fail (file != NULL, NULL);
+ }
+
+ return file;
+}
+
+static gboolean
+egg_recent_model_lock_file (FILE *file)
+{
+ int fd;
+ gint try = 5;
+
+ rewind (file);
+ fd = fileno (file);
+
+ /* Attempt to lock the file 5 times,
+ * waiting a random interval (< 1 second)
+ * in between attempts.
+ * We should really be doing asynchronous
+ * locking, but requires substantially larger
+ * changes.
+ */
+
+ while (try > 0)
+ {
+ int rand_interval;
+
+ if (lockf (fd, F_TLOCK, 0) == 0)
+ return TRUE;
+
+ rand_interval = 1 + (int) (10.0 * rand()/(RAND_MAX + 1.0));
+
+ g_usleep (100000 * rand_interval);
+
+ --try;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+egg_recent_model_unlock_file (FILE *file)
+{
+ int fd;
+
+ rewind (file);
+ fd = fileno (file);
+
+ return (lockf (fd, F_ULOCK, 0) == 0) ? TRUE : FALSE;
+}
+
+static void
+egg_recent_model_finalize (GObject *object)
+{
+ EggRecentModel *model = EGG_RECENT_MODEL (object);
+
+ egg_recent_model_monitor (model, FALSE);
+
+
+ g_slist_foreach (model->priv->mime_filter_values,
+ (GFunc) g_pattern_spec_free, NULL);
+ g_slist_free (model->priv->mime_filter_values);
+ model->priv->mime_filter_values = NULL;
+
+ g_slist_foreach (model->priv->scheme_filter_values,
+ (GFunc) g_pattern_spec_free, NULL);
+ g_slist_free (model->priv->scheme_filter_values);
+ model->priv->scheme_filter_values = NULL;
+
+ g_slist_foreach (model->priv->group_filter_values,
+ (GFunc) g_free, NULL);
+ g_slist_free (model->priv->group_filter_values);
+ model->priv->group_filter_values = NULL;
+
+
+ if (model->priv->limit_change_notify_id)
+ gconf_client_notify_remove (model->priv->client,
+ model->priv->limit_change_notify_id);
+ model->priv->expiration_change_notify_id = 0;
+
+ if (model->priv->expiration_change_notify_id)
+ gconf_client_notify_remove (model->priv->client,
+ model->priv->expiration_change_notify_id);
+ model->priv->expiration_change_notify_id = 0;
+
+ g_object_unref (model->priv->client);
+ model->priv->client = NULL;
+
+
+ g_free (model->priv->path);
+ model->priv->path = NULL;
+
+ g_hash_table_destroy (model->priv->monitors);
+ model->priv->monitors = NULL;
+
+
+ g_free (model->priv);
+}
+
+static void
+egg_recent_model_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentModel *model = EGG_RECENT_MODEL (object);
+
+ switch (prop_id)
+ {
+ case PROP_MIME_FILTERS:
+ model->priv->mime_filter_values =
+ (GSList *)g_value_get_pointer (value);
+ break;
+
+ case PROP_GROUP_FILTERS:
+ model->priv->group_filter_values =
+ (GSList *)g_value_get_pointer (value);
+ break;
+
+ case PROP_SCHEME_FILTERS:
+ model->priv->scheme_filter_values =
+ (GSList *)g_value_get_pointer (value);
+ break;
+
+ case PROP_SORT_TYPE:
+ model->priv->sort_type = g_value_get_int (value);
+ break;
+
+ case PROP_LIMIT:
+ egg_recent_model_set_limit (model,
+ g_value_get_int (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+egg_recent_model_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentModel *model = EGG_RECENT_MODEL (object);
+
+ switch (prop_id)
+ {
+ case PROP_MIME_FILTERS:
+ g_value_set_pointer (value, model->priv->mime_filter_values);
+ break;
+
+ case PROP_GROUP_FILTERS:
+ g_value_set_pointer (value, model->priv->group_filter_values);
+ break;
+
+ case PROP_SCHEME_FILTERS:
+ g_value_set_pointer (value, model->priv->scheme_filter_values);
+ break;
+
+ case PROP_SORT_TYPE:
+ g_value_set_int (value, model->priv->sort_type);
+ break;
+
+ case PROP_LIMIT:
+ g_value_set_int (value, model->priv->limit);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+egg_recent_model_class_init (EggRecentModelClass * klass)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+ object_class->set_property = egg_recent_model_set_property;
+ object_class->get_property = egg_recent_model_get_property;
+ object_class->finalize = egg_recent_model_finalize;
+
+ model_signals[CHANGED] = g_signal_new ("changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggRecentModelClass, changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
+
+
+ g_object_class_install_property (object_class,
+ PROP_MIME_FILTERS,
+ g_param_spec_pointer ("mime-filters",
+ "Mime Filters",
+ "List of mime types to be allowed.",
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_GROUP_FILTERS,
+ g_param_spec_pointer ("group-filters",
+ "Group Filters",
+ "List of groups to be allowed.",
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SCHEME_FILTERS,
+ g_param_spec_pointer ("scheme-filters",
+ "Scheme Filters",
+ "List of URI schemes to be allowed.",
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SORT_TYPE,
+ g_param_spec_int ("sort-type",
+ "Sort Type",
+ "Type of sorting to be done.",
+ 0, EGG_RECENT_MODEL_SORT_NONE,
+ EGG_RECENT_MODEL_SORT_MRU,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_LIMIT,
+ g_param_spec_int ("limit",
+ "Limit",
+ "Max number of items allowed.",
+ -1, EGG_RECENT_MODEL_MAX_ITEMS,
+ EGG_RECENT_MODEL_DEFAULT_LIMIT,
+ G_PARAM_READWRITE));
+
+ klass->changed = NULL;
+}
+
+
+
+static void
+egg_recent_model_limit_changed (GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, gpointer user_data)
+{
+ EggRecentModel *model;
+ GConfValue *value;
+
+ model = EGG_RECENT_MODEL (user_data);
+
+ g_return_if_fail (model != NULL);
+
+ if (model->priv->use_default_limit == FALSE)
+ return; /* ignore this key */
+
+ /* the key was unset, and the schema has apparently failed */
+ if (entry == NULL)
+ return;
+
+ value = gconf_entry_get_value (entry);
+
+ if (value->type != GCONF_VALUE_INT) {
+ g_warning ("Expected GConfValue of type integer, "
+ "got something else");
+ }
+
+
+ egg_recent_model_set_limit_internal (model, gconf_value_get_int (value));
+}
+
+static void
+egg_recent_model_expiration_changed (GConfClient *client, guint cnxn_id,
+ GConfEntry *entry, gpointer user_data)
+{
+
+}
+
+static void
+egg_recent_model_init (EggRecentModel * model)
+{
+ if (!gnome_vfs_init ()) {
+ g_warning ("gnome-vfs initialization failed.");
+ return;
+ }
+
+
+ model->priv = g_new0 (EggRecentModelPrivate, 1);
+
+ model->priv->path = g_strdup_printf ("%s" EGG_RECENT_MODEL_FILE_PATH,
+ g_get_home_dir ());
+
+ model->priv->mime_filter_values = NULL;
+ model->priv->group_filter_values = NULL;
+ model->priv->scheme_filter_values = NULL;
+
+ model->priv->client = gconf_client_get_default ();
+ gconf_client_add_dir (model->priv->client, EGG_RECENT_MODEL_KEY_DIR,
+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+
+ model->priv->limit_change_notify_id =
+ gconf_client_notify_add (model->priv->client,
+ EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY,
+ egg_recent_model_limit_changed,
+ model, NULL, NULL);
+
+ model->priv->expiration_change_notify_id =
+ gconf_client_notify_add (model->priv->client,
+ EGG_RECENT_MODEL_EXPIRE_KEY,
+ egg_recent_model_expiration_changed,
+ model, NULL, NULL);
+
+ model->priv->expire_days = gconf_client_get_int (
+ model->priv->client,
+ EGG_RECENT_MODEL_EXPIRE_KEY,
+ NULL);
+
+#if 0
+ /* keep this out, for now */
+ model->priv->limit = gconf_client_get_int (
+ model->priv->client,
+ EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY, NULL);
+ model->priv->use_default_limit = TRUE;
+#endif
+ model->priv->limit = EGG_RECENT_MODEL_DEFAULT_LIMIT;
+ model->priv->use_default_limit = FALSE;
+
+ model->priv->monitors = g_hash_table_new_full (
+ g_str_hash, g_str_equal,
+ (GDestroyNotify) g_free,
+ (GDestroyNotify) gnome_vfs_monitor_cancel);
+
+ model->priv->monitor = NULL;
+ egg_recent_model_monitor (model, TRUE);
+}
+
+
+/**
+ * egg_recent_model_new:
+ * @sort: the type of sorting to use
+ * @limit: maximum number of items in the list
+ *
+ * This creates a new EggRecentModel object.
+ *
+ * Returns: a EggRecentModel object
+ */
+EggRecentModel *
+egg_recent_model_new (EggRecentModelSort sort)
+{
+ EggRecentModel *model;
+
+ model = EGG_RECENT_MODEL (g_object_new (egg_recent_model_get_type (),
+ "sort-type", sort, NULL));
+
+ g_return_val_if_fail (model, NULL);
+
+ return model;
+}
+
+/**
+ * egg_recent_model_add_full:
+ * @model: A EggRecentModel object.
+ * @item: A EggRecentItem
+ *
+ * This function adds an item to the list of recently used URIs.
+ *
+ * Returns: gboolean
+ */
+gboolean
+egg_recent_model_add_full (EggRecentModel * model, EggRecentItem *item)
+{
+ FILE *file;
+ GList *list = NULL;
+ gboolean ret = FALSE;
+ gboolean updated = FALSE;
+ char *uri;
+ time_t t;
+
+ g_return_val_if_fail (model != NULL, FALSE);
+ g_return_val_if_fail (EGG_IS_RECENT_MODEL (model), FALSE);
+
+ uri = egg_recent_item_get_uri (item);
+ if (strncmp (uri, "recent-files://", strlen ("recent-files://")) == 0) {
+ g_free (uri);
+ return FALSE;
+ } else {
+ g_free (uri);
+ }
+
+ file = egg_recent_model_open_file (model);
+ g_return_val_if_fail (file != NULL, FALSE);
+
+ time (&t);
+ egg_recent_item_set_timestamp (item, t);
+
+ if (egg_recent_model_lock_file (file)) {
+
+ /* read existing stuff */
+ list = egg_recent_model_read (model, file);
+
+ /* if it's already there, we just update it */
+ updated = egg_recent_model_update_item (list, item);
+
+ if (!updated) {
+ list = g_list_prepend (list, item);
+
+ egg_recent_model_enforce_limit (list,
+ EGG_RECENT_MODEL_MAX_ITEMS);
+ }
+
+ /* write new stuff */
+ if (!egg_recent_model_write (model, file, list))
+ g_warning ("Write failed: %s", strerror (errno));
+
+ if (!updated)
+ list = g_list_remove (list, item);
+
+ EGG_RECENT_ITEM_LIST_UNREF (list);
+ ret = TRUE;
+ } else {
+ g_warning ("Failed to lock: %s", strerror (errno));
+ return FALSE;
+ }
+
+ if (!egg_recent_model_unlock_file (file))
+ g_warning ("Failed to unlock: %s", strerror (errno));
+
+ fclose (file);
+
+ if (model->priv->monitor == NULL) {
+ /* since monitoring isn't working, at least give a
+ * local notification
+ */
+ egg_recent_model_changed (model);
+ }
+
+ return ret;
+}
+
+/**
+ * egg_recent_model_add:
+ * @model: A EggRecentModel object.
+ * @uri: A string URI
+ *
+ * This function adds an item to the list of recently used URIs.
+ *
+ * Returns: gboolean
+ */
+gboolean
+egg_recent_model_add (EggRecentModel *model, const gchar *uri)
+{
+ EggRecentItem *item;
+ gboolean ret = FALSE;
+
+ g_return_val_if_fail (model != NULL, FALSE);
+ g_return_val_if_fail (uri != NULL, FALSE);
+
+ item = egg_recent_item_new_from_uri (uri);
+
+ g_return_val_if_fail (item != NULL, FALSE);
+
+ ret = egg_recent_model_add_full (model, item);
+
+ egg_recent_item_unref (item);
+
+ return ret;
+}
+
+
+
+/**
+ * egg_recent_model_delete:
+ * @model: A EggRecentModel object.
+ * @uri: The URI you want to delete.
+ *
+ * This function deletes a URI from the file of recently used URIs.
+ *
+ * Returns: gboolean
+ */
+gboolean
+egg_recent_model_delete (EggRecentModel * model, const gchar * uri)
+{
+ FILE *file;
+ GList *list;
+ unsigned int length;
+ gboolean ret = FALSE;
+
+ g_return_val_if_fail (model != NULL, FALSE);
+ g_return_val_if_fail (EGG_IS_RECENT_MODEL (model), FALSE);
+ g_return_val_if_fail (uri != NULL, FALSE);
+
+ file = egg_recent_model_open_file (model);
+ g_return_val_if_fail (file != NULL, FALSE);
+
+ if (egg_recent_model_lock_file (file)) {
+ list = egg_recent_model_read (model, file);
+
+ if (list == NULL)
+ goto out;
+
+ length = g_list_length (list);
+
+ list = egg_recent_model_delete_from_list (list, uri);
+
+ if (length == g_list_length (list)) {
+ /* nothing was deleted */
+ EGG_RECENT_ITEM_LIST_UNREF (list);
+ } else {
+ egg_recent_model_write (model, file, list);
+ EGG_RECENT_ITEM_LIST_UNREF (list);
+ ret = TRUE;
+
+ }
+ } else {
+ g_warning ("Failed to lock: %s", strerror (errno));
+ return FALSE;
+ }
+
+out:
+
+ if (!egg_recent_model_unlock_file (file))
+ g_warning ("Failed to unlock: %s", strerror (errno));
+
+ fclose (file);
+
+ g_hash_table_remove (model->priv->monitors, uri);
+
+ if (model->priv->monitor == NULL && ret) {
+ /* since monitoring isn't working, at least give a
+ * local notification
+ */
+ egg_recent_model_changed (model);
+ }
+
+ return ret;
+}
+
+
+/**
+ * egg_recent_model_get_list:
+ * @model: A EggRecentModel object.
+ *
+ * This function gets the current contents of the file
+ *
+ * Returns: a GList
+ */
+GList *
+egg_recent_model_get_list (EggRecentModel *model)
+{
+ FILE *file;
+ GList *list=NULL;
+
+ file = egg_recent_model_open_file (model);
+ g_return_val_if_fail (file != NULL, NULL);
+
+ if (egg_recent_model_lock_file (file)) {
+ list = egg_recent_model_read (model, file);
+
+ } else {
+ g_warning ("Failed to lock: %s", strerror (errno));
+ fclose (file);
+ return NULL;
+ }
+
+ if (!egg_recent_model_unlock_file (file))
+ g_warning ("Failed to unlock: %s", strerror (errno));
+
+ if (list != NULL) {
+ list = egg_recent_model_filter (model, list);
+ list = egg_recent_model_sort (model, list);
+
+ egg_recent_model_enforce_limit (list, model->priv->limit);
+ }
+
+ fclose (file);
+
+ return list;
+}
+
+
+
+/**
+ * egg_recent_model_set_limit:
+ * @model: A EggRecentModel object.
+ * @limit: The maximum length of the list
+ *
+ * This function sets the maximum length of the list. Note: This only affects
+ * the length of the list emitted in the "changed" signal, not the list stored
+ * on disk.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_set_limit (EggRecentModel *model, int limit)
+{
+ model->priv->use_default_limit = FALSE;
+
+ egg_recent_model_set_limit_internal (model, limit);
+}
+
+/**
+ * egg_recent_model_get_limit:
+ * @model: A EggRecentModel object.
+ *
+ * This function gets the maximum length of the list.
+ *
+ * Returns: int
+ */
+int
+egg_recent_model_get_limit (EggRecentModel *model)
+{
+ return model->priv->limit;
+}
+
+
+/**
+ * egg_recent_model_clear:
+ * @model: A EggRecentModel object.
+ *
+ * This function clears the contents of the file
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_clear (EggRecentModel *model)
+{
+ FILE *file;
+ int fd;
+
+ file = egg_recent_model_open_file (model);
+ g_return_if_fail (file != NULL);
+
+ fd = fileno (file);
+
+ if (egg_recent_model_lock_file (file)) {
+ ftruncate (fd, 0);
+ } else {
+ g_warning ("Failed to lock: %s", strerror (errno));
+ return;
+ }
+
+ if (!egg_recent_model_unlock_file (file))
+ g_warning ("Failed to unlock: %s", strerror (errno));
+
+ fclose (file);
+}
+
+
+/**
+ * egg_recent_model_set_filter_mime_types:
+ * @model: A EggRecentModel object.
+ *
+ * Sets which mime types are allowed in the list.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_set_filter_mime_types (EggRecentModel *model,
+ ...)
+{
+ va_list valist;
+ GSList *list = NULL;
+ gchar *str;
+
+ g_return_if_fail (model != NULL);
+
+ if (model->priv->mime_filter_values != NULL) {
+ g_slist_foreach (model->priv->mime_filter_values,
+ (GFunc) g_pattern_spec_free, NULL);
+ g_slist_free (model->priv->mime_filter_values);
+ model->priv->mime_filter_values = NULL;
+ }
+
+ va_start (valist, model);
+
+ str = va_arg (valist, gchar*);
+
+ while (str != NULL) {
+ list = g_slist_prepend (list, g_pattern_spec_new (str));
+
+ str = va_arg (valist, gchar*);
+ }
+
+ va_end (valist);
+
+ model->priv->mime_filter_values = list;
+}
+
+/**
+ * egg_recent_model_set_filter_groups:
+ * @model: A EggRecentModel object.
+ *
+ * Sets which groups are allowed in the list.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_set_filter_groups (EggRecentModel *model,
+ ...)
+{
+ va_list valist;
+ GSList *list = NULL;
+ gchar *str;
+
+ g_return_if_fail (model != NULL);
+
+ if (model->priv->group_filter_values != NULL) {
+ g_slist_foreach (model->priv->group_filter_values, (GFunc)g_free, NULL);
+ g_slist_free (model->priv->group_filter_values);
+ model->priv->group_filter_values = NULL;
+ }
+
+ va_start (valist, model);
+
+ str = va_arg (valist, gchar*);
+
+ while (str != NULL) {
+ list = g_slist_prepend (list, g_strdup (str));
+
+ str = va_arg (valist, gchar*);
+ }
+
+ va_end (valist);
+
+ model->priv->group_filter_values = list;
+}
+
+/**
+ * egg_recent_model_set_filter_uri_schemes:
+ * @model: A EggRecentModel object.
+ *
+ * Sets which URI schemes (file, http, ftp, etc) are allowed in the list.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_set_filter_uri_schemes (EggRecentModel *model, ...)
+{
+ va_list valist;
+ GSList *list = NULL;
+ gchar *str;
+
+ g_return_if_fail (model != NULL);
+
+ if (model->priv->scheme_filter_values != NULL) {
+ g_slist_foreach (model->priv->scheme_filter_values,
+ (GFunc) g_pattern_spec_free, NULL);
+ g_slist_free (model->priv->scheme_filter_values);
+ model->priv->scheme_filter_values = NULL;
+ }
+
+ va_start (valist, model);
+
+ str = va_arg (valist, gchar*);
+
+ while (str != NULL) {
+ list = g_slist_prepend (list, g_pattern_spec_new (str));
+
+ str = va_arg (valist, gchar*);
+ }
+
+ va_end (valist);
+
+ model->priv->scheme_filter_values = list;
+}
+
+/**
+ * egg_recent_model_set_sort:
+ * @model: A EggRecentModel object.
+ * @sort: A EggRecentModelSort type
+ *
+ * Sets the type of sorting to be used.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_set_sort (EggRecentModel *model,
+ EggRecentModelSort sort)
+{
+ g_return_if_fail (model != NULL);
+
+ model->priv->sort_type = sort;
+}
+
+/**
+ * egg_recent_model_changed:
+ * @model: A EggRecentModel object.
+ *
+ * This function causes a "changed" signal to be emitted.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_changed (EggRecentModel *model)
+{
+ GList *list = NULL;
+
+ if (model->priv->limit > 0) {
+ list = egg_recent_model_get_list (model);
+ /* egg_recent_model_monitor_list (model, list); */
+
+ g_signal_emit (G_OBJECT (model), model_signals[CHANGED], 0,
+ list);
+ }
+
+ if (list)
+ EGG_RECENT_ITEM_LIST_UNREF (list);
+}
+
+static void
+egg_recent_model_remove_expired_list (EggRecentModel *model, GList *list)
+{
+ time_t current_time;
+ time_t day_seconds;
+
+ time (&current_time);
+ day_seconds = model->priv->expire_days*24*60*60;
+
+ while (list != NULL) {
+ EggRecentItem *item = list->data;
+ time_t timestamp;
+
+ timestamp = egg_recent_item_get_timestamp (item);
+
+ if ((timestamp+day_seconds) < current_time) {
+ gchar *uri = egg_recent_item_get_uri (item);
+ egg_recent_model_delete (model, uri);
+
+ g_strdup (uri);
+ }
+
+ list = list->next;
+ }
+}
+
+
+/**
+ * egg_recent_model_remove_expired:
+ * @model: A EggRecentModel object.
+ *
+ * Goes through the entire list, and removes any items that are older than
+ * the user-specified expiration period.
+ *
+ * Returns: void
+ */
+void
+egg_recent_model_remove_expired (EggRecentModel *model)
+{
+ FILE *file;
+ GList *list=NULL;
+
+ g_return_if_fail (model != NULL);
+
+ file = egg_recent_model_open_file (model);
+ g_return_if_fail (file != NULL);
+
+ if (egg_recent_model_lock_file (file)) {
+ list = egg_recent_model_read (model, file);
+
+ } else {
+ g_warning ("Failed to lock: %s", strerror (errno));
+ return;
+ }
+
+ if (!egg_recent_model_unlock_file (file))
+ g_warning ("Failed to unlock: %s", strerror (errno));
+
+ if (list != NULL) {
+ egg_recent_model_remove_expired_list (model, list);
+ EGG_RECENT_ITEM_LIST_UNREF (list);
+ }
+
+ fclose (file);
+}
+
+/**
+ * egg_recent_model_get_type:
+ *
+ * This returns a GType representing a EggRecentModel object.
+ *
+ * Returns: a GType
+ */
+GType
+egg_recent_model_get_type (void)
+{
+ static GType egg_recent_model_type = 0;
+
+ if(!egg_recent_model_type) {
+ static const GTypeInfo egg_recent_model_info = {
+ sizeof (EggRecentModelClass),
+ NULL, /* base init */
+ NULL, /* base finalize */
+ (GClassInitFunc)egg_recent_model_class_init, /* class init */
+ NULL, /* class finalize */
+ NULL, /* class data */
+ sizeof (EggRecentModel),
+ 0,
+ (GInstanceInitFunc) egg_recent_model_init
+ };
+
+ egg_recent_model_type = g_type_register_static (G_TYPE_OBJECT,
+ "EggRecentModel",
+ &egg_recent_model_info, 0);
+ }
+
+ return egg_recent_model_type;
+}
+
diff --git a/cut-n-paste/recent-files/egg-recent-model.h b/cut-n-paste/recent-files/egg-recent-model.h
new file mode 100644
index 0000000..8c2eb8d
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-model.h
@@ -0,0 +1,80 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+#ifndef __EGG_RECENT_MODEL_H__
+#define __EGG_RECENT_MODEL_H__
+
+#include "egg-recent-item.h"
+
+G_BEGIN_DECLS
+
+#define EGG_TYPE_RECENT_MODEL (egg_recent_model_get_type ())
+#define EGG_RECENT_MODEL(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, EGG_TYPE_RECENT_MODEL, EggRecentModel)
+#define EGG_RECENT_MODEL_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, EGG_TYPE_RECENT_MODEL, EggRecentModelClass)
+#define EGG_IS_RECENT_MODEL(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_model_get_type ())
+
+typedef struct _EggRecentModel EggRecentModel;
+typedef struct _EggRecentModelPrivate EggRecentModelPrivate;
+typedef struct _EggRecentModelClass EggRecentModelClass;
+
+struct _EggRecentModel {
+ GObject parent_instance;
+
+ EggRecentModelPrivate *priv;
+};
+
+struct _EggRecentModelClass {
+ GObjectClass parent_class;
+
+ void (*changed) (EggRecentModel *model, GList *list);
+};
+
+typedef enum {
+ EGG_RECENT_MODEL_SORT_MRU,
+ EGG_RECENT_MODEL_SORT_LRU,
+ EGG_RECENT_MODEL_SORT_NONE
+} EggRecentModelSort;
+
+
+/* Standard group names */
+#define EGG_RECENT_GROUP_LAUNCHERS "Launchers"
+
+
+GType egg_recent_model_get_type (void);
+
+/* constructors */
+EggRecentModel * egg_recent_model_new (EggRecentModelSort sort);
+
+/* public methods */
+void egg_recent_model_set_filter_mime_types (EggRecentModel *model,
+ ...);
+
+void egg_recent_model_set_filter_groups (EggRecentModel *model, ...);
+
+void egg_recent_model_set_filter_uri_schemes (EggRecentModel *model,
+ ...);
+
+void egg_recent_model_set_sort (EggRecentModel *model,
+ EggRecentModelSort sort);
+
+gboolean egg_recent_model_add_full (EggRecentModel *model,
+ EggRecentItem *item);
+
+gboolean egg_recent_model_add (EggRecentModel *model,
+ const gchar *uri);
+
+gboolean egg_recent_model_delete (EggRecentModel *model,
+ const gchar *uri);
+
+void egg_recent_model_clear (EggRecentModel *model);
+
+GList * egg_recent_model_get_list (EggRecentModel *model);
+
+void egg_recent_model_changed (EggRecentModel *model);
+
+void egg_recent_model_set_limit (EggRecentModel *model, int limit);
+int egg_recent_model_get_limit (EggRecentModel *model);
+
+void egg_recent_model_remove_expired (EggRecentModel *model);
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_MODEL_H__ */
diff --git a/cut-n-paste/recent-files/egg-recent-util.c b/cut-n-paste/recent-files/egg-recent-util.c
new file mode 100644
index 0000000..cb30e05
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-util.c
@@ -0,0 +1,158 @@
+#include <config.h>
+#include <stdio.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/types.h>
+#ifndef USE_STABLE_LIBGNOMEUI
+#include <libgnomeui/gnome-icon-theme.h>
+#include <libgnomeui/gnome-icon-lookup.h>
+#endif
+#include <math.h>
+#include "egg-recent-util.h"
+
+#define EGG_RECENT_UTIL_HOSTNAME_SIZE 512
+
+/* ripped out of gedit2 */
+gchar*
+egg_recent_util_escape_underlines (const gchar* text)
+{
+ GString *str;
+ gint length;
+ const gchar *p;
+ const gchar *end;
+
+ g_return_val_if_fail (text != NULL, NULL);
+
+ length = strlen (text);
+
+ str = g_string_new ("");
+
+ p = text;
+ end = text + length;
+
+ while (p != end)
+ {
+ const gchar *next;
+ next = g_utf8_next_char (p);
+
+ switch (*p)
+ {
+ case '_':
+ g_string_append (str, "__");
+ break;
+ default:
+ g_string_append_len (str, p, next - p);
+ break;
+ }
+
+ p = next;
+ }
+
+ return g_string_free (str, FALSE);
+}
+
+#ifndef USE_STABLE_LIBGNOMEUI
+static GdkPixbuf *
+scale_icon (GdkPixbuf *pixbuf,
+ double *scale)
+{
+ guint width, height;
+
+ width = gdk_pixbuf_get_width (pixbuf);
+ height = gdk_pixbuf_get_height (pixbuf);
+
+ width = floor (width * *scale + 0.5);
+ height = floor (height * *scale + 0.5);
+
+ return gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
+}
+
+static GdkPixbuf *
+load_icon_file (char *filename,
+ guint base_size,
+ guint nominal_size)
+{
+ GdkPixbuf *pixbuf, *scaled_pixbuf;
+ guint width, height, size;
+ double scale;
+
+ pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
+
+ if (pixbuf == NULL) {
+ return NULL;
+ }
+
+ if (base_size == 0) {
+ width = gdk_pixbuf_get_width (pixbuf);
+ height = gdk_pixbuf_get_height (pixbuf);
+ size = MAX (width, height);
+ if (size > nominal_size) {
+ base_size = size;
+ } else {
+ /* Don't scale up small icons */
+ base_size = nominal_size;
+ }
+ }
+
+ if (base_size != nominal_size) {
+ scale = (double)nominal_size/base_size;
+ scaled_pixbuf = scale_icon (pixbuf, &scale);
+ g_object_unref (pixbuf);
+ pixbuf = scaled_pixbuf;
+ }
+
+ return pixbuf;
+}
+
+GdkPixbuf *
+egg_recent_util_get_icon (GnomeIconTheme *theme, const gchar *uri,
+ const gchar *mime_type, int size)
+{
+ gchar *icon;
+ gchar *filename;
+ const GnomeIconData *icon_data;
+ int base_size;
+ GdkPixbuf *pixbuf;
+
+ icon = gnome_icon_lookup (theme, NULL, uri, NULL, NULL,
+ mime_type, 0, NULL);
+
+
+ g_return_val_if_fail (icon != NULL, NULL);
+
+ filename = gnome_icon_theme_lookup_icon (theme, icon,
+ size,
+ &icon_data,
+ &base_size);
+ g_free (icon);
+
+ if (filename == NULL) {
+ return NULL;
+ }
+
+ pixbuf = load_icon_file (filename, base_size, size);
+ g_free (filename);
+
+
+ return pixbuf;
+}
+#endif /* !USE_STABLE_LIBGNOMEUI */
+
+gchar *
+egg_recent_util_get_unique_id (void)
+{
+ char hostname[EGG_RECENT_UTIL_HOSTNAME_SIZE];
+ time_t the_time;
+ guint32 rand;
+ int pid;
+
+ gethostname (hostname, EGG_RECENT_UTIL_HOSTNAME_SIZE);
+
+ time (&the_time);
+ rand = g_random_int ();
+ pid = getpid ();
+
+ return g_strdup_printf ("%s-%d-%d-%d", hostname, (int)time, (int)rand, (int)pid);
+}
diff --git a/cut-n-paste/recent-files/egg-recent-util.h b/cut-n-paste/recent-files/egg-recent-util.h
new file mode 100644
index 0000000..ae8a641
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-util.h
@@ -0,0 +1,23 @@
+
+#ifndef __EGG_RECENT_UTIL__
+#define __EGG_RECENT_UTIL__
+
+#include <gtk/gtk.h>
+#ifndef USE_STABLE_LIBGNOMEUI
+#include <libgnomeui/gnome-icon-theme.h>
+#endif
+
+G_BEGIN_DECLS
+
+gchar * egg_recent_util_escape_underlines (const gchar *uri);
+gchar * egg_recent_util_get_unique_id (void);
+#ifndef USE_STABLE_LIBGNOMEUI
+GdkPixbuf * egg_recent_util_get_icon (GnomeIconTheme *theme,
+ const gchar *uri,
+ const gchar *mime_type,
+ int size);
+#endif
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_UTIL__ */
diff --git a/cut-n-paste/recent-files/egg-recent-view-bonobo.c b/cut-n-paste/recent-files/egg-recent-view-bonobo.c
new file mode 100644
index 0000000..e728e70
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view-bonobo.c
@@ -0,0 +1,714 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * James Willcox <jwillcox@cs.indiana.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gtk/gtk.h>
+#include <libbonoboui.h>
+#include <libgnomevfs/gnome-vfs.h>
+#ifndef USE_STABLE_LIBGNOMEUI
+#include <libgnomeui/gnome-icon-theme.h>
+#endif
+#include <gconf/gconf-client.h>
+#include "egg-recent-model.h"
+#include "egg-recent-view.h"
+#include "egg-recent-view-bonobo.h"
+#include "egg-recent-util.h"
+#include "egg-recent-item.h"
+
+struct _EggRecentViewBonobo {
+ GObject parent_instance; /* We emit signals */
+
+ BonoboUIComponent *uic;
+ gchar *path; /* The menu path where our stuff
+ * will go
+ */
+
+ gulong changed_cb_id;
+
+ gchar *uid; /* unique id used for the verb name */
+
+ gboolean show_icons;
+ gboolean show_numbers;
+#ifndef USE_STABLE_LIBGNOMEUI
+ GnomeIconTheme *theme;
+#endif
+ EggRecentViewBonoboTooltipFunc tooltip_func;
+ gpointer tooltip_func_data;
+
+ EggRecentModel *model;
+ GConfClient *client;
+ GtkIconSize icon_size;
+};
+
+
+struct _EggRecentViewBonoboMenuData {
+ EggRecentViewBonobo *view;
+ EggRecentItem *item;
+};
+
+typedef struct _EggRecentViewBonoboMenuData EggRecentViewBonoboMenuData;
+
+enum {
+ ACTIVATE,
+ LAST_SIGNAL
+};
+
+/* GObject properties */
+enum {
+ PROP_BOGUS,
+ PROP_UI_COMPONENT,
+ PROP_MENU_PATH,
+ PROP_SHOW_ICONS,
+ PROP_SHOW_NUMBERS
+};
+
+static guint egg_recent_view_bonobo_signals[LAST_SIGNAL] = { 0 };
+
+static void
+egg_recent_view_bonobo_clear (EggRecentViewBonobo *view)
+{
+ gint i=1;
+ gboolean done=FALSE;
+ EggRecentModel *model;
+
+ g_return_if_fail (view->uic);
+
+ model = egg_recent_view_get_model (EGG_RECENT_VIEW (view));
+
+ while (!done)
+ {
+ gchar *verb_name = g_strdup_printf ("%s-%d", view->uid, i);
+ gchar *item_path = g_strconcat (view->path, "/", verb_name, NULL);
+ if (bonobo_ui_component_path_exists (view->uic, item_path, NULL))
+ bonobo_ui_component_rm (view->uic, item_path, NULL);
+ else
+ done=TRUE;
+
+ g_free (item_path);
+ g_free (verb_name);
+
+ i++;
+ }
+}
+
+static void
+egg_recent_view_bonobo_menu_cb (BonoboUIComponent *uic, gpointer data, const char *cname)
+{
+ EggRecentViewBonoboMenuData *md = (EggRecentViewBonoboMenuData *) data;
+ EggRecentItem *item;
+
+ g_return_if_fail (md);
+ g_return_if_fail (md->item);
+ g_return_if_fail (md->view);
+ g_return_if_fail (EGG_IS_RECENT_VIEW_BONOBO (md->view));
+
+ item = md->item;
+ egg_recent_item_ref (item);
+
+ g_signal_emit (G_OBJECT(md->view),
+ egg_recent_view_bonobo_signals[ACTIVATE], 0,
+ item);
+
+ egg_recent_item_unref (item);
+}
+
+static void
+egg_recent_view_bonobo_menu_data_destroy_cb (gpointer data, GClosure *closure)
+{
+ EggRecentViewBonoboMenuData *md = data;
+
+ egg_recent_item_unref (md->item);
+ g_free (md);
+}
+
+
+static void
+egg_recent_view_bonobo_set_list (EggRecentViewBonobo *view, GList *list)
+{
+ BonoboUIComponent* ui_component;
+ unsigned int i;
+ gchar *label = NULL;
+ gchar *verb_name = NULL;
+ gchar *tip = NULL;
+ gchar *escaped_name = NULL;
+ gchar *item_path = NULL;
+ gchar *base_uri;
+ gchar *utf8_uri;
+ gchar *cmd;
+ gchar *xml_escaped_name;
+ EggRecentViewBonoboMenuData *md;
+ EggRecentModel *model;
+ GClosure *closure;
+
+ g_return_if_fail (view);
+
+ ui_component = view->uic;
+ g_return_if_fail (BONOBO_IS_UI_COMPONENT (ui_component));
+
+
+ model = egg_recent_view_get_model (EGG_RECENT_VIEW (view));
+
+ egg_recent_view_bonobo_clear (view);
+
+
+ bonobo_ui_component_freeze (ui_component, NULL);
+
+ for (i = 1; i <= g_list_length (list); ++i)
+ {
+ EggRecentItem *item = (EggRecentItem *)g_list_nth_data (list, i-1);
+
+ utf8_uri = egg_recent_item_get_uri_for_display (item);
+ if (utf8_uri == NULL)
+ continue;
+
+ /* this is what gets passed to our private "activate" callback */
+ md = (EggRecentViewBonoboMenuData *)g_malloc (sizeof (EggRecentViewBonoboMenuData));
+ md->view = view;
+ md->item = item;
+
+ egg_recent_item_ref (md->item);
+
+ base_uri = g_path_get_basename (utf8_uri);
+ xml_escaped_name = g_markup_escape_text (base_uri,
+ strlen (base_uri));
+
+ escaped_name = egg_recent_util_escape_underlines (xml_escaped_name);
+ g_free (xml_escaped_name);
+
+ tip = NULL;
+ if (view->tooltip_func != NULL) {
+ gchar *tmp_tip;
+ tip = view->tooltip_func (item,
+ view->tooltip_func_data);
+ tmp_tip = g_markup_escape_text (tip, strlen (tip));
+ g_free (tip);
+ tip = tmp_tip;
+ }
+
+ if (tip == NULL)
+ tip = g_strdup ("");
+
+ verb_name = g_strdup_printf ("%s-%d", view->uid, i);
+
+ if (view->show_icons) {
+ GdkPixbuf *pixbuf;
+ gchar *mime_type;
+ gchar *uri;
+
+ mime_type = egg_recent_item_get_mime_type (item);
+ uri = egg_recent_item_get_uri (item);
+#ifndef USE_STABLE_LIBGNOMEUI
+ {
+ int width, height;
+
+ gtk_icon_size_lookup_for_settings
+ (gtk_settings_get_default (),
+ view->icon_size,
+ &width, &height);
+ pixbuf = egg_recent_util_get_icon
+ (view->theme,
+ uri, mime_type,
+ height);
+ }
+#else
+ pixbuf = NULL;
+#endif
+
+
+ if (pixbuf != NULL) {
+ gchar *pixbuf_xml;
+
+ /* Riiiiight.... */
+ pixbuf_xml = bonobo_ui_util_pixbuf_to_xml (pixbuf);
+
+ cmd = g_strdup_printf ("<cmd name=\"%s\" pixtype=\"pixbuf\" pixname=\"%s\"/>", verb_name, pixbuf_xml);
+
+ g_free (pixbuf_xml);
+ g_object_unref (pixbuf);
+ } else {
+ cmd = g_strdup_printf ("<cmd name=\"%s\"/> ",
+ verb_name);
+ }
+
+ g_free (mime_type);
+ g_free (uri);
+ } else
+ cmd = g_strdup_printf ("<cmd name=\"%s\"/> ",
+ verb_name);
+ bonobo_ui_component_set_translate (ui_component, "/commands/", cmd, NULL);
+
+ closure = g_cclosure_new (G_CALLBACK (egg_recent_view_bonobo_menu_cb),
+ md, egg_recent_view_bonobo_menu_data_destroy_cb);
+
+ bonobo_ui_component_add_verb_full (ui_component, verb_name,
+ closure);
+
+ if (view->show_numbers) {
+ if (i < 10)
+ label = g_strdup_printf ("_%d. %s", i,
+ escaped_name);
+ else
+ label = g_strdup_printf ("%d. %s", i, escaped_name);
+ } else {
+ label = g_strdup (escaped_name);
+ }
+
+
+
+ item_path = g_strconcat (view->path, "/", verb_name, NULL);
+
+ if (bonobo_ui_component_path_exists (ui_component, item_path, NULL))
+ {
+ bonobo_ui_component_set_prop (ui_component, item_path,
+ "label", label, NULL);
+
+ bonobo_ui_component_set_prop (ui_component, item_path,
+ "tip", tip, NULL);
+ }
+ else
+ {
+ gchar *xml;
+
+ xml = g_strdup_printf ("<menuitem name=\"%s\" "
+ "verb=\"%s\""
+ " _label=\"%s\" _tip=\"%s\" "
+ "hidden=\"0\" />",
+ verb_name, verb_name, label,
+ tip);
+
+ bonobo_ui_component_set_translate (ui_component, view->path, xml, NULL);
+
+ g_free (xml);
+ }
+
+ g_free (label);
+ g_free (verb_name);
+ g_free (tip);
+ g_free (escaped_name);
+ g_free (item_path);
+ g_free (utf8_uri);
+ g_free (base_uri);
+ g_free (cmd);
+
+ }
+
+
+ bonobo_ui_component_thaw (ui_component, NULL);
+}
+
+static void
+model_changed_cb (EggRecentModel *model, GList *list, EggRecentViewBonobo *view)
+{
+ if (list != NULL)
+ egg_recent_view_bonobo_set_list (view, list);
+ else
+ egg_recent_view_bonobo_clear (view);
+}
+
+
+static EggRecentModel *
+egg_recent_view_bonobo_get_model (EggRecentView *view_parent)
+{
+ EggRecentViewBonobo *view;
+
+ g_return_val_if_fail (view_parent, NULL);
+ view = EGG_RECENT_VIEW_BONOBO (view_parent);
+
+ return view->model;
+}
+
+static void
+egg_recent_view_bonobo_set_model (EggRecentView *view_parent, EggRecentModel *model)
+{
+ EggRecentViewBonobo *view;
+
+ g_return_if_fail (view_parent);
+ view = EGG_RECENT_VIEW_BONOBO (view_parent);
+
+ if (view->model)
+ g_signal_handler_disconnect (G_OBJECT (view->model),
+ view->changed_cb_id);
+
+ view->model = model;
+ g_object_ref (view->model);
+ view->changed_cb_id = g_signal_connect_object (G_OBJECT (model),
+ "changed",
+ G_CALLBACK (model_changed_cb),
+ view, 0);
+
+ egg_recent_model_changed (view->model);
+}
+
+static void
+egg_recent_view_bonobo_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
+
+ switch (prop_id)
+ {
+ case PROP_UI_COMPONENT:
+ egg_recent_view_bonobo_set_ui_component (EGG_RECENT_VIEW_BONOBO (view),
+ BONOBO_UI_COMPONENT (g_value_get_object (value)));
+ break;
+ case PROP_MENU_PATH:
+ view->path = g_strdup (g_value_get_string (value));
+ break;
+ case PROP_SHOW_ICONS:
+ egg_recent_view_bonobo_show_icons (view,
+ g_value_get_boolean (value));
+ default:
+ case PROP_SHOW_NUMBERS:
+ egg_recent_view_bonobo_show_numbers (view,
+ g_value_get_boolean (value));
+ break;
+ break;
+ }
+}
+
+static void
+egg_recent_view_bonobo_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
+
+ switch (prop_id)
+ {
+ case PROP_UI_COMPONENT:
+ g_value_set_pointer (value, view->uic);
+ break;
+ case PROP_MENU_PATH:
+ g_value_set_string (value, g_strdup (view->path));
+ break;
+ case PROP_SHOW_ICONS:
+ g_value_set_boolean (value, view->show_icons);
+ break;
+ case PROP_SHOW_NUMBERS:
+ g_value_set_boolean (value, view->show_numbers);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+egg_recent_view_bonobo_finalize (GObject *object)
+{
+ EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
+
+ g_free (view->path);
+ g_free (view->uid);
+
+ g_object_unref (view->model);
+ g_object_unref (view->uic);
+#ifndef USE_STABLE_LIBGNOMEUI
+ g_object_unref (view->theme);
+#endif
+ g_object_unref (view->client);
+}
+
+static void
+egg_recent_view_bonobo_class_init (EggRecentViewBonoboClass * klass)
+{
+ GObjectClass *object_class;
+
+
+ object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = egg_recent_view_bonobo_set_property;
+ object_class->get_property = egg_recent_view_bonobo_get_property;
+ object_class->finalize = egg_recent_view_bonobo_finalize;
+
+ egg_recent_view_bonobo_signals[ACTIVATE] = g_signal_new ("activate",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggRecentViewBonoboClass, activate),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE, 1,
+ EGG_TYPE_RECENT_ITEM);
+
+ g_object_class_install_property (object_class,
+ PROP_UI_COMPONENT,
+ g_param_spec_object ("ui-component",
+ "UI Component",
+ "BonoboUIComponent for menus.",
+ bonobo_ui_component_get_type(),
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_MENU_PATH,
+ g_param_spec_string ("ui-path",
+ "Path",
+ "The path to put the menu items.",
+ "/menus/File/EggRecentDocuments",
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SHOW_ICONS,
+ g_param_spec_boolean ("show-icons",
+ "Show Icons",
+ "Whether or not to show icons",
+ FALSE,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SHOW_NUMBERS,
+ g_param_spec_boolean ("show-numbers",
+ "Show Numbers",
+ "Whether or not to show numbers",
+ TRUE,
+ G_PARAM_READWRITE));
+
+
+
+ klass->activate = NULL;
+}
+
+static void
+egg_recent_view_init (EggRecentViewClass *iface)
+{
+ iface->do_get_model = egg_recent_view_bonobo_get_model;
+ iface->do_set_model = egg_recent_view_bonobo_set_model;
+}
+
+static void
+show_menus_changed_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ EggRecentViewBonobo *view)
+{
+ GConfValue *value;
+
+ value = gconf_entry_get_value (entry);
+
+ g_return_if_fail (value->type == GCONF_VALUE_BOOL);
+
+ egg_recent_view_bonobo_show_icons (view,
+ gconf_value_get_bool (value));
+
+}
+
+#ifndef USE_STABLE_LIBGNOMEUI
+static void
+theme_changed_cb (GnomeIconTheme *theme, EggRecentViewBonobo *view)
+{
+ if (view->model != NULL)
+ egg_recent_model_changed (view->model);
+}
+#endif
+
+static void
+egg_recent_view_bonobo_init (EggRecentViewBonobo *view)
+{
+ view->uid = egg_recent_util_get_unique_id ();
+#ifndef USE_STABLE_LIBGNOMEUI
+ view->theme = gnome_icon_theme_new ();
+ gnome_icon_theme_set_allow_svg (view->theme, TRUE);
+ g_signal_connect_object (view->theme, "changed",
+ G_CALLBACK (theme_changed_cb), view, 0);
+#endif
+
+ view->client = gconf_client_get_default ();
+ view->show_icons =
+ gconf_client_get_bool (view->client,
+ "/desktop/gnome/interface/menus_have_icons",
+ NULL);
+
+ gconf_client_add_dir (view->client, "/desktop/gnome/interface",
+ GCONF_CLIENT_PRELOAD_NONE,
+ NULL);
+ gconf_client_notify_add (view->client,
+ "/desktop/gnome/interface/menus_have_icons",
+ (GConfClientNotifyFunc)show_menus_changed_cb,
+ view, NULL, NULL);
+
+ view->tooltip_func = NULL;
+ view->tooltip_func_data = NULL;
+
+ view->icon_size = GTK_ICON_SIZE_MENU;
+}
+
+void
+egg_recent_view_bonobo_set_icon_size (EggRecentViewBonobo *view,
+ GtkIconSize icon_size)
+{
+ if (view->icon_size != icon_size) {
+ view->icon_size = icon_size;
+ egg_recent_model_changed (view->model);
+ } else {
+ view->icon_size = icon_size;
+ }
+}
+
+GtkIconSize
+egg_recent_view_bonobo_get_icon_size (EggRecentViewBonobo *view)
+{
+ return view->icon_size;
+}
+
+void
+egg_recent_view_bonobo_show_icons (EggRecentViewBonobo *view, gboolean show)
+{
+ view->show_icons = show;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_bonobo_show_numbers (EggRecentViewBonobo *view, gboolean show)
+{
+ view->show_numbers = show;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_bonobo_set_ui_component (EggRecentViewBonobo *view, BonoboUIComponent *uic)
+{
+ g_return_if_fail (view);
+ g_return_if_fail (uic);
+
+ view->uic = uic;
+
+ g_object_ref (view->uic);
+}
+
+void
+egg_recent_view_bonobo_set_ui_path (EggRecentViewBonobo *view, const gchar *path)
+{
+ g_return_if_fail (view);
+ g_return_if_fail (path);
+
+ view->path = g_strdup (path);
+}
+
+const BonoboUIComponent *
+egg_recent_view_bonobo_get_ui_component (EggRecentViewBonobo *view)
+{
+ g_return_val_if_fail (view, NULL);
+
+ return view->uic;
+}
+
+gchar *
+egg_recent_view_bonobo_get_ui_path (EggRecentViewBonobo *view)
+{
+ g_return_val_if_fail (view, NULL);
+
+ return g_strdup (view->path);
+}
+
+void
+egg_recent_view_bonobo_set_tooltip_func (EggRecentViewBonobo *view,
+ EggRecentViewBonoboTooltipFunc func,
+ gpointer user_data)
+{
+ view->tooltip_func = func;
+ view->tooltip_func_data = user_data;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+/**
+ * egg_recent_view_bonobo_new:
+ * @appname: The name of your application.
+ * @limit: The maximum number of items allowed.
+ *
+ * This creates a new EggRecentViewBonobo object.
+ *
+ * Returns: a EggRecentViewBonobo object
+ */
+EggRecentViewBonobo *
+egg_recent_view_bonobo_new (BonoboUIComponent *uic, const gchar *path)
+{
+ EggRecentViewBonobo *view;
+
+ g_return_val_if_fail (uic, NULL);
+ g_return_val_if_fail (path, NULL);
+
+ view = EGG_RECENT_VIEW_BONOBO (g_object_new (egg_recent_view_bonobo_get_type (),
+ "ui-path", path,
+ "ui-component", uic,
+ "show-icons", FALSE,
+ "show-numbers", TRUE, NULL));
+
+ g_return_val_if_fail (view, NULL);
+
+ return view;
+}
+
+/**
+ * egg_recent_view_bonobo_get_type:
+ * @:
+ *
+ * This returns a GType representing a EggRecentViewBonobo object.
+ *
+ * Returns: a GType
+ */
+GType
+egg_recent_view_bonobo_get_type (void)
+{
+ static GType egg_recent_view_bonobo_type = 0;
+
+ if(!egg_recent_view_bonobo_type) {
+ static const GTypeInfo egg_recent_view_bonobo_info = {
+ sizeof (EggRecentViewBonoboClass),
+ NULL, /* base init */
+ NULL, /* base finalize */
+ (GClassInitFunc)egg_recent_view_bonobo_class_init, /* class init */
+ NULL, /* class finalize */
+ NULL, /* class data */
+ sizeof (EggRecentViewBonobo),
+ 0,
+ (GInstanceInitFunc) egg_recent_view_bonobo_init
+ };
+
+ static const GInterfaceInfo view_info =
+ {
+ (GInterfaceInitFunc) egg_recent_view_init,
+ NULL,
+ NULL
+ };
+
+ egg_recent_view_bonobo_type = g_type_register_static (G_TYPE_OBJECT,
+ "EggRecentViewBonobo",
+ &egg_recent_view_bonobo_info, 0);
+ g_type_add_interface_static (egg_recent_view_bonobo_type,
+ EGG_TYPE_RECENT_VIEW,
+ &view_info);
+ }
+
+ return egg_recent_view_bonobo_type;
+}
+
diff --git a/cut-n-paste/recent-files/egg-recent-view-bonobo.h b/cut-n-paste/recent-files/egg-recent-view-bonobo.h
new file mode 100644
index 0000000..0b283ef
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view-bonobo.h
@@ -0,0 +1,58 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+#ifndef __EGG_RECENT_VIEW_BONOBO_H__
+#define __EGG_RECENT_VIEW_BONOBO_H__
+
+#include <libbonoboui.h>
+
+G_BEGIN_DECLS
+
+#define EGG_RECENT_VIEW_BONOBO(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, egg_recent_view_bonobo_get_type (), EggRecentViewBonobo)
+#define EGG_RECENT_VIEW_BONOBO_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, egg_recent_view_bonobo_get_type (), EggRecentViewBonoboClass)
+#define EGG_IS_RECENT_VIEW_BONOBO(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_view_bonobo_get_type ())
+
+typedef char *(*EggRecentViewBonoboTooltipFunc) (EggRecentItem *item,
+ gpointer user_data);
+
+typedef struct _EggRecentViewBonobo EggRecentViewBonobo;
+
+typedef struct _EggRecentViewBonoboClass EggRecentViewBonoboClass;
+
+struct _EggRecentViewBonoboClass {
+ GObjectClass parent_class;
+
+ void (*activate) (EggRecentViewBonobo *view, EggRecentItem *item);
+};
+
+GType egg_recent_view_bonobo_get_type (void);
+
+EggRecentViewBonobo * egg_recent_view_bonobo_new (BonoboUIComponent *uic,
+ const gchar *path);
+
+
+void egg_recent_view_bonobo_set_ui_component (EggRecentViewBonobo *view,
+ BonoboUIComponent *uic);
+
+void egg_recent_view_bonobo_set_ui_path (EggRecentViewBonobo *view,
+ const gchar *path);
+
+gchar * egg_recent_view_bonobo_get_ui_path (EggRecentViewBonobo *view);
+const BonoboUIComponent *egg_recent_view_bonobo_get_ui_component (EggRecentViewBonobo *view);
+
+void egg_recent_view_bonobo_show_icons (EggRecentViewBonobo *view,
+ gboolean show);
+
+void egg_recent_view_bonobo_show_numbers (EggRecentViewBonobo *view,
+ gboolean show);
+
+void egg_recent_view_bonobo_set_tooltip_func (EggRecentViewBonobo *view,
+ EggRecentViewBonoboTooltipFunc func,
+ gpointer user_data);
+
+void egg_recent_view_bonobo_set_icon_size (EggRecentViewBonobo *view,
+ GtkIconSize icon_size);
+
+GtkIconSize egg_recent_view_bonobo_get_icon_size (EggRecentViewBonobo *view);
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_VIEW_BONOBO_H__ */
diff --git a/cut-n-paste/recent-files/egg-recent-view-gtk.c b/cut-n-paste/recent-files/egg-recent-view-gtk.c
new file mode 100644
index 0000000..34805b2
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view-gtk.c
@@ -0,0 +1,817 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * James Willcox <jwillcox@cs.indiana.edu>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <gtk/gtk.h>
+#include <libgnomevfs/gnome-vfs.h>
+#ifndef USE_STABLE_LIBGNOMEUI
+#include <libgnomeui/gnome-icon-theme.h>
+#endif
+#include <gconf/gconf-client.h>
+#include "egg-recent-model.h"
+#include "egg-recent-view.h"
+#include "egg-recent-view-gtk.h"
+#include "egg-recent-util.h"
+#include "egg-recent-item.h"
+
+struct _EggRecentViewGtk {
+ GObject parent_instance; /* We emit signals */
+
+ GtkWidget *menu;
+ GtkWidget *start_menu_item;
+
+ gboolean leading_sep;
+ gboolean trailing_sep;
+
+ gulong changed_cb_id;
+
+ gchar *uid;
+
+ gboolean show_icons;
+ gboolean show_numbers;
+#ifndef USE_STABLE_LIBGNOMEUI
+ GnomeIconTheme *theme;
+#endif
+
+ GtkTooltips *tooltips;
+ EggRecentViewGtkTooltipFunc tooltip_func;
+ gpointer tooltip_func_data;
+
+ EggRecentModel *model;
+ GConfClient *client;
+ GtkIconSize icon_size;
+};
+
+
+
+struct _EggRecentViewGtkMenuData {
+ EggRecentViewGtk *view;
+ EggRecentItem *item;
+};
+
+typedef struct _EggRecentViewGtkMenuData EggRecentViewGtkMenuData;
+
+enum {
+ ACTIVATE,
+ LAST_SIGNAL
+};
+
+/* GObject properties */
+enum {
+ PROP_BOGUS,
+ PROP_MENU,
+ PROP_START_MENU_ITEM,
+ PROP_SHOW_ICONS,
+ PROP_SHOW_NUMBERS
+};
+
+static guint view_signals[LAST_SIGNAL] = { 0 };
+
+
+static void
+egg_recent_view_gtk_clear (EggRecentViewGtk *view)
+{
+ GList *menu_children;
+ GList *p;
+ GObject *menu_item;
+ gint *menu_data=NULL;
+
+ g_return_if_fail (view->menu != NULL);
+
+ menu_children = gtk_container_get_children (GTK_CONTAINER (view->menu));
+
+ p = menu_children;
+ while (p != NULL) {
+ menu_item = (GObject *)p->data;
+
+ menu_data = (gint *)g_object_get_data (menu_item,
+ view->uid);
+
+ if (menu_data) {
+ gtk_container_remove (GTK_CONTAINER (view->menu),
+ GTK_WIDGET (menu_item));
+
+ }
+
+ p = p->next;
+ }
+}
+
+
+static gint
+egg_recent_view_gtk_find_menu_offset (EggRecentViewGtk *view)
+{
+ gint i;
+ GList *menu_children;
+ GList *p;
+ GtkWidget *menu_item;
+ gint menu_loc=-1;
+
+ g_return_val_if_fail (view, 0);
+
+ menu_children = GTK_MENU_SHELL (view->menu)->children;
+
+ i = 0;
+ p = menu_children;
+ while (p != NULL) {
+ menu_item = (GtkWidget *)p->data;
+
+ if (menu_item == view->start_menu_item) {
+ menu_loc = i;
+ break;
+ }
+
+ p = p->next;
+ i++;
+ }
+
+ return menu_loc;
+}
+
+static void
+egg_recent_view_gtk_menu_cb (GtkWidget *menu, gpointer data)
+{
+ EggRecentViewGtkMenuData *md = (EggRecentViewGtkMenuData *) data;
+ EggRecentItem *item;
+
+ g_return_if_fail (md);
+ g_return_if_fail (md->item);
+ g_return_if_fail (md->view);
+ g_return_if_fail (EGG_IS_RECENT_VIEW_GTK (md->view));
+
+ item = md->item;
+
+ egg_recent_item_ref (item);
+
+ g_signal_emit (G_OBJECT(md->view), view_signals[ACTIVATE], 0,
+ item);
+
+ egg_recent_item_unref (item);
+}
+
+static void
+egg_recent_view_gtk_destroy_cb (gpointer data, GClosure *closure)
+{
+ EggRecentViewGtkMenuData *md = data;
+
+ egg_recent_item_unref (md->item);
+ g_free (md);
+}
+
+static GtkWidget *
+egg_recent_view_gtk_new_separator (EggRecentViewGtk *view)
+{
+ GtkWidget *retval;
+
+ g_return_val_if_fail (view, NULL);
+
+ retval = gtk_separator_menu_item_new ();
+
+ /**
+ * this is a tag so we can distinguish our menu items
+ * from others that may be in the menu.
+ */
+ g_object_set_data (G_OBJECT (retval),
+ view->uid,
+ GINT_TO_POINTER (1));
+
+
+ gtk_widget_show (retval);
+
+ return retval;
+}
+
+static GtkWidget *
+egg_recent_view_gtk_new_menu_item (EggRecentViewGtk *view,
+ EggRecentItem *item,
+ gint index)
+{
+ GtkWidget *menu_item;
+ EggRecentViewGtkMenuData *md;
+ gchar *mime_type;
+ GtkWidget *image;
+ GdkPixbuf *pixbuf;
+ gchar *text;
+ gchar *short_name;
+ gchar *escaped;
+
+ g_return_val_if_fail (view, NULL);
+ g_return_val_if_fail (item, NULL);
+
+ short_name = egg_recent_item_get_short_name (item);
+ if (!short_name)
+ return NULL;
+
+ escaped = egg_recent_util_escape_underlines (short_name);
+ g_free (short_name);
+
+ if (view->show_numbers) {
+ /* avoid having conflicting mnemonics */
+ if (index >= 10)
+ text = g_strdup_printf ("%d. %s", index,
+ escaped);
+ else
+ text = g_strdup_printf ("_%d. %s", index,
+ escaped);
+ g_free (escaped);
+ } else {
+ text = escaped;
+ }
+
+ mime_type = egg_recent_item_get_mime_type (item);
+#ifndef USE_STABLE_LIBGNOMEUI
+ {
+ int width, height;
+ gchar *uri;
+
+ gtk_icon_size_lookup_for_settings
+ (gtk_widget_get_settings (view->menu),
+ view->icon_size,
+ &width, &height);
+
+ uri = egg_recent_item_get_uri (item);
+ pixbuf = egg_recent_util_get_icon (view->theme, uri,
+ mime_type,
+ height);
+ g_free (uri);
+ }
+#else
+ pixbuf = NULL;
+#endif
+ image = gtk_image_new_from_pixbuf (pixbuf);
+ if (pixbuf)
+ g_object_unref (pixbuf);
+
+ if (view->show_icons)
+ gtk_widget_show (image);
+
+ menu_item = gtk_image_menu_item_new_with_mnemonic (text);
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item),
+ image);
+
+ md = g_new0 (EggRecentViewGtkMenuData, 1);
+ md->view = view;
+ md->item = egg_recent_item_ref (item);
+
+ g_signal_connect_data (G_OBJECT (menu_item), "activate",
+ G_CALLBACK (egg_recent_view_gtk_menu_cb),
+ md,
+ (GClosureNotify)egg_recent_view_gtk_destroy_cb,
+ 0);
+
+ g_free (mime_type);
+ g_free (text);
+
+ /**
+ * this is a tag so we can distinguish our menu items
+ * from others that may be in the menu.
+ */
+ g_object_set_data (G_OBJECT (menu_item),
+ view->uid,
+ GINT_TO_POINTER (1));
+
+
+ gtk_widget_show (menu_item);
+
+ return menu_item;
+}
+
+static void
+egg_recent_view_gtk_add_to_menu (EggRecentViewGtk *view,
+ EggRecentItem *item,
+ gint display,
+ gint index)
+{
+ GtkWidget *menu_item;
+ gint menu_offset;
+
+ g_return_if_fail (view);
+ g_return_if_fail (view->menu);
+
+ menu_offset = egg_recent_view_gtk_find_menu_offset (view);
+
+ if (item != NULL)
+ menu_item = egg_recent_view_gtk_new_menu_item (view, item, display);
+ else
+ menu_item = egg_recent_view_gtk_new_separator (view);
+
+ if (view->tooltip_func != NULL && menu_item != NULL) {
+ view->tooltip_func (view->tooltips, menu_item,
+ item, view->tooltip_func_data);
+ }
+
+ if (menu_item)
+ gtk_menu_shell_insert (GTK_MENU_SHELL (view->menu), menu_item,
+ menu_offset+index);
+}
+
+static void
+egg_recent_view_gtk_set_list (EggRecentViewGtk *view, GList *list)
+{
+ EggRecentItem *item;
+ GList *p;
+ gint display=1;
+ gint index=1;
+
+ g_return_if_fail (view);
+
+ egg_recent_view_gtk_clear (view);
+
+ if (view->leading_sep) {
+ egg_recent_view_gtk_add_to_menu (view, NULL, display, index);
+ index++;
+ }
+
+ p = list;
+ while (p != NULL) {
+ item = (EggRecentItem *)p->data;
+
+ egg_recent_view_gtk_add_to_menu (view, item, display, index);
+
+ p = p->next;
+ display++;
+ index++;
+ }
+
+ if (view->trailing_sep)
+ egg_recent_view_gtk_add_to_menu (view, NULL, display, index);
+}
+
+static void
+model_changed_cb (EggRecentModel *model, GList *list, EggRecentViewGtk *view)
+{
+ if (list != NULL)
+ egg_recent_view_gtk_set_list (view, list);
+ else
+ egg_recent_view_gtk_clear (view);
+}
+
+static EggRecentModel *
+egg_recent_view_gtk_get_model (EggRecentView *view_parent)
+{
+ EggRecentViewGtk *view;
+
+ g_return_val_if_fail (view_parent != NULL, NULL);
+ view = EGG_RECENT_VIEW_GTK (view_parent);
+ return view->model;
+}
+
+static void
+egg_recent_view_gtk_set_model (EggRecentView *view_parent,
+ EggRecentModel *model)
+{
+ EggRecentViewGtk *view;
+
+ g_return_if_fail (view_parent != NULL);
+ view = EGG_RECENT_VIEW_GTK (view_parent);
+
+ if (view->model != NULL) {
+ g_object_unref (view->model);
+ g_signal_handler_disconnect (G_OBJECT (model),
+ view->changed_cb_id);
+ }
+
+ view->model = model;
+ g_object_ref (view->model);
+
+ view->changed_cb_id = g_signal_connect_object (G_OBJECT (model),
+ "changed",
+ G_CALLBACK (model_changed_cb),
+ view, 0);
+
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_gtk_set_leading_sep (EggRecentViewGtk *view, gboolean val)
+{
+ view->leading_sep = val;
+
+ egg_recent_view_gtk_clear (view);
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_gtk_set_trailing_sep (EggRecentViewGtk *view, gboolean val)
+{
+ view->trailing_sep = val;
+
+ egg_recent_view_gtk_clear (view);
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+static void
+egg_recent_view_gtk_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentViewGtk *view = EGG_RECENT_VIEW_GTK (object);
+
+ switch (prop_id)
+ {
+ case PROP_MENU:
+ egg_recent_view_gtk_set_menu (view,
+ GTK_WIDGET (g_value_get_object (value)));
+ break;
+ case PROP_START_MENU_ITEM:
+ egg_recent_view_gtk_set_start_menu_item (view,
+ g_value_get_object (value));
+ break;
+ case PROP_SHOW_ICONS:
+ egg_recent_view_gtk_show_icons (view,
+ g_value_get_boolean (value));
+ break;
+ case PROP_SHOW_NUMBERS:
+ egg_recent_view_gtk_show_numbers (view,
+ g_value_get_boolean (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+egg_recent_view_gtk_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ EggRecentViewGtk *view = EGG_RECENT_VIEW_GTK (object);
+
+ switch (prop_id)
+ {
+ case PROP_MENU:
+ g_value_set_object (value, view->menu);
+ break;
+ case PROP_START_MENU_ITEM:
+ g_value_set_object (value, view->start_menu_item);
+ break;
+ case PROP_SHOW_ICONS:
+ g_value_set_boolean (value, view->show_icons);
+ break;
+ case PROP_SHOW_NUMBERS:
+ g_value_set_boolean (value, view->show_numbers);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+egg_recent_view_gtk_finalize (GObject *object)
+{
+ EggRecentViewGtk *view = EGG_RECENT_VIEW_GTK (object);
+
+ g_signal_handler_disconnect (G_OBJECT (view->model),
+ view->changed_cb_id);
+
+ g_free (view->uid);
+
+ g_object_unref (view->menu);
+ g_object_unref (view->model);
+#ifndef USE_STABLE_LIBGNOMEUI
+ g_object_unref (view->theme);
+#endif
+ g_object_unref (view->client);
+
+ g_object_unref (view->tooltips);
+}
+
+static void
+egg_recent_view_gtk_class_init (EggRecentViewGtkClass * klass)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (klass);
+
+ object_class->set_property = egg_recent_view_gtk_set_property;
+ object_class->get_property = egg_recent_view_gtk_get_property;
+ object_class->finalize = egg_recent_view_gtk_finalize;
+
+ view_signals[ACTIVATE] = g_signal_new ("activate",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EggRecentViewGtkClass, activate),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE, 1,
+ EGG_TYPE_RECENT_ITEM);
+
+ g_object_class_install_property (object_class,
+ PROP_MENU,
+ g_param_spec_object ("menu",
+ "Menu",
+ "The GtkMenuShell this object will update.",
+ gtk_menu_get_type(),
+ G_PARAM_READWRITE));
+ g_object_class_install_property (object_class,
+ PROP_START_MENU_ITEM,
+ g_param_spec_object ("start-menu-item",
+ "Start Menu Item",
+ "The menu item that precedes where are menu items will go",
+ gtk_menu_item_get_type (),
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SHOW_ICONS,
+ g_param_spec_boolean ("show-icons",
+ "Show Icons",
+ "Whether or not to show icons",
+ FALSE,
+ G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
+ PROP_SHOW_NUMBERS,
+ g_param_spec_boolean ("show-numbers",
+ "Show Numbers",
+ "Whether or not to show numbers",
+ TRUE,
+ G_PARAM_READWRITE));
+
+ klass->activate = NULL;
+}
+
+static void
+egg_recent_view_init (EggRecentViewClass *iface)
+{
+ iface->do_get_model = egg_recent_view_gtk_get_model;
+ iface->do_set_model = egg_recent_view_gtk_set_model;
+}
+
+static void
+show_menus_changed_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ EggRecentViewGtk *view)
+{
+ GConfValue *value;
+
+ value = gconf_entry_get_value (entry);
+
+ g_return_if_fail (value->type == GCONF_VALUE_BOOL);
+
+ egg_recent_view_gtk_show_icons (view,
+ gconf_value_get_bool (value));
+
+}
+
+#ifndef USE_STABLE_LIBGNOMEUI
+static void
+theme_changed_cb (GnomeIconTheme *theme, EggRecentViewGtk *view)
+{
+ if (view->model != NULL)
+ egg_recent_model_changed (view->model);
+}
+#endif
+
+static void
+egg_recent_view_gtk_init (EggRecentViewGtk * view)
+{
+ view->client = gconf_client_get_default ();
+
+ view->show_icons =
+ gconf_client_get_bool (view->client,
+ "/desktop/gnome/interface/menus_have_icons",
+ NULL);
+
+ gconf_client_add_dir (view->client, "/desktop/gnome/interface",
+ GCONF_CLIENT_PRELOAD_NONE,
+ NULL);
+ gconf_client_notify_add (view->client,
+ "/desktop/gnome/interface/menus_have_icons",
+ (GConfClientNotifyFunc)show_menus_changed_cb,
+ view, NULL, NULL);
+
+
+ view->leading_sep = FALSE;
+ view->trailing_sep = FALSE;
+
+ view->uid = egg_recent_util_get_unique_id ();
+#ifndef USE_STABLE_LIBGNOMEUI
+ view->theme = gnome_icon_theme_new ();
+ gnome_icon_theme_set_allow_svg (view->theme, TRUE);
+ g_signal_connect_object (view->theme, "changed",
+ G_CALLBACK (theme_changed_cb), view, 0);
+#endif
+ view->tooltips = gtk_tooltips_new ();
+ g_object_ref (view->tooltips);
+ gtk_object_sink (GTK_OBJECT (view->tooltips));
+ view->tooltip_func = NULL;
+ view->tooltip_func_data = NULL;
+
+ view->icon_size = GTK_ICON_SIZE_MENU;
+}
+
+void
+egg_recent_view_gtk_set_icon_size (EggRecentViewGtk *view,
+ GtkIconSize icon_size)
+{
+ if (view->icon_size != icon_size) {
+ view->icon_size = icon_size;
+ egg_recent_model_changed (view->model);
+ } else {
+ view->icon_size = icon_size;
+ }
+}
+
+GtkIconSize
+egg_recent_view_gtk_get_icon_size (EggRecentViewGtk *view)
+{
+ return view->icon_size;
+}
+
+void
+egg_recent_view_gtk_show_icons (EggRecentViewGtk *view, gboolean show)
+{
+ view->show_icons = show;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_gtk_show_numbers (EggRecentViewGtk *view, gboolean show)
+{
+ view->show_numbers = show;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+void
+egg_recent_view_gtk_set_tooltip_func (EggRecentViewGtk *view,
+ EggRecentViewGtkTooltipFunc func,
+ gpointer user_data)
+{
+ view->tooltip_func = func;
+ view->tooltip_func_data = user_data;
+
+ if (view->model)
+ egg_recent_model_changed (view->model);
+}
+
+/**
+ * egg_recent_view_gtk_set_menu:
+ * @view: A EggRecentViewGtk object.
+ * @menu: The GtkMenuShell to put the menu items in.
+ *
+ * Use this function to change the GtkMenuShell that the recent
+ * documents appear in.
+ *
+ */
+void
+egg_recent_view_gtk_set_menu (EggRecentViewGtk *view,
+ GtkWidget *menu)
+{
+ g_return_if_fail (view);
+ g_return_if_fail (EGG_IS_RECENT_VIEW_GTK (view));
+ g_return_if_fail (menu);
+
+ if (view->menu != NULL)
+ g_object_unref (view->menu);
+
+ view->menu = menu;
+ g_object_ref (view->menu);
+}
+
+/**
+ * egg_recent_view_gtk_set_start_menu_item:
+ * @view: A EggRecentViewGtk object.
+ * @start_menu_item: The menu item that appears just before where our menu
+ * items should appear
+ *
+ */
+void
+egg_recent_view_gtk_set_start_menu_item (EggRecentViewGtk *view,
+ GtkWidget *menu_item)
+{
+ g_return_if_fail (view);
+ g_return_if_fail (EGG_IS_RECENT_VIEW_GTK (view));
+
+ view->start_menu_item = menu_item;
+}
+
+/**
+ * egg_recent_view_gtk_get_menu:
+ * @view: A EggRecentViewGtk object.
+ *
+ */
+GtkWidget *
+egg_recent_view_gtk_get_menu (EggRecentViewGtk *view)
+{
+ return view->menu;
+}
+
+/**
+ * egg_recent_view_gtk_get_start_menu_item
+ * @view: A EggRecentViewGtk object.
+ *
+ */
+GtkWidget *
+egg_recent_view_gtk_get_start_menu_item (EggRecentViewGtk *view)
+{
+ return view->start_menu_item;
+}
+
+
+/**
+ * egg_recent_view_gtk_new:
+ * @appname: The name of your application.
+ * @limit: The maximum number of items allowed.
+ *
+ * This creates a new EggRecentViewGtk object.
+ *
+ * Returns: a EggRecentViewGtk object
+ */
+EggRecentViewGtk *
+egg_recent_view_gtk_new (GtkWidget *menu, GtkWidget *start_menu_item)
+{
+ EggRecentViewGtk *view;
+
+ g_return_val_if_fail (menu, NULL);
+
+ view = EGG_RECENT_VIEW_GTK (g_object_new (egg_recent_view_gtk_get_type (),
+ "start-menu-item",
+ start_menu_item,
+ "menu", menu,
+ "show-numbers", TRUE, NULL));
+
+ g_return_val_if_fail (view, NULL);
+
+ return view;
+}
+
+/**
+ * egg_recent_view_gtk_get_type:
+ * @:
+ *
+ * This returns a GType representing a EggRecentViewGtk object.
+ *
+ * Returns: a GType
+ */
+GType
+egg_recent_view_gtk_get_type (void)
+{
+ static GType egg_recent_view_gtk_type = 0;
+
+ if(!egg_recent_view_gtk_type) {
+ static const GTypeInfo egg_recent_view_gtk_info = {
+ sizeof (EggRecentViewGtkClass),
+ NULL, /* base init */
+ NULL, /* base finalize */
+ (GClassInitFunc)egg_recent_view_gtk_class_init, /* class init */
+ NULL, /* class finalize */
+ NULL, /* class data */
+ sizeof (EggRecentViewGtk),
+ 0,
+ (GInstanceInitFunc) egg_recent_view_gtk_init
+ };
+
+ static const GInterfaceInfo view_info =
+ {
+ (GInterfaceInitFunc) egg_recent_view_init,
+ NULL,
+ NULL
+ };
+
+ egg_recent_view_gtk_type = g_type_register_static (G_TYPE_OBJECT,
+ "EggRecentViewGtk",
+ &egg_recent_view_gtk_info, 0);
+ g_type_add_interface_static (egg_recent_view_gtk_type,
+ EGG_TYPE_RECENT_VIEW,
+ &view_info);
+ }
+
+ return egg_recent_view_gtk_type;
+}
+
diff --git a/cut-n-paste/recent-files/egg-recent-view-gtk.h b/cut-n-paste/recent-files/egg-recent-view-gtk.h
new file mode 100644
index 0000000..7e56baf
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view-gtk.h
@@ -0,0 +1,64 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+#ifndef __EGG_RECENT_VIEW_GTK_H__
+#define __EGG_RECENT_VIEW_GTK_H__
+
+G_BEGIN_DECLS
+
+#include <gtk/gtk.h>
+#include "egg-recent-item.h"
+
+#define EGG_RECENT_VIEW_GTK(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, egg_recent_view_gtk_get_type (), EggRecentViewGtk)
+#define EGG_RECENT_VIEW_GTK_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, egg_recent_view_gtk_get_type (), EggRecentViewGtkClass)
+#define EGG_IS_RECENT_VIEW_GTK(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_view_gtk_get_type ())
+
+typedef void (*EggRecentViewGtkTooltipFunc) (GtkTooltips *tooltips,
+ GtkWidget *menu,
+ EggRecentItem *item,
+ gpointer user_data);
+
+typedef struct _EggRecentViewGtk EggRecentViewGtk;
+
+typedef struct _EggRecentViewGtkClass EggRecentViewGtkClass;
+
+struct _EggRecentViewGtkClass {
+ GObjectClass parent_class;
+
+ void (*activate) (EggRecentViewGtk *view, EggRecentItem *item);
+};
+
+GType egg_recent_view_gtk_get_type (void);
+
+EggRecentViewGtk * egg_recent_view_gtk_new (GtkWidget *menu,
+ GtkWidget *start_menu_item);
+
+void egg_recent_view_gtk_set_menu (EggRecentViewGtk *view,
+ GtkWidget *menu);
+GtkWidget * egg_recent_view_gtk_get_menu (EggRecentViewGtk *view);
+
+
+void egg_recent_view_gtk_set_start_menu_item (EggRecentViewGtk *view,
+ GtkWidget *menu_item);
+GtkWidget *egg_recent_view_gtk_get_start_menu_item (EggRecentViewGtk *view);
+
+void egg_recent_view_gtk_set_leading_sep (EggRecentViewGtk *view,
+ gboolean val);
+
+void egg_recent_view_gtk_set_trailing_sep (EggRecentViewGtk *view,
+ gboolean val);
+
+void egg_recent_view_gtk_show_icons (EggRecentViewGtk *view,
+ gboolean show);
+void egg_recent_view_gtk_show_numbers (EggRecentViewGtk *view,
+ gboolean show);
+
+void egg_recent_view_gtk_set_tooltip_func (EggRecentViewGtk *view,
+ EggRecentViewGtkTooltipFunc func,
+ gpointer user_data);
+
+void egg_recent_view_gtk_set_icon_size (EggRecentViewGtk *view,
+ GtkIconSize icon_size);
+GtkIconSize egg_recent_view_gtk_get_icon_size (EggRecentViewGtk *view);
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_VIEW_GTK_H__ */
diff --git a/cut-n-paste/recent-files/egg-recent-view.c b/cut-n-paste/recent-files/egg-recent-view.c
new file mode 100644
index 0000000..0aa38b9
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view.c
@@ -0,0 +1,68 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * James Willcox <jwillcox@cs.indiana.edu>
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "egg-recent-view.h"
+
+
+GtkType
+egg_recent_view_get_type (void)
+{
+ static GtkType view_type = 0;
+
+ if (!view_type)
+ {
+ static const GTypeInfo view_info =
+ {
+ sizeof (EggRecentViewClass), /* class_size */
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ };
+
+ view_type = g_type_register_static (G_TYPE_INTERFACE,
+ "EggRecentView",
+ &view_info, 0);
+ }
+
+ return view_type;
+}
+
+EggRecentModel *
+egg_recent_view_get_model (EggRecentView *view)
+{
+ g_return_val_if_fail (view, NULL);
+
+ return EGG_RECENT_VIEW_GET_CLASS (view)->do_get_model (view);
+}
+
+void
+egg_recent_view_set_model (EggRecentView *view, EggRecentModel *model)
+{
+ g_return_if_fail (view);
+ g_return_if_fail (model);
+
+ EGG_RECENT_VIEW_GET_CLASS (view)->do_set_model (view, model);
+}
diff --git a/cut-n-paste/recent-files/egg-recent-view.h b/cut-n-paste/recent-files/egg-recent-view.h
new file mode 100644
index 0000000..79f0346
--- /dev/null
+++ b/cut-n-paste/recent-files/egg-recent-view.h
@@ -0,0 +1,43 @@
+#ifndef __EGG_RECENT_VIEW_H__
+#define __EGG_RECENT_VIEW_H__
+
+
+#include <gdk/gdk.h>
+#include <gtk/gtkwidget.h>
+#include "egg-recent-model.h"
+#include "egg-recent-item.h"
+
+G_BEGIN_DECLS
+
+#define EGG_TYPE_RECENT_VIEW (egg_recent_view_get_type ())
+#define EGG_RECENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_RECENT_VIEW, EggRecentView))
+#define EGG_RECENT_VIEW_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), EGG_TYPE_RECENT_VIEW, EggRecentViewClass))
+#define EGG_IS_RECENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_RECENT_VIEW))
+#define EGG_IS_RECENT_VIEW_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), EGG_TYPE_RECENT_VIEW))
+#define EGG_RECENT_VIEW_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EGG_TYPE_RECENT_VIEW, EggRecentViewClass))
+
+
+typedef struct _EggRecentView EggRecentView;
+typedef struct _EggRecentViewClass EggRecentViewClass;
+
+struct _EggRecentViewClass
+{
+ GTypeInterface base_iface;
+
+ /* vtable, not signals */
+ void (* do_set_model) (EggRecentView *view,
+ EggRecentModel *model);
+ EggRecentModel * (* do_get_model) (EggRecentView *view);
+};
+
+GtkType egg_recent_view_get_type (void) G_GNUC_CONST;
+void egg_recent_view_set_list (EggRecentView *view,
+ GSList *list);
+void egg_recent_view_clear (EggRecentView *view);
+EggRecentModel *egg_recent_view_get_model (EggRecentView *view);
+void egg_recent_view_set_model (EggRecentView *view,
+ EggRecentModel *model);
+
+G_END_DECLS
+
+#endif /* __EGG_RECENT_VIEW_H__ */
diff --git a/cut-n-paste/recent-files/update-from-egg.sh b/cut-n-paste/recent-files/update-from-egg.sh
new file mode 100755
index 0000000..9be68a9
--- /dev/null
+++ b/cut-n-paste/recent-files/update-from-egg.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+function die() {
+ echo $*
+ exit 1
+}
+
+if test -z "$EGGDIR"; then
+ echo "Must set EGGDIR"
+ exit 1
+fi
+
+if test -z "$EGGFILES"; then
+ echo "Must set EGGFILES"
+ exit 1
+fi
+
+for FILE in $EGGFILES; do
+ if cmp -s $EGGDIR/$FILE $FILE; then
+ echo "File $FILE is unchanged"
+ else
+ cp $EGGDIR/$FILE $FILE || die "Could not move $EGGDIR/$FILE to $FILE"
+ echo "Updated $FILE"
+ fi
+done
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 0000000..7d6cac6
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+
+uidir = $(pkgdatadir)
+ui_DATA = \
+ evince-ui.xml \
+ $(NULL)
+
+EXTRA_DIST = \
+ $(ui_DATA) \
+ $(NULL)
diff --git a/data/evince-ui.xml b/data/evince-ui.xml
new file mode 100644
index 0000000..ac8b48d
--- /dev/null
+++ b/data/evince-ui.xml
@@ -0,0 +1,22 @@
+<ui>
+ <menubar name="MainMenu">
+ <menu name="FileMenu" action="File">
+ <menuitem name="FileOpenMenu" action="FileOpen"/>
+ <separator name="FileSep1"/>
+ <menuitem name="FileCloseWindowMenu" action="FileCloseWindow"/>
+ </menu>
+
+ <menu name="ViewMenu" action="View">
+ <menuitem name="ViewToolbarMenu" action="ViewToolbar"/>
+ <menuitem name="ViewStatusbarMenu" action="ViewStatusbar"/>
+ </menu>
+
+ <menu name="HelpMenu" action="Help">
+ <menuitem name="HelpAboutMenu" action="HelpAbout"/>
+ </menu>
+ </menubar>
+
+ <toolbar name="ToolBar">
+ <toolitem action="FileOpen"/>
+ </toolbar>
+</ui>
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1 @@
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..e99dff1
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,8 @@
+[encoding: UTF-8]
+gs-renderer/GNOME_GGV.server.in.in
+gs-renderer/ggv-control-ui.xml
+gs-renderer/ggv-postscript-view-ui.xml
+gs-renderer/ggv-postscript-view.c
+gs-renderer/ggv-sidebar.c
+shell/ev-application.c
+shell/ev-window.c
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..6a7dd4e
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,596 @@
+# Copyright (C) Martin Kretzschmar
+# This file is distributed under the same license as the Evince package.
+# Martin Kretzschmar <martink@gnome.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Evince 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-11-09 22:24+0100\n"
+"PO-Revision-Date: 2004-10-24\n"
+"Last-Translator: Martin Kretzschmar <martink@gnome.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:1
+#, fuzzy
+msgid "GGV PostScript Document Control"
+msgstr "PostScript-Dokumente"
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:2
+#, fuzzy
+msgid "GGV PostScript View"
+msgstr "PostScript-Dokumente"
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:3
+msgid "GGV PostScript viewer factory"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:2
+#, no-c-format
+msgid "15_0%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:3
+msgid "1:1"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:5
+#, no-c-format
+msgid "25%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:6
+msgid "Change zoom factor to default"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:7
+msgid "Decrease zoom factor"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:8
+msgid "Fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:9
+msgid "Fit Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:10
+msgid "Fit _Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:11
+msgid "Fit to Page _Size"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:12
+msgid "Fit to Page _Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:13
+msgid "In"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:14
+msgid "Increase zoom factor"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:15
+msgid "Other"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:16
+msgid "Out"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:17
+msgid "Zoom _In"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:18
+msgid "Zoom _Out"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:19
+msgid "Zoom the page to be as wide as the window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:20
+msgid "Zoom the page to fit in the window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:22
+#, no-c-format
+msgid "_100%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:24
+#, no-c-format
+msgid "_200%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:26
+#, no-c-format
+msgid "_400%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:28
+#, no-c-format
+msgid "_50%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:30
+#, no-c-format
+msgid "_75%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:31
+msgid "_Auto-fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:32
+msgid "_Default Zoom"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:33
+msgid "_Fit Window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:34
+msgid "_No Auto-fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:35
+msgid "_Zoom"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:1
+msgid "10x14"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:2
+msgid "A0"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:3
+msgid "A1"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:4
+msgid "A2"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:5
+msgid "A3"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:6
+msgid "A4"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:7
+msgid "A5"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:8
+msgid "B4"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:9
+msgid "B5"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:10
+msgid "BBox"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:11
+msgid "Executive"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:12
+msgid "First"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:13
+msgid "Folio"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:14
+msgid "Go to first page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:15
+msgid "Go to last page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:16
+msgid "Go to next page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:17
+msgid "Go to previous page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:18
+msgid "Last"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:19
+msgid "Ledger"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:20
+msgid "Legal"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:21
+msgid "Letter"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:22
+msgid "Next"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:23
+msgid "Open the preferences dialog"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:24
+msgid "Post_Script Viewer Preferences"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:25
+msgid "Prev"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:26
+msgid "Print"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:27
+msgid "Print marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:28
+msgid "Print the whole document"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:29
+msgid "Quarto"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:30
+msgid "Save marked pages to a file"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:31
+msgid "Statement"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:32
+msgid "Tabloid"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:33
+msgid "_Document Orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:34
+msgid "_Document Size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:35
+msgid "_Edit"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:36 shell/ev-window.c:458
+msgid "_File"
+msgstr "_Datei"
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:37
+msgid "_First page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:38
+msgid "_Go"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:39
+msgid "_Landscape"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:40
+msgid "_Last page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:41
+msgid "_Next page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:42
+msgid "_Orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:43
+msgid "_Portrait"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:44
+msgid "_Previous page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:45
+#, fuzzy
+msgid "_Print document"
+msgstr "Dokument öffnen"
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:46
+msgid "_Print marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:47
+msgid "_Save marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:48
+msgid "_Seascape"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:49
+#, fuzzy
+msgid "_Size"
+msgstr "_Ansicht"
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:50
+msgid "_Upside down"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:51 shell/ev-window.c:459
+msgid "_View"
+msgstr "_Ansicht"
+
+#: gs-renderer/ggv-postscript-view.c:815
+#, c-format
+msgid ""
+"Unable to execute print command:\n"
+"%s"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:876
+msgid ""
+"No pages have been marked.\n"
+"Do you want to save the whole document?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:905
+msgid "Select a file to save pages as"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:913 shell/ev-application.c:140
+msgid "PostScript Documents"
+msgstr "PostScript-Dokumente"
+
+#: gs-renderer/ggv-postscript-view.c:919 shell/ev-application.c:150
+msgid "All Files"
+msgstr "Alle Dateien"
+
+#: gs-renderer/ggv-postscript-view.c:958
+msgid ""
+"A file with this name already exists.\n"
+"Do you want to overwrite it?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:1003
+msgid ""
+"No pages have been marked.\n"
+"Do you want to print the whole document?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2021
+#, fuzzy
+msgid "GhostScript output"
+msgstr "PostScript-Dokumente"
+
+#: gs-renderer/ggv-postscript-view.c:2053
+msgid "Document title"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2057
+msgid "GGV control status"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2061
+msgid "Number of pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2065
+msgid "Page names"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2069
+msgid "Current page number"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2073
+msgid "Document width"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2077
+msgid "Document height"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2081
+msgid "Document orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2085
+msgid "Default orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2089
+msgid "Default size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2093
+msgid "Override document orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2097
+#, fuzzy
+msgid "Override document size"
+msgstr "Dokument öffnen"
+
+#: gs-renderer/ggv-postscript-view.c:2101
+msgid "Respect EOF comment"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2105
+msgid "Antialiasing"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:331
+msgid "Toggle marked state of all pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:332
+msgid ""
+"Toggle marked state of all pages: previously marked pages will be unmarked "
+"and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:344
+msgid "Toggle marked state of odd pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:345
+msgid ""
+"Toggle marked state of odd pages: previously marked odd pages will be "
+"unmarked and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:358
+msgid "Toggle marked state of even pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:359
+msgid ""
+"Toggle marked state of even pages: previously marked even pages will be "
+"unmarked and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:372
+msgid "Clear marked state of all pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:373
+msgid "Clear marked state of all pages: all pages will be unmarked."
+msgstr ""
+
+#: shell/ev-application.c:124
+msgid "Open document"
+msgstr "Dokument öffnen"
+
+#: shell/ev-application.c:134
+msgid "PostScript and PDF Documents"
+msgstr "PostScript- und PDF-Dokumente"
+
+#: shell/ev-application.c:145
+msgid "PDF Documents"
+msgstr "PDF-Dokumente"
+
+#: shell/ev-window.c:260
+msgid "Many..."
+msgstr "Viele..."
+
+#: shell/ev-window.c:265
+msgid "Not so many..."
+msgstr "Nicht so viele..."
+
+#: shell/ev-window.c:270
+msgid ""
+"Evince is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+msgstr ""
+
+#: shell/ev-window.c:274
+msgid ""
+"Evince is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+
+#: shell/ev-window.c:278
+msgid ""
+"You should have received a copy of the GNU General Public License\n"
+"along with Evince; if not, write to the Free Software Foundation, Inc.,\n"
+"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: shell/ev-window.c:300 shell/ev-window.c:498
+msgid "Evince"
+msgstr "Evince"
+
+#: shell/ev-window.c:303
+msgid "© 1996-2004 The Evince authors"
+msgstr "© 1996-2004 Die Evince-Autoren"
+
+#: shell/ev-window.c:306
+msgid "PostScript and PDF File Viewer."
+msgstr "PostScript- und PDF-Betrachter"
+
+#: shell/ev-window.c:309
+msgid "translator-credits"
+msgstr "Martin Kretzschmar <martink@gnome.org>"
+
+#: shell/ev-window.c:460
+msgid "_Help"
+msgstr "_Hilfe"
+
+#. File menu
+#: shell/ev-window.c:463
+msgid "_Open"
+msgstr "Ö_ffnen"
+
+#: shell/ev-window.c:464
+msgid "Open a file"
+msgstr "Eine Datei öffnen"
+
+#: shell/ev-window.c:466
+msgid "_Close"
+msgstr "S_chließen"
+
+#: shell/ev-window.c:467
+msgid "Close this window"
+msgstr "Dieses Fenster schließen"
+
+#. Help menu
+#: shell/ev-window.c:471
+msgid "_About"
+msgstr "_Info"
+
+#: shell/ev-window.c:472
+msgid "Display credits for the document viewer creators"
+msgstr "Die am Programm Mitwirkenden anzeigen"
+
+#. View Menu
+#: shell/ev-window.c:479
+msgid "_Toolbar"
+msgstr "_Werkzeugleiste"
+
+#: shell/ev-window.c:480
+msgid "Show or hide toolbar"
+msgstr "Werkzeugleiste anzeigen/verbergen"
+
+#: shell/ev-window.c:482
+msgid "_Statusbar"
+msgstr "_Statusleiste"
+
+#: shell/ev-window.c:483
+msgid "Show or hide statusbar"
+msgstr "Statusleiste anzeigen/verbergen"
diff --git a/po/evince.pot b/po/evince.pot
new file mode 100644
index 0000000..94dab41
--- /dev/null
+++ b/po/evince.pot
@@ -0,0 +1,593 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-11-09 22:24+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:1
+msgid "GGV PostScript Document Control"
+msgstr ""
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:2
+msgid "GGV PostScript View"
+msgstr ""
+
+#: gs-renderer/GNOME_GGV.server.in.in.h:3
+msgid "GGV PostScript viewer factory"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:2
+#, no-c-format
+msgid "15_0%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:3
+msgid "1:1"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:5
+#, no-c-format
+msgid "25%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:6
+msgid "Change zoom factor to default"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:7
+msgid "Decrease zoom factor"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:8
+msgid "Fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:9
+msgid "Fit Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:10
+msgid "Fit _Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:11
+msgid "Fit to Page _Size"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:12
+msgid "Fit to Page _Width"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:13
+msgid "In"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:14
+msgid "Increase zoom factor"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:15
+msgid "Other"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:16
+msgid "Out"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:17
+msgid "Zoom _In"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:18
+msgid "Zoom _Out"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:19
+msgid "Zoom the page to be as wide as the window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:20
+msgid "Zoom the page to fit in the window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:22
+#, no-c-format
+msgid "_100%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:24
+#, no-c-format
+msgid "_200%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:26
+#, no-c-format
+msgid "_400%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:28
+#, no-c-format
+msgid "_50%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:30
+#, no-c-format
+msgid "_75%"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:31
+msgid "_Auto-fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:32
+msgid "_Default Zoom"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:33
+msgid "_Fit Window"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:34
+msgid "_No Auto-fit"
+msgstr ""
+
+#: gs-renderer/ggv-control-ui.xml.h:35
+msgid "_Zoom"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:1
+msgid "10x14"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:2
+msgid "A0"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:3
+msgid "A1"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:4
+msgid "A2"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:5
+msgid "A3"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:6
+msgid "A4"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:7
+msgid "A5"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:8
+msgid "B4"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:9
+msgid "B5"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:10
+msgid "BBox"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:11
+msgid "Executive"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:12
+msgid "First"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:13
+msgid "Folio"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:14
+msgid "Go to first page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:15
+msgid "Go to last page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:16
+msgid "Go to next page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:17
+msgid "Go to previous page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:18
+msgid "Last"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:19
+msgid "Ledger"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:20
+msgid "Legal"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:21
+msgid "Letter"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:22
+msgid "Next"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:23
+msgid "Open the preferences dialog"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:24
+msgid "Post_Script Viewer Preferences"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:25
+msgid "Prev"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:26
+msgid "Print"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:27
+msgid "Print marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:28
+msgid "Print the whole document"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:29
+msgid "Quarto"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:30
+msgid "Save marked pages to a file"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:31
+msgid "Statement"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:32
+msgid "Tabloid"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:33
+msgid "_Document Orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:34
+msgid "_Document Size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:35
+msgid "_Edit"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:36 shell/ev-window.c:458
+msgid "_File"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:37
+msgid "_First page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:38
+msgid "_Go"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:39
+msgid "_Landscape"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:40
+msgid "_Last page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:41
+msgid "_Next page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:42
+msgid "_Orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:43
+msgid "_Portrait"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:44
+msgid "_Previous page"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:45
+msgid "_Print document"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:46
+msgid "_Print marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:47
+msgid "_Save marked pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:48
+msgid "_Seascape"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:49
+msgid "_Size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:50
+msgid "_Upside down"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view-ui.xml.h:51 shell/ev-window.c:459
+msgid "_View"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:815
+#, c-format
+msgid ""
+"Unable to execute print command:\n"
+"%s"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:876
+msgid ""
+"No pages have been marked.\n"
+"Do you want to save the whole document?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:905
+msgid "Select a file to save pages as"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:913 shell/ev-application.c:140
+msgid "PostScript Documents"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:919 shell/ev-application.c:150
+msgid "All Files"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:958
+msgid ""
+"A file with this name already exists.\n"
+"Do you want to overwrite it?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:1003
+msgid ""
+"No pages have been marked.\n"
+"Do you want to print the whole document?"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2021
+msgid "GhostScript output"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2053
+msgid "Document title"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2057
+msgid "GGV control status"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2061
+msgid "Number of pages"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2065
+msgid "Page names"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2069
+msgid "Current page number"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2073
+msgid "Document width"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2077
+msgid "Document height"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2081
+msgid "Document orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2085
+msgid "Default orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2089
+msgid "Default size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2093
+msgid "Override document orientation"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2097
+msgid "Override document size"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2101
+msgid "Respect EOF comment"
+msgstr ""
+
+#: gs-renderer/ggv-postscript-view.c:2105
+msgid "Antialiasing"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:331
+msgid "Toggle marked state of all pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:332
+msgid ""
+"Toggle marked state of all pages: previously marked pages will be unmarked "
+"and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:344
+msgid "Toggle marked state of odd pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:345
+msgid ""
+"Toggle marked state of odd pages: previously marked odd pages will be "
+"unmarked and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:358
+msgid "Toggle marked state of even pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:359
+msgid ""
+"Toggle marked state of even pages: previously marked even pages will be "
+"unmarked and unmarked ones will become marked."
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:372
+msgid "Clear marked state of all pages"
+msgstr ""
+
+#: gs-renderer/ggv-sidebar.c:373
+msgid "Clear marked state of all pages: all pages will be unmarked."
+msgstr ""
+
+#: shell/ev-application.c:124
+msgid "Open document"
+msgstr ""
+
+#: shell/ev-application.c:134
+msgid "PostScript and PDF Documents"
+msgstr ""
+
+#: shell/ev-application.c:145
+msgid "PDF Documents"
+msgstr ""
+
+#: shell/ev-window.c:260
+msgid "Many..."
+msgstr ""
+
+#: shell/ev-window.c:265
+msgid "Not so many..."
+msgstr ""
+
+#: shell/ev-window.c:270
+msgid ""
+"Evince is free software; you can redistribute it and/or modify\n"
+"it under the terms of the GNU General Public License as published by\n"
+"the Free Software Foundation; either version 2 of the License, or\n"
+"(at your option) any later version.\n"
+msgstr ""
+
+#: shell/ev-window.c:274
+msgid ""
+"Evince is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+"GNU General Public License for more details.\n"
+msgstr ""
+
+#: shell/ev-window.c:278
+msgid ""
+"You should have received a copy of the GNU General Public License\n"
+"along with Evince; if not, write to the Free Software Foundation, Inc.,\n"
+"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+msgstr ""
+
+#: shell/ev-window.c:300 shell/ev-window.c:498
+msgid "Evince"
+msgstr ""
+
+#: shell/ev-window.c:303
+msgid "© 1996-2004 The Evince authors"
+msgstr ""
+
+#: shell/ev-window.c:306
+msgid "PostScript and PDF File Viewer."
+msgstr ""
+
+#: shell/ev-window.c:309
+msgid "translator-credits"
+msgstr ""
+
+#: shell/ev-window.c:460
+msgid "_Help"
+msgstr ""
+
+#. File menu
+#: shell/ev-window.c:463
+msgid "_Open"
+msgstr ""
+
+#: shell/ev-window.c:464
+msgid "Open a file"
+msgstr ""
+
+#: shell/ev-window.c:466
+msgid "_Close"
+msgstr ""
+
+#: shell/ev-window.c:467
+msgid "Close this window"
+msgstr ""
+
+#. Help menu
+#: shell/ev-window.c:471
+msgid "_About"
+msgstr ""
+
+#: shell/ev-window.c:472
+msgid "Display credits for the document viewer creators"
+msgstr ""
+
+#. View Menu
+#: shell/ev-window.c:479
+msgid "_Toolbar"
+msgstr ""
+
+#: shell/ev-window.c:480
+msgid "Show or hide toolbar"
+msgstr ""
+
+#: shell/ev-window.c:482
+msgid "_Statusbar"
+msgstr ""
+
+#: shell/ev-window.c:483
+msgid "Show or hide statusbar"
+msgstr ""
diff --git a/shell/Makefile.am b/shell/Makefile.am
new file mode 100644
index 0000000..571792c
--- /dev/null
+++ b/shell/Makefile.am
@@ -0,0 +1,24 @@
+NULL=
+
+INCLUDES= \
+ -DDATADIR=\"$(pkgdatadir)\" \
+ -I$(top_srcdir)/lib \
+ -DGNOMELOCALEDIR=\"$(datadir)/locale\" \
+ $(SHELL_CFLAGS) \
+ $(EVINCE_DISABLE_DEPRECATED) \
+ $(NULL)
+
+bin_PROGRAMS=evince
+
+evince_SOURCES= \
+ ev-application.c \
+ ev-application.h \
+ ev-window.c \
+ ev-window.h \
+ main.c \
+ $(NULL)
+
+evince_LDADD= \
+ $(SHELL_LIBS) \
+ $(top_builddir)/lib/libevprivate.a \
+ $(NULL)
diff --git a/shell/ev-application.c b/shell/ev-application.c
new file mode 100644
index 0000000..2a89eaa
--- /dev/null
+++ b/shell/ev-application.c
@@ -0,0 +1,196 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "ev-application.h"
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+#include <gtk/gtkfilechooserdialog.h>
+#include <gtk/gtkstock.h>
+#include <gtk/gtkwidget.h>
+#include <bonobo/bonobo-main.h>
+
+#include <ev-macros.h>
+#include <ev-window.h>
+
+struct _EvApplicationPrivate {
+ GList *windows;
+};
+
+G_DEFINE_TYPE (EvApplication, ev_application, G_TYPE_OBJECT);
+
+#define EV_APPLICATION_GET_PRIVATE(object) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_APPLICATION, EvApplicationPrivate))
+
+EvApplication *
+ev_application_get_instance (void)
+{
+ static EvApplication *instance;
+
+ if (!instance)
+ instance = EV_APPLICATION (
+ g_object_new (EV_TYPE_APPLICATION, NULL));
+
+ return instance;
+}
+
+static void
+window_destroy_cb (GtkObject *object, gpointer user_data)
+{
+ EvApplication *application;
+
+ g_return_if_fail (EV_IS_WINDOW (object));
+ g_return_if_fail (EV_IS_APPLICATION (user_data));
+
+ application = EV_APPLICATION (user_data);
+ application->priv->windows =
+ g_list_remove (application->priv->windows, object);
+
+ if (application->priv->windows == NULL)
+ bonobo_main_quit ();
+}
+
+EvWindow *
+ev_application_new_window (EvApplication *application)
+{
+ EvWindow *ev_window;
+
+ ev_window = EV_WINDOW (g_object_new (EV_TYPE_WINDOW,
+ "type", GTK_WINDOW_TOPLEVEL,
+ "default-height", 600,
+ "default-width", 600,
+ NULL));
+ application->priv->windows =
+ g_list_prepend (application->priv->windows, ev_window);
+ g_signal_connect (G_OBJECT (ev_window), "destroy",
+ G_CALLBACK (window_destroy_cb), application);
+
+ return ev_window;
+}
+
+static int
+is_window_empty (const EvWindow *ev_window, gconstpointer dummy)
+{
+ g_return_val_if_fail (EV_IS_WINDOW (ev_window), 0);
+
+ return ev_window_is_empty (ev_window)
+ ? 0
+ : -1;
+}
+
+static EvWindow *
+ev_application_get_empty_window (EvApplication *application)
+{
+ GList *node;
+
+ node = g_list_find_custom (application->priv->windows, NULL,
+ (GCompareFunc)is_window_empty);
+
+ return node && node->data
+ ? EV_WINDOW (node->data)
+ : ev_application_new_window (application);
+}
+
+void
+ev_application_open (EvApplication *application, GError *err)
+{
+ EvWindow *ev_window;
+ GtkWidget *chooser;
+ GtkFileFilter *both_filter, *pdf_filter, *ps_filter, *all_filter;
+
+
+ ev_window = ev_application_get_empty_window (application);
+
+ chooser = gtk_file_chooser_dialog_new (_("Open document"),
+ GTK_WINDOW (ev_window),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_OK,
+ NULL);
+
+ both_filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (both_filter,
+ _("PostScript and PDF Documents"));
+ gtk_file_filter_add_mime_type (both_filter, "application/postscript");
+ gtk_file_filter_add_mime_type (both_filter, "application/pdf");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), both_filter);
+
+ ps_filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (ps_filter, _("PostScript Documents"));
+ gtk_file_filter_add_mime_type (ps_filter, "application/postscript");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), ps_filter);
+
+ pdf_filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (pdf_filter, _("PDF Documents"));
+ gtk_file_filter_add_mime_type (pdf_filter, "application/pdf");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), pdf_filter);
+
+ all_filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (all_filter, _("All Files"));
+ gtk_file_filter_add_pattern (all_filter, "*");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), all_filter);
+
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), both_filter);
+
+ if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_OK) {
+ char *uri;
+
+ uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser));
+ ev_window_open (ev_window, uri);
+ gtk_widget_show (GTK_WIDGET (ev_window));
+ g_free (uri);
+ }
+
+ gtk_widget_destroy (GTK_WIDGET (chooser));
+}
+
+static void
+ev_application_finalize (GObject *object)
+{
+ g_return_if_fail (object != NULL && EV_IS_APPLICATION (object));
+
+ EV_APPLICATION (object)->priv = NULL;
+
+ EV_CALL_VIRTUAL (
+ G_OBJECT_CLASS (ev_application_parent_class), finalize, (object));
+}
+
+static void
+ev_application_class_init (EvApplicationClass *ev_application_class)
+{
+ GObjectClass *g_object_class;
+
+ g_object_class = G_OBJECT_CLASS (ev_application_class);
+ g_object_class->finalize = ev_application_finalize;
+
+ g_type_class_add_private (g_object_class,
+ sizeof (EvApplicationPrivate));
+}
+
+static void
+ev_application_init (EvApplication *ev_application)
+{
+ ev_application->priv = EV_APPLICATION_GET_PRIVATE (ev_application);
+}
+
diff --git a/shell/ev-application.h b/shell/ev-application.h
new file mode 100644
index 0000000..b9f64c1
--- /dev/null
+++ b/shell/ev-application.h
@@ -0,0 +1,63 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef EV_APPLICATION_H
+#define EV_APPLICATION_H
+
+#include <glib/gerror.h>
+#include <glib-object.h>
+
+#include "ev-window.h"
+
+G_BEGIN_DECLS
+
+typedef struct _EvApplication EvApplication;
+typedef struct _EvApplicationClass EvApplicationClass;
+typedef struct _EvApplicationPrivate EvApplicationPrivate;
+
+#define EV_TYPE_APPLICATION (ev_application_get_type ())
+#define EV_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_APPLICATION, EvApplication))
+#define EV_APPLICATION_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_APPLICATION, EvApplicationClass))
+#define EV_IS_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_APPLICATION))
+#define EV_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_APPLICATION))
+#define EV_APPLICATION_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_APPLICATION, EvApplicationClass))
+
+#define EV_APP (ev_application_get_instance ())
+
+struct _EvApplication {
+ GObject base_instance;
+ EvApplicationPrivate *priv;
+};
+
+struct _EvApplicationClass {
+ GObjectClass base_class;
+};
+
+GType ev_application_get_type (void);
+EvApplication *ev_application_get_instance (void);
+void ev_application_open (EvApplication *application, GError *err);
+EvWindow *ev_application_new_window (EvApplication *application);
+
+G_END_DECLS
+
+#endif /* !EV_APPLICATION_H */
+
diff --git a/shell/ev-window.c b/shell/ev-window.c
new file mode 100644
index 0000000..cde0518
--- /dev/null
+++ b/shell/ev-window.c
@@ -0,0 +1,509 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "ev-window.h"
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+#include <gtk/gtkaboutdialog.h>
+#include <gtk/gtkaccelgroup.h>
+#include <gtk/gtkactiongroup.h>
+#include <gtk/gtkmain.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkstatusbar.h>
+#include <gtk/gtkstock.h>
+#include <gtk/gtktoggleaction.h>
+#include <gtk/gtkuimanager.h>
+#include <gtk/gtkvbox.h>
+#include <libbonoboui.h>
+#include <libgnomevfs/gnome-vfs-mime-utils.h>
+
+#include <string.h>
+
+#include <ev-macros.h>
+#include <ev-stock-icons.h>
+
+#include "ev-application.h"
+
+enum {
+ PROP_0,
+ PROP_ATTRIBUTE
+};
+
+enum {
+ SIGNAL,
+ N_SIGNALS
+};
+
+struct _EvWindowPrivate {
+ GtkWidget *main_box;
+ GtkWidget *bonobo_widget;
+ GtkUIManager *ui_manager;
+ GtkWidget *statusbar;
+ guint help_message_cid;
+};
+
+#if 0
+/* enable these to add support for signals */
+static guint ev_window_signals [N_SIGNALS] = { 0 };
+#endif
+
+G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW)
+
+#define EV_WINDOW_GET_PRIVATE(object) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_WINDOW, EvWindowPrivate))
+
+#if 0
+const char *
+ev_window_get_attribute (EvWindow *self)
+{
+ g_return_val_if_fail (self != NULL && EV_IS_WINDOW (self), NULL);
+
+ return self->priv->attribute;
+}
+
+void
+ev_window_set_attribute (EvWindow* self, const char *attribute)
+{
+ g_assert (self != NULL && EV_IS_WINDOW (self));
+ g_assert (attribute != NULL);
+
+ if (self->priv->attribute != NULL) {
+ g_free (self->priv->attribute);
+ }
+
+ self->priv->attribute = g_strdup (attribute);
+
+ g_object_notify (G_OBJECT (self), "attribute");
+}
+
+static void
+ev_window_get_property (GObject *object, guint prop_id, GValue *value,
+ GParamSpec *param_spec)
+{
+ EvWindow *self;
+
+ self = EV_WINDOW (object);
+
+ switch (prop_id) {
+ case PROP_ATTRIBUTE:
+ g_value_set_string (value, self->priv->attribute);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+ prop_id,
+ param_spec);
+ break;
+ }
+}
+
+static void
+ev_window_set_property (GObject *object, guint prop_id, const GValue *value,
+ GParamSpec *param_spec)
+{
+ EvWindow *self;
+
+ self = EV_WINDOW (object);
+
+ switch (prop_id) {
+ case PROP_ATTRIBUTE:
+ ev_window_set_attribute (self, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+ prop_id,
+ param_spec);
+ break;
+ }
+}
+#endif
+
+gboolean
+ev_window_is_empty (const EvWindow *ev_window)
+{
+ g_return_val_if_fail (EV_IS_WINDOW (ev_window), FALSE);
+
+ return ev_window->priv->bonobo_widget == NULL;
+}
+
+void
+ev_window_open (EvWindow *ev_window, const char *uri)
+{
+#if 0
+ char *mime_type;
+ BonoboObject *bonobo_control;
+ CORBA_Environment ev;
+ Bonobo_PersistFile pf;
+
+ mime_type = gnome_vfs_get_mime_type (uri);
+
+ g_return_if_fail (mime_type != NULL); /* FIXME set error */
+
+ if (!strcmp (mime_type, "application/pdf")) {
+ bonobo_control = create_gpdf_control ();
+ } else if (!strcmp (mime_type, "application/postscript")) {
+ bonobo_control = create_ggv_control ();
+ } else if (!strcmp (mime_type, "application/x-gzip")) {
+ g_message ("Cannot open gzip-compressed file %s.", uri);
+ goto finally;
+ } else if (!strcmp (mime_type, "application/x-bzip")) {
+ g_message ("Cannot open bzip2-compressed file %s.", uri);
+ goto finally;
+ } else {
+ g_warning ("Don't know how to open %s file %s.",
+ mime_type, uri); /* FIXME set error */
+ goto finally;
+ }
+
+ ev_window->priv->bonobo_widget = bonobo_widget_new_control_from_objref (
+ bonobo_object_corba_objref (bonobo_control), CORBA_OBJECT_NIL);
+ gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box),
+ ev_window->priv->bonobo_widget,
+ TRUE, TRUE, 0);
+ CORBA_exception_init (&ev);
+ pf = bonobo_object_query_interface (
+ bonobo_control, "IDL:Bonobo/PersistFile:1.0", &ev);
+ Bonobo_PersistFile_load (pf, uri, &ev);
+ gtk_widget_show (ev_window->priv->bonobo_widget);
+ bonobo_object_release_unref (pf, &ev);
+ bonobo_object_unref (bonobo_control);
+ CORBA_exception_free (&ev);
+
+finally:
+ g_free (mime_type);
+#endif
+}
+
+static void
+ev_window_cmd_file_open (GtkAction *action, EvWindow *ev_window)
+{
+ ev_application_open (EV_APP, NULL);
+}
+
+static void
+ev_window_cmd_file_close_window (GtkAction *action, EvWindow *ev_window)
+{
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ gtk_widget_destroy (GTK_WIDGET (ev_window));
+}
+
+static void
+ev_window_cmd_help_about (GtkAction *action, EvWindow *ev_window)
+{
+ const char *authors[] = {
+ N_("Many..."),
+ NULL
+ };
+
+ const char *documenters[] = {
+ N_("Not so many..."),
+ NULL
+ };
+
+ const char *license[] = {
+ N_("Evince is free software; you can redistribute it and/or modify\n"
+ "it under the terms of the GNU General Public License as published by\n"
+ "the Free Software Foundation; either version 2 of the License, or\n"
+ "(at your option) any later version.\n"),
+ N_("Evince is distributed in the hope that it will be useful,\n"
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
+ "GNU General Public License for more details.\n"),
+ N_("You should have received a copy of the GNU General Public License\n"
+ "along with Evince; if not, write to the Free Software Foundation, Inc.,\n"
+ "59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n")
+ };
+
+ char *license_trans;
+
+#ifdef ENABLE_NLS
+ const char **p;
+
+ for (p = authors; *p; ++p)
+ *p = _(*p);
+
+ for (p = documenters; *p; ++p)
+ *p = _(*p);
+#endif
+
+ license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n",
+ _(license[2]), "\n", NULL);
+
+ gtk_show_about_dialog (
+ GTK_WINDOW (ev_window),
+ "name", _("Evince"),
+ "version", VERSION,
+ "copyright",
+ _("\xc2\xa9 1996-2004 The Evince authors"),
+ "license", license_trans,
+ "website", "http://www.gnome.org/projects/evince",
+ "comments", _("PostScript and PDF File Viewer."),
+ "authors", authors,
+ "documenters", documenters,
+ "translator-credits", _("translator-credits"),
+ NULL);
+
+ g_free (license_trans);
+}
+
+static void
+ev_window_view_toolbar_cb (GtkAction *action, EvWindow *ev_window)
+{
+ g_object_set (
+ G_OBJECT (gtk_ui_manager_get_widget (
+ ev_window->priv->ui_manager,
+ "/ToolBar")),
+ "visible",
+ gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)),
+ NULL);
+}
+
+static void
+ev_window_view_statusbar_cb (GtkAction *action, EvWindow *ev_window)
+{
+ g_object_set (
+ ev_window->priv->statusbar,
+ "visible",
+ gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)),
+ NULL);
+}
+
+static void
+menu_item_select_cb (GtkMenuItem *proxy, EvWindow *ev_window)
+{
+ GtkAction *action;
+ char *message;
+
+ action = g_object_get_data (G_OBJECT (proxy), "gtk-action");
+ g_return_if_fail (action != NULL);
+
+ g_object_get (G_OBJECT (action), "tooltip", &message, NULL);
+ if (message) {
+ gtk_statusbar_push (GTK_STATUSBAR (ev_window->priv->statusbar),
+ ev_window->priv->help_message_cid, message);
+ g_free (message);
+ }
+}
+
+static void
+menu_item_deselect_cb (GtkMenuItem *proxy, EvWindow *ev_window)
+{
+ gtk_statusbar_pop (GTK_STATUSBAR (ev_window->priv->statusbar),
+ ev_window->priv->help_message_cid);
+}
+
+static void
+connect_proxy_cb (GtkUIManager *ui_manager, GtkAction *action,
+ GtkWidget *proxy, EvWindow *ev_window)
+{
+ if (GTK_IS_MENU_ITEM (proxy)) {
+ g_signal_connect (proxy, "select",
+ G_CALLBACK (menu_item_select_cb), ev_window);
+ g_signal_connect (proxy, "deselect",
+ G_CALLBACK (menu_item_deselect_cb),
+ ev_window);
+ }
+}
+
+static void
+disconnect_proxy_cb (GtkUIManager *ui_manager, GtkAction *action,
+ GtkWidget *proxy, EvWindow *ev_window)
+{
+ if (GTK_IS_MENU_ITEM (proxy)) {
+ g_signal_handlers_disconnect_by_func
+ (proxy, G_CALLBACK (menu_item_select_cb), ev_window);
+ g_signal_handlers_disconnect_by_func
+ (proxy, G_CALLBACK (menu_item_deselect_cb), ev_window);
+ }
+}
+
+static void
+ev_window_dispose (GObject *object)
+{
+ EvWindowPrivate *priv;
+
+ g_return_if_fail (object != NULL && EV_IS_WINDOW (object));
+
+ priv = EV_WINDOW (object)->priv;
+
+ EV_UNREF (priv->ui_manager);
+
+ EV_CALL_VIRTUAL (
+ G_OBJECT_CLASS (ev_window_parent_class), dispose, (object));
+}
+
+static void
+ev_window_finalize (GObject *object)
+{
+ g_return_if_fail (object != NULL && EV_IS_WINDOW (object));
+
+ EV_WINDOW (object)->priv = NULL;
+
+ EV_CALL_VIRTUAL (
+ G_OBJECT_CLASS (ev_window_parent_class), finalize, (object));
+}
+
+static void
+ev_window_class_init (EvWindowClass *ev_window_class)
+{
+ GObjectClass *g_object_class;
+
+ g_object_class = G_OBJECT_CLASS (ev_window_class);
+ g_object_class->dispose = ev_window_dispose;
+ g_object_class->finalize = ev_window_finalize;
+
+ g_type_class_add_private (g_object_class, sizeof (EvWindowPrivate));
+
+#if 0
+ /* setting up signal system */
+ ev_window_class->signal = ev_window_signal;
+
+ ev_window_signals [SIGNAL] = g_signal_new (
+ "signal",
+ EV_TYPE_WINDOW,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (EvWindowClass,
+ signal),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 0);
+ /* setting up property system */
+ g_object_class->set_property = ev_window_set_property;
+ g_object_class->get_property = ev_window_get_property;
+
+ g_object_class_install_property (
+ g_object_class,
+ PROP_ATTRIBUTE,
+ g_param_spec_string ("attribute",
+ "Attribute",
+ "A simple unneccessary attribute that "
+ "does nothing special except being a "
+ "demonstration for the correct implem"
+ "entation of a GObject property",
+ "default_value",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+#endif
+}
+
+/* Normal items */
+static GtkActionEntry entries[] = {
+ { "File", NULL, N_("_File") },
+ { "View", NULL, N_("_View") },
+ { "Help", NULL, N_("_Help") },
+
+ /* File menu */
+ { "FileOpen", GTK_STOCK_OPEN, N_("_Open"), "<control>O",
+ N_("Open a file"),
+ G_CALLBACK (ev_window_cmd_file_open) },
+ { "FileCloseWindow", GTK_STOCK_CLOSE, N_("_Close"), "<control>W",
+ N_("Close this window"),
+ G_CALLBACK (ev_window_cmd_file_close_window) },
+
+ /* Help menu */
+ { "HelpAbout", STOCK_ABOUT, N_("_About"), NULL,
+ N_("Display credits for the document viewer creators"),
+ G_CALLBACK (ev_window_cmd_help_about) },
+};
+
+/* Toggle items */
+static GtkToggleActionEntry toggle_entries[] = {
+ /* View Menu */
+ { "ViewToolbar", NULL, N_("_Toolbar"), "<shift><control>T",
+ N_("Show or hide toolbar"),
+ G_CALLBACK (ev_window_view_toolbar_cb), TRUE },
+ { "ViewStatusbar", NULL, N_("_Statusbar"), NULL,
+ N_("Show or hide statusbar"),
+ G_CALLBACK (ev_window_view_statusbar_cb), TRUE },
+};
+
+static void
+ev_window_init (EvWindow *ev_window)
+{
+ GtkActionGroup *action_group;
+ GtkAccelGroup *accel_group;
+ GError *error = NULL;
+ GtkWidget *menubar;
+ GtkWidget *toolbar;
+
+ ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
+
+ gtk_window_set_title (GTK_WINDOW (ev_window), _("Evince"));
+
+ ev_window->priv->main_box = gtk_vbox_new (FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (ev_window), ev_window->priv->main_box);
+ gtk_widget_show (ev_window->priv->main_box);
+
+ action_group = gtk_action_group_new ("MenuActions");
+ gtk_action_group_set_translation_domain (action_group, NULL);
+ gtk_action_group_add_actions (action_group, entries,
+ G_N_ELEMENTS (entries), ev_window);
+ gtk_action_group_add_toggle_actions (action_group, toggle_entries,
+ G_N_ELEMENTS (toggle_entries),
+ ev_window);
+
+ ev_window->priv->ui_manager = gtk_ui_manager_new ();
+ gtk_ui_manager_insert_action_group (ev_window->priv->ui_manager,
+ action_group, 0);
+
+ accel_group =
+ gtk_ui_manager_get_accel_group (ev_window->priv->ui_manager);
+ gtk_window_add_accel_group (GTK_WINDOW (ev_window), accel_group);
+
+ g_signal_connect (ev_window->priv->ui_manager, "connect_proxy",
+ G_CALLBACK (connect_proxy_cb), ev_window);
+ g_signal_connect (ev_window->priv->ui_manager, "disconnect_proxy",
+ G_CALLBACK (disconnect_proxy_cb), ev_window);
+
+ if (!gtk_ui_manager_add_ui_from_file (ev_window->priv->ui_manager,
+ DATADIR"/evince-ui.xml",
+ &error)) {
+ g_message ("building menus failed: %s", error->message);
+ g_error_free (error);
+ }
+
+ menubar = gtk_ui_manager_get_widget (ev_window->priv->ui_manager,
+ "/MainMenu");
+ gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), menubar,
+ FALSE, FALSE, 0);
+
+ toolbar = gtk_ui_manager_get_widget (ev_window->priv->ui_manager,
+ "/ToolBar");
+ gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), toolbar,
+ FALSE, FALSE, 0);
+
+ ev_window->priv->statusbar = gtk_statusbar_new ();
+ gtk_widget_show (ev_window->priv->statusbar);
+ gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box),
+ ev_window->priv->statusbar,
+ FALSE, TRUE, 0);
+ ev_window->priv->help_message_cid = gtk_statusbar_get_context_id
+ (GTK_STATUSBAR (ev_window->priv->statusbar), "help_message");
+
+}
diff --git a/shell/ev-window.h b/shell/ev-window.h
new file mode 100644
index 0000000..0d2e242
--- /dev/null
+++ b/shell/ev-window.h
@@ -0,0 +1,62 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef EV_WINDOW_H
+#define EV_WINDOW_H
+
+#include <glib-object.h>
+#include <gtk/gtkwindow.h>
+
+G_BEGIN_DECLS
+
+typedef struct _EvWindow EvWindow;
+typedef struct _EvWindowClass EvWindowClass;
+typedef struct _EvWindowPrivate EvWindowPrivate;
+
+#define EV_TYPE_WINDOW (ev_window_get_type())
+#define EV_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_WINDOW, EvWindow))
+#define EV_WINDOW_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_WINDOW, EvWindowClass))
+#define EV_IS_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_WINDOW))
+#define EV_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_WINDOW))
+#define EV_WINDOW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_WINDOW, EvWindowClass))
+
+struct _EvWindow {
+ GtkWindow base_instance;
+ EvWindowPrivate *priv;
+};
+
+struct _EvWindowClass {
+ GtkWindowClass base_class;
+
+ /* signals */
+ void (*signal) (EvWindow *self,
+ const char *string);
+};
+
+GType ev_window_get_type (void);
+void ev_window_open (EvWindow *ev_window, const char *uri);
+gboolean ev_window_is_empty (const EvWindow *ev_window);
+
+G_END_DECLS
+
+#endif /* !EV_WINDOW_H */
+
diff --git a/shell/global-params.cc b/shell/global-params.cc
new file mode 100644
index 0000000..a8ab177
--- /dev/null
+++ b/shell/global-params.cc
@@ -0,0 +1,36 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "global-params.h"
+#include <GlobalParams.h>
+
+void
+global_params_init (const char *cfg_filename)
+{
+ globalParams = new GlobalParams (const_cast<char *> (cfg_filename));
+}
+
+void
+global_params_destroy (void)
+{
+ delete globalParams;
+}
diff --git a/shell/global-params.h b/shell/global-params.h
new file mode 100644
index 0000000..0b243de
--- /dev/null
+++ b/shell/global-params.h
@@ -0,0 +1,36 @@
+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2004 Martin Kretzschmar
+ *
+ * Author:
+ * Martin Kretzschmar <martink@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef GLOBAL_PARAMS_H
+#define GLOBAL_PARAMS_H
+
+#include <glib/gmacros.h>
+
+G_BEGIN_DECLS
+
+void global_params_init (const char *cfg_filename);
+void global_params_destroy (void);
+
+G_END_DECLS
+
+
+#endif /* GLOBAL_PARAMS_H */
diff --git a/shell/main.c b/shell/main.c
new file mode 100644
index 0000000..8ad8f28
--- /dev/null
+++ b/shell/main.c
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2004 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ */
+
+#include "config.h"
+
+#include <glib/gi18n.h>
+#include <gtk/gtkmain.h>
+#include <libgnome/gnome-program.h>
+#include <libgnomeui/gnome-ui-init.h>
+
+static struct poptOption popt_options[] =
+{
+ { NULL, 0, 0, NULL, 0, NULL, NULL }
+};
+
+int
+main (int argc, char *argv[])
+{
+ poptContext context;
+ GValue context_as_value = { 0 };
+ GnomeProgram *program;
+
+#ifdef ENABLE_NLS
+ /* Initialize the i18n stuff */
+ bindtextdomain(GETTEXT_PACKAGE, GNOMELOCALEDIR);
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ textdomain(GETTEXT_PACKAGE);
+#endif
+
+ program = gnome_program_init (PACKAGE, VERSION,
+ LIBGNOMEUI_MODULE, argc, argv,
+ GNOME_PARAM_POPT_TABLE, popt_options,
+ GNOME_PARAM_HUMAN_READABLE_NAME, _("Evince"),
+ GNOME_PARAM_APP_DATADIR, DATADIR,
+ NULL);
+
+ g_set_application_name (_("Epiphany Web Browser"));
+
+ g_object_get_property (G_OBJECT (program),
+ GNOME_PARAM_POPT_CONTEXT,
+ g_value_init (&context_as_value, G_TYPE_POINTER));
+ context = g_value_get_pointer (&context_as_value);
+
+ gtk_main ();
+
+ poptFreeContext (context);
+
+ return 0;
+}
diff --git a/viewer/Makefile.am b/viewer/Makefile.am
new file mode 100644
index 0000000..0416b8b
--- /dev/null
+++ b/viewer/Makefile.am
@@ -0,0 +1,15 @@
+NULL=
+
+INCLUDES= \
+ -DEVINCE_UIDIR=\"$(pkgdatadir)\" \
+ -DGNOMELOCALEDIR=\"$(datadir)/locale\" \
+ $(SHELL_CFLAGS) \
+ $(EVINCE_DISABLE_DEPRECATED) \
+ $(NULL)
+
+noinst_LTLIBRARIES = libevviewer.la
+
+libevviewer_la_SOURCES= \
+ ev-viewer.c \
+ ev-viewer.h \
+ $(NULL)
diff --git a/viewer/ev-viewer.c b/viewer/ev-viewer.c
new file mode 100644
index 0000000..3a91183
--- /dev/null
+++ b/viewer/ev-viewer.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2004 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include "config.h"
+
+#include "ev-viewer.h"
+
+static void ev_viewer_base_init (gpointer g_class);
+
+GType
+ev_viewer_get_type (void)
+{
+ static GType type = 0;
+
+ if (G_UNLIKELY (type == 0))
+ {
+ static const GTypeInfo our_info =
+ {
+ sizeof (EvViewerIface),
+ ev_viewer_base_init,
+ NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE,
+ "EvViewer",
+ &our_info, (GTypeFlags)0);
+ }
+
+ return type;
+}
+
+static void
+ev_viewer_base_init (gpointer g_class)
+{
+}
+
+void
+ev_viewer_load (EvViewer *embed, const char *uri)
+{
+ EvViewerIface *iface = EV_VIEWER_GET_IFACE (embed);
+ iface->load (embed, uri);
+}
diff --git a/viewer/ev-viewer.h b/viewer/ev-viewer.h
new file mode 100644
index 0000000..1b52c63
--- /dev/null
+++ b/viewer/ev-viewer.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2000-2003 Marco Pesenti Gritti
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Id$
+ */
+
+#ifndef EV_VIEWER_H
+#define EV_VIEWER_H
+
+#include <glib-object.h>
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#define EV_TYPE_VIEWER (ev_viewer_get_type ())
+#define EV_VIEWER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_VIEWER, EvViewer))
+#define EV_VIEWER_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_VIEWER, EvViewerIface))
+#define EV_IS_VIEWER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_VIEWER))
+#define EV_IS_VIEWER_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_VIEWER))
+#define EV_VIEWER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_VIEWER, EvViewerIface))
+
+typedef struct _EvViewer EvViewer;
+typedef struct _EvViewerIface EvViewerIface;
+
+struct _EvViewerIface
+{
+ GTypeInterface base_iface;
+
+ /* Methods */
+ void (* load) (EvViewer *embed,
+ const char *uri);
+};
+
+GType ev_viewer_get_type (void);
+
+void ev_viewer_load (EvViewer *embed,
+ const char *uri);
+
+G_END_DECLS
+
+#endif