summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Eduardo Rodrigues Diógenes <carlosd@src.gnome.org>2007-03-04 19:39:08 +0000
committerCarlos Eduardo Rodrigues Diógenes <carlosd@src.gnome.org>2007-03-04 19:39:08 +0000
commita951d22654ce4e84356cf32a0a74775e9dbf2232 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent8f2167967a0c038693f62d3738ceee87edd0799d (diff)
corrected the branch namegnome_2_18
svn path=/branches/gnome_2_18; revision=473
-rw-r--r--.cvsignore24
-rw-r--r--AUTHORS5
-rw-r--r--COPYING482
-rw-r--r--ChangeLog2499
-rw-r--r--HACKING18
-rw-r--r--MAINTAINERS2
-rw-r--r--Makefile.am44
-rw-r--r--NEWS311
-rw-r--r--README54
-rwxr-xr-xautogen.sh9
-rw-r--r--configure.in405
-rw-r--r--cursors/1_32/Makefile.am25
-rw-r--r--cursors/1_32/appstart.xpm41
-rw-r--r--cursors/1_32/bottom_left_corner.xpm38
-rw-r--r--cursors/1_32/bottom_side.xpm38
-rw-r--r--cursors/1_32/busy.xpm41
-rw-r--r--cursors/1_32/crosshair.xpm38
-rw-r--r--cursors/1_32/default.xpm38
-rw-r--r--cursors/1_32/fleur.xpm38
-rw-r--r--cursors/1_32/hand.xpm38
-rw-r--r--cursors/1_32/help.xpm39
-rw-r--r--cursors/1_32/left_ptr.xpm38
-rw-r--r--cursors/1_32/left_side.xpm38
-rw-r--r--cursors/1_32/no.xpm38
-rw-r--r--cursors/1_32/right_side.xpm38
-rw-r--r--cursors/1_32/sb_h_double_arrow.xpm38
-rw-r--r--cursors/1_32/sb_v_double_arrow.xpm38
-rw-r--r--cursors/1_32/top_left_corner.xpm38
-rw-r--r--cursors/1_32/top_right_corner.xpm38
-rw-r--r--cursors/1_32/top_side.xpm38
-rw-r--r--cursors/1_32/up.xpm38
-rw-r--r--cursors/1_32/xterm.xpm38
-rw-r--r--cursors/1_48/appstart.xpm57
-rw-r--r--cursors/1_48/busy.xpm57
-rw-r--r--cursors/1_48/cross.xpm54
-rw-r--r--cursors/1_48/hand.xpm54
-rw-r--r--cursors/1_48/help.xpm55
-rw-r--r--cursors/1_48/ibeam.xpm54
-rw-r--r--cursors/1_48/move.xpm54
-rw-r--r--cursors/1_48/nesw.xpm54
-rw-r--r--cursors/1_48/no.xpm55
-rw-r--r--cursors/1_48/normal.xpm54
-rw-r--r--cursors/1_48/ns.xpm54
-rw-r--r--cursors/1_48/nwse.xpm54
-rw-r--r--cursors/1_48/up.xpm54
-rw-r--r--cursors/1_48/we.xpm54
-rw-r--r--cursors/1_64/appstart.xpm73
-rw-r--r--cursors/1_64/busy.xpm74
-rw-r--r--cursors/1_64/cross.xpm70
-rw-r--r--cursors/1_64/hand.xpm70
-rw-r--r--cursors/1_64/help.xpm71
-rw-r--r--cursors/1_64/ibeam.xpm70
-rw-r--r--cursors/1_64/move.xpm70
-rw-r--r--cursors/1_64/nesw.xpm70
-rw-r--r--cursors/1_64/no.xpm70
-rw-r--r--cursors/1_64/normal.xpm70
-rw-r--r--cursors/1_64/ns.xpm70
-rw-r--r--cursors/1_64/nwse.xpm70
-rw-r--r--cursors/1_64/up.xpm70
-rw-r--r--cursors/1_64/we.xpm70
-rw-r--r--cursors/Makefile.am8
-rw-r--r--cursors/default-cursor.xpm70
-rw-r--r--docs/Makefile.am14
-rw-r--r--docs/man/Makefile.am17
-rw-r--r--docs/man/magnifier.1.man153
-rw-r--r--docs/reference/Doxyfile1212
-rw-r--r--docs/reference/Makefile.am58
-rw-r--r--docs/reference/README5
-rw-r--r--gnome-mag-1.0-uninstalled.pc.in8
-rw-r--r--gnome-mag-1.0.pc.in12
-rw-r--r--idl/.cvsignore3
-rw-r--r--idl/GNOME_Magnifier.idl260
-rw-r--r--idl/Makefile.am6
-rw-r--r--magnifier/.cvsignore15
-rw-r--r--magnifier/GNOME_Magnifier.server.in.in12
-rw-r--r--magnifier/Makefile.am98
-rw-r--r--magnifier/crosshair-cursor.xpm50
-rw-r--r--magnifier/default-cursor.xpm51
-rw-r--r--magnifier/gmag-events.c1215
-rw-r--r--magnifier/gmag-events.h53
-rw-r--r--magnifier/magnifier-main.c618
-rw-r--r--magnifier/magnifier-private.h57
-rw-r--r--magnifier/magnifier.c1875
-rw-r--r--magnifier/magnifier.h177
-rw-r--r--magnifier/zoom-region-private.h62
-rw-r--r--magnifier/zoom-region.c3565
-rw-r--r--magnifier/zoom-region.h93
-rw-r--r--po/.cvsignore9
-rw-r--r--po/ChangeLog585
-rw-r--r--po/LINGUAS82
-rw-r--r--po/POTFILES.in2
-rw-r--r--po/ang.po24
-rw-r--r--po/ar.po34
-rw-r--r--po/as.po26
-rw-r--r--po/az.po25
-rw-r--r--po/be.po31
-rw-r--r--po/bg.po29
-rw-r--r--po/bn.po24
-rw-r--r--po/bn_IN.po24
-rw-r--r--po/br.po24
-rw-r--r--po/bs.po26
-rw-r--r--po/ca.po30
-rw-r--r--po/cs.po24
-rw-r--r--po/cy.po24
-rw-r--r--po/da.po30
-rw-r--r--po/de.po31
-rw-r--r--po/dz.po29
-rw-r--r--po/el.po24
-rw-r--r--po/en_CA.po25
-rw-r--r--po/en_GB.po30
-rw-r--r--po/eo.po24
-rw-r--r--po/es.po34
-rw-r--r--po/et.po35
-rw-r--r--po/eu.po26
-rw-r--r--po/fa.po22
-rw-r--r--po/fi.po29
-rw-r--r--po/fr.po31
-rw-r--r--po/ga.po24
-rw-r--r--po/gl.po26
-rw-r--r--po/gu.po33
-rw-r--r--po/he.po30
-rw-r--r--po/hi.po24
-rw-r--r--po/hr.po22
-rw-r--r--po/hu.po33
-rw-r--r--po/id.po24
-rw-r--r--po/is.po23
-rw-r--r--po/it.po30
-rw-r--r--po/ja.po23
-rw-r--r--po/ka.po24
-rw-r--r--po/kn.po25
-rw-r--r--po/ko.po28
-rw-r--r--po/ku.po28
-rw-r--r--po/ky.po24
-rw-r--r--po/lt.po34
-rw-r--r--po/lv.po32
-rw-r--r--po/mg.po23
-rw-r--r--po/mi.po26
-rwxr-xr-xpo/mk.po34
-rw-r--r--po/ml.po25
-rw-r--r--po/mn.po25
-rw-r--r--po/mr.po26
-rw-r--r--po/ms.po22
-rw-r--r--po/nb.po28
-rw-r--r--po/ne.po28
-rw-r--r--po/nl.po30
-rw-r--r--po/nn.po25
-rw-r--r--po/or.po25
-rw-r--r--po/pa.po27
-rw-r--r--po/pl.po32
-rw-r--r--po/pt.po29
-rw-r--r--po/pt_BR.po30
-rw-r--r--po/ro.po21
-rw-r--r--po/ru.po24
-rw-r--r--po/rw.po32
-rw-r--r--po/si.po28
-rw-r--r--po/sk.po23
-rw-r--r--po/sl.po33
-rw-r--r--po/sq.po25
-rw-r--r--po/sr.po27
-rw-r--r--po/sr@Latn.po27
-rw-r--r--po/sv.po33
-rw-r--r--po/ta.po27
-rw-r--r--po/th.po30
-rw-r--r--po/tk.po27
-rw-r--r--po/tr.po24
-rw-r--r--po/ug.po26
-rw-r--r--po/uk.po23
-rw-r--r--po/vi.po31
-rw-r--r--po/zh_CN.po24
-rw-r--r--po/zh_HK.po30
-rw-r--r--po/zh_TW.po30
-rw-r--r--test/.cvsignore7
-rw-r--r--test/Makefile.am18
-rw-r--r--test/control-client.c352
-rw-r--r--test/mag-test.c208
175 files changed, 0 insertions, 19609 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 30998d4..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,24 +0,0 @@
-ABOUT-NLS
-INSTALL
-Makefile
-Makefile.in
-aclocal.m4
-config.cache
-config.guess
-config.h
-config.h.in
-config.log
-config.status
-config.sub
-configure
-intl
-install-sh
-libtool
-ltconfig
-ltmain.sh
-mkinstalldirs
-missing
-stamp-h
-stamp-h.in
-intltool-*
-gnome-mag-1.0.pc
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 190f06f..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1,5 +0,0 @@
-The Gnome-Mag Team
-=============
-Erwann Chenede <erwann.chenede@sun.com>
-Bill Haneman <bill.haneman@sun.com>
-
diff --git a/COPYING b/COPYING
deleted file mode 100644
index bf50f20..0000000
--- a/COPYING
+++ /dev/null
@@ -1,482 +0,0 @@
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 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.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, 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 library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, 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 companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, 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 library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
- 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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
- If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. 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.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
- 9. 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 Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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.
-
- 11. 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 Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; 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.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 7f3eb1b..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,2499 +0,0 @@
-2007-03-03 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: post-release incrementing to 0.14.3.
-
-2007-03-02 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: Version 0.14.2.
-
-2007-03-02 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/magnifier.c: More informative message when running a 2nd
- magnifier instance. Thanks Michael Broadbent for the patch;
- * magnifier/magnifier-main.c: Added the --version option;
- * magnifier/GNOME_Magnifier.server.in.in: Added the --ignore-composite
- option to the bonobo start server file, since COMPOSITE support still
- have some performance issues and COMPOSITE use make some applications
- behave buggy;
- * magnifier/zoom-region.c: Clamp the input setted by setBrightness and
- setContrast;
- * magnifier/gmag-events.c: Initialize the damaged variable in the
- GmagWin structure. This was causing crashes in some platforms and
- initialize variables is always a good thing to do :-) Thanks Willie
- Walker for create the patch and help find this issue.
-
-2007-01-31 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: Added the new file 'gnome-mag-1.0-uninstalled.pc' to
- the AC_OUTPUT list;
- Add #include line to make composite extension enabled on Solaris.
- Thanks Jeff Cai for the patch!
- * gnome-mag-1.0-uninstalled.pc: New file to help build gnome-mag in the
- Solaris OS. Thanks Brian Cameron for this!
-
-2007-01-08 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: post-release incrementing to 0.14.2.
-
-2007-01-08 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: Change the test for XDamage and XFixes to only look at
- the directories passed by --x-libraries. Added test for XRender, XShape
- and XComposite. Changed the behavior of how the test are done. XDamage
- is only looked if XFixes is finded, as well as the XComposite is only
- searched if XDamage is present.
- * damage-client.c: Removed. This file was incorpored in gmag-events.c.
- * damage-client.h: Removed.
- * gmag-events.c: New file added. This file is responsible to gnome-mag
- and X comunication. This one initialize all the extensions and handle
- events.
- * gmag-events.h: Interface to gmag-events.c.
- * magnifier-main.c: Added the option ignore_composite to
- MagnifierOptions structure. Added comments after the struct
- members inicialization.
- * magnifier-private.c: Added two new members: GdkWindow *overlay and
- GdkPixmap *source_drawable, the first hold an reference to the overlay
- window created by XCompositeGetOverlayWindow and the second is where
- the screen is composited.
- * magnifier.c: Some headers reorganized; Removed functions from this
- file: magnifier_free_cursor_pixels, magnifier_get_source_pixbuf,
- magnifier_cursor_notify and magnifier_cursor_notification_init. The
- first two function were putted in the new file
- magnifier/gmag-events.c with the prefix magnifier removed and the new
- one, gmag_events, added. The function magnifier_cursor_notify was
- incorporated in the handler function of XFixes, XDamage and XComposite
- related events gmag_events_handler, while the
- magnifier_cursor_notification_init was putted inside gmag_events_init.
- (magnifier_reset_overlay_at_idle): This new function was added to
- reparent the magnifier window to the overlay window after the magnifier
- initialization. This grants that the magnifier window will not be
- obscured by popup windows.
- Thanks to everyone that report bugs about all these modifications and
- the Sun team that tested it and make possible a very good COMPOSITE
- support in gnome-mag available!
-
-2007-01-08 Christian Kirbach <Christian.Kirbach@siemens.com>
-
- With hints from Christian Persch
- * configure.in, magnifier-main.c:
- Do the transition from popt to glib's GOption command line parsing,
- one of the current Gnome goals. Require glib >= 2.11.1.
- * magnifier.c: Remove obsolete dependency on <popt.h>.
-
-2006-12-15 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: post-release incrementing to 0.14.1.
-
-2006-12-15 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: Version 0.14.0;
- Added tests to verify if the libcolorblind is present in the system.
- * docs/man: Added magnifier.1.man man page to gnome-mag. Thanks goes to
- George Kraft IV!
- * idl/GNOME_Magnifier.idl: New contrast documentation accordingly the
- new patch in bug #348629;
- Add two new methods and documentation for brightness manipulation;
- Added a new enumeration represeting colorblind filters.
- * magnifier/zoom_region.c:
- (zoom_regin_process_pixbuf): Alter how the contrast is applied, making
- it consistent in how contrast behave;
- Added the brightness filter processing.
- Added the colorblind filter processing.
- (zoom_region_get_property): Added the property to get the current
- colorblind filter;
- Added the property to get the current brightness factor applied to each
- image component.
- (zoom_region_set_property): Change how the contrasts properties are
- setted, climping the input between the range -1 and 1;
- Added the property to set the brightness factor applied to each image
- component.
- Added the property to set the colorblind filter.
- (zoom_region_init): Change the initial values of the contrasts
- properties to 0, meaning 0% of contrast change in the output image;
- Added the initial values of the brightness properties to 0;
- Added the initiation of the colorblind filter to no filter.
- (zoom_region_class_init): Set the epv to support new two functions.
- (zoom_region_properties_init): Added the brightness properties to the
- PropertyBag.
- (impl_zoom_region_set_brightness): The new function to set the
- brightness.
- (impl_zoom_region_get_brightness): The new function to get the
- brightness.
- * magnifier/zoom-region.h:
- Added the brightness variables to the ZoomRegion structure;
- Added the ColorBlindFilter variable to the ZoomRegion structure.
- * magnifier/Makefile.am:
- Added the colorblind library to the linker stage.
- * test/control-client.:
- Added the 'D' option to the control-client test application. This
- allow change the brightness in the following manner:
- '#: ./control-client D 1 0 0';
- Added the 'B' option to the control-client test application. This
- option iterates throw all the colorblind filters.
-
-2006-12-13 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * po/POTFILES.in: Added the file magnifier/magnifier-main.c to the
- list.
-
-2006-11-27 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/zoom-region.c: Avoid NOOP operations in
- impl_zoom_region_set_mag_factor and zoom_region_set_viewport by
- verifying if the passed values are the same as the actual ones.
-
-2006-11-25 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/zoom-region.c: make the scaled pixbuf be recalculated when
- the magnification factor is changed throw the PropertyBag. This also
- make the code to recalculate the scaled pixbuf be shared between the
- setMagFactor and the PropertyBag interfaces. Also make the test pattern
- property work.
-
-2006-11-23 Carlos Eduardo Rodrigues Digenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/GNOME_Magnifier.server.in.in: removed the '-vz 2' flag from
- the magnifier bonobo server startup (bug #376047). Thanks to Eitan
- Isaacson for the patch.
- * test/control-client.c (main): This test was dependent from the
- '-vz 2' flag and stop to work after apply the patch. Added code to
- probe the screen size and make the magnifier vertical split, the same
- behavior with the '-vz 2' flag.
- * test/mag-test.c (main): The same problem and resolution applied to
- the above.
-
-2006-11-11 Carlos Eduardo Rodrigues Digenes <cerdigoenes@yahoo.com.br>
-
- * magnifier/magnifier-main.c: bug #372731: Tampering with the DISPLAY
- variable resolved. Thanks to Eitan Isaacson for the patch.
-
-2006-11-09 Carlos Eduardo Rodrigues Digenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/zoom-region.c: bug #98240: "border-size" not working
- resolved. The last patch introduced some regressions, so a new patch
- was applied.
-
-2006-10-24 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: bug #348169: shouldn't search X libraries in prefix
- other than $x_libraries resolved; bug #319010: warning messages
- searching for the Xdamage and Xfixees headers fixed.
-
-2006-09-26 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/zoom-region.c: bug #98240: "border-size" not working
- resolved.
-
-2006-08-09 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * magnifier/zoom-region.c:
- (impl_zoom_region_set_roi): Avoid update the screen when the ROI passed
- is the same that the one in use.
-
-2006-07-20 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: bug #341914: Should not force -I/opt/fdo/include
- resolved; bug #348133: Result of check to XTest isn't used in gnome-mag
- resolved.
-
-2006-07-12 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: post-release increment
-
-2006-07-12 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: correct the version information.
-
-2006-07-10 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: post-release increment to 0.12.7
-
-2006-07-10 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: Version 0.12.6
-
- * magnifier/zoom-region.c: changed how the update is done to avoid bad
- blocks generated during this process (bug #344070).
-
- Added contrast support to the zoom regions. Added three properties that
- can be change by a Bonobo::PropertyBag: red-contrast, green-contrast
- and blue-contrast. Two interfaces were added two setContrast and
- getContrast that can access in one call the red, green and blue values.
- More informations about these two interface can be found in the
- documentation. (bug #343689)
-
- * magnifier/zoom-region.h: added the contrast_r, contrast_g and
- contrast_b floats to the ZoomRegion struct. (bug #343689)
-
- * idl/GNOME_Magnifier.idl: Added the IDL of the two new interfaces.
- (bug 343689)
-
- * teste/control-client.c: Added the 'C' option to test the new contrast
- interface: "# ./control-client C 1 0.5 0.5". (bug #343689)
-
-
-2006-05-15 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * configure.in: changed the detection of the Xtst, Xdamage and Xfixes
- libraries, so, these are used in systems where theses libs are
- installed in /usr/lib (bug #341854).
- Version 0.12.5.
- Version 0.12.6. Switching to post-release increment.
-
- * Makefile.am: Changed to clean files, generated by intltool, when
- running 'make distcheck' (bug #341888).
-
- * magnifier/Makefile.am: Changed to properly clean files when running
- 'make distcheck' (bug #341888).
-
- * magnifier/zoom-region.c: Round problem in conversion from
- source-to-view and view-to-source coords resolved (bug #338551).
- (zoom_region_set_property): Now zoom_region_align is called when the
- {x,y} alignment property are changed.
-
- * test/control-client.c: Added the 'a' parameter to rotate throw the
- alignment options support by the zoom_region. Added the 'x' parameter
- to exit the magnifier, this is good to test the magnifier exit process.
-
-2006-04-17 Carlos Eduardo Rodrigues Diogenes <cerdiogenes@yahoo.com.br>
-
- * docs/reference/Doxyfile: Tweak some variables to generate a better
- documenation.
-
- * idl/GNOME_Magnifier.idl: Documented the enum AlignPolicy.
-
- * magnifier/zoom-region.c: Removed unused functions: _get_x_cursors,
- zoom_region_clip_to_exposed_bounds, zoom_region_clip_to_viewport,
- zoom_region_source_root and exit_report
-
- * magnifier/magnifier.c: Removed unused functions:
- magnifier_expose_filter
-
-2006-04-17 Kjartan Maraas <kmaraas@gnome.org>
-
- * configure.in: Remove obsolete entry for no_NO.
- * po/no.po: And the translation.
-
-2006-04-16 Brian Pepple <bdpepple@gmail.com>
-
- * po/LINGUAS: New file listing all supported languages.
-
- * configure.in: Use po/LINGUAS instead of including all languages
- directly in this file. See the wiki for more information:
- http://live.gnome.org/GnomeGoals/PoLinguas
-
-2006-03-24 Tommi Vainikainen <thv@iki.fi>
-
- * configure.in (ALL_LINGUAS): Added Dzongkha (dz).
-
-2006-02-14 Bill Haneman <bill.haneman@sun.com>
-
- * docs/reference/Makefile.am:
- Make doxygen optional (bug #330720, thanks to Sylvain Bertrand).
-
-2006-01-19 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in: Revved to 0.12.3.
-
- * autogen.sh: Require automake 1.9 (bug #326161).
-
- * idl/GNOME_Magnifier.idl: Make docs doxygen-compatible.
-
-2005-12-16 Bill Haneman <bill.haneman@sun.com>
-
- Patch from Carlos Diogenes for bug #171465, thanks!
- * magnifier/zoom-region.c:
- (zoom_region_paint_pixmap): Avoid painting more than necessary.
- (zoom_region_update): Avoid painting parts of pixbuf that aren't onscreen.
- (zoom_region_set_viewport): Re-allocate the scaled pixbuf if the
- source bounds change.
-
-2005-11-01 Simos Xenitellis <simos@gnome.org>
-
- * configure.in: Added ky (Kirghiz) to ALL_LINGUAS.
-
-2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com>
-
- * configure.in: Added ku (Kurdish)
-
-2005-10-04 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in, README, NEWS:
- Revved to 0.12.2.
-
-2005-08-24 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/zoom-region.c:
- (zoom_region_calculate_scroll_rects):
- Fix for nasty update bug when panning quickly,
- effects large magnification factors most severely.
-
-2005-06-21 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.c:
- (magnifier_adjust_source_size) C89 fix - thanks to Behdad Estafod.
-
-2005-06-07 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
-
- * configure.in: Added 'gl' to ALL_LINGUAS.
-
-2005-05-24 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.c:
- (magnifier_get_cursor): Make sure we initially grab the current
- source cursor if we don't have any other cursor defined.
- Fixes #167705.
-
-2005-03-23 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in, README, NEWS:
- Revved to 0.12.1.
-
-2005-04-21 Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>
-
- * configure.in: Added "ug" to ALL_LINGUAS.
-
-2005-03-31 Steve Murphy <murf@e-tools.com>
-
- * configure.in: Added "rw" to ALL_LINGUAS.
-
-2005-03-23 Bill Haneman <bill.haneman@sun.com>
-
- Cleaned up magnifier.c to suppress compiler warnings.
-
- * magnifier/magnifier.c:
- (magnifier_adjust_source_bounds): Corrected typo.
-
-2005-03-22 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.c:
- (magnifier_adjust_source_bounds): Improve logic so that
- target-on-top and target-left magnification splitscreen scenarios
- work better.
-
-2005-03-08 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in, README, NEWS:
- Revved to 0.12.0, for gnome 2.10.0.
-
-2005-02-04 Bill Haneman <bill.haneman@sun.com>
-
- Fix for bug #164371.
-
- * magnifier/magnifier.c:
- (magnifier_adjust_source_size): New.
- (magnifier_set_property): Call magnifier_adjust_source_size when
- changing target bounds, if target and source displays are the same.
-
- * magnifier/zoom-region.c:
- (zoom_region_set_viewport): Re-create the pixmap when the viewport
- changes, since the source-bounds may have changes as a result.
- [This can happen when source-display==target-display]
-
-2005-02-04 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in: Revved to 0.11.14.
-
- * README, NEWS: Updated for 0.11.14.
-
- * magnifier/zoom-region.c:
- Added some forward declarations for existing funcs.
- (_rectangle_clip_to_rectangle): Implemented.
- (zoom_region_clip_to_target): Renamed to
- (zoom_region_clip_scaled_pixmap). Not yet used.
- (zoom_region_update): Create the pixmap if not already
- created; this makes the 'update current' calls at init time work,
- so that the initial magnified target window isn't wholly
- or partially blank.
- (impl_zoom_region_mark_dirty): Clip to the source, not target,
- bounds.
- (impl_zoom_region_set_mag_factor): Create a pixmap that's
- big enough for any update/mark-dirty request. We were
- missing some parens () in our calc. Fixes 166282.
-
-2005-01-18 Bill Haneman <bill.haneman@sun.com>
-
- * README, NEWS : Updated for 0.11.13.
-
- * magnifier/magnifier.c: Moved the 'get source bounds' call
- back to before the zoom-regions-restore call. Fixes bugs #164444
- and (partially) #164371. Note that this fix will cause "self-magnification"
- if the source display is changed to be the same as the target
- display, after initial invocation, as a minor side-effect.
-
-2005-01-17 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in: Revved to 0.11.13.
-
- * magnifier/magnifier.c:
- (magnifier_cursor_notification_init): Keep track of cursor
- connection, close the old one, remove the gsource (which was
- causing a hang), and reopen a new one when SOURCE changes.
- Fixes #164491.
-
- * magnifier/zoom-region-private.h:
- Store the update handler gsource.
-
- * magnifier/zoom-region.c:
- (zoom_region_do_dispose): Brute-force remove the update handler gsource,
- because g_idle_remove_by_data isn't reliably removing
- all the idle handlers.
- (zoom_region_queue_update): Only add the process-updates idle
- handler if one isn't already running.
- (zoom_region_coalesce_updates): Check zoom_region->priv->q before
- checking its length. Reset the update_handler_id to 0 when
- you've emptied the queue.
- Completes fix for #164275.
-
-2005-01-16 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in, NEWS, README: Updated for 0.11.12.
-
- Fixes for bug #164275.
-
- * magnifier/damage-client.c:
- (magnifier_damage_client_init):
- Keep track of the damage-client gsource, and remove it
- when re-initializing the damage connection on
- source DISPLAY change.
- Make sure to connect to the source display, not the
- default DISPLAY.
-
- * magnifier/magnifier-main.c:
- Removed some excess output to stderr.
-
- * magnifier/magnifier.c:
- (MagnifierZoomRegionSaveProps): New struct for persisting
- zoom region params during a brute-force reparent.
- (magnifier_unref_zoom_region): Don't unref here, we do it
- elsewhere.
- (magnifier_reparent_zoom_regions): Superceded by
- separate save/restore methods.
- (magnifier_zoom_regions_save): New, persist the zoom region
- data before disposing, during brute-force reparent.
- (magnifier_zoom_regions_restore): New, create and
- new zoom region list from saved set.
- (magnifier_set_property): Handle source-display setting
- differently - save the old zoom list, destroy and recreate the
- main GtkWindow, and recreate the zoom list.
- Restore the main window's target bounds on re-create.
- (impl_magnifier_get_target_display): Fixed cut/n/paste
- error in the return of 'target display'.
-
- * magnifier/zoom-region.c:
- Added conditionally-compiled assertions for lifecycle testing.
- Added more sanity checks before indirections through pointers, to
- help prevent SEGVs.
- (zoom_region_update_current): Tested GDK_IS_DRAWABLE of pixmap.
- (zoom_region_paint_crosswire_cursor): Init an unused part of
- the GdkRectangle, to keep valgrind happy.
- (zoom_region_create_pixmap): Recompute the exposed viewport
- when creating the initial pixmap.
- Added code to return ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE under
- appropriate conditions.
- (zoom_region_do_dispose): Remove the GSource for updating the
- pointer, because it doesn't get removed by
- g_idle_remove_by_data. [Fixes SEGV bugs when changing source DISPLAY]
- (zoom_region_private_init): Initialize the various bounds
- rectangles.
- (zoom_region_finalize): Check the status of the zoom region and
- magnifier widgets before calling gtk_container_remove.
-
- Also some minor cleanup.
-
- * magnifier/zoom-region.h:
- Added conditional 'alive' field for assertion testing.
-
- * magnifier/zoom-region-private.h:
- Added member for pointer-update gsource handler.
-
-2005-01-10 Pawan Chitrakar <pawan@nplinux.org>
-
- * configure.in: Added ne "Nepali" in ALL_LINGUAS
-
-2004-12-07 Bill Haneman <billh@gnome.org>
-
- * configure.in, README, NEWS: Revved to 0.11.10.
-
- * magnifier/zoom-region-private.h:
- (ZoomRegionPrivate): Added last_drawn_crosswire_pos.
-
- * magnifier/zoom-region.c:
- (zoom_region_unpaint_crosswire_cursor): Form the clip rect from
- last_drawn_crosswire_pos, not the backing rect.
- (zoom_region_paint_crosswire_cursor): Fix broken GDK_DRAWABLE
- test, reinstates drawing of crosswire.
- Use 16 bits of color mask instead of 8, for GdkColor inversion
- mask. Set the gdk_gc clip mask to NULL if we haven't been passed
- one, don't reuse the stale one.
- (zoom_region_paint_cursor): Save the last_drawn_crosswire_pos
- before we clip the cursor_backing_rect to the current screen.
- (zoom_region_update_pointer): Create a clip region which
- encompasses the whole zoom region, before updating the cursor
- image.
-
-2004-12-06 Bill Haneman <billh@gnome.org>
-
- * configure.in:
- Improved tests for DAMAGE and XFIXES - include
- -lX11 in the link list for the configure tests.
-
-2004-12-03 Bill Haneman <billh@gnome.org>
-
- * magnifier/zoom-region.c:
- (zoom_region_update_cursor): Unpaint the cursor before movine the
- backing rectangle.
- (impl_zoom_region_mark_dirty): Always update the pointer when handling a
- dirty region. Fixes bug #160352.
-
-2004-11-22 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c: Terminate #ifdef. Ow.
-
-2004-11-19 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_cursor_convert_to_rgba): New.
- (magnifier_get_source_pixbuf): Convert from client
- incoding to little-endian before passing RGBA data
- from XFixes cursor image.
-
-2004-11-11 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_init_window): Added declaration to
- top of source file. Thanks to George Kraft of IBM
- for catching the problem.
-
-2004-11-05 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_init_window): Declare before first use.
- Cast the priv->w to GTK_WINDOW where needed.
-
-2004-11-02 Bill Haneman <billh@gnome.org>
-
- * configure.in: revved to 0.11.9.
-
- * magnifier/magnifier:
- (magnifier_set_cursor_from_pixbuf):
- Test for GDK_IS_DRAWABLE before using pixmap or cursor.
- (magnifier_set_property): Don't change the gdk_screen on
- an existing toplevel magnifier window - tear it down and
- start over.
- (magnifier_init_window): Take a GdkScreen param, and call
- gtk_window_set_screen here.
-
- * magnifier/zoom-region:
- (zoom_region_paint_cursor): Check for drawability before
- scribbling in the cursor pixmap.
- (zoom_region_paint_pixmap): Check that the window is
- realized before painting it.
- (zoom_region_update): Check for drawability before
- writing into the private pixmap.
-
-2004-10-29 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier-main.c:
- Set the default cursor-scale-factor to the zoom-factor, if
- none is specified.
-
-2004-10-06 David Lodge <dave@cirt.net>
-
- * configure.in: Added "ang" (Old English) to ALL_LINGUAS.
-
-2004-10-06 Bill Haneman <billh@gnome.org>
-
- * configure.in: Revved to 0.11.8.
-
- * magnifier/zoom-region.c: Added more debug
- output, turned it off by default.
-
- * magnifier/magnifier.c: Turned off debug output
- by default, and enhanced property debug output a bit.
-
-2004-10-06 Mark McLoughlin <mark@skynet.ie>
-
- * magnifier/zoom-region.c: (impl_zoom_region_set_roi):
- Fix syntax error to make it build.
-
-2004-10-05 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier-main.c:
- Cleaned up some debug output.
-
- * magnifier/magnifier.c:
- Added DBG() macro, and added debug output so that
- client calls and property changes could be logged.
- (impl_magnifier_set_target_display):
- Compare with previous display string before changing.
- (impl_magnifier_set_source_display):
- Compare with previous display string before changing.
- (magnifier_add_zoom_region): Init the expose/damage listeners only
- if 'source_initialized' is FALSE, not on first zoom region
- creation.
-
- * magnifier/magnifier.h:
- Added source_initialized boolean member to Magnifier struct.
-
- * magnifier/damage-client.c:
- (magnifier_source_has_damage_extension): Fix sense of
- the XDamageQueryExtension return value.
-
- * magnifier/zoom-region.c:
- Cleaned up some debug output.
-
-2004-09-17 Bill Haneman <billh@gnome.org>
-
- * magnifier/damage-client.c:
- (magnifier_damage_handler): Fixed memory leak.
- Return if rectlist is empty, don't assume value
- returned in 'howmany' is correct.
-
-2004-09-17 Bill Haneman <billh@gnome.org>
-
- * configure.in, NEWS, README: Revved to 0.11.7.
-
- * magnifier/magnifier_main.c:
- (main): Allow commandline arg
- "--ignore-damage".
-
- * magnifier/magnifier.c:
- (magnifier_set_extension_listeners): Don't add a root
- expose listener, this method for getting notifications is
- obsolete. Print warnings if DAMAGE or XFIXES
- are not initialized.
-
- * magnifier/damage-client.c:
- (magnifier_damage_client_init) Check
- MAGNIFIER_IGNORE_DAMAGE env variable and ignore
- DAMAGE extension if it is set.
-
- * magnifier/zoom-region.c:
- (impl_zoom_region_set_roi): Do some sanity checking
- to make sure that ROI is centered somewhere on screen and
- that the right/bottom coords are greater than the left/top coords.
-
-2004-08-24 Bill Haneman <billh@gnome.org>
-
- * configure.in: Revved to 0.11.6.
-
- Fixes for bug #141376 and bug #152300 :
-
- * magnifier/magnifier.c:
- (can_open_display): New, check to see if we can open
- a display given by a 'DISPLAY' string.
- (magnifier_warp_cursor_to_screen): Don't warp
- if magnifier->source_display is NULL.
- (magnifier_cursor_notification_init): Return FALSE if
- the source-display is NULL.
- (magnifier_get_root): Check magnifier->source_display
- before trying to get ahold of the root window.
- (magnifier_init_display): Return if the display_name cannot
- be opened. Manage magnifier->source_display_name and
- magnifier->target_display_name strings.
- (magnifier_get_property): Implement accessors for
- MAGNIFIER_SOURCE_DISPLAY_PROP and MAGNIFIER_TARGET_DISPLAY_PROP.
- (magnifier_set_property): Call can_open_display before
- accepting a new source or target display string.
- (impl_magnifier_get_source_display): New.
- (impl_magnifier_get_target_display): New.
- (magnifier_class_init): Initialize the epv entries for
- above.
-
- * magnifier/magnifier.h:
- Added source_display_name and target_display_name to
- Magnifier struct.
-
- * test/control-client.c:
- (main): Add tests for accessors of source and target display
- properties.
-
-2004-08-30 Tomasz Kłoczko <kloczek@pld.org.pl>
-
- * configure.in: Better lookin PKG_CHECK_MODULES() output. Declare
- in one place on top required versions of other tools.
- Use AC_SEARCH_LIBS() aclocal macro for checking is linking with
- linsl, libsocket and libinet is neccessary.
-
-2004-04-26 Jayaradha <njaya@redhat.com>
-
- * configure.in: Added "ta" (Tamil) to ALL_LINGUAS.
-
-2004-08-24 Bill Haneman <billh@gnome.org>
-
- * configure.in, NEWS, README: Revved to 0.11.5.
-
- * magnifier/magnifier.c: Implement LoginHelper API from
- at-spi.
- (magnifier_new): Aggregate LoginHelper interface via
- new MagLoginHelper subclass.
- (mag_login_helper_get_raise_windows): New.
- (mag_login_helper_get_device_reqs): New.
- (mag_login_helper_set_safe): New, no-op.
- Fixes bug #150846.
-
-2004-08-17 Bill Haneman <billh@gnome.org>
-
- * configure.in:
- Check in /usr/openwin/sfw/lib for Damage and Xfixes client
- libraries, because XSun puts them there.
- Revved to 0.11.4.
-
- * magnifier/zoom-region-private.h: Added paint_cursor_gc
- and crosswire_gc here.
-
- * magnifier/magnifier.c:
- (magnifier_set_property): Re-init the cursor set when TARGET
- display changes; this is necessarly along with fixes listed below,
- to ensure that the pixmaps for backing data are recreated for the
- new GdkScreen.
-
- * magnifier/zoom-region.c:
- (zoom_region_priv_init): Init the paint_cursor_gc and crosswire_gc to NULL.
- (zoom_region_paint_cursor): Method-static GC here was wrong, it must be reinitialized
- on a per-region basis if the target display changes.
- (zoom_region_paint_crosswire_cursor): Method-static GC cache was
- a bad idea here too, see above.
- Fixes bug #149599.
-
- Removed some #ifdef XTST_CURSOR code that didn't work anyway; we
- don't need it now that we have XFIXES.
-
-2004-08-16 Christian Rose <menthos@menthos.com>
-
- * configure.in: Added "bs" to ALL_LINGUAS.
-
-2004-08-16 Kjartan Maraas <kmaraas@gnome.org>
-
- * configure.in: Add nb to ALL_LINGUAS.
-
-2004-08-13 Gora Mohanty <gmohanty@cvs.gnome.org>
-
- * configure.in: Added "or" to ALL_LINGUAS.
-
-2004-06-15 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier-main.c:
- (main): Only queue the global refresh if DAMAGE is not available.
-
- * magnifier/magnifier.h:
- (magnifier_source_has_damage_extension): New.
-
- * magnifier/damage-client.c:
- (magnifier_source_has_damage_extension): New, test for DAMAGE
- in source display.
-
-2004-06-11 Bill Haneman <billh@gnome.org>
-
- * configure.in: Revved to 0.11.3.
-
- * magnifier/magnifier-main.c:
- Added is_override_redirect flag to MagnifierOptions.
- Initialized to '0'. Added --override-redirect
- commandline option.
-
- * magnifier/magnifier.h:
- (magnifier_new): Take a gboolean indicating whether the instance
- should be override-redirect or not.
-
- * magnifier/magnifier.c:
- Removed #define MAG_WINDOW_OVERRIDE_REDIRECT and related
- compile-time bracketing, replaced with override-redirect
- runtime flag.
- Added enum for WM_STRUT types.
- (magnifier_reset_struts_at_idle): New, called in idle handler
- after a window is created, to ensure that struts are set when
- appropriate.
- (magnifier_check_set_struts): Sets the _NET_WM_STRUT and
- _NET_WM_STRUT_PARTIAL properties on the magnifier window.
- Has no effect if the window is override-redirect.
- (magnifier_set_property): Call magnifier_check_set_struts when the
- source or target display, or target bounds, are changed.
- (impl_magnifier_add_zoom_region): Reset the struts when a zoom
- region is added.
- (magnifier_init_window): Register an idle handler to set the
- window struts.
- (magnifier_new): Take a boolean indicating whether the
- instance is override redirect or not. Attach to the
- size_allocate signal.
- (magnifier_size_allocate): New, reset struts when size changes.
- Fixes for bug #124690.
-
- * test/control-client.c:
- Added test "control-client T" for resizing the target bounds.
-
-2004-05-27 Mohammad DAMT <mdamt@bisnisweb.com>
-
- * po/id.po: Added Indonesian translation done by
- Ahmad Riza H Nst <rizahnst@eriagempita.co.id>
- * configure.in: Added id to ALL_LINGUAS
-
-2004-05-14 Bill Haneman <billh@gnome.org>
-
- * test/control-client.c:
- Add a test for cursor size, "control-client S".
-
- * magnifier/magnifier_transform_cursor:
- Ensure that size_y is initialized. Fix for
- #141503.
-
- * configure.in: Revved to 0.11.2.
-
-2004-04-28 Bill Haneman <billh@gnome.org>
-
- * test/control-client.c:
- Added a test for magnifier color and scale factor,
- "control-client m".
-
-2004-04-27 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_get_cursor): Remember to transform the cursor if
- we fall back to the 'default' cursor image and set.
- Fixes bug #141211.
-
-2004-04-27 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_warp_cursor_to_screen): New method, ensures that
- pointer is on source display when source display is set by client.
- (magnifier_set_property): Call warp_cursor_to_screen when source is set.
-
-2004-04-14 Bill Haneman <billh@gnome.org>
-
- * cursors/1_32/Makefile.am: Added missing file.
-
-2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
-
-2004-04-07 Bill Haneman <billh@gnome.org>
-
- Fixed border-color property (border-size is still broken).
-
- * magnifier/magnifier-main.c: Fix setting of smooth-scroll-policy
- and border-size.
-
- * magnifier/zoom-region.c:
- (zoom_region_paint_border): Reinstated.
- Fixed color creation (color RGB values are 16 bit) and
- allocate the color on the appropriate drawable.
- (zoom_region_get_property, zoom_region_set_property):
- Fix for smoothscroll and bordersize properties.
-
-
-2004-04-07 Bill Haneman <billh@gnome.org>
-
- Big changes to cursor handling, to support
- cursor-change notifications from Xfixes.
- Fix for bug #104831.
-
- * Makefile.am:
- Added "cursors" to SUBDIRS.
-
- * configure.in:
- Revved to 0.11.1.
- Added AC_OUT targets cursors/Makefile and cursors/1_32
-
- * magnifier/Makefile.am:
- Don't dist cursor data from here, dist from cursors subdir.
-
- * magnifier/magnifier-private.h:
- Changed private cursor_default_size to
- cursor_default_size_x/y, to support non-square cursors.
- Added "use_source_cursor" flag, and cursorlist hash table
- of named cursor pixbufs.
-
- * magnifier/magnifier.c:
- Include "config.h", and include Xfixes.h if HAVE_XFIXES is
- defined. Added statics for cursor_client_connection,
- fixes_event_base, fixes_error_base.
- (magnifier_set_cursor_from_pixbuf): New utility (from
- refactoring).
- (magnifier_free_cursor_pixels): Called when an XFixes cursor
- is destroyed.
- (magnifier_get_source_pixbuf): New, returns a GdkPixbuf
- which contains the current source display's cursor image,
- if XFixes is available.
- (magnifier_get_pixbuf_for_name): New, returns a named cursor
- pixbuf from a previously loaded cursor set.
- (magnifier_set_cursor_pixmap_by_name): New, either sets the
- cursor from a named pixbuf in a cursor set (if found), or
- resorts to the source image from Xfixes (if available), or
- else loads a cursor called "default".
- (magnifier_cursor_notify): New, gets called if/when events are
- received on the x connection on which XFixesSelectCursorNotify
- has been called (if Xfixes is available).
- (magnifier_cursor_notification_init): New, sets up the
- notification link from Xfixes, if available.
- (magnifier_set_expose_listener): Renamed to
- (magnifier_set_extension_listeners): added call to
- magnifier_cursor_notification_init ().
- (magnifier_recolor_pixbuf): Don't only recolor pure black pixels,
- recolor all those darker than "0x808080".
- (magnifier_transform_cursor): Allow non-square cursors.
- (magnifier_init_cursor): renamed to
- (magnifier_init_cursor_set): Initialize a whole hashtable of
- cursors whose names are taken from their filenames in a directory
- whose dirname corresponds to the cursor-set name.
-
- * magnifier/magnifier.h: Added cursor_size_x and cursor_size_y
- in place of "cursor_size".
-
- * magnifier/zoom-region.c: Removed some debug printfs.
-
-2004-04-07 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- (magnifier_realize): Reversed incorrect sense of a #define
- regarding WM hints when gnome-mag is using OVERRIDE_REDIRECT.
- (magnifier_reparent_zoom_regions): New method, reparents
- zoom regions when target DISPLAY is changed.
- See bug #137105; re-targeting now preserves existing zoomers.
- (magnifier_init_window): Set window type to GTK_WINDOW_TOPLEVEL
- if compiled with MAG_WINDOW_OVERRIDE_REDIRECT undefined.
-
- * magnifier/zoom-region.c:
- (zoom_region_get_property, zoom_region_set_property):
- Added get/set for "is-managed" property.
- Fixed broken fall-through in BORDERCOLOR_PROP.
- Changed BORDERSIZE_PROP to LONG.
- Changed usage of "default_gc" to use "priv->default_gc".
- (zoom_region_private_init): Init priv->default_gc to NULL.
-
- * magnifier/zoom-region.h:
- Added "is_managed" boolean member.
-
- * magnifier/zoom-region-private.h:
- Added "default_gc" GdkGC* member.
-
- * test/control-client.c:
- Added tests for setting target and source displays.
- "s" changes source display, "t" changes target.
- Changed arg for 'resize' from "s" to "b" (mnemonic 'bounds).
-
-2004-04-06 Bill Haneman <billh@gnome.org>
-
- * configure.in:
- Revved to 0.11.0. This is now the unstable
- (gnome-2.7) branch of gnome-mag.
- Added (non-fatal) checks for DAMAGE and XFIXES
- X extensions, and set HAVE_DAMAGE and HAVE_XFIXES
- accordingly.
-
- * idl/GNOME_Magnifier.idl:
- (markDirty): Clarified doc/comment, to indicate
- that markDirty's input region is clipped by
- the current target visibility.
-
- * magnifier/damage-client.[ch]:
- New files, to support notifications from the DAMAGE
- extension.
-
- * magnifier/Makefile.am:
- Added damage-client.[ch] to sources.
- Fixes bug #136635.
-
- * magnifier/magnifier-main.c:
- (magnifier_main_refresh_all): Changed reference to property
- "source-display-size" to "source-display-bounds".
- (main): Use bonobo_pbclient APIs for setting
- source and target display bounds. Set the source display bounds
- to halfscreen if we're started in splitscreen (vertical or
- horizontal) mode.
-
- * magnifier/magnifier.c:
- (magnifier_zoom_regions_mark_dirty): New internal method,
- sends dirty notification to all zoom regions.
- (magnifier_notify_damage): New, used to pass an XRectangle
- indicating a dirty region in the source display.
- (magnifier_expose_filter): Refactor to use
- magnifier_zoom_regions_mark_dirty.
- (magnifier_set_expose_listener): Also init the damage client
- when called.
- (magnifier_get_display_rect_bounds): New method to load a
- RectBounds from a magnifier's source or target display.
- (magnifier_init_display): New method, initializes the
- source or target display fields when a new display-name is passed
- in.
- (magnifier_exit): Moved this method.
- (magnifier_get_property): Changed implementation for
- SOURCE_SIZE_PROP and TARGET_SIZE_PROP to read from the stored
- value, rather than always returning the absolute bounds of the
- source/target display.
- (magnifier_set_property): Make SOURCE_SIZE_PROP and
- TARGET_SIZE_PROP read/write. Fixes bug #135409.
- Make sure to reset source/target bounds when resetting source or
- target display.
-
- * magnifier/magnifier.h:
- Added source_bounds to Magnifier struct.
- Added declarations for magnifier_notify_damage.
-
-2004-03-22 Bill Haneman <billh@gnome.org>
-
- * configure.in:
- Revved to 0.10.10.
- This is the gnome 2.6.0 release of gnome-mag.
-
-2004-03-21 Mugurel Tudor <mugurelu@go.ro>
-
- * configure.in: Added "ro" to ALL_LINGUAS
-
-2004-03-20 Gareth Owen <gowen72@yahoo.com>
-
- * configure.in: Added en_GB to ALL_LINGUAS
-
-2004-03-17 Leonid Kanter <leon@asplinux.ru>
-
- * configure.in: Added "ru" to ALL_LINGUAS.
-
-2004-03-17 John C Barstow <jbarstow@cvs.gnome.org>
-
- * configure.in: Added "mi" to ALL_LINGUAS.
-
-2004-03-13 Danilo Segan <dsegan@gmx.net>
-
- * configure.in: Added "tk" to ALL_LINGUAS.
-
-2004-03-10 Alexander Winston <alexander.winston@comcast.net>
-
- * configure.in: Added en_CA to ALL_LINGUAS.
-
-2004-03-10 Bill Haneman <billh@gnome.org>
-
- * configure.in: (build fix)
- Don't check for XTST twice.
-
-2004-03-07 Bill Haneman <billh@gnome.org>
-
- * configure.in: Revved to 0.10.8.
- Fix for builds with non-standard Xlib prefixes
- [Fernando Herrera, bug #130787].
-
- * NEWS: updated.
-
-2004-03-04 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
-
-2004-03-03 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier-main.c:
- Made smooth-scrolling on by default, since there is
- little performance difference on the platforms we've tested.
-
-2004-02-27 Paisa Seeluangsawat <paisa@users.sf.net>
-
- * configure.in: Added Thai (th) to ALL_LINGUAS.
-
-2004-02-24 Bill Haneman <billh@gnome.org>
-
- * configure.in:
- Revved to 0.10.7.
-
- * magnifier/magnifier.c:
- (magnifier_init_window): Make the toplevel magnifier window
- GTK_TYPE_POPUP as it should be override-redirect and should never
- be occluded or decorated.
-
-2004-02-10 Tomasz Koczko <kloczek@pld.org.pl>
-
- * magnifier/Makefile.am: fix for paralel build (make -j<N>).
- * configure.in: Trivial cleanup: remove AC_SUBST(CFLAGS),
- AC_SUBST(CPPFLAGS) and AC_SUBST(LDFLAGS). This variables are
- substed by default.
-
-2004-02-09 Bill Haneman <billh@gnome.org>
-
- * configure.in: Revved to 0.10.6.
-
- Re-dist to fix libtool problem.
-
-2004-02-06 Robert Sedak <robert.sedak@sk.htnet.hr>
-
- * configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
-
-2003-01-08 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.c: Fix pan test so that it does not
- call zoom_region_process_updates if the delta is 0. This
- should fix the problem with Frame Rate being assigned
- unreasonable values. Also fixed the counter so it exits
- the pan test after the correct number of iterations.
-
-2003-01-06 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.c: Properly reset max totals.
-
-2003-12-20 Arafat Medini <lumina@silverpen.de>
-
- * configure.in: Added Arabic locale "ar" to ALL_LINGUAS
-
-2003-12-17 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.c:
- Now cache gc's, so there is less X-traffic.
- * magnifier/magnifier-main.c:
- Properly abort if user specifies a pantest but does not supply
- a number of iterations via --timing-iterations. Corrected bug
- with exit-magnifier property not being set properly during the
- update test.
-
-2003-12-11 Bill Haneman <billh@gnome.org>
-
- * magnifier/magnifier.c:
- Fixed compile issue in magnifier_expose_filter.
- Thanks to Kaushal Kumar for catching the problem.
-
-2003-12-10 Tõivo Leedjärv <toivo@linux.ee>
-
- * configure.in: Added et to ALL_LINGUAS.
-
-2003-12-10 Bill Haneman <billh@gnome.org>
-
- * magnifier/zoom-region.c:
- (zoom_region_update): Changed use of deprecated
- gdk_pixbuf_render_to_drawable to
- gdk_draw_pixbuf.
-
- * magnifier/magnifier.c:
- (magnifier_transform_cursor):
- Replaced gdk_pixbuf_render_to_drawable with gdk_draw_pixbuf (as above).
-
- * magnifier/magnifier-main.c, zoom-region.c, magnifier.c:
- Silenced some other compiler warnings introduced by timing patch.
-
-2003-12-10 Bill Haneman <billh@gnome.org>
-
- * magnifier/zoom-region.c:
- Add #include <gdk/gdk.h>
- (zoom_region_clip_to_target): New function, clips a rectangle
- in the source screen to the zoom-region's target. Used for
- processing expose/dirty notifications on the source.
- (impl_zoom_region_mark_dirty): Fixed implementation; it was
- using the wrong coordinate system for the 'dirty' notification.
-
- * idl/GNOME_Magnifier.idl:
- Improved docs for markDirty.
-
- * magnifier/magnifier.c:
- (magnifier_expose_filter): New method, filters
- 'GdkExpose' events that are passed in on a source
- window for which notifications are selected by the
- client. Useful if we have the ability to 'snoop' exposes on
- the source.
- (magnifier_set_expose_listener):
- Add the expose filter (above) to a specified GdkWindow.
- (magnifier_realize): Add the expose filter (above) to the source root window
- on set_source_display.
- (impl_magnifier_add_zoom_region): Add the expose filter to the source
- root when the first zoom region is added.
-
-2003-12-08 Brian Cameron <Brian.Cameron@sun.com>
- * magnifier/zoom-region.c
- Cleaned the timing report, now more code reuse.
-
-2003-12-09 Åsmund Skjæveland <aasmunds@fys.uio.no>
-
- * configure.in: Added nn to ALL_LNGUAS.
- * nn.po: Added Norwegian Nynorsk translation.
-
-2003-12-09 Bill Haneman <billh@gnome.org>
-
- * configure,in, README, NEWS:
- Version 0.10.4.
-
-2003-12-08 Brian Cameron <Brian.Cameron@sun.com>
- * magnifier/zoom-region.[ch]
- * magnifier/magnifier-mai.c
- Updated performance tests so that they work properly when
- at magnification factors greater than 2. Improved test so that
- the ROI never goes off the edge of the screen, and exits more
- cleanly. Now display a performance summary so that performance
- data can be seen even if --timing-output is not specified.
- Improved the output so that it displays more useful information.
- Cleaned the implementation and code style.
-
-2003-11-19 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.c
- Made logic for computing total frame time more accurate, cleaned some
- printf statments, and added comments explaining how to read the timing
- report output.
-
-2003-11-18 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.c
- Fixed typo in printf statement.
-
-2003-11-12 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/magnifier-main.c
- * magnifier/zoom-region.c
- Updated panning test so that it loads the magnifier with
- screen data on first loop before starting the pan test.
-
-2003-11-06 Brian Cameron <Brian.Cameron@sun.com>
-
- * magnifier/zoom-region.h
- * magnifier/magnifier-main.c
- * magnifier/zoom-region.c
- Adding perfomance timing output. Support two different types
- of tests (--timing-delta-x/y and --timing-pan-rate). Now
- support pending of set_roi requests if they are coming in
- more quickly than can be processed.
-
-2003-09-30 Christian Rose <menthos@menthos.com>
-
- * configure.in: Added "eu" to ALL_LINGUAS.
-
-2003-09-22 Taneem Ahmed <taneem@bengalinux.org>
-
- * configure.in: Added "bn" to ALL_LINGUAS.
-
-2003-09-19 Christian Rose <menthos@menthos.com>
-
- * configure.in: Added "br" to ALL_LINGUAS.
-
-2003-09-02 Gediminas Paulauskas <menesis@delfi.lt>
-
- * configure.in: Added lt to ALL_LINGUAS.
-
-2003-08-24 Sanlig Badral <badral@openmn.org>
-
- * configure.in: Added "mn" to ALL_LINGUAS.
-
-2003-08-08 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * configure.in: Added "hi" to ALL_LINGUAS.
-
-2003-08-06 Wang Jian <lark@linux.net.cn>
-
- * configure.in: Added "zh_CN" to ALL_LINGUAS.
-
-2003-08-01 Yuriy Syrota <yuriy@beer.com>
-
- * configure.in: Added "uk" to ALL_LINGUAS.
-
-2003-07-30 Paderaig O'Briain <padraig.obriain@sun.com>
-
- * magnifier/magnifier.c:
- Add include of <strings.h> to fix compiler warning.
- Remove semicolon after BONOBO_TYPE_FUNC_FULL to fix compiler warning.
- (magnifier_init): Move call to bonobo_activation_active_server_register
- to magnifier_new as BONOBO_OBJREF () returns NULL here; it causes
- bonobo-activation-server to crash where NUILL CORBA object is sent.
- (magnifier_new): check if server's registration was successful or not
- and take action accordingly. Code from Adi Dascal.
-
- This fixes bug #117991.
-
-2003-07-20 Samúel Jón Gunnarsson <sammi@techattack.nu>
-
- * configure.in: Added "is" to ALL_LINGUAS.
-
-2003-07-08 Alessio Frusciante <algol@firenze.linux.it>
-
- * configure.in: Added "it" (Italian) to ALL_LINGUAS.
-
-2003-07-06 Andras Timar <timar@gnome.hu>
-
- * configure.in: Added "hu" to ALL_LINGUAS.
-
-2003-07-02 Laurent Dhima <laurenti@alblinux.net>
-
- * configure.in: Added "sq" to ALL_LINGUAS.
-
-2003-06-30 Artur Flinta <aflinta@cvs.gnome.org>
-
- * configure.in: Added "pl" to ALL_LINGUAS.
-
-
-2003-06-29 Dafydd Harries <daf@parnassus.ath.cx>
-
- * configure.in: Added cy (Welsh) to ALL_LINGUAS.
-
-2003-06-28 Jordi Mallach <jordi@sindominio.net>
-
- * configure.in (ALL_LINGUAS): Added "ca" (Catalan).
-
-2003-06-18 Fatih Demir <kabalak@gtranslator.org>
-
- * configure.in: Added Turkish ("tr") to the languages' list.
-
-2003-06-03 Changwoo Ryu <cwryu@debian.org>
-
- * configure.in: Added "ko" to ALL_LINGUAS.
-
-2003-05-20 Marcel Telka <marcel@telka.sk>
-
- * configure.in: Added "sk" to ALL_LINGUAS.
-
-2003-05-13 Abel Cheung <maddog@linux.org.hk>
-
- * configure.in: Added "zh_TW" to ALL_LINGUAS.
-
-2003-05-10 Danilo Å egan <dsegan@gmx.net>
-
- * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
-
-2003-04-26 Takeshi AIHANA <aihana@gnome.gr.jp>
-
- * configure.in: Added 'ja' into ALL_LINGUAS.
-
-2003-04-22 Adi Dascal <ad@baum.ro>
-
- * magnifier/Makefile.am:
- GNOME_Magnifier.server file will be generated and installed.
- Cosmetical and functional change to EXTRA_DIST (same data, which is
- the value of "server_in_files" variable was exposed in two places).
- Added CLEANFILES tag, so the .server and .server.in will be erased at
- make clean.
-
-2003-04-05 Duarte Loreto <happyguy_pt@hotmail.com>
-
- * configure.in: Added "pt" to ALL_LINGUAS.
-
-2003-04-02 Bill Haneman <bill.haneman@sun.com>
-
- [Bugs 106067, 105298, 105820]
-
- [Replaced use of deprecated methods gtk_signal_connect,
- gtk_exit, gtk_drawable_size, gtk_window_get_size.]
-
- * configure.in: Add -DG*_DISABLE_DEPRECATED to
- GNOME_MAG_DEBUG_CFLAGS.
-
- * magnifier/Makefile.am:
- Add GNOME_MAG_DEBUG_CFLAGS to $INCLUDES
- (note that these CFLAGS don't include debug flags
- if --enable-debug wasn't specified).
-
- * test/mag-test.c:
- (magnifier_clear_all_regions): Removed (unused).
- (test_client_magnifier_get_zoomer): #ifdef'ed out (unused).
-
- * magnifier/magnifier-main.c:
- (main): Do popt stuff before calling gtk_init.
- Also, set $DISPLAY via putenv if it has been
- assigned via --target-display, this is because gtk+
- may not handle changing X servers mid-stream
- very well.
-
- * magnifier/magnifier.h:
- * magnifier/magnifier.c:
- (magnifier_new): Don't pass argc and argv anymore, we
- weren't using them anyhow.
-
- * magnifier/zoom-region.c:
- (zoom_region_paint_crosswire_cursor):
- Fix broken calculation of clip bounds if we're clipping a
- crosswire cursor of thickness > 1 pixel about a cursor bitmap.
-
-2003-04-02 Bill Haneman <bill.haneman@sun.com>
-
- Fix for bugs 105205 and 106067.
-
- * magnifier/magnifier-main.c:
- (magnifier_options): Improved terse docs for --fullscreen,
- noting dependency on --source-display and --target-display.
-
- * configure.in: version 0.10.0
-
- * idl/GNOME_Magnifier.idl:
- (setMagFactor): return boolean instead of void,
- i.e. FALSE on failure.
-
- * magnifier/magnifier.h:
- (magnifier_error_check): New; test for X allocation errors.
-
- * magnifier/magnifier.c:
- (magnifier_error_check): New method (see above).
- (magnifier_x_error_handler): New method (see above).
- (magnifier_realize): Set X error handler (as above).
-
- * magnifier/zoom-region.h:
- * magnifier/zoom-region.c:
- (ZoomRegionPixmapCreationError): New enum.
- (zoom_region_paint_crosswire_cursor):
- Initialize x_left_clip and y_top_clip.
- (zoom_region_create_pixmap): New, broken out from
- zoom_region_expose_handler.
- Returns an error code if the pixmap could not be
- created, for instance if the target drawable isn't
- initialized yet, or we run out of X memory.
- (zoom_region_expose_handler): call create_pixmap (above),
- and decrement the scale factor if we can't allocate it.
- (impl_zoom_region_set_mag_factor): Refuse to comply, and
- return CORBA_FALSE, if the resulting pixmap is too big for
- X to allocate. This also means we do the pixmap allocation
- synchronously now, so we can check.
- Note that we can only check if the target is already in
- existance, so in some cases (setting the initial mag factor
- at magnifier startup, i.e. before it's mapped) we
- won't actually return CORBA_FALSE, but will just create the
- largest pixmap possible once the target drawable is realized.
-
-
-2003-04-02 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier-main.c:
- (magnifier_main_refresh_all):
- Removed obsolete FIXME comment.
-
- * magnifier/magnifier.h:
- (magnifier_get_root): New method.
-
- * magnifier/magnifier.c:
- (magnifier_get_root): New method.
- (magnifier_init_window): New method, initializes
- magnifier's main window.
- (magnifier_init): Call magnifier_init_window, don't
- try to set the magnifier's root window here anymore.
- Don't set source and target display to $DISPLAY here,
- set them also in magnifier_init_window.
- Initialize magnifier->priv->root to NULL and
- set it on-demand.
-
- * magnifier/zoom-region.c:
- (zoom_region_scroll_smooth, zoom_region_cursor_rect):
- (zoom_region_paint_cursor, zoom_region_paint_pixmap):
- Checks for NULL drawables (null cursor,
- null window, null cursor-backing-pixmap, etc.)
- (zoom_region_properties_init):
- Free new bonobo_args after use.
- (zoom_region_update_pointer, zoom_region_source_root):
- Replace direct access to private magnifier 'root'
- window with magnifier_get_root().
-
-2003-04-02 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in: release 0.9.2
- Removed obsolete GNOME_PLATFORM_GNOME2 macro.
- Replaced AC_DEFINE instances with 3-arg versions, to
- allow omission of acconfig.h.
- Include po/Makefile in AC_OUTPUT.
-
- * acconfig.h: removed.
-
- * Makefile.am: added 'po' to SUBDIRS.
-
-2003-03-28 Glynn Foster <glynn.foster@sun.com>
-
- * configure.in: release 0.9.1
- * magnifier/Makefile.am: Fixes to distcheck.
- * Makefile.am: Add the intltool stuff to the
- distcheck.
-
-2003-03-26 Bill Haneman <bill.haneman@sun.com>
-
- Released 0.9.1.
-
- * configure.in: version 0.9.1.
- * NEWS: updated.
-
-2003-03-23 Adi Dascal <ad@baum.ro> [committed by bh]
-
- * magnifier/magnifier.c:
- (magnifier_transfor_cursor): transform the hotspot, too. (if a scaling
- occurs than the position of the hotspot is not the same as in the
- xpm file)
- (magnifier_init_cursor): hold the default hotspot positions in the private
- strucure.
-
-2003-03-25 Metin Amiroff <metin@karegen.com>
-
- * configure.in: Added "az" to ALL_LINGUAS.
-
-2003-02-21 Christian Rose <menthos@menthos.com>
-
- * configure.in: Added "ga" to ALL_LINGUAS.
-
-2003-02-21 Roozbeh Pournader <roozbeh@sharif.edu>
-
- * configure.in: Added "fa" to ALL_LINGUAS.
-
-2003-02-20 Dmitry G. Mastrukov <dmitry@taurussoft.org>
-
- * configure.in: Added Belarusian to ALL_LINGUAS.
-
-2003-02-17 Bill Haneman <bill.haneman@sun.com>
-
- Fixes for bugzilla #106304.
-
- * magnifier/magnifier.c:
- (magnifier_parse_display_name): Fixed silly error in
- parsing of screen_num.
- (magnifier_realize): Changed references to
- gdk_x11_get_atom_by_name to gdk_x11_get_atom_by_name_for_display.
- (magnifier_set_property):
- Fixes so that magnifier's main GtkWindow is moved to the correct
- target screen when the MAGNIFIER_TARGET_DISPLAY_PROP property
- is set.
-
-2003-01-31 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier_main.c:
- (main):
- Fixed magnifier's cursor-color property be use ulong.
- (global_options):
- Reverted the default cursor-set back to "default",
- from "crosswire" (which doesn't exist).
-
- * magnifier/magnifier.c:
- (magnifier_set_property):
- Fixed bonobo-arg bug which was
- introduced/exposed by pbclient patch.
- (magnifier_set_property):
- (magnifier_get_property):
- Revised use of cursor_color property to be a
- 'proper' unsigned long.
- (magnifier_init_cursor):
- Restructured 'if' to squash occasional leak.
- (magnifier_transform_cursor): Killed a debug printf.
-
- * magnifier/crosswire-cursor.xmp:
- Fixed bug in XPM input that resulted in wrong hotspot
- visuals.
-
-2003-01-27 Adi Dascal <ad@baum.ro>
-
- * magnifier/cursors/*:
- Modified *.xpm files so the cursors would be able to be coloured by
- the current algorithm.
-
- * magnifier/magnifier.c:
- (magnifier_init_cursor): added a way to obtain the hotspots from the
- *.xpm cursor files, using a GdkPixbuf method.
-
- * magnifier/crosshair-cursor.xpm,
- * magnifier/default-cursor.xpm :
- Added hotspot information inside the file.
-
- * magnifier/magnifier-main.c:
- Setting "cursor-set" property - added.
-
-2003-01-27 Pauli Virtanen <pauli.virtanen@hut.fi>
-
- * configure.in (ALL_LINGUAS): Added "fi" (Finnish).
-
-2003-01-23 Kjartan Maraas <kmaraas@gnome.org>
-
- * configure.in: Added GETTEXT_PACKAGE and ALL_LINGUAS.
-
-2002-12-10 Michael Meeks <michael@ximian.com>
-
- * magnifier/magnifier.c (magnifier_do_dispose): split.
- (magnifier_gobject_dispose, impl_magnifier_dispose): upd.
-
- * magnifier/zoom-region.c (zoom_region_do_dispose):
- split & protect from double disposes.
- (impl_zoom_region_dispose, zoom_region_dispose): use it.
-
-2002-12-09 Michael Meeks <michael@ximian.com>
-
- * magnifier/zoom-region.c (zoom_region_paint_cursor),
- (zoom_region_calculate_scroll_rects),
- (zoom_region_scroll_smooth): exit if we don't have drawable.
-
- * magnifier/magnifier.c (magnifier_get_type): kill.
- (magnifier_new): upd.
- (impl_magnifier_dispose): upd.
- (impl_magnifier_create_zoom_region): plug leak.
- (magnifier_properties_init): don't leak default args
- on properties that are non-writeable.
-
- * magnifier/magnifier-main.c
- (magnifier_main_test_image): make test_i_foo a
- local static at least.
-
- * magnifier/zoom-region.c
- (impl_zoom_region_set_mag_factor): dup/ref pb.
- (zoom_region_update_pointer_timeout): remove evil
- check for ->priv == 0xaaaaaaa ie. what might be
- in freed memory if you're lucky.
- (zoom_region_class_init): use GObject dispose,
- not the epv version.
- (zoom_region_dispose): fix several evilnesses.
- (zoom_region_get_type): kill.
- (zoom_region_finalize): chain to parent.
- (zoom_region_get_source_subwindow): bin ugly static we
- re-allocate each time anyway.
- (impl_zoom_region_dispose): for compat, just do
- an unref.
- calm compile warnings, kill PropData, PropIdx
-
- * magnifier/magnifier.c (impl_magnifier_create_zoom_region),
- (impl_magnifier_get_properties): dup/ref/rel/unref the pb.
-
- * magnifier/magnifier-main.c (main): re-write to
- use bonobo_pbclient stuff.
- (magnifier_main_refresh_all): release/unref the pb.
-
- * magnifier/zoom-region.c (impl_zoom_region_dispose):
- don't g_idle_remove_by_data 3 times.
-
-2002-11-12 Bill Haneman <bill.haneman@sun.com>
-
- Fixes for bugzilla 95942 and 98236.
-
- * magnifier/magnifier-private.h:
- Added cursor_default_size member.
-
- * magnifier/magnifier.c:
- (magnifier_transform_cursor):
- Changed to resize with respect to cursor default size,
- instead of cursor's *current* size. [98236]
-
- * magnifier/zoom-region.c:
- (zoom_region_queue_update):
- Add zoom_region_process_updates as an idle handler
- on receipt of an update to queue (rather than running the
- idle handler continuously).
- (zoom_region_update_pointer):
- Fixed to correctly detect when the zoom_region has been
- destroyed, and return FALSE then.
- (zoom_region_update_pointer_idle):
- Changed to queue a timeout-based pointer query and return
- FALSE if the pointer has stopped moving, otherwise keep spinning the idle
- handler. [95942]
- (zoom_region_update_pointer_timeout):
- Reinstate this function and queue an idle handler if the pointer
- has moved since the last timeout, which spins until the pointer
- gets quiet.
- (zoom_region_init): Changed to queue a timeout rather than
- an idle handler for the pointer update.
- (zoom_region_finalize):
- Do useful freeing of memory instead of just doing nothing ;-)
- stops massive memory leakage if multiple zoomers are created/destroyed.
-
-2002-10-24 Bill Haneman <bill.haneman@sun.com>
-
- * acconfig.h: Added this missing file, with
- template for HAVE_XFT.
-
-2002-10-22 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.h:
- Add a #define for the OAFIID string.
- Fixed type in the IS_MAGNIFIER() macro.
-
- * magnifier/magnifier.c:
- (magnifier_gobject_dipose):
- Create this method from impl_magnifier_dispose;
- Fix a race condition in magnifier destruction.
- Removed the unref() of the property bag, this happens
- automatically on object disposal because of the way property bag
- is declared (bonobo_property_bag_new_closure).
- (magnifier_class_init):
- Add the gobject dispose handler.
-
- * test/mag-test.c:
- (get_magnifier): Change so that varible "magnifier" is not
- shadowed, and to avoid the peculiar declaration of "static"
- variables within a method block.
-
- * magnifier/magnifier-main.c:
- (magnifier_main_pan_all) (magnifier_main_refresh_all)
- Added guards for the timeout methods, to make sure the object
- hasn't been disposed when the timeout is called.
- (main):
- Added calls to g_timeout_remove() for the timers.
-
-2002-10-21 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in: Test for XTst and locate it if available.
-
- * magnifier/magnifier-main.c:
- (MagnifierOptions) (main): Add code to set cursor-color.
-
- * magnifier/magnifier.c:
- (magnifier_scale_cursor): renamed "magnifier_transform_cursor".
- Added code to recolor the magnifier cursor's "black" pixels, if
- a cursor color has been specified.
- (magnifier_recolor_pixbuf) : New method, to support cursor color.
- (magnifier_set_property) (magnifier_get_property) : Cursor-color
- fixes.
-
- * magnifier/zoom-region.c:
- Added #includes of XTest.h and X11/cursorfont.h.
- (_get_x_cursors) : New method to grab X cursor set.
- (zoom_region_source_root) : Get the root source GdkWindow.
- (zoom_region_update_pointer) : Add code to check the
- current X cursor, using XTest. Does not seem to work reliably,
- #defined out via TEST_XTST_CURSOR block.
-
-2002-10-18 Bill Haneman <bill.haneman@sun.com>
-
- * cursors/1_32/*.xpm:
- * cursors/1_48/*.xpm:
- * cursors/1_64/*.xpm:
- Added a number of new cursors, courtesy of BAUM. They aren't
- available via the "cursor-set" API yet, but will be.
-
-2002-10-18 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier-main.c:
- (MagnifierOptions):
- Fixed incorrect type of cursor_scale_factor popt
- struct member.
-
- * magnifier/magnifier.c:
- (magnifier_properties_init):
- Fixed naming bug, "cursor-scale-factor" was incorrectly
- referred to as "cursor-mag-factor".
-
- * magnifier/zoom-region.c:
- Stifled some debug printfs.
- (magnifier_set_property) : Fixed bug when setting "smoothing-type"
- property to "none"; we now revert to NEAREST_NEIGHBOR
- interpolation.
-
-
-2002-10-17 Bill Haneman <bill.haneman@sun.com>
-
- * idl/GNOME_Magnifier.idl:
- Added struct Point (GNOME_Magnifier_Point).
-
- * magnifier/magnifier.c:
- (PropIdx): Added
- MAGNIFIER_CURSOR_COLOR_PROP,
- MAGNIFIER_CURSOR_HOTSPOT_PROP,
- MAGNIFIER_CURSOR_DEFAULT_SIZE_PROP,
- MAGNIFIER_CROSSWIRE_SIZE_PROP,
- MAGNIFIER_CROSSWIRE_CLIP_PROP,
- MAGNIFIER_CROSSWIRE_COLOR_PROP
- (magnifier_regions_refresh_cursor): Removed.
- (magnifier_scale_cursor): Changed to use new properties.
- (magnifier_init_cursor): Initial code for recoloring cursor
- pixmaps (non-functional).
- (magnifier_get_property) (magnifier_set_property)
- (magnifier_init):
- Added support for new properties.
- (magnifier_set_pointer): Removed.
-
- * magnifier/magnifier-private.h
- * magnifier/magnifier.h:
- Added members for new property support.
-
- * magnifier/zoom-region.c:
- (zoom_region_cursor_rect):
- (zoom_region_paint_cursor):
- (zoom_region_unpaint_cursor):
- (zoom_region_paint_crosswire):
- (zoom_region_unpaint_crosswire):
- Major changes to cursor drawing, to support new features.
- Crosswire now can draw XOR, colored lines/rects, and
- can be clipped by the cursor's rectanglar bounds if
- desired.
- (zoom_region_update_cursor_pos):
- (zoom_region_update_cursor):
- (zoom_region_update_pointer):
- New functions for cursor tracking and updating.
- (zoom_region_update_pointer_idle): GIdleFunc for checking the
- pointer position.
- (zoom_region_moveto): update the pointer before scrolling.
-
-2002-10-16 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/zoom-region.c:
- (zoom_region_update_pointer) (zoom_region_update_pointer_timeout)
- (zoom_region_update_pointer_idle) : New methods, for making sure
- the displayed cursor position in the magnifier is current.
- (impl_zoom_region_dispose): call g_idle_remove_by_data more than
- once.
- (zoom_region_init) : Add the idle func for checking the mouse
- position.
- (zoom_region_paint_*): Change the second GdkRectangle param to a
- pointer.
- (zoom_region_paint_cursor): Don't bother clipping if the second
- parameter is NULL.
- (zoom_region_paint_crosswire_cursor) (zoom_region_cursor_rect):
- Don't use the magnifier->priv->cursor_x, etc. positions,
- ask for the current mouse coords from GDK when painting the
- cursor.
-
- * magnifier/magnifier.c:
- (magnifier_set_cursor): Don't force refresh of the zoom regions
- anymore, they are now responsible for their own mouse coord finding.
-
- * magnifier/magnifier-main.c:
- (magnifier_main_pan_image): Revert the change from last night
- which forcibly updated the mouse coords; zoom regions are now
- responsible for doing this themselves.
- (This is much more performant).
-
-2002-10-15 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.h:
- (magnifier_set_pointer): New method.
-
- * magnifier/magnifier-main.c:
- (magnifier_main_pan_image): Changed to check the mouse and
- call magnifier_set_pointer() whenever it moves, even if "mouse
- tracking" is not on; this means that the zoom-regions accurately
- reflect the pointer position. However latency is too big, this is
- a temporary fix and a more performant one is expected.
-
- * magnifier/magnifier.h:
- Added a gboolean "crosswire" member to the struct, to facilitate
- simultaneous crosswire+normal cursor.
-
- * magnifier/magnifier.c:
- (magnifier_set_pointer): New method.
- (magnifier_regions_refresh_cursor): New internal method (possibly
- temporary).
- (magnifier_get_cursor): Changes to support simultaneous crosswire
- and 'normal' cursors. (Not yet complete).
-
- * magnifier/zoom-region.c:
- (zoom_region_paint_cursor): Changes to draw a "normal" cursor only
- if there is a valid GdkDrawable for it in the magnifier private
- structs. This prevents error messages being printed for
- cursor-set="none".
-
-2002-10-15 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.c:
- (#include): added #include of <X11/Xatom.h>.
- (magnifier_realize): Set the WM_TYPE of the magnifier
- toplevel window to _WM_TYPE_DOCK; this will work OK until the
- Metacity RFE for a new WM type (for special, always-always-on-top
- windows) goes in.
- (magnifier_unref_zoom_region): Commented-out cast of user_data to
- "Magnifier" since we don't use it yet.
-
-2002-10-14 Bill Haneman <bill.haneman@sun.com>
-
- * test/control-client.c:
- New file, exercises a couple of simple pieces of control API for a
- running magnifier instance.
-
- * test/mag-test.c:
- New file; tests a new or running magnifier by clearing all zoom
- regions and creating four new ones with various parameter
- settings. NOTE: If the pre-existing magnifier is tracking the mouse,
- the resulting test will, too.
-
- * idl/GNOME_Magnifier.idl:
- Renamed method "resize" to "moveResize".
-
- * magnifier/GNOME_Magnifier.server.in.in:
- Fixed brokenness in the .server file, in terms of
- namespace and versioning.
-
- * magnifier/Makefile.am:
- Removed reference to removed file "mag_control.c".
-
- * magnifier/magnifier-main.c:
- (magnifier_main_pan_image): Now set ROI on all active zoom_regions.
-
- * magnifier/magnifier.c:
- (magnifier_unref_zoom_region): Created new GFunc for use when
- freein the zoom regions list.
- (magnifier_create_zoom_region): Moved call to gtk_container_add()
- to magnifier_add_zoom_region, so that newly created zoomers aren't
- mapped to the parent until they are explicitly added.
- (magnifier_clear_all_zoom_regions): Fixed so that the zoomers are
- disposed of when the list is freed.
- (magnifier_init): We now add the canvas to the toplevel window
- here.
- ()
-
- * magnifier/zoom-region-private.h:
- Reorganized, tidied comments about the coordinate bounds. Added
- an expose_handler_id private member, for calling
- gtk_signal_disconnect_by_data(). NOTE: we should change this to
- use gsignal API instead, at some point.
-
- * magnifier/zoom-region.c:
- (_rectangle_clip_to_rectangle) (_rectangle_clip_to_bounds): Added
- new convenience API, reduced code duplication.
- (zoom_region_clip_to_exposed_target): Changed to use new
- methods above.
- (zoom_region_clip_to_window): New method.
- (zoom_region_paint): We no longer clip to the viewport, but only
- to the window.
- (zoom_region_calculate_scroll_rects) (zoom_region_scroll_fast):
- Added some error checking.
- (zoom_region_recompute_exposed_viewport) : New method.
- (zoom_region_recompute_exposed_bounds): New method; used when
- viewport, roi, border-size, or other coordinate-system-affecting
- properties are changed.
- (zoom_region_update): We no longer clip to the target before
- clipping to the "exposed target". We also now clip the "paint
- rectangle" to the window, not the viewport.
- (zoom_region_align): New method, factored out of 'moveto' code.
- (impl_zoom_resize): renamed "impl_zoom_move_resize".
- (impl_zoom_region_dispose): We now disconnect from the 'expose'
- signal, and also disconnect the update idle handler, on dispose.
- (zoom_region_private_init): Initialize some things that were being
- left to chance (!).
-
- * magnifier/zoom-region.h: rearrange members in struct a bit.
-
- * magnifier/test/Makefile.am: Added 'control-client' and
- 'mag-test' targets.
-
-2002-10-10 Bill Haneman <bill.haneman@sun.com>
-
- * configure.in:
- Changed versioning stuff to match 'libgnome' model.
- We now increment the version when interfaces change.
- Changed current version to '0.9.0', and soname to
- so.1.0.0, to reflect API and bincompat changes.
-
- * magnifier/Makefile.am:
- Added libgnome_mag_la_LDFLAGS definition, including
- LT_VERSION_INFO.
-
- * magnifier/magnifier.c:
- (magnifier_init_cursor): Fixed hotspot specification for
- "crosshair" cursor (note, not same as "crosswire" cursor).
-
- * magnifier/zoom-region-private.h:
- Added a "border" widget.
-
- * magnifier/zoom-region.c:
- (_coalesce_update_rects): Fixed this so that it actually coalesces
- the expose regions. It isn't real smart, so the resulting areas
- can be larger than the original updates if the updates are "tiled"
- perfectly. However for overlapping or redundant expose rectangles
- it helps, and it usually reduces the queue length to only two
- expose events, thus it's mostly a performance improvement.
- (zoom_region_coalesce_updates): Fixed to check for existance of
- zoom_region->coalesce_func pointer, and use that to do coalescing
- if it's found.
- (zoom_region_init_window):
- We now create a "border" widget which contains the viewport. This
- should help us with border visuals, but it's not fully
- implemented yet so borders are still pretty broken.
-
-2002-10-09 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier-main.c:
- (main): Fixed reversed sense of "--timing-test" flag. [Oops]
- Added support for "--border-size" argument. (border visuals a bit ugly ATM)
- Added support for "--border-color" argument.
-
-2002-10-09 Bill Haneman <bill.haneman@sun.com>
-
- Mostly-functional sample implementation of new IDL.
- Not Yet Supported: contrast settings (but inverse video is
- supported).
- TODO : consider storing a smaller scaled GdkPixbuf for the source
- image, and discarding it after rendering.
-
- * idl/GNOME_Magnifier.idl:
- GNOME_Magnifier_ZoomRegion_AlignPolicy: Added this enum.
- GNOME_Magnifier_ZoomRegion_ScrollingPolicy: Added this enum.
-
- * magnifier/GNOME_Magnifier.server.in.in:
- Activation file now looks in 'bindir' directory,
- since we've moved the magnifier executable there.
- Also changed the OADIID interface string suffix from
- "proto0.1" to "0.9".
-
- * magnifier/Makefile.am:
- Moved the magnifier executable from LIBEXECDIR to BINDIR,
- since it's user-executable.
- Added cursors DATA, exported CURSORSDIR variable to CFLAGS.
- Added cursors to EXTRA_DIST.
-
- * magnifier/mag_control.c:
- Changed included file from Magnifier.h to GNOME_Magnifier.h.
- (NB: This source file doesn't work anymore and is deprecated, probably
- will remove it soon).
-
- * magnifier/magnifier-main.c:
- Added #include of <string.h> due to use of strcmp.
- (MagnifierOptions): Added cursor_set, smoothing_type,
- zoom_factor_x, zoom_factor_y, refresh_time, mouse_poll_time,
- cursor_size, cursor_scale_factor, smooth_scroll, and test_pattern
- members; removed dual_head, clamp_colors, no_bonobo,
- fast_cmap_convert, bilinear, hyperbolic options.
- The removed options were either nonfunctional now or are
- superceded by newer options.
- (magnifier_options): Renamed some options, made "--usage",
- "--help", and "-?" arguments work. Added support for
- cursor-sets, cursor size and scaling, mouse latency control,
- smoothing algorithms (by name), and scrolling smoothness
- selection. Also added a "use-test-pattern" option for
- testing magnifier scrolling without a source display.
- (lastx, lasty): Removed statics.
- (magnifier_main_test_image): Tweaks to test mode.
- (magnifier_main_pan_image): Replaced use of X API for querying the
- pointer with Gdk API. We also poke the magnifier's internal
- cursor_x and cursor_y members, which should probably be replaced
- with an API call at some date.
- (magnifier_main_refresh_all): Timer-based routine to mark the
- current view window dirty periodically; either clients or the main
- executable must do this until we get global expose events from the
- XServer, which will only be true for the XVirtualScreen,
- (main): We now do all our interaction with the magnifier instance
- via the properties, initializing them based on the
- magnifier_options from popt.
-
- * magnifier/magnifier-private.h: Added this file.
- (_MagnifierPrivate): removed X dependencies.
- Added private members for dealing with the root window and the cursor.
-
- * magnifier/magnifier.c:
- Removed some cruft.
- (magnifier_timing_test): Removed.
- (magnifier_scale_cursor) (magnifier_init_cursor)
- (magnifier_get_cursor): Added methods for cursor manipulation.
- [magnifier_get_cursor is public, others are static methods.]
- (magnifier_get_property): Added support for target-source-size,
- taret-size properties.
- (magnifier_set_property): Removed X dependencies,
- Added support for target-display and source-display properties,
- target-size property, cursor-set, cursor-size, and cursor-zoom properties.
- (impl_magnifier_create_zoom_region): Implemented, and improved
- window behavior.
- (magnifier_init): Removed X dependencies. Changed OADIID suffix to
- "0.9" from "proto0.1".
-
- * magnifier/magnifier.h:
- Added include of <gdk/gdk.h>.
- Removed deprecated "mag_data" pointer.
- (magnifier_get_cursor): Added public declaration of method.
-
- * magnifier/zoom-image-private.h:
- (_ZoomRegionPrivate): Added exposed_viewport member, bounds of
- current viewport, not including borders.
- Added source_drawable, source_pixbuf_cache (only used if pixbuf
- diffs are being used), cursor_backing_pixels, border_gc.
-
- * magnifier/zoom-image.c:
- Massive revision.
- (PropIdx): Added ZOOM_REGION_TESTPATTERN_PROP.
- (_debug_announce_rect): Added debugging aid.
- (_diff_pixbufs): Added support for source image diffs,
- intended for conditional updates, but currently too slow.
- (_combine_rects) (_refactor_rects) (_combine_update_rects)
- (_coalesce_update_rects) (_smartbutbroken_coalesce_update_rects)
- (zoom_region_coalesce_updates) :
- Added event coalescing functions, currently buggy.
- (zoom_region_clip_to_exposed_target) (zoom_region_clip_to_target)
- (zoom_region_clip_to_viewport) (): Added coordinate conversion
- routines.
- (zoom_region_update_current): Added.
- (zoom_region_cursor_rect) (zoom_region_unpaint_crosswire_cursor)
- (zoom_region_paint_crosswire_cursor) (zoom_region_paint_cursor)
- (zoom_region_unpaint_cursor) : Added cursor painting support.
- (zoom_region_paint_border) (zoom_region_paint_pixmap) : Added.
- (zoom_region_paint) : Refactored to use above routines.
- (zoom_region_scroll_fast) : Added cursor support, and scrolling code.
- (zoom_region_scroll_smooth) : Allow smoother scrolling.
- (zoom_region_scroll) : Check the smooth_scroll_policy and decide
- which scrolling routine to call.
- (zoom_region_moveto) : Fixed the coordinate conversions.
- (_zoom_region_invert_pixbuf) : Added support for inverse video.
- (zoom_region_post_process_pixbuf) : Hooks for doing image
- smoothing, currently not connected to anything.
- (zoom_region_get_source_subwindow) : Implement this, so that we
- can get the source display pixels to scale. Also added support
- for source image diffs, so that we only update if the source image
- has changed. However the diff process is currently too slow to be
- helpful.
- (zoom_region_update) : Added some useful clipping, so that we only
- update pixels that are currently in-view. Added hooks to invert
- video, and to post-process the scaled image (for smoothing, etc.).
- (zoom_region_init_window) : split the GdkWindow initialization
- code into its own method.
- (zoom_region_sync) : Changed to consume all pending updates.
- (zoom_region_set_viewport) : Does more stuff, so that setting the
- viewport after the zoomer has been realize works.
- (zoom_region_get_property) :
- (zoom_region_set_property) :
- Added "smooth-scroll-policy" property support. Better support for
- "smoothing-type", "use-test-pattern", and border properties.
- (impl_zoom_region_set_roi) : Added support for various alignment
- policies.
- (impl_zoom_region_set_mag_factor) :
- (impl_zoom_region_mark_dirty) : Fixed implementation.
- (impl_zoom_region_set_viewport) : Fixed.
- (zoom_region_init_properties) : Added initialization of new
- properties.
- (zoom_region_private_init) (zoom_region_init) : Added
- initializations of new instance data.
-
- * magnifier/zoom-image.h:
- Added definition of CoalesceFunc.
- Added new members for the event coalescing function to use, and
- changed the 'smooth_scroll' member to a
- GNOME_Magnifier_RectBounds_ScrollingPolicy enum.
-
- * magnifier/mag_image.h:
- Removed.
-
- * magnifier/mag_image.c:
- Removed.
-
-
-2002-09-24 Bill Haneman <bill.haneman@sun.com>
-
- * idl/GNOME_Magnifier.idl:
- (GNOME_Magnifier_Magnifier_ZoomRegionList):
- Moved to GNOME_Magnifier_ZoomRegionList, where it belongs.
-
- * magnifier/Makefile.am:
- Added magnifier-main.c to magnifier_SOURCES.
-
- * magnifier/magnifier-main.c:
- New file, contains main() and associated CLI processing
- code, but not "magnifier" instance code.
-
- * magnifier/mag_image.h:
- Now we #include "magnifier.h".
-
- * magnifier/mag_image.c:
- (refresh_image): Changed to take Magnifier* as data,
- not MagnifierData*.
- Also changed to use XDISPLAY information from
- Magnifier struct instead of MagnifierData struct.
-
- * magnifier/magnifier.h:
- Now #include <bonobo/bonobo-property-bag.h>
- Changed mag_data pointer (deprecated) to a gpointer.
-
- * magnifier/magnifier.c:
- (global_options):
- (MagnifierOption):
- (magnifier_option):
- (magnifier_realize):
- (magnifier_exit):
- (magnifier_pack_regions):
- (main): Moved to magnifier-main.c.
- (magnifier_process_updates): New method.
- (magnifier_realize): New method.
- (magnifier_parse_display_name):
- New method, parses string into display name and screen number.
- (magnifier_set_property):
- Implemented back-end support for source-display, target-display.
- (magnifier_create_zoom_region):
- Implemented, using ZoomRegion api.
- (magnifier_init):
- Added some old MagnifierData stuff here, which will
- eventually need removing.
- (magnifier_new):
- Removed popt stuff, to magnifier-main.c.
-
- * magnifier/zoom-region.c:
- (zoom_region_display):
- (zoom_region_get_property): Added debug printf.
- (zoom_region_set_property): Added debug printf.
- (zoom_region_get_properties):
- Fixed previously broken return value, we now dup the objref before
- returning it.
-
-2002-09-24 Bill Haneman <bill.haneman@sun.com>
-
- * idl/GNOME_Magnifier.idl:
- Major revision of Magnifier API.
- (#includes):
- Now we include (and thus depend on) Bonobo_Property.idl.
- (namespace):
- Now our interfaces are in the GNOME/Magnifier namespace.
- (setMagFactor):
- No longer a oneway method.
- (markDirty, markUnmanaged):
- Moved to ZoomRegion.
- (SourceDisplay, TargetDisplay):
- Changed to BonoboProperty properties.
- (getProperties): new method.
- (setROI): moved to ZoomRegion,
- changed to take RectBounds struct instead of
- individual longs as in params.
- (getROI): move to ZoomRegion, now return a RectBounds.
- (exit): changed to dispose().
- (resize): moved to ZoomRegion.
- (getZoomRegionParams): Changed to getProperties() call on
- the ZoomRegion object.
- (destroyZoomRegion): Removed, replaced with dispose() and
- de-referencing of the ZoomRegion object via unref().
- (addZoomRegion): new method.
- (general):
- Created new GNOME_Magnifier_ZoomRegion interface,
- and return a sequence of ZoomRegions from the Magnifier.
- Defined a new RectBounds structure, for manipulating
- bounding boxes.
- Most methods now operate on these ZoomRegion objects
- rather than the containing Magnifier.
- Most properties and settings on both Magnifier and
- ZoomRegion are now via Bonobo_PropertyBag,
- which is implemented on Magnifier and ZoomRegion, and
- available via getProperties() methods on the two
- interface types.
-
- * magnifier/Makefile.am:
- Added zoom-region.h and zoom-region.c to
- magnifier_SOURCES.
- Added libgnome-mag.la to LDADD.
-
- * magnifier/magnifier.c:
- (#includes):
- Added "xoom-region.h" and "GNOME_Magnifier.h".
- (PropIdx):
- New enum.
- (impl_magnifier_fullscreen): Removed.
- (impl_magnifier_set_extents): Removed.
- (impl_magnifier_set_follow_mouse): Removed.
- (impl_magnifier_set_contrast): Removed.
- (impl_magnifier_set_roi): Removed.
- (impl_magnifier_goto): Removed.
- (impl_magnifier_set_mag_factor): Removed.
- (impl_magnifier_mark_dirty): Removed.
- (impl_magnifier_mark_unmanaged): Removed.
- (impl_magnifier_get_zoom_region_params): Removed.
- (impl_magnifier_remove_zoom_region): Removed.
- (impl_magnifier_resize_zoom_region): Removed.
- (impl_magnifier_create_zoom_region): Modified for new args.
- (impl_magnifier_add_zoom_region): New method.
- (impl_magnifier_get_zoom_regions): New method.
- (impl_magnifier_exit): changed to impl_magnifier_dispose().
- (impl_magnifier_destroy): tweaked for new implementation.
- (magnifier_get_property): New method.
- (magnifier_set_property): New method.
- (impl_magnifier_set_source_display): Changed to use properties.
- (impl_magnifier_set_target_display): Changed to use properties.
- (magnifier_class_init): Changed to use new IDL methods.
- (magnifier_instance_init): Changed to use new IDL methods.
- (magnifier_properties_init): New method.
- (magnifier_get_type): Changes for new namespace.
-
- * magnifier/magnifier.h:
- (Magnifier):
- Changed Magnifier struct to include members for new properties.
- (MagnifierClass):
- Changed POA typename to match new namespace.
-
- * magnifier/zoom-image.h:
- New file; implementation of GNOME_Magnifier_ZoomRegion.
-
- * magnifier/zoom-image.c:
- New file; structure/type definitions of
- ZoomRegion BonoboObject which implements
- GNOME_Magnifier_ZoomRegion.
-
-2002-09-02 Kenneth Rohde Christiansen <kenneth@gnu.org>
-
- * po/: Added dir
- * magnifier/GNOME_Magnifier.server.in.in:
- Marked strings for translation
- * po/POTFILEs.in: Added files containing strings.
- * po/Makefile.in.in: Added file.
-
-2002-07-19 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/mag_image.c:
- GdkPixbug *subimage: Removed unnecessary static object.
- (parse_message): Removed this method (a relic of the old socket
- control).
- (get_num, get_coord, get_rect): Removed these methods.
- (pan_image):
- Removed unused variable 'rect'.
- (CDIFF):
- Fixed this macro, shutup preprocessor warnings.
- (clamp_to_nearest):
- Removed unused retval.
- (GET_PIXEL, PUT_PIXEL):
- New macros for direct gdkpixbuf poking.
- (mag_pixbuf_post_process):
- Removed use of GdkImage and horrible slow copy,
- gdk_image_get_pixel and gdk_image_get_pixel, etc.,
- replacing with direct access to the GdkPixbuf data.
- Also fixed the postprocessing when panning.
- (refresh_image):
- Added missing return value.
-
- Horizontal and vertical pans now look pretty good, diagonal
- pans still look buggy.
-
- * magnifier/magnifier.c:
- (sockaddr_un mag_server): Removed (unused).
- (timer_iterations): Removed (unused).
- (get_commands): Removed (unused).
- (main): Removed old traces of socket controls.
- (impl_magnifier_mark_unmanaged):
- Silenced compiler warning.
- (magnifier_class_init):
- Silenced compiler warning.
-
-2002-07-19 Bill Haneman <bill.haneman@sun.com>
-
- (Branched gnome_2_0 branch prior to this commit)
-
- * configure.in:
- Now require gtk+-2.1.0.
- Incremented gnome-mag revision to 0.2.0.
-
- * magnifier/mag_image.h:
- Added global 'spi_source_root_window' GdkWindow.
-
- * magnifier/mag_image.c:
- Remove old codepath in favor of multihead gdkpixbuf image scaling...
- (old_get_root_subimage):
- Removed.
- (new_get_root_subimage):
- Renamed 'get_root_subimage()'.
- (xlib_get_colormap):
- Removed.
- (mask_table[], convert_map[]):
- Removed.
- (rgb1, rgb1a, rgb8, rgb8a, rgb565lsb, rgb565msb, rgb565alsb):
- Removed.
- (rbg565amsb, rgb555lsb, rgb555msb, rgb555alsb, rgb555amsb):
- Removed.
- (rgb888alsb, rgb888amsb, rgb888lsb, rgb888msb, visual_decompose_mask):
- Removed.
- (convert_real_slow, xlib_get_colormap, get_root_image):
- Removed.
- (get_root_subimage):
- Changed to call gdk_pixbuf_get_from_drawable, rather than the old
- 'rgbconvert' method.
-
- * magnifier/magnifier.c:
- (main):
- Changed to use new codepath, i.e.
- spi_source_root_window = gdk_screen_get_root_window (), rathen
- than using X calls to get the root window. This way we can use
- GDK more effectively and portably than having to convert XImage
- data via the (previous, removed) various rgbconvert implementation
- methods listed above.
-
-2002-07-16 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/mag_image.c:
- rgbconvert():
- Removed unused method; we now use gdkpixbuf to do this.
-
-2002-08-19 Bill Haneman <bill.haneman@sun.com>
-
- * HACKING:
- Added file, including build sheriff consent.
-
-2002-08-16 Michael Meeks <michael@ximian.com>
-
- * magnifier/mag_image.c (rgbconvert):
- add pre-conditions.
-
-2002-08-15 Michael Meeks <michael@ximian.com>
-
- * magnifier/Makefile.am: install generated header.
-
- * gnome-mag-1.0.pc.in: upd.
-
-2002-08-15 Michael Meeks <michael@ximian.com>
-
- * magnifier/Makefile.am: rename server file.
- move stuff into libexec, process twice.
-
- * magnifier/Magnifier.server.in.in: namespace it, update to
- libexec.
-
- * idl/Magnifier.idl: include Bonobo_Unknown only.
- Also, this file needs renaming to Accessibility_Magnifier
-
- * idl/GNOME_Magnifier.idl: and rename to this / re-namespace.
-
-2002-08-15 Michael Meeks <michael@ximian.com>
-
- * gnome-mag-1.0.pc.in (idldir): get it right.
-
-2002-08-13 Michael Meeks <michael@ximian.com>
-
- * idl/Makefile.am (idl_DATA):
- fix it so we actually install it.
-
-2002-07-26 Laszlo Peter <laca@sun.com>
-
- * magnifier/Makefile.am: add POPT_LIBS to LDADD.
-
-2002-06-30 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/magnifier.c:
- Made the commands setRoi, setMagFactor, markDirty, and goto
- update the display immediately. Added option at runtime to clamp
- the colors of the scaled image to those of the input image, useful
- with the --bilinear-interpolation and other interpolation options.
- We start the magnifier with a full pull of the root window, so
- that we never see "blackout" areas in the magnified region before
- we process expose events (cosmetic fix).
-
- * magnifier/mag_image.c:
- Implemented colormap inversion and clamping of the colors in the
- scaled image to the input image.
- NOTE: current implementation is slow, so refresh of the magnifier
- is slower when colormap inversion or clamping are turned on.
- (old_get_root_subimage):
- Renamed from get_root_subimage; will replace with new method when
- patch for bug #86931 is accepted into gtk+.
- (new_get_root_subimage):
- New code which uses the more portable, debugged
- gdk_pixbuf_xlib_get_from_drawable () instead of our cut-and-paste
- code. [We can't use this until a fix for the bug mentioned above
- is accepted into gtk+.]
-
-2002-06-25 Bill Haneman <bill.haneman@sun.com>
-
- * magnifier/mag_image.c:
- (display_image):
- Fixed bug which used target screen bounds to clamp center values,
- should have been source screen bounds.
- (convert_real_slow):
- Don't call visual_decompose_mask if the masks are zero.
-
-2002-06-24 Bill Haneman <bill.haneman@sun.com>
-
- Reworking of the magnification code to support
- fast panning, subimage tiles, and refreshing the copy of the
- source X root window in an idle handler.
- (This code is still pretty rough, but much more
- performant now).
-
- * magnifier/magnifier.c:
- (main):
- Added timing benchmark.
- Removed last of socket control API.
- (timing_test):
- Added this method.
- (magnifier_options);
- Added options --bilinear-interpolation and
- --hyperbolic-interpolation, and --timing-test.
-
- * magnifier/mag_image.h:
- (pan_image):
- (refresh_image):
- Added functions.
- (get_root_subimage):
- Renamed/modified signature.
- (get_root_image):
- Removed.
- (MagnifierData):
- Added source_screen_num and target_screen_num members.
-
- * magnifier/mag_image.c:
- (get_root_image):
- (get_root_subimage):
- Refactored substantially, get_root_subimage calls
- get_root_image with bbox parameters.
- (expose_event):
- Implemented, to pull data in from stored source
- image and scale on-the-fly.
- (update_image):
- Big refactor.
- (display_image):
- Big refactor.
- (refresh_image):
- New method, refreshes entire copy of source X display.
- (pull_into_scaled_image):
- New method, 'does what it says on the tin'.
- (pan_image):
- New method, in timeout, checks pointer and scrolls/pans window if
- necessary, pulling in new image data if needed from the cached
- copy of the source root window.
-
diff --git a/HACKING b/HACKING
deleted file mode 100644
index cab1a4f..0000000
--- a/HACKING
+++ /dev/null
@@ -1,18 +0,0 @@
-Contributing to gnome-mag:
-
-Contributions to gnome-mag are encouraged.
-Please post patches to gnome-accessibility-devel@gnome.org; if in
-doubt you may wish to email questions ahead of time.
-
-The current maintainer is Bill Haneman (bill.haneman@sun.com).
-
-"Build Sheriff" patches are welcome and are exempt from the
-normal approval process, provided:
-
-(a) care is taken that the Solaris build does not regress.
-(b) the build patches are, generally speaking, not controversial.
-
-At any rate we appreciate being told where we've screwed up, so
-let us know if you encounter a significant issue.
-
--Bill
diff --git a/MAINTAINERS b/MAINTAINERS
deleted file mode 100644
index bd832f0..0000000
--- a/MAINTAINERS
+++ /dev/null
@@ -1,2 +0,0 @@
-Bill Haneman <bill.haneman@sun.com>
-Carlos Eduardo Rodrigues Digenes <cerdiogenes@yahoo.com.br>
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index ce833a0..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
-# Process this file with automake to create Makefile.in.
-
-SUBDIRS = idl magnifier test po cursors docs
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA= gnome-mag-1.0.pc
-
-EXTRA_DIST=gnome-mag-1.0.pc.in \
- intltool-extract.in \
- intltool-merge.in \
- intltool-update.in
-
-doc_tarball_files = \
- docs/reference/html
-
-DISTCLEANFILES = intltool-extract \
- intltool-merge \
- intltool-update
-
-DISTCLEANFILES = intltool-extract \
- intltool-merge \
- intltool-update
-
-gnome-mag-1-0-docs.tar.gz:
- tar cf - $(doc_tarball_files) | gzip -c --best >$@
-
-doc-clean-recursive:
- (cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-clean)
-
-doc-clean: doc-clean-recursive
-
-doc-rebuild:
- (cd docs && $(MAKE) $(AM_MAKEFLAGS) doc-rebuild)
-
-.PHONY: files doc-clean doc-clean-recursive doc-rebuild
-
-files:
- @for subdir in $(SUBDIRS); do\
- files=`cd $$subdir; $(MAKE) files | grep -v "make\[[1-9]\]"`; \
- for file in $$files; do \
- echo $$subdir/$$file; \
- done; \
- done
-
diff --git a/NEWS b/NEWS
deleted file mode 100644
index d117c59..0000000
--- a/NEWS
+++ /dev/null
@@ -1,311 +0,0 @@
-What's new in gnome-mag-0.14.2:
-
-* Fixes for bugs #397025, #376047, #397819 and #408133.
-
-Translations
- * Alexander Shopov (bg), Peter Bach (da), Hendrik Richter (de),
- Lauri Nurmi (fi), Stéphane Raimbault (fr), Gabor Kelemen (hu)
- Changwoo Ryu (ko), Gintautas Miliauskas (lt), Wouter Bolsterlee (nl)
- GNOME PL Team (pl), Duarte Loreto (pt), Woodman Tuen (zh_HK)
- Woodman Tuen (zh_TW)
-
-
-What's new in gnome-mag-0.14.1:
-
-* Added COMPOSITE support. Now full screen magnification is possible without
-workarounds with the X server configuration file!
-
-* Switch to GOption. Thanks to Christian Kirbach!
-
-What's new in gnome-mag-0.14.0:
-
-* Fix for bug #377856. Added colorblind filtering support. This is achieved
-throw the libcolorblind
-(http://people.debian.org/~ruoso/libcolorblind-0.0.0.tgz). Thanks Daniel Ruoso
-for this development!
-
-* Fix for bug #379258. Added brightness manipulation support.
-
-* Fix for bug #348629. Correct the contrast filtering behavior.
-
-* Fix for bug #357647. Now you can type 'man magnifier'. Thanks George Kraft
-IV.
-
-* Fix for bug #376047. This avoid the magnifier screen flick after the user
-start a server (Gnopernicus, LSR or Orca). Thanks Eitan Isaacsion!
-
-* Fix for bug #98240. Now the magnifier have borders!
-
-* Fix for bug #355583. Removed a memory leak. Thanks Aurelian Radu for
-reporting this!
-
-* Fixes for bugs #342170, 342168, #348169, #319010, #342168, #342174, #342166,
-#348261, #372731 (Thanks Eitan Isaacson), #375986, #342173, #348593
-
-Translations
- * Khaled Hosny (ar), Francisco Javier F. Serrador (es),
- Ankit Patel (gu), Jovan Naumovski (mk), Kjartan Maraas (nb)
- GNOME PL Team (pl), Daniel Nylander (sv),
- Theppitak Karoonboonyanan (th)
-
-What's new in gnome-mag-0.13.0:
-
-* Fix for #344070, changed how the update is done to avoid bad blocks generated
- during this process.
-
-* Fix for #343689, adding contrast support to gnome-mag.
-
-Translations
- * Sayamindu Dasgupta (bn_IN), Dominique PELLE (eo),
- Rahul Bhalerao (mr), rajeev shrestha (ne) and Abel Cheung (zh_HK)
-
-What's new in gnome-mag-0.12.5:
-
-* Fix for #323032, whick install ORBit modules, so orca can use the magnifier
- services (Thanks Willie Walker!).
-
-* Fix for #337985, to conform with the GNOME goal to use po/LINGUAS (Thanks
- Brian Pepple!).
-
-* Fixes for #338551, #341854, #341883, #341888.
-
-What's new in gnome-mag-0.12.4:
-
-* Use doxygen to build idl docs, if available.
-* Fixes to prevent unnecessary repaints, and reallocate the scaled pixbuf
- if the source bounds change (from Carlos Diogenes), bug #171465.
-
-What's new in gnome-mag-0.12.2:
-
-* Fix for serious update bug which made high magnification factors work
- poorly.
-
-* Fix for #167705, which improves our tracking of cursor changes.
-
-What's new in gnome-mag-0.12.0:
-
-* Fix for bug #164371, which meant that the visible area in split-screen mode
- didn't update when the target bounds change.
-
-What's new in gnome-mag-0.11.14:
-
-* Fix for bug #166282; we now work properly if the source display size is
- smaller than the target display size.
-
-What's new in gnome-mag-0.11.13:
-
-* Fixes for #164444, #164371, #158468, #164175, #164491.
-
-* Fixes for multi-DISPLAY and fullscreen support:
- we now accept setting target==source if not initially set equal;
- we correctly connect to source's DAMAGE events if source server isn't
- the default GDK_DISPLAY;
- we tear down the zoom regions in the magnifier when changing source as
- well as target;
- we correctly reparent the magnifier's zoom regions _after_ redefining
- the magnifier's gtk-window;
- better lifecycle management of the zoom regions themselves, so that
- idle handlers and timeouts are removed when the regions are disposed.
-
-What's new in gnome-mag-0.11.11:
-
-* Fix crosswire trails when using DAMAGE and XFIXES, at least for
- smooth-scrolling mode (#160352).
-
-* Reinstate crosswires, they were inadvertently removed by an error in
- a compiler-warnings fix.
-
-* Improved test for XFIXES and DAMAGE extensions, so that they
- are properly built into gnome-mag when building on XOrg server platform.
-
-* Fixed XFIXES cursor image support on big-endian architectures. (#159398)
-
-* Fixes for #160352, #157187.
-
-What's new in gnome-mag-0.11.9:
-
-* different handling of changes to source and target displays;
- we don't try to reparent windows any more, we tear down and
- start over (works better with some x servers).
-
-* Suppress a bunch of gdk critical warnings.
-
-What's new in gnome-mag-0.11.8:
-
-* bugfixes, sanity checks on client requests.
-
-What's new in gnome-mag-0.11.7:
-
-* magnifier's use of the new DAMAGE x extension can be turned off via
- the MAGNIFIER_IGNORE_DAMAGE environment variable, or via
- the "--ignore-damage" command line flag. This is a debugging
- feature.
-
-* magnifier now does some sanity checking on the setROI calls before
- attempting to comply.
-
-What's new in gnome-mag-0.11.6:
-
-* Fix for bug 141376 and 152300; we now provide the missing epv
- implementation for getTargetDisplay and getSourceDisplay, and
- we check to make sure we can connect to a display before
- trying to change source or target.
-
-What's new in gnome-mag-0.11.5:
-
-* We now implement LoginHelper from at-spi - this allows clients to
- tell that the magnifier needs access to certain resources during
- authentication, screen lock, etc., for instance allows magnifier to
- tell clients which X windows to raise in order to allow
- magnification when the screen is otherwise obscured. Fixes bug #150846.
-
-What's new in gnome-mag-0.11.4:
-
-* Bugfixes for cursor painting if TARGET display has been changed (#140622)
-
-* Improved support for DAMAGE; don't do global refresh/polling if
- DAMAGE extension is available.
-
-* Can tell magnifier standalone to be OVERRIDE_REDIRECT if you need
- to. (See magnifier --usage).
-
-* Set _NET_WM_STRUT and _NET_WM_STRUT_PARTIAL values; lets other apps
- know not to overlap the magnifier binary when run in split-screen mode.
-
-* New translations:
-- Indonesian (id) Ahmad Riza H Nst
-- (or) Gora Mohanty
-- (nb) Kjartan Marass
-- (bs) CHristian Rose (ALL_LINGUAS addition only)
-
-=========
-
-What's new in gnome-mag-0.11.2:
-
-* Bugfix for cursor-size property.
-
-* Added cursor-size test to tests/control-client.
-
-=========
-
-What's new in gnome-mag-0.11.1:
-
-* fixed border-color property.
-
-* Fixed setting of smooth-scroll policy and border-size.
-
-* Fix for bug #104831; gnome-mag now listens for DAMAGE
- notifications when the DAMAGE extension is available at runtime
- (and build time). This means that on DAMAGE-enabled servers,
- gnome-mag's service need not use a timer-based refresh,
- i.e. --refresh-timeout can be made arbitrarily large.
-
-* Revamped the way cursor-sets are used; now cursor-set names
- refer to the names of directories under $share/gnome-mag/.
-
-* gnome-mag can track changes to the source display's cursor and
- display a rescaled cursor on the target display if XFIXES is
- available.
-
-* Added support for non-square cursor pixmaps.
-
-Please see ChangeLog for more detail on these features.
-
-* languages:
-Gujrati (Guntupalli Karunakar)
-
-============
-
-What's new in gnome-mag-0.10.10:
-
-* languages:
-Alexander Winston (en_CA)
-Gareth Owen (en_GB)
-John C Barstow (mi)
-
-====
-
-What's new in gnome-mag-0.10.9:
-
-* languages:
- Mtin mirov (az)
- Alexander Winston (en_CA)
- Amanpreet Singh Alam (pa)
- Paisa Seeluangsawat (th)
- Gurban Mohemmet Tewekgeli (tk)
-
-===
-What's new in gnome-mag-0.10.8:
-
-* fix for builds with non-standard X directories. [bug 130787, from
- Fernando Herrera]
-
-* smooth-scrolling is now the default.
-
-* magnifier toplevel window is now TYPE_POPUP as it
- needs to be override-redirect and always on top.
-
-* fixes to benchmarking code reports (Brian Cameron).
-
-* cache GC's used in magnifier, to reduce X traffic (Brian Cameron).
-
-* makefile cleanup: (Tomasz Koczko)
-
-* languages:
- punjabi Guntupalli Karunakar
- thai Paisa Seeluangsawat
- croation Robert Sedak
- arabic Arafat Medini
-
-What's new in gnome-mag-0.10.5:
-
-* Improvements to test/benchmark output;
- fixed a number of errors in compiling statistics.
-
-* performance improvement due to cacheing GC's.
-
-* New languages:
- ar (Arafat Medini),
- et ( Tõivo Leedjärv <toivo@linux.ee>)
-
-What's new in gnome-mag-0.10.4:
-
-* new CLI options for performance benchmarking;
- (See discussion in bugzilla bug #126825 for info on
- the new timing parameters, comments in
- magnifier/zoom-region.c, and '--usage'.)
-
-What's new in gnome-mag-0.10.2:
-
-* Significant code cleanup and improvements to CLI.
-
-* new languages: ja, pt, more.
-
-* Fixes to 106067, 105298, 105820, 105205.
-
-* Detect and survive out-of-memory conditions.
-
-* Lots of build fixes.
-
-What's new in gnome-mag-0.9.1:
-
-* lots of translations, which is odd since there are (almost) no strings
- :+)
-
-* some fixes for cursor-coloring and hotspots;
-
-* lots more implementation, for instance multiple zoom regions,
- control of onscreen cursor size and color, etc. Also better
- support for fullscreen mode (though not perfect).
-
-ISSUES: If you run in --fullscreen ("-f") mode, you must
- for the moment make sure that $DISPLAY matches "-t <target>",
- and you must explicitly specify both source ("-s") and
- target ("-t") on the command line when running the
- 'magnifier' binary.
-
-=============
-
-This is the initial release of module gnome-mag,
-which was previously included as part of module
-at-spi.
diff --git a/README b/README
deleted file mode 100644
index 60159ae..0000000
--- a/README
+++ /dev/null
@@ -1,54 +0,0 @@
-This is gnome-mag version 0.14.2
-
-This directory contains the gnome-mag magnification
-service definition and sample implementation.
-
-For more information about GAIL and accessibility in GNOME, see:
- http://developer.gnome.org/projects/gap
-
-
-Standalone Command-line interface
-=================================
-
-gnome-mag provides a command-line interface for standalone use,
-although its primary goal is to provide a set of magnification
-services for use by other client applications and assistive
-technologies.
-
-For information on the "magnifier" command=line utility, type
-
-"magnifier --help" or "magnifier --usage" after installing
-gnome-mag.
-
-
-Dependencies
-============
-
-In order to get CVS gnome-mag installed on your system, you need to have
-the most recent CVS versions of libbonobo installed as well.
-Note that gnome-mag also requires gtk+ and gnome-commonr.
-
-Building
-========
-
-To compile a CVS version of libgail-gnome on your system, you will
-need to take several steps to setup the tree for compilation. You
-can do all these steps at once by running:
-
- cvsroot/gnome-mag# ./autogen.sh
-
-Basically this does the following for you:
-
- cvsroot/gnome-mag# aclocal; automake; autoconf
-
- The above commands create the "configure" script. Now you
- can run the configure script in cvsroot/gnome-mag to create all
- the Makefiles.
-
-Before running autogen.sh or configure, make sure you have libtool
-in your path.
-
-Note that autogen.sh runs configure for you. If you wish to pass
-options like --prefix=/usr to configure you can give those options
-to autogen.sh and they will be passed on to configure.
-
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index dbeb79a..0000000
--- a/autogen.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-PKG_NAME="gnome-mag"
-
-USE_GNOME2_MACROS=1 REQUIRED_AUTOMAKE_VERSION=1.9 . gnome-autogen.sh
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 3a19368..0000000
--- a/configure.in
+++ /dev/null
@@ -1,405 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-dnl required versions of other tools.
-m4_define([req_ver_glib], [1.3.11])
-m4_define([req_ver_gtk], [2.1.0])
-m4_define([req_ver_libbonobo], [1.107.0])
-m4_define([req_ver_libspi], [0.12.1])
-m4_define([req_ver_orbit], [2.3.100])
-
-AC_INIT(magnifier/magnifier.c)
-
-dnl libtool versioning from libgnome
-
-GNOME_MAG_MAJOR_VERSION=0
-GNOME_MAG_MINOR_VERSION=14
-GNOME_MAG_INTERFACE_AGE=10
-dnl below should change if the interface has additions, changes, removals.
-GNOME_MAG_CURRENT=`expr $GNOME_MAG_MINOR_VERSION - $GNOME_MAG_INTERFACE_AGE`
-
-dnl increment any time the source you release changes; set to
-dnl 0 if you increment CURRENT
-GNOME_MAG_REVISION=3
-
-GNOME_MAG_MICRO_VERSION=$GNOME_MAG_REVISION
-
-dnl increment if any interfaces have been added; set to 0
-dnl if any interfaces have been removed. removals has
-dnl precedence over adding, so set to 0 if both happened.
-GNOME_MAG_AGE=2
-
-AC_SUBST(GNOME_MAG_CURRENT)
-AC_SUBST(GNOME_MAG_REVISION)
-AC_SUBST(GNOME_MAG_AGE)
-LT_VERSION_INFO='-version-info ${GNOME_MAG_CURRENT}:${GNOME_MAG_REVISION}:${GNOME_MAG_AGE}'
-AC_SUBST(LT_VERSION_INFO)
-
-AM_CONFIG_HEADER(config.h)
-GNOME_MAG_VERSION="$GNOME_MAG_MAJOR_VERSION.$GNOME_MAG_MINOR_VERSION.$GNOME_MAG_MICRO_VERSION"
-AM_INIT_AUTOMAKE(gnome-mag, $GNOME_MAG_VERSION)
-AM_MAINTAINER_MODE
-
-IT_PROG_INTLTOOL([0.35.0])
-
-AC_PROG_CC
-AC_LIBTOOL_WIN32_DLL
-AC_PROG_INSTALL
-AC_ISC_POSIX
-
-GNOME_COMPILE_WARNINGS(maximum)
-
-AM_DISABLE_STATIC
-AM_PROG_LIBTOOL
-
-GETTEXT_PACKAGE=gnome-mag
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The gettext package])
-
-AM_GLIB_GNU_GETTEXT
-
-AC_MSG_CHECKING([for Win32])
-case "$host" in
- *-*-mingw*)
- gnome_mag_native_win32=yes
- ;;
- *)
- gnome_mag_native_win32=no
- ;;
-esac
-AC_MSG_RESULT([$gnome_mag_native_win32])
-AM_CONDITIONAL(OS_WIN32, test "$gnome_mag_native_win32" = "yes")
-
-if test "$gnome_mag_native_win32" = "yes"; then
- AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
-fi
-AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
-
-dnl Cache $ACLOCAL_FLAGS
-AC_CACHE_CHECK([for aclocal flags], ac_cv_atk_aclocal_flags,[
- ac_cv_atk_aclocal_flags="$ACLOCAL_FLAGS"
-])
-ACLOCAL="$ACLOCAL $ac_cv_atk_aclocal_flags"
-
-AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes)
-
-AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] turn on debugging [default=no]],,enable_debug=no)
-if test "$enable_debug" = "yes"; then
- GNOME_MAG_DEBUG_CFLAGS="-DG_ENABLE_DEBUG"
-else
- GNOME_MAG_DEBUG_CFLAGS="-DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGNOME_DISABLE_DEPRECATED"
-fi
-AC_SUBST(GNOME_MAG_DEBUG_CFLAGS)
-
-changequote(,)dnl
-if test "x$GCC" = "xyes"; then
- case " $CFLAGS " in
- *[\ \ ]-Wall[\ \ ]*) ;;
- *) CFLAGS="$CFLAGS -Wall" ;;
- esac
-fi
-changequote([,])dnl
-
-AC_PATH_XTRA
-
-dnl test for X libraries
-if test x$no_x = xyes ; then
- AC_MSG_ERROR([X development libraries not found])
-else
- X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-fi
-
-dnl path to XFIXES
-AC_CHECK_LIB(Xfixes, XFixesCreateRegion, XFIXES_LIBS=-lXfixes)
-if test "x$XFIXES_LIBS" = x; then
- save_LIBS="$LIBS"
- for xfixespath in $x_libraries; do
- LIBS="-L$xfixespath -lXfixes -lX11"
- case "$host" in
- *solaris*) XFIXES_RPATH_FLAGS="-R$xfixespath" ;;
- esac
- AC_MSG_CHECKING(for -lXfixes in $xfixespath)
- AC_TRY_LINK([], [XFixesCreateRegion()], [
- AC_MSG_RESULT(yes)
- XFIXES_LIBS="$XFIXES_RPATH_FLAGS -L$xfixespath -lXfixes"
- LIBS="$save_LIBS"
- break],[AC_MSG_RESULT(no)])
- done
- if test "x$XFIXES_LIBS" = x; then
- AC_MSG_WARN(Couldn't find the XFIXES library. Check config.log for details)
- LIBS="$save_LIBS"
- else
- X_LIBS="$X_LIBS $XFIXES_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xfixes.h, have_xfixes=yes,,[#include <X11/Xlib.h>])
- if test "x$have_xfixes" = xyes; then
- AC_DEFINE(HAVE_XFIXES, 1, [The XFIXES extension is present])
- fi
- fi
-else
- X_LIBS="$X_LIBS $XFIXES_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xfixes.h, have_xfixes=yes,,[#include <X11/Xlib.h>])
- if test "x$have_xfixes" = xyes; then
- AC_DEFINE(HAVE_XFIXES, 1, [The XFIXES extension is present])
- fi
-fi
-
-if test "x$have_xfixes" = xyes; then
-dnl path to DAMAGE.
-AC_CHECK_LIB(Xdamage, XDamageCreate, XDAMAGE_LIBS=-lXdamage)
-if test "x$XDAMAGE_LIBS" = x; then
- save_LIBS="$LIBS"
- for xdamagepath in $x_libraries; do
- LIBS="-L$xdamagepath -lXdamage -lX11"
- case "$host" in
- *solaris*) XDAMAGE_RPATH_FLAGS="-R$xdamagepath" ;;
- esac
- AC_MSG_CHECKING(for -lXdamage in $xdamagepath)
- AC_TRY_LINK([], [XDamageCreate()], [
- AC_MSG_RESULT(yes)
- XDAMAGE_LIBS="$XDAMAGE_RPATH_FLAGS -L$xdamagepath -lXdamage"
- LIBS="$save_LIBS"
- break],[AC_MSG_RESULT(no)])
- done
- if test "x$XDAMAGE_LIBS" = x; then
- AC_MSG_WARN(Couldn't find the DAMAGE library. Check config.log for details)
- LIBS="$save_LIBS"
- else
- X_LIBS="$X_LIBS $XDAMAGE_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xdamage.h, have_xdamage=yes,,[#include <X11/Xlib.h>])
- if test "x$have_xdamage" = xyes; then
- AC_DEFINE(HAVE_DAMAGE, 1, [The DAMAGE extension is present])
- fi
- fi
-else
- X_LIBS="$X_LIBS $XDAMAGE_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xdamage.h, have_xdamage=yes,,[#include <X11/Xlib.h>])
- if test "x$have_xdamage" = xyes; then
- AC_DEFINE(HAVE_DAMAGE, 1, [The DAMAGE extension is present])
- fi
-fi
-fi
-
-if test "x$have_xdamage" = xyes; then
-dnl path to XRENDER
-AC_CHECK_LIB(Xrender, XRenderCreatePicture, XRENDER_LIBS=-lXrender)
-if test "x$XRENDER_LIBS" = x; then
- save_LIBS="$LIBS"
- for xrenderpath in $x_libraries; do
- LIBS="-L$xrenderpath -lXrender -lX11"
- case "$host" in
- *solaris*) XRENDER_RPATH_FLAGS="-R$xrenderpath" ;;
- esac
- AC_MSG_CHECKING(for -lXrender in $xrenderpath)
- AC_CHECK_FUNC(XRenderCreatePicture, [
- AC_MSG_RESULT(yes)
- XRENDER_LIBS="$XRENDER_RPATH_FLAGS -L$xrenderpath -lXrender"
- LIBS="$save_LIBS"
- break],[AC_MSG_RESULT(no)])
- done
- if test "x$XRENDER_LIBS" = x; then
- AC_MSG_WARN(Couldn't find the XRENDER library. Check config.log for details)
- LIBS="$save_LIBS"
- else
- X_LIBS="$X_LIBS $XRENDER_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xrender.h, have_xrender=yes)
- fi
-else
- X_LIBS="$X_LIBS $XRENDER_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xrender.h, have_xrender=yes)
-fi
-
-if test "x$have_xrender" = xyes; then
-dnl path to XEXT
-AC_CHECK_LIB(Xext, XShapeCombineRectangles, XEXT_LIBS=-lXext)
-if test "x$XEXT_LIBS" = x; then
- save_LIBS="$LIBS"
- for xextpath in $x_libraries; do
- LIBS="-L$xextpath -lXext -lX11"
- case "$host" in
- *solaris*) XEXT_RPATH_FLAGS="-R$xextpath" ;;
- esac
- AC_MSG_CHECKING(for -lXext in $xextpath)
- AC_CHECK_FUNC(XShapeCombineRectangles, [
- AC_MSG_RESULT(yes)
- XEXT_LIBS="$XEXT_RPATH_FLAGS -L$xextpath -lXext"
- LIBS="$save_LIBS"
- break],[AC_MSG_RESULT(no)])
- done
- if test "x$XEXT_LIBS" = x; then
- AC_MSG_WARN(Couldn't find the XShape function in Xext library. Check config.log for details)
- LIBS="$save_LIBS"
- else
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- X_LIBS="$X_LIBS $XEXT_LIBS"
- LIBS="$X_LIBS"
- CFLAGS="-I$x_includes $CFLAGS"
- AC_CHECK_HEADER(X11/extensions/shape.h, have_xshape=yes,, [#include <X11/Xlib.h>])
-
- if test "x$have_xshape" = x; then
- AC_MSG_WARN(Couldn't find XShape shape.h header. Check config.log for details)
- else
- AC_CHECK_DECL(ShapeInput, [
- AC_DEFINE(HAVE_SHAPEINPUT, 1, [
- The Shape extension have ShapeInput])],
- [have_xshape=no],
- [#include <X11/Xlib.h>
- #include <X11/extensions/shape.h>])
- fi
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
- fi
-else
- save_LIBS="$LIBS"
- save_CFLAGS="$CFLAGS"
- X_LIBS="$X_LIBS $XEXT_LIBS"
- LIBS="$X_LIBS"
- CFLAGS="-I$x_includes $CFLAGS"
- AC_CHECK_HEADER(X11/extensions/shape.h, have_xshape=yes,, [#include <X11/Xlib.h>])
- if test "x$have_xshape" = x; then
- AC_MSG_WARN(Couldn't find XShape shape.h header. Check config.log for details)
- else
- AC_CHECK_DECL(ShapeInput, [
- AC_DEFINE(HAVE_SHAPEINPUT, 1, [
- The Shape extension have ShapeInput])],
- [have_xshape=no],
- [#include <X11/Xlib.h>
- #include <X11/extensions/shape.h>])
- fi
- LIBS="$save_LIBS"
- CFLAGS="$save_CFLAGS"
-fi
-
-if test "x$have_xshape" = xyes; then
-dnl path to XCOMPOSITE
-AC_CHECK_LIB(Xcomposite, XCompositeQueryExtension, XCOMPOSITE_LIBS=-lXcomposite)
-if test "x$XCOMPOSITE_LIBS" = x; then
- save_LIBS="$LIBS"
- for xcompositepath in $x_libraries; do
- LIBS="-L$xcompositepath -lXcomposite -lX11"
- case "$host" in
- *solaris*) XCOMPOSITE_RPATH_FLAGS="-R$xcompositepath" ;;
- esac
- AC_MSG_CHECKING(for -lXcomposite in $xcompositepath)
- AC_CHECK_FUNC(XCompositeQueryExtension, [
- AC_MSG_RESULT(yes)
- XCOMPOSITE_LIBS="$XCOMPOSITE_RPATH_FLAGS -L$xcompositepath -lXcomposite"
- LIBS="$save_LIBS"
- break],[AC_MSG_RESULT(no)])
- done
- if test "x$XCOMPOSITE_LIBS" = x; then
- AC_MSG_WARN(Couldn't find the XCOMPOSITE library. Check config.log for details)
- LIBS="$save_LIBS"
- else
- save_LIBS="$LIBS"
- X_LIBS="$X_LIBS $XCOMPOSITE_LIBS"
- LIBS="$X_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xcomposite.h, have_composite=yes,,[#include <X11/Xlib.h>])
- if test "x$have_composite" = xyes; then
- AC_DEFINE(HAVE_COMPOSITE, 1, [The XCOMPOSITE extension is present])
- AC_CHECK_FUNC(XCompositeGetOverlayWindow, [
- AC_DEFINE(HAVE_OVERLAY, 1, [The Composite extension has Overlay window])])
- fi
- LIBS="$save_LIBS"
- fi
-else
- save_LIBS="$LIBS"
- X_LIBS="$X_LIBS $XCOMPOSITE_LIBS"
- LIBS="$X_LIBS"
- AC_CHECK_HEADER(X11/extensions/Xcomposite.h, have_composite=yes,,[#include <X11/Xlib.h>])
- if test "x$have_composite" = xyes; then
- AC_DEFINE(HAVE_COMPOSITE, 1, [The XCOMPOSITE extension is present])
- AC_CHECK_FUNC(XCompositeGetOverlayWindow, [
- AC_DEFINE(HAVE_OVERLAY, 1, [The Composite extension has Overlay window])])
- fi
- LIBS="$save_LIBS"
-fi
-fi
-fi
-fi
-
-AC_SUBST(X_LIBS)
-
-
-dnl Test for the colorblind lib
-AC_CHECK_LIB(colorblind, colorblind_create, COLORBLIND_LIBS=-lcolorblind)
-if test "x$COLORBLIND_LIBS" != x; then
- AC_CHECK_HEADER(colorblind.h, have_colorblind=yes)
- AC_DEFINE(HAVE_COLORBLIND, 1, [The Color Blind library is present])
-fi
-
-AC_SUBST(COLORBLIND_LIBS)
-
-PKG_CHECK_MODULES(LIBDEPS, [
- ORBit-2.0 >= 2.3.100
- glib-2.0 >= 2.11.1
- gmodule-2.0 >= 1.3.11
- gobject-2.0 >= 1.3.11
- gthread-2.0 >= 1.3.11
-])
-AC_SUBST(LIBDEPS_LIBS)
-AC_SUBST(LIBDEPS_CFLAGS)
-
-PKG_CHECK_MODULES(DEPS, [
- libloginhelper-1.0 >= 1.5.2
- libbonobo-2.0 >= 1.107.0
- ORBit-2.0 >= 2.3.100
- glib-2.0 >= 2.11.1
- gtk+-2.0 >= 2.1.0
- gdk-pixbuf-2.0 >= 2.1.0
- gdk-pixbuf-xlib-2.0 >= 2.1.0
-])
-AC_SUBST(DEPS_LIBS)
-AC_SUBST(DEPS_CFLAGS)
-
-PKG_CHECK_MODULES(TEST, [
- libspi-1.0 >= 1.5.0
- libbonobo-2.0 >= 1.107.0
- ORBit-2.0 >= 2.3.100
- glib-2.0 >= 1.3.11
- gtk+-2.0 >= 2.1.0
- gdk-pixbuf-2.0 >= 2.1.0
- gdk-pixbuf-xlib-2.0 >= 2.1.0
-])
-AC_SUBST(TEST_LIBS)
-AC_SUBST(TEST_CFLAGS)
-
-PKG_CHECK_MODULES(ORBIT, ORBit-2.0 >= 2.3.100)
-AC_SUBST(ORBIT_CFLAGS)
-AC_SUBST(ORBIT_LIBS)
-
-old_LIBS="$LIBS"
-dnl Checks for inet libraries:
-AC_SEARCH_LIBS(gethostent, nsl)
-AC_SEARCH_LIBS(setsockopt, socket)
-AC_SEARCH_LIBS(connect, inet)
-
-INET_LIBS="$LIBS"
-AC_SUBST(INET_LIBS)
-
-LIBS="$old_LIBS"
-
-
-dnl orbit-idl.
-ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`"
-AC_SUBST(ORBIT_IDL)
-
-dnl Bonobo and Bonobo-Activation idl files
-BONOBO_ACTIVATION_IDL_DIR="`$PKG_CONFIG --variable=idldir bonobo-activation-2.0`"
-LIBBONOBO_IDL_DIR="`$PKG_CONFIG --variable=idldir libbonobo-2.0`"
-AC_SUBST(BONOBO_ACTIVATION_IDL_DIR)
-AC_SUBST(LIBBONOBO_IDL_DIR)
-
-AC_OUTPUT([
-Makefile
-gnome-mag-1.0.pc
-gnome-mag-1.0-uninstalled.pc
-po/Makefile.in
-idl/Makefile
-magnifier/Makefile
-cursors/Makefile
-cursors/1_32/Makefile
-test/Makefile
-docs/Makefile
-docs/reference/Makefile
-docs/man/Makefile
-])
diff --git a/cursors/1_32/Makefile.am b/cursors/1_32/Makefile.am
deleted file mode 100644
index 8668bee..0000000
--- a/cursors/1_32/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-# Process this file with automake to create Makefile.in.
-
-cursor32dir = $(datadir)/gnome-mag/1_32
-cursor32_DATA = \
- appstart.xpm \
- busy.xpm \
- hand.xpm \
- bottom_left_corner.xpm \
- bottom_side.xpm \
- crosshair.xpm \
- default.xpm \
- fleur.xpm \
- left_ptr.xpm \
- left_side.xpm \
- no.xpm \
- right_side.xpm \
- sb_h_double_arrow.xpm \
- sb_v_double_arrow.xpm \
- top_left_corner.xpm \
- top_right_corner.xpm \
- top_side.xpm \
- up.xpm \
- xterm.xpm
-
-EXTRA_DIST = $(cursor32_DATA)
diff --git a/cursors/1_32/appstart.xpm b/cursors/1_32/appstart.xpm
deleted file mode 100644
index 86df8ad..0000000
--- a/cursors/1_32/appstart.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char* AppStart1[] = {
-"32 32 6 1 0 0",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #808080",
-"% c #000000",
-"& c #FFFFFF",
-"! ",
-"!! ",
-"!%! ",
-"!%%! ",
-"!%%%! ",
-"!%%%%! ",
-"!%%%%%! ",
-"!%%%%%%! ",
-"!%%%%%%%! ",
-"!%%%%%%%%! !!!!!!!!!!!!! ",
-"!%%%%%%%%%! %%%%%%%%%%%%% ",
-"!%%%%%%%%%%! !&&&&&&&&&! ",
-"!%%%%%%%%%%%! !$&&&&&&&&! ",
-"!%%%%%%%%%%%%! !$$&&&&&!$! ",
-"!%%%%%%%!!!!!!! !$$$%&%!$$! ",
-"!%%%%%%%! !!$!$!!!! ",
-"!%%%!!%%%! !$$!$$! ",
-"!%%! !%%! !!$!! ",
-"!%! !%%%! !$! ",
-"!! !%%! !$! ",
-"! !%%%! !&$&! ",
-" !%%! !&&$&&! ",
-" !%%%! !&&&$#&&! ",
-" !%%! !&&&#&##&&! ",
-" !!! !&&&&$&#&&! ",
-" !&&&$$$&&&! ",
-" !&&$%!%$&&! ",
-" %%%%%%%%%%%%% ",
-" !!!!!!!!!!!!! ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/bottom_left_corner.xpm b/cursors/1_32/bottom_left_corner.xpm
deleted file mode 100644
index e001842..0000000
--- a/cursors/1_32/bottom_left_corner.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* NESW[] = {
-"32 32 3 1 15 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" !! ",
-" !!#! ",
-" !!##! ",
-" !!####! ",
-" !!#####! ",
-" !!#######! ",
-" !######! ",
-" !#####! ",
-" !#####! ",
-" !###!##! ",
-" !###! !! ",
-" !###! ! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" ! !###! ",
-" !#! !###! ",
-" !##!###! ",
-" !######! ",
-" !#####! ",
-" !#######! ",
-" !#######!! ",
-" !######!! ",
-" !####!! ",
-" !###!! ",
-" !#!! ",
-" !! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/bottom_side.xpm b/cursors/1_32/bottom_side.xpm
deleted file mode 100644
index 74bf9b3..0000000
--- a/cursors/1_32/bottom_side.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* NS[] = {
-"32 32 3 1 16 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ! ",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !#######! ",
-" !!!!#!!!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!!!#!!!! ",
-" !#######! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !###! ",
-" !#! ",
-" !#! ",
-" ! ",
-" ! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/busy.xpm b/cursors/1_32/busy.xpm
deleted file mode 100644
index 2ccd0b9..0000000
--- a/cursors/1_32/busy.xpm
+++ /dev/null
@@ -1,41 +0,0 @@
-/* XPM */
-static char* Busy1[] = {
-"32 32 6 1 15 16",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #808080",
-"% c #000000",
-"& c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" !!!!!!!!!!!!!!! ",
-" %%%%%%%%%%%%%%% ",
-" !&&&&&&&&&&&! ",
-" !&&&&&&&&&&&! ",
-" !&&&&&&&&&&&! ",
-" !$$&$&&&$&$!! ",
-" !$$$$%&%!$!$! ",
-" !$$$!$!!!$! ",
-" !&$$!$$$! ",
-" !$$$!$! ",
-" !$$$! ",
-" !$! ",
-" !$! ",
-" !$&$! ",
-" !$&$&$! ",
-" !$&&$$&$! ",
-" !$&&&$#&&$! ",
-" !$&&&#$##$&!! ",
-" !&&&&&$&#&&&! ",
-" !&&&&$$$&$&$! ",
-" !&&&$$!&$&&&! ",
-" !$$$$!%!$!$!! ",
-" %%%%%%%%%%%%%%% ",
-" !!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/crosshair.xpm b/cursors/1_32/crosshair.xpm
deleted file mode 100644
index 4378a58..0000000
--- a/cursors/1_32/crosshair.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Cross[] = {
-"32 32 3 1 15 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ###################### ",
-" ###################### ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/default.xpm b/cursors/1_32/default.xpm
deleted file mode 100644
index 08da2d7..0000000
--- a/cursors/1_32/default.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Normal[] = {
-"32 32 3 1 8 3",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ! ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !############! ",
-" !#######!!!!!!! ",
-" !#######! ",
-" !###!!###! ",
-" !##! !##! ",
-" !#! !###! ",
-" !! !##! ",
-" ! !###! ",
-" !##! ",
-" !###! ",
-" !##! ",
-" !!! ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/fleur.xpm b/cursors/1_32/fleur.xpm
deleted file mode 100644
index 2ef7f3a..0000000
--- a/cursors/1_32/fleur.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Move[] = {
-"32 32 3 1 16 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !#######! ",
-" !!!!#!!!! ",
-" !#! ",
-" !#! ",
-" !! !#! !! ",
-" !!#! !#! !#!! ",
-" !!###! !#! !###!! ",
-" !!#####!!!!!!!#!!!!!!!#####!! ",
-" !#############################!",
-" !!#####!!!!!!!#!!!!!!!#####!! ",
-" !!###! !#! !###!! ",
-" !!#! !#! !#!! ",
-" !! !#! !! ",
-" !#! ",
-" !#! ",
-" !!!!#!!!! ",
-" !#######! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !###! ",
-" !#! ",
-" !#! ",
-" ! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/hand.xpm b/cursors/1_32/hand.xpm
deleted file mode 100644
index 291bd4a..0000000
--- a/cursors/1_32/hand.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Hand[] = {
-"32 32 3 1 3 5",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !#! ",
-" !! ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/help.xpm b/cursors/1_32/help.xpm
deleted file mode 100644
index 9d95d70..0000000
--- a/cursors/1_32/help.xpm
+++ /dev/null
@@ -1,39 +0,0 @@
-/* XPM */
-static char* Help[] = {
-"32 32 4 1 3 4",
-" c None",
-"! c #101010",
-"# c #000000",
-"$ c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ! ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! $$$$$$$ ",
-" !#####! $!!!!!!!$ ",
-" !######! $!!!$$!!!!$ ",
-" !#######! $!!!$ $!!!!$ ",
-" !########! $!!!$ $!!!!$ ",
-" !#########! $!!!$ $!!!!$ ",
-" !##########! $!!!$ $!!!$ ",
-" !###########!$$$$$ $!!!$ ",
-" !############! $!!!$ ",
-" !########!!!!!! $!!!$ ",
-" !#######! $!!!$ ",
-" !###!!###! $!!!$ ",
-" !##! !##! $$$ ",
-" !#! !###! $!!!$ ",
-" !! !##! $!!!!!$ ",
-" ! !###! $!!!$ ",
-" !##! $$$ ",
-" !###! ",
-" !##! ",
-" !!! ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/left_ptr.xpm b/cursors/1_32/left_ptr.xpm
deleted file mode 100644
index 08da2d7..0000000
--- a/cursors/1_32/left_ptr.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Normal[] = {
-"32 32 3 1 8 3",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ! ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !############! ",
-" !#######!!!!!!! ",
-" !#######! ",
-" !###!!###! ",
-" !##! !##! ",
-" !#! !###! ",
-" !! !##! ",
-" ! !###! ",
-" !##! ",
-" !###! ",
-" !##! ",
-" !!! ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/left_side.xpm b/cursors/1_32/left_side.xpm
deleted file mode 100644
index 8a011e9..0000000
--- a/cursors/1_32/left_side.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"32 32 3 1 16 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! !! ",
-" !!#! !#!! ",
-" !!###! !###!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!##########################!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!###! !###!! ",
-" !!#! !#!! ",
-" !! !! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/no.xpm b/cursors/1_32/no.xpm
deleted file mode 100644
index a08fda8..0000000
--- a/cursors/1_32/no.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* No[] = {
-"32 32 3 1 15 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" !!!!!!! ",
-" !!!#######!! ",
-" !!############!! ",
-" !################! ",
-" !######!!!!!!######! ",
-" !#####!! !!#####! ",
-" !#####! !#####! ",
-" !#####! !#######! ",
-" !####! !########! ",
-" !####! !#####!####! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !###! !#####! !###! ",
-" !####!#####! !####! ",
-" !########! !####! ",
-" !#######! !#####! ",
-" !#####! !#####! ",
-" !#####!! !!#####! ",
-" !######!!!!!!######! ",
-" !################! ",
-" !!############!! ",
-" !!!######!!! ",
-" !!!!!! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/right_side.xpm b/cursors/1_32/right_side.xpm
deleted file mode 100644
index 8a011e9..0000000
--- a/cursors/1_32/right_side.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"32 32 3 1 16 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! !! ",
-" !!#! !#!! ",
-" !!###! !###!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!##########################!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!###! !###!! ",
-" !!#! !#!! ",
-" !! !! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/sb_h_double_arrow.xpm b/cursors/1_32/sb_h_double_arrow.xpm
deleted file mode 100644
index 8a011e9..0000000
--- a/cursors/1_32/sb_h_double_arrow.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"32 32 3 1 16 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! !! ",
-" !!#! !#!! ",
-" !!###! !###!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!##########################!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!###! !###!! ",
-" !!#! !#!! ",
-" !! !! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/sb_v_double_arrow.xpm b/cursors/1_32/sb_v_double_arrow.xpm
deleted file mode 100644
index 8a011e9..0000000
--- a/cursors/1_32/sb_v_double_arrow.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"32 32 3 1 16 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! !! ",
-" !!#! !#!! ",
-" !!###! !###!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!##########################!! ",
-" !!#####!!!!!!!!!!!!#####!! ",
-" !!###! !###!! ",
-" !!#! !#!! ",
-" !! !! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/top_left_corner.xpm b/cursors/1_32/top_left_corner.xpm
deleted file mode 100644
index 428aa7c..0000000
--- a/cursors/1_32/top_left_corner.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* NWSE[] = {
-"32 32 3 1 17 17",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" !! ",
-" !#!! ",
-" !##!! ",
-" !####!! ",
-" !#####!! ",
-" !#######!! ",
-" !######! ",
-" !#####! ",
-" !#####! ",
-" !##!###! ",
-" !! !###! ",
-" ! !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ! ",
-" !###! !! ",
-" !###!##! ",
-" !#####! ",
-" !#####! ",
-" !######! ",
-" !########! ",
-" !!######! ",
-" !!#####! ",
-" !!###! ",
-" !!##! ",
-" !!! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/top_right_corner.xpm b/cursors/1_32/top_right_corner.xpm
deleted file mode 100644
index e001842..0000000
--- a/cursors/1_32/top_right_corner.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* NESW[] = {
-"32 32 3 1 15 16",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" !! ",
-" !!#! ",
-" !!##! ",
-" !!####! ",
-" !!#####! ",
-" !!#######! ",
-" !######! ",
-" !#####! ",
-" !#####! ",
-" !###!##! ",
-" !###! !! ",
-" !###! ! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" ! !###! ",
-" !#! !###! ",
-" !##!###! ",
-" !######! ",
-" !#####! ",
-" !#######! ",
-" !#######!! ",
-" !######!! ",
-" !####!! ",
-" !###!! ",
-" !#!! ",
-" !! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/top_side.xpm b/cursors/1_32/top_side.xpm
deleted file mode 100644
index 74bf9b3..0000000
--- a/cursors/1_32/top_side.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* NS[] = {
-"32 32 3 1 16 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ! ",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !#######! ",
-" !!!!#!!!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!!!#!!!! ",
-" !#######! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !###! ",
-" !#! ",
-" !#! ",
-" ! ",
-" ! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/up.xpm b/cursors/1_32/up.xpm
deleted file mode 100644
index 3d96fa6..0000000
--- a/cursors/1_32/up.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Up[] = {
-"32 32 3 1 15 2",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ! ",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !#######! ",
-" !#######! ",
-" !#########! ",
-" !#########! ",
-" !###########! ",
-" !###########! ",
-" !!!!!!!#!!!!!!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_32/xterm.xpm b/cursors/1_32/xterm.xpm
deleted file mode 100644
index 7fb24cb..0000000
--- a/cursors/1_32/xterm.xpm
+++ /dev/null
@@ -1,38 +0,0 @@
-/* XPM */
-static char* Ibeam[] = {
-"32 32 3 1 14 15",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" #### #### ",
-" ########## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ## ",
-" ########## ",
-" #### #### ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/appstart.xpm b/cursors/1_48/appstart.xpm
deleted file mode 100644
index ae339d1..0000000
--- a/cursors/1_48/appstart.xpm
+++ /dev/null
@@ -1,57 +0,0 @@
-/* XPM */
-static char* AppStart[] = {
-"48 48 6 1 0 0",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #808080",
-"% c #000000",
-"& c #FFFFFF",
-"! ",
-"!! ",
-"!%! ",
-"!%%! ",
-"!%%%! ",
-"!%%%%! ",
-"!%%%%%! ",
-"!%%%%%%! ",
-"!%%%%%%%! ",
-"!%%%%%%%%! ",
-"!%%%%%%%%%! ",
-"!%%%%%%%%%%! ",
-"!%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%! !!!!!!!!!!!!!!!!!!!! ",
-"!%%%%%%%%%%%%%! !%%%%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%! !!!%%%%%%%%%%%%%%!!! ",
-"!%%%%%%%%%%%%%%%! !&&&&&&&&&&&&&&! ",
-"!%%%%%%%%%%%%%%%%! !&&&&&&&&&&&&&&! ",
-"!%%%%%%%%%%%%%%%%%! !$$&&&&&&&&&&&&! ",
-"!%%%%%%%%%%%%%%%%%%! !$$$&&&&&&&&!$$! ",
-"!%%%%%%%%%%%%%%%%%%%! !$$$&&&&&&&&!$$! ",
-"!%%%%%%%%%%%!!!!!!!!!! !$$$$$%&&%!!$$$! ",
-"!%%%%%%%%%%%! !#!$$!$$!#!#!! ",
-"!%%%%%%%%%%%! !#$$!$$!!#!! ",
-"!%%%%%!!%%%%%! !$$$!!$$$! ",
-"!%%%%! !%%%%! !#!$$!!! ",
-"!%%%! !%%%%%! !#$$!! ",
-"!%%! !%%%%%! !$$! ",
-"!%! !%%%%! !$$! ",
-"!! !%%%%%! !$$! ",
-"! !%%%%! !!&$$&!! ",
-" !%%%%%! !&&&$$&&&! ",
-" !%%%%! !&&&$$&&&! ",
-" !%%%%%! !!&&&&$$#&&&!! ",
-" !%%%%! !&&&&&#&&###&&&! ",
-" !%%%! !&&&&&#&&###&&&! ",
-" !!!! !&&&&#&$$&##&&&! ",
-" !&&&#&$$$$&#&&&! ",
-" !&&#&&$$$$&&#&&! ",
-" !##&$$%!!%$$&#&! ",
-" !!!%%%%%%%%%%%%%%!!! ",
-" !%%%%%%%%%%%%%%%%%%! ",
-" !!!!!!!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/busy.xpm b/cursors/1_48/busy.xpm
deleted file mode 100644
index 0bc4cd0..0000000
--- a/cursors/1_48/busy.xpm
+++ /dev/null
@@ -1,57 +0,0 @@
-/* XPM */
-static char* Busy[] = {
-"48 48 6 1 22 23",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #808080",
-"% c #000000",
-"& c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!!!!!!!!!!!!!!!!!!! ",
-" !%%%%%%%%%%%%%%%%%%%%! ",
-" !%%%%%%%%%%%%%%%%%%%%! ",
-" !&&&&&&&&&&&&&&&&&&! ",
-" !&&&&&&&&&&&&&&&&&&! ",
-" !&&&&&&&&&&&&&&&&&&! ",
-" !$&&&&&&&&&&&&&&&&!! ",
-" !$$$#&$$&&&&$$&$$!$! ",
-" !$$$$&##&&&&$$&$$!$! ",
-" !!$$$$$$%&&%!!$!!$!! ",
-" !$$$$$$!$$!##!$$$! ",
-" !$$$$$!$$#!!#$$! ",
-" !$&$$$!!$$#$$! ",
-" !$$$$$$!$$$! ",
-" !$$$$$!$$! ",
-" !$$$$$$! ",
-" !$$$$! ",
-" !$$! ",
-" !!$$!! ",
-" !!&$$&!! ",
-" !!&&$$&&!! ",
-" !!&&&$$&&&!! ",
-" !!&&&&$$#&&&!! ",
-" !!&&&&&$$#&&&&!! ",
-" !!&&&&&&$$#&&&&&!! ",
-" !!&&&&&&#$$##&&&&&!! ",
-" !&&&&&&&#$$###&&&&&! ",
-" !&&&&&&#&$$&##&&&&&! ",
-" !&&&&&#&$$$$&&$&&&&! ",
-" !&&&&#&&$$$$&&$&&&&! ",
-" !&&&&&$$$!!&$$&&&&&! ",
-" !&##$$$$!%%!$$!#$#&! ",
-" !&#$#$$$!%%!$$!$$#&! ",
-" !%%%%%%%%%%%%%%%%%%%%! ",
-" !%%%%%%%%%%%%%%%%%%%%! ",
-" !!!!!!!!!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/cross.xpm b/cursors/1_48/cross.xpm
deleted file mode 100644
index 57d8981..0000000
--- a/cursors/1_48/cross.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* Cross[] = {
-"48 48 3 1 23 23",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!! ",
-" !###############################! ",
-" !!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/hand.xpm b/cursors/1_48/hand.xpm
deleted file mode 100644
index ef228e8..0000000
--- a/cursors/1_48/hand.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* Hand[] = {
-"48 48 3 1 4 7",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!! ",
-" !####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/help.xpm b/cursors/1_48/help.xpm
deleted file mode 100644
index 56212f9..0000000
--- a/cursors/1_48/help.xpm
+++ /dev/null
@@ -1,55 +0,0 @@
-/* XPM */
-static char* Help[] = {
-"48 48 4 1 4 6",
-" c None",
-"! c #101010",
-"# c #000000",
-"$ c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! $$$$$$$$$$$ ",
-" !########! $$$$$$$$$$$ ",
-" !#########! $!!!!!!!!!!!$ ",
-" !##########! $$!!!!$$$!!!!!!$$ ",
-" !###########! $$!!!!$$$!!!!!!$$ ",
-" !############! $!!!!!$ $$!!!!!!$ ",
-" !#############! $!!!!!$ $$!!!!!!$ ",
-" !##############! $!!!!!$ $$!!!!!!$ ",
-" !###############! $!!!!!$ $$!!!!!!$ ",
-" !################! $!!!!!$ $$!!!!$$ ",
-" !#################! $!!!!!$ $$!!!!$$ ",
-" !##################!$$$$$$$ $!!!!!$ ",
-" !###################! $$!!!!$$ ",
-" !####################! $$!!!!$$ ",
-" !###########!!!!!!!!!!! $!!!!!$ ",
-" !############! $!!!!!$ ",
-" !############! $!!!!!$ ",
-" !######!######! $!!!!!$ ",
-" !#####! !#####! $$$$$ ",
-" !####! !#####! $$$$$ ",
-" !###! !#####! $!!!!!$ ",
-" !##! !#####! $$!!!!!!!$$ ",
-" !#! !#####! $$!!!!!!!$$ ",
-" !! !#####! $!!!!!$ ",
-" !####! $$$$$ ",
-" !####!! $$$$$ ",
-" !####! ",
-" !#####! ",
-" !####! ",
-" !!!!! ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/ibeam.xpm b/cursors/1_48/ibeam.xpm
deleted file mode 100644
index 23b6371..0000000
--- a/cursors/1_48/ibeam.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* Ibeam[] = {
-"48 48 3 1 22 23",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!!!!!!!!!!!! ",
-" !#############! ",
-" !!!!!!!#!!!!!!! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !#! ",
-" !!!!!!!#!!!!!!! ",
-" !#############! ",
-" !!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/move.xpm b/cursors/1_48/move.xpm
deleted file mode 100644
index 4c8c796..0000000
--- a/cursors/1_48/move.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* Move[] = {
-"48 48 3 1 24 23",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ! ",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !#######! ",
-" !#######! ",
-" !#########! ",
-" !#########! ",
-" !!!!!###!!!!! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !! !###! !!! ",
-" !!#! !###! !##!! ",
-" !!###! !###! !####!! ",
-" !!#####! !###! !######!! ",
-" !!#######! !###! !########!! ",
-" !!#########!!!!!!!!!###!!!!!!!!!##########!! ",
-" !!############################################!",
-" !!###########################################!!",
-" !!#########!!!!!!!!!###!!!!!!!!!#########!! ",
-" !!#######! !###! !#######!! ",
-" !!#####! !###! !#####!! ",
-" !!###! !###! !###!! ",
-" !!#! !###! !#!! ",
-" !! !###! !! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !!!!!###!!!!! ",
-" !#########! ",
-" !#########! ",
-" !#######! ",
-" !#######! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !###! ",
-" !#! ",
-" !#! ",
-" ! ",
-" ! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/nesw.xpm b/cursors/1_48/nesw.xpm
deleted file mode 100644
index 2f3b567..0000000
--- a/cursors/1_48/nesw.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* NESW[] = {
-"48 48 3 1 23 24",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" !!! ",
-" !!##! ",
-" !!###! ",
-" !!#####! ",
-" !!######! ",
-" !!########! ",
-" !!#########! ",
-" !!###########! ",
-" !############! ",
-" !###########! ",
-" !#########! ",
-" !########! ",
-" !########! ",
-" !#########! ",
-" !#####!###! ",
-" !#####! !##! ",
-" !#####! !! ",
-" !#####! ! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" ! !#####! ",
-" !! !#####! ",
-" !##! !#####! ",
-" !###!!#####! ",
-" !##########! ",
-" !#########! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !############! ",
-" !############!! ",
-" !###########!! ",
-" !########!!! ",
-" !######!! ",
-" !#####!! ",
-" !##!!! ",
-" !#!! ",
-" !! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/no.xpm b/cursors/1_48/no.xpm
deleted file mode 100644
index 4194587..0000000
--- a/cursors/1_48/no.xpm
+++ /dev/null
@@ -1,55 +0,0 @@
-/* XPM */
-static char* No[] = {
-"48 48 4 1 23 23",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #000000",
-" ",
-" !!!!!!!!!!!! ",
-" !!!$$$$$$$$$$$$!! ",
-" !$$$$$$$$$$$$$$$$$!! ",
-" !!$$$$$$$$$$$$$$$$$$$$! ",
-" !$$$$$$$$$$$$$$$$$$$$$$$! ",
-" !!$$$$$$$$$$$$$$$$$$$$$$$$$! ",
-" !$$$$$$$$$$!!!!!!!$$$$$$$$$$$! ",
-" !$$$$$$$$$!! !!$$$$$$$$$$! ",
-" !$$$$$$$$$! !!$$$$$$$$$! ",
-" !$$$$$$$!! !$$$$$$$$! ",
-" !$$$$$$$! !$$$$$$$$$! ",
-" !$$$$$$$! !$$$$$$$$$$$! ",
-" !$$$$$$$! !$$$$$$$$$$$$! ",
-" !$$$$$$! !$$$$$$$$$$$$$$! ",
-" !$$$$$$! !$$$$$$$$!$$$$$$! ",
-" !$$$$$$! !$$$$$$$$! !$$$$$$! ",
-" !$$$$$$! !$$$$$$$$! !$$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$! ",
-" !$$$$!# !$$$$$$$$! !$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$! ",
-" !$$$$$!! !$$$$$$$$! !$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$! !$$$$$$$$! !$$$$$! ",
-" !$$$$$!!$$$$$$$$! !$$$$$$! ",
-" !$$$$$$$$$$$$$! !$$$$$$! ",
-" !$$$$$$$$$$$$! !$$$$$$!! ",
-" !$$$$$$$$$$! !$$$$$$$! ",
-" !$$$$$$$$! !!$$$$$$$! ",
-" !$$$$$$$$! !!$$$$$$$$! ",
-" !$$$$$$$$!! !$$$$$$$$$! ",
-" !$$$$$$$$$!!!!!!!!!$$$$$$$$$! ",
-" !$$$$$$$$$$$$$$$$$$$$$$$$$! ",
-" !$$$$$$$$$$$$$$$$$$$$$$$! ",
-" !!!$$$$$$$$$$$$$$$$$$!! ",
-" !!!$$$$$$$$$$$$$!! ",
-" !!!$$$$$$$$!!! ",
-" !!!!!!!!! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/normal.xpm b/cursors/1_48/normal.xpm
deleted file mode 100644
index 68ea904..0000000
--- a/cursors/1_48/normal.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* Normal[] = {
-"48 48 3 1 12 4",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ! ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !##############! ",
-" !###############! ",
-" !################! ",
-" !#################! ",
-" !##################! ",
-" !###################! ",
-" !####################! ",
-" !###########!!!!!!!!!! ",
-" !###########! ",
-" !############! ",
-" !#####!!#####! ",
-" !####! !######! ",
-" !###! !#####! ",
-" !##! !######! ",
-" !#! !#####! ",
-" !! !######! ",
-" ! !#####! ",
-" !######! ",
-" !#####! ",
-" !######! ",
-" !#####! ",
-" !#####! ",
-" !!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/ns.xpm b/cursors/1_48/ns.xpm
deleted file mode 100644
index 1e44a90..0000000
--- a/cursors/1_48/ns.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* NS[] = {
-"48 48 3 1 24 23",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ! ",
-" ! ",
-" !#! ",
-" !#! ",
-" !###! ",
-" !###! ",
-" !#####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !!!!!###!!!!! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !###! ",
-" !!!!!###!!!!! ",
-" !###########! ",
-" !##########! ",
-" !#########! ",
-" !########! ",
-" !#######! ",
-" !######! ",
-" !#####! ",
-" !#####! ",
-" !###! ",
-" !###! ",
-" !#! ",
-" !#! ",
-" ! ",
-" ! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/nwse.xpm b/cursors/1_48/nwse.xpm
deleted file mode 100644
index c15c2a6..0000000
--- a/cursors/1_48/nwse.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* NWSE[] = {
-"48 48 3 1 26 26",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#!! ",
-" !###!! ",
-" !####!! ",
-" !######!! ",
-" !#######!! ",
-" !#########!! ",
-" !##########!! ",
-" !############!! ",
-" !###########! ",
-" !##########! ",
-" !########! ",
-" !#########! ",
-" !#########! ",
-" !####!#####! ",
-" !##! !#####! ",
-" !#! !#####! ",
-" ! !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ",
-" !#####! ! ",
-" !#####! !! ",
-" !#####! !##! ",
-" !#####!!###! ",
-" !##########! ",
-" !#########! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !############! ",
-" !!############! ",
-" !!###########! ",
-" !!#########! ",
-" !!!######! ",
-" !!#####! ",
-" !!###! ",
-" !!##! ",
-" !!! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/up.xpm b/cursors/1_48/up.xpm
deleted file mode 100644
index f49c08b..0000000
--- a/cursors/1_48/up.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* UP[] = {
-"48 48 3 1 22 3",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" !! ",
-" !! ",
-" !##! ",
-" !##! ",
-" !####! ",
-" !####! ",
-" !######! ",
-" !######! ",
-" !########! ",
-" !########! ",
-" !##########! ",
-" !##########! ",
-" !############! ",
-" !############! ",
-" !##############! ",
-" !##############! ",
-" !################! ",
-" !################! ",
-" !##################! ",
-" !##################! ",
-" !####################! ",
-" !!!!!!!!!!##!!!!!!!!!! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_48/we.xpm b/cursors/1_48/we.xpm
deleted file mode 100644
index 75799c9..0000000
--- a/cursors/1_48/we.xpm
+++ /dev/null
@@ -1,54 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"48 48 3 1 23 24",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!! !!! ",
-" !!##! !##!! ",
-" !!####! !####!! ",
-" !!######! !######!! ",
-" !!########! !########!! ",
-" !!##########!!!!!!!!!!!!!!!!!##########!! ",
-" !!#########################################!! ",
-" !!#########################################!! ",
-" !!#####################################!! ",
-" !!########!!!!!!!!!!!!!!!!!########!! ",
-" !!!#####! !#####!!! ",
-" !!###! !###!! ",
-" !!#! !#!! ",
-" !! !! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/appstart.xpm b/cursors/1_64/appstart.xpm
deleted file mode 100644
index 7e7b196..0000000
--- a/cursors/1_64/appstart.xpm
+++ /dev/null
@@ -1,73 +0,0 @@
-/* XPM */
-static char* AppStart[] = {
-"64 64 6 1 0 0",
-" c None",
-"! c #101010",
-"# c #C0C0C0",
-"$ c #808080",
-"% c #000000",
-"& c #FFFFFF",
-"!! ",
-"!%! ",
-"!%%! ",
-"!%%%! ",
-"!%%%%! ",
-"!%%%%%! ",
-"!%%%%%%! ",
-"!%%%%%%%! ",
-"!%%%%%%%%! ",
-"!%%%%%%%%%! ",
-"!%%%%%%%%%%! ",
-"!%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%%%%! !!!!!!!!!!!!!!!!!!!!!!!!!! ",
-"!%%%%%%%%%%%%%%%%%%%! !%%%%%%%%%%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%%%%%%! !%%%%%%%%%%%%%%%%%%%%%%%%! ",
-"!%%%%%%%%%%%%%%%%%%%%%! !!!!%%%%%%%%%%%%%%%%%%!!!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%! !!&&&&&&&&&&&&&&&&&&!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%! !!&&&&&&&&&&&&&&&&&&!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%%! !!$&&&&&&&&&&&&&&&&&!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%%%! !!$$&&&&&&&&&&&&&&&&!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%%%%! !!$$$&&&&&&&&&&&&!$$!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%%%%%! !!$$$$&&&&&&&&&&!!$$!! ",
-"!%%%%%%%%%%%%%%%%%%%%%%%%%%%%! !!$$$$$$%&&&&%!!$$$$!! ",
-"!%%%%%%%%%%%%%%%%!!!!!!!!!!!!! !!$$$$$$%%&&%%!!$$$$!! ",
-"!%%%%%%%%%%%%%%%%! !!!##$$!!$$!!!##!!!! ",
-"!%%%%%%%%%%%%%%%%! !!!#$$!!$$!!##!!!! ",
-"!%%%%%%%%!!%%%%%%%! !!!$$$$!!$$$$!!! ",
-"!%%%%%%%! !%%%%%%! !!$$$$!!$$$$!! ",
-"!%%%%%%! !%%%%%%%! !!!!!$$!!!!! ",
-"!%%%%%! !%%%%%%! !!!!$$!!!! ",
-"!%%%%! !%%%%%%%! !!!$$!!! ",
-"!%%%! !%%%%%%! !!$$!! ",
-"!%%! !%%%%%%%! !!$$!! ",
-"!%! !%%%%%%! !!!$$!!! ",
-"!! !%%%%%%%! !!&&$$&&!! ",
-"! !%%%%%%! !!&&&$$&&&!! ",
-" !%%%%%%! !!&&&&$$&&&&!! ",
-" !%%%%%%! !!&&&&&$$&&&&&!! ",
-" !%%%%%%! !!&&&&&&$$##&&&&!! ",
-" !%%%%%%! !!&&&&&&&$$##&&&&&!! ",
-" !%%%%%%! !!&&&&&&##&&####&&&&!! ",
-" !%%%%%%! !!&&&&&&##&&####&&&&!! ",
-" !%%%%%! !!&&&&&&&&$$&&##&&&&!! ",
-" !!!!!! !!&&&&&&&&$$&&##&&&&!! ",
-" !!&&&&&&$$$$$$&&&&&&!! ",
-" !!&&&&&&$$$$$$&&&&&&!! ",
-" !!&&&&$$%%!!%%$$&&&&!! ",
-" !!&&&&$$%%!!%%$$&&&&!! ",
-" !!!!%%%%%%%%%%%%%%%%%%!!!! ",
-" !%%%%%%%%%%%%%%%%%%%%%%%%! ",
-" !%%%%%%%%%%%%%%%%%%%%%%%%! ",
-" !!!!!!!!!!!!!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/busy.xpm b/cursors/1_64/busy.xpm
deleted file mode 100644
index 6566c27..0000000
--- a/cursors/1_64/busy.xpm
+++ /dev/null
@@ -1,74 +0,0 @@
-/* XPM */
-static char* Busy[] = {
-"64 64 7 1 30 31",
-" c None",
-"! c #101010",
-"# c #000080",
-"$ c #C0C0C0",
-"% c #808080",
-"& c #000000",
-"' c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
-" !&&&&&&&&&&&&&&&&&&&&&&&&&&&&! ",
-" !&&&&&&&&&&&&&&&&&&&&&&&&&&&&! ",
-" !!!!&&&&&&&&&&&&&&&&&&&&&&!!!! ",
-" !!''''''''''''''''''''''!! ",
-" !!''''''''''''''''''''''!! ",
-" !!''''''''''''''''''''''!! ",
-" !!''''''''''''''''''''''!! ",
-" !!''''''''''''''''''''''!! ",
-" !!''''''''''''''''''''''!! ",
-" !!%%%%''%%''''''%%''%%!!!! ",
-" !!%%%%''%%''''''%%''%%!!!! ",
-" !!%%%%%%%%&&''&&!!%%!!%%!! ",
-" !!%%%%%%%%&&''&&!!%%!!%%!! ",
-" !!%%%%%%%!!%%!!$$!!%%%!! ",
-" !!%%%%%%!!%%!!$$!!%%!! ",
-" !!%''%%%%!!%%%%%%%!! ",
-" !!''%%%%!!%%%%%%!! ",
-" !!%%%%%%%$$%%%!! ",
-" !!%%%%%%$$%%!! ",
-" !!%%%%%%%%!! ",
-" !!%%%%%%!! ",
-" !!%%%%!! ",
-" !!%%!! ",
-" !!%%!! ",
-" !!!%%!!! ",
-" !!''''''!! ",
-" !!''''''''!! ",
-" !!''''%%''''!! ",
-" !!'''''%%'''''!! ",
-" !!''''''%%%%''''!! ",
-" !!'''''''%%%%'''''!! ",
-" !!''''''''%%$$''''''!! ",
-" !!'''''''''%%$$'''''''!! ",
-" !!''''''''$$%%$$$$%%''''!! ",
-" !!''''''''$$%%$$$$%%''''!! ",
-" !!''''''''''%%''$$''''''!! ",
-" !!''''''''''%%''$$''''''!! ",
-" !!''''''''%%%%%%''%%''%%!! ",
-" !!''''''''%%%%%%''%%''%%!! ",
-" !!''''''%%%%!!''%%''''''!! ",
-" !!''''''%%%%!!''%%''''''!! ",
-" !!%%%%%%%%!!##!!%%!!%%!!!! ",
-" !!%%%%%%%%!!##!!%%!!%%!!!! ",
-" !!!!&&&&&&&&&&&&&&&&&&&&&&!!!! ",
-" !&&&&&&&&&&&&&&&&&&&&&&&&&&&&! ",
-" !&&&&&&&&&&&&&&&&&&&&&&&&&&&&! ",
-" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/cross.xpm b/cursors/1_64/cross.xpm
deleted file mode 100644
index 641692a..0000000
--- a/cursors/1_64/cross.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Cross[] = {
-"64 64 3 1 31 31",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!! ",
-" !##########################################! ",
-" !##########################################! ",
-" !!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/hand.xpm b/cursors/1_64/hand.xpm
deleted file mode 100644
index 652d4b0..0000000
--- a/cursors/1_64/hand.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Hand[] = {
-"64 64 3 1 6 10",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!!! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !######! ",
-" !#####! ",
-" !####! ",
-" !###! ",
-" !!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/help.xpm b/cursors/1_64/help.xpm
deleted file mode 100644
index abe281d..0000000
--- a/cursors/1_64/help.xpm
+++ /dev/null
@@ -1,71 +0,0 @@
-/* XPM */
-static char* Help[] = {
-"64 64 4 1 6 8",
-" c None",
-"! c #101010",
-"# c #000000",
-"$ c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! $$$$$$$$$$$$$$ ",
-" !###########! $$$$$$$$$$$$$$ ",
-" !############! $$!!!!!!!!!!!!!!$$ ",
-" !#############! $$!!!!!!!!!!!!!!$$ ",
-" !##############! $$!!!!!!$$$$!!!!!!!!$$ ",
-" !###############! $$!!!!!!$$$$!!!!!!!!$$ ",
-" !################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !#################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !##################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !###################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !####################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !#####################! $$!!!!!!$$ $$!!!!!!!!$$ ",
-" !######################! $$!!!!!!$$ $$!!!!!!$$ ",
-" !#######################! $$!!!!!!$$ $$!!!!!!$$ ",
-" !########################!$$$$$$$$$$ $$!!!!!!$$ ",
-" !#########################!$$$$$$$$$ $$!!!!!!$$ ",
-" !##########################! $$!!!!!!$$ ",
-" !###########################! $$!!!!!!$$ ",
-" !############################! $$!!!!!!$$ ",
-" !################!!!!!!!!!!!!! $$!!!!!!$$ ",
-" !################! $$!!!!!!$$ ",
-" !#################! $$!!!!!!$$ ",
-" !#################! $$!!!!!!$$ ",
-" !########!!########! $$!!!!!!$$ ",
-" !#######! !#######! $$$$$$ ",
-" !######! !########! $$$$$$ ",
-" !#####! !#######! $$!!!!!!$$ ",
-" !####! !########! $$!!!!!!$$ ",
-" !###! !#######! $$!!!!!!!!!!$$ ",
-" !##! !########! $$!!!!!!!!!!$$ ",
-" !#! !#######! $$!!!!!!$$ ",
-" !! !########! $$!!!!!!$$ ",
-" !#######! $$$$$$ ",
-" !########! $$$$$$ ",
-" !#######!! ",
-" !########! ",
-" !#######! ",
-" !#######! ",
-" !######! ",
-" !!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/ibeam.xpm b/cursors/1_64/ibeam.xpm
deleted file mode 100644
index 93de22c..0000000
--- a/cursors/1_64/ibeam.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Ibeam[] = {
-"64 64 3 1 29 32",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!!!!!!!!!!!!!!!!!! ",
-" !##################! ",
-" !##################! ",
-" !!!!!!!!!##!!!!!!!!! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !##! ",
-" !!!!!!!!!##!!!!!!!!! ",
-" !##################! ",
-" !##################! ",
-" !!!!!!!!!!!!!!!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/move.xpm b/cursors/1_64/move.xpm
deleted file mode 100644
index f898623..0000000
--- a/cursors/1_64/move.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Move[] = {
-"64 64 3 1 31 31",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" !! ",
-" !! ",
-" !##! ",
-" !##! ",
-" !####! ",
-" !####! ",
-" !######! ",
-" !######! ",
-" !########! ",
-" !########! ",
-" !##########! ",
-" !##########! ",
-" !############! ",
-" !############! ",
-" !##############! ",
-" !##############! ",
-" !################! ",
-" !!!!!!!####!!!!!!! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !! !####! !! ",
-" !!#! !####! !#!! ",
-" !!###! !####! !###!! ",
-" !!#####! !####! !#####!! ",
-" !!#######! !####! !#######!! ",
-" !!#########! !####! !#########!! ",
-" !!###########!!!!!!!!!!!!####!!!!!!!!!!!!###########!! ",
-" !!######################################################!! ",
-" !!##########################################################!! ",
-" !!##########################################################!! ",
-" !!######################################################!! ",
-" !!###########!!!!!!!!!!!!####!!!!!!!!!!!!###########!! ",
-" !!#########! !####! !#########!! ",
-" !!#######! !####! !#######!! ",
-" !!#####! !####! !#####!! ",
-" !!###! !####! !###!! ",
-" !!#! !####! !#!! ",
-" !! !####! !! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !!!!!!!####!!!!!!! ",
-" !################! ",
-" !###############! ",
-" !##############! ",
-" !#############! ",
-" !############! ",
-" !###########! ",
-" !##########! ",
-" !#########! ",
-" !########! ",
-" !#######! ",
-" !######! ",
-" !#####! ",
-" !####! ",
-" !###! ",
-" !##! ",
-" !! ",
-" !! ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/nesw.xpm b/cursors/1_64/nesw.xpm
deleted file mode 100644
index 9df33a5..0000000
--- a/cursors/1_64/nesw.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* NESW[] = {
-"64 64 3 1 30 33",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!! ",
-" !!##! ",
-" !!###! ",
-" !!#####! ",
-" !!!######! ",
-" !!#########! ",
-" !!##########! ",
-" !!############! ",
-" !!##############! ",
-" !!###############! ",
-" !!#################! ",
-" !################! ",
-" !###############! ",
-" !#############! ",
-" !############! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !#############! ",
-" !#######!!#####! ",
-" !#######! !###! ",
-" !#######! !##! ",
-" !#######! !! ",
-" !#######! ! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" ! !#######! ",
-" !! !#######! ",
-" !##! !#######! ",
-" !###! !#######! ",
-" !#####!!#######! ",
-" !#############! ",
-" !#############! ",
-" !############! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !###############! ",
-" !################! ",
-" !#################!! ",
-" !###############!! ",
-" !##############!! ",
-" !###########!!! ",
-" !#########!! ",
-" !########!! ",
-" !######!! ",
-" !####!!! ",
-" !##!! ",
-" !#!! ",
-" !! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/no.xpm b/cursors/1_64/no.xpm
deleted file mode 100644
index 3a5a9d6..0000000
--- a/cursors/1_64/no.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* No[] = {
-"64 64 3 1 30 31",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" !!!!!!!!!!! ",
-" !!!###########!!! ",
-" !!!#################!!!! ",
-" !!########################!! ",
-" !!############################!! ",
-" !################################! ",
-" !##################################! ",
-" !####################################! ",
-" !######################################! ",
-" !##############!!!!!!!!!!!###############! ",
-" !##############! !!##############! ",
-" !#############!! !!!############! ",
-" !############!! !############! ",
-" !############! !##############! ",
-" !############! !###############! ",
-" !###########! !#################! ",
-" !###########! !##################! ",
-" !##########! !####################! ",
-" !##########! !#####################! ",
-" !##########! !#############!!#######! ",
-" !#########! !#############! !########! ",
-" !#########! !#############! !#######! ",
-" !#########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !#########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !######! ",
-" !#######! !#############! !######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !#########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########! !#############! !#######! ",
-" !########!#############! !#######! ",
-" !#####################! !########! ",
-" !###################! !########! ",
-" !##################! !#########! ",
-" !################! !#########! ",
-" !###############! !##########! ",
-" !#############! !##########! ",
-" !###########! !!##########! ",
-" !############! !###########! ",
-" !############!!! !!!###########! ",
-" !##############!!!!!!!!!!!#############! ",
-" !####################################! ",
-" !!#################################! ",
-" !##############################!! ",
-" !!!########################!!! ",
-" !!#####################! ",
-" !!!!##############!!! ",
-" !!!########!!! ",
-" !!!!!!!! ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/normal.xpm b/cursors/1_64/normal.xpm
deleted file mode 100644
index ce08564..0000000
--- a/cursors/1_64/normal.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Normal[] = {
-"64 64 3 1 16 6",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !##############! ",
-" !###############! ",
-" !################! ",
-" !#################! ",
-" !##################! ",
-" !###################! ",
-" !####################! ",
-" !#####################! ",
-" !######################! ",
-" !#######################! ",
-" !########################! ",
-" !#########################! ",
-" !##########################! ",
-" !###########################! ",
-" !############################! ",
-" !################!!!!!!!!!!!!! ",
-" !################! ",
-" !################!! ",
-" !#################! ",
-" !########!!#######!! ",
-" !#######! !#######! ",
-" !######! !#######!! ",
-" !#####! !#######! ",
-" !####! !#######!! ",
-" !###! !#######! ",
-" !##! !#######!! ",
-" !#! !#######! ",
-" !! !#######!! ",
-" ! !#######! ",
-" !#######!! ",
-" !#######! ",
-" !#######!! ",
-" !#######! ",
-" !#######! ",
-" !######! ",
-" !!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/ns.xpm b/cursors/1_64/ns.xpm
deleted file mode 100644
index ba463a4..0000000
--- a/cursors/1_64/ns.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* NS[] = {
-"64 64 3 1 32 31",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" !! ",
-" !! ",
-" !##! ",
-" !##! ",
-" !####! ",
-" !####! ",
-" !######! ",
-" !######! ",
-" !########! ",
-" !########! ",
-" !########! ",
-" !##########! ",
-" !##########! ",
-" !############! ",
-" !############! ",
-" !##############! ",
-" !##############! ",
-" !################! ",
-" !################! ",
-" !!!!!!!####!!!!!!! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !!!!!!!####!!!!!!! ",
-" !################! ",
-" !################! ",
-" !##############! ",
-" !##############! ",
-" !############! ",
-" !############! ",
-" !##########! ",
-" !##########! ",
-" !########! ",
-" !########! ",
-" !########! ",
-" !######! ",
-" !######! ",
-" !####! ",
-" !####! ",
-" !##! ",
-" !##! ",
-" !! ",
-" !! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/nwse.xpm b/cursors/1_64/nwse.xpm
deleted file mode 100644
index 2296b64..0000000
--- a/cursors/1_64/nwse.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* NWSE[] = {
-"64 64 3 1 33 34",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#!! ",
-" !###!! ",
-" !####!!! ",
-" !#######!! ",
-" !########!! ",
-" !##########!! ",
-" !###########!!! ",
-" !##############!! ",
-" !###############!! ",
-" !#################!! ",
-" !################!! ",
-" !###############! ",
-" !##############! ",
-" !############! ",
-" !############! ",
-" !############! ",
-" !#############! ",
-" !#############! ",
-" !#####!!#######! ",
-" !###! !#######! ",
-" !##! !#######! ",
-" !! !#######! ",
-" ! !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ",
-" !#######! ! ",
-" !#######! !! ",
-" !#######! !##! ",
-" !#######! !###! ",
-" !#######!!#####! ",
-" !#############! ",
-" !#############! ",
-" !############! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !###############! ",
-" !################! ",
-" !!#################! ",
-" !!###############! ",
-" !!##############! ",
-" !!############! ",
-" !!##########! ",
-" !!!########! ",
-" !!######! ",
-" !!#####! ",
-" !!###! ",
-" !!##! ",
-" !!! ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/up.xpm b/cursors/1_64/up.xpm
deleted file mode 100644
index 356422f..0000000
--- a/cursors/1_64/up.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Up[] = {
-"64 64 3 1 30 4",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !! ",
-" !##! ",
-" !##! ",
-" !####! ",
-" !####! ",
-" !######! ",
-" !######! ",
-" !########! ",
-" !########! ",
-" !##########! ",
-" !##########! ",
-" !############! ",
-" !############! ",
-" !##############! ",
-" !##############! ",
-" !################! ",
-" !################! ",
-" !##################! ",
-" !##################! ",
-" !####################! ",
-" !####################! ",
-" !######################! ",
-" !######################! ",
-" !########################! ",
-" !########################! ",
-" !##########################! ",
-" !##########################! ",
-" !############################! ",
-" !!!!!!!!!!!!!####!!!!!!!!!!!!! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !####! ",
-" !!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/1_64/we.xpm b/cursors/1_64/we.xpm
deleted file mode 100644
index 2dafd7f..0000000
--- a/cursors/1_64/we.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* WE[] = {
-"64 64 3 1 31 32",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !!!! !!!! ",
-" !!###! !###!! ",
-" !!#####! !#####!! ",
-" !!#######! !#######!! ",
-" !!#########! !#########!! ",
-" !!###########! !###########!! ",
-" !!#############!!!!!!!!!!!!!!!!!!!!!!#############!! ",
-" !!####################################################!! ",
-" !!########################################################!! ",
-" !!########################################################!! ",
-" !!####################################################!! ",
-" !!#############!!!!!!!!!!!!!!!!!!!!!!#############!! ",
-" !!###########! !###########!! ",
-" !!#########! !#########!! ",
-" !!#######! !#######!! ",
-" !!#####! !#####!! ",
-" !!###! !###!! ",
-" !!!! !!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/cursors/Makefile.am b/cursors/Makefile.am
deleted file mode 100644
index c0f9197..0000000
--- a/cursors/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-# Process this file with automake to create Makefile.in.
-
-SUBDIRS = 1_32
-
-cursordir = $(datadir)/gnome-mag
-cursor_DATA = default-cursor.xpm
-
-EXTRA_DIST = $(cursor_DATA)
diff --git a/cursors/default-cursor.xpm b/cursors/default-cursor.xpm
deleted file mode 100644
index ce08564..0000000
--- a/cursors/default-cursor.xpm
+++ /dev/null
@@ -1,70 +0,0 @@
-/* XPM */
-static char* Normal[] = {
-"64 64 3 1 16 6",
-" c None",
-"! c #101010",
-"# c #000000",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" !! ",
-" !#! ",
-" !##! ",
-" !###! ",
-" !####! ",
-" !#####! ",
-" !######! ",
-" !#######! ",
-" !########! ",
-" !#########! ",
-" !##########! ",
-" !###########! ",
-" !############! ",
-" !#############! ",
-" !##############! ",
-" !###############! ",
-" !################! ",
-" !#################! ",
-" !##################! ",
-" !###################! ",
-" !####################! ",
-" !#####################! ",
-" !######################! ",
-" !#######################! ",
-" !########################! ",
-" !#########################! ",
-" !##########################! ",
-" !###########################! ",
-" !############################! ",
-" !################!!!!!!!!!!!!! ",
-" !################! ",
-" !################!! ",
-" !#################! ",
-" !########!!#######!! ",
-" !#######! !#######! ",
-" !######! !#######!! ",
-" !#####! !#######! ",
-" !####! !#######!! ",
-" !###! !#######! ",
-" !##! !#######!! ",
-" !#! !#######! ",
-" !! !#######!! ",
-" ! !#######! ",
-" !#######!! ",
-" !#######! ",
-" !#######!! ",
-" !#######! ",
-" !#######! ",
-" !######! ",
-" !!!!!!! ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" ",
-" "}; \ No newline at end of file
diff --git a/docs/Makefile.am b/docs/Makefile.am
deleted file mode 100644
index 0f07384..0000000
--- a/docs/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-# Process this file with automake to create Makefile.in.
-
-SUBDIRS = reference man
-
-doc-clean-recursive:
- list='$(SUBDIRS)'; for subdir in $$list; do \
- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) doc-clean); \
- done
-
-doc-clean: doc-clean-recursive
-
-doc-rebuild: doc-clean all
-
-.PHONY: doc-clean doc-clean-recursive doc-rebuild
diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am
deleted file mode 100644
index 616e433..0000000
--- a/docs/man/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-
-man_MANS = magnifier.1
-
-EXTRA_DIST = $(man_MANS)
-
-MAN_PAGE = magnifier.1.man
-
-all: all-am
-
-magnifier.1:
- cp $(MAN_PAGE) $@
-
-magnifier.html:
- man2html $(MAN_PAGE) > $@
-
-CLEANFILES = $(mag_MANS)
-
diff --git a/docs/man/magnifier.1.man b/docs/man/magnifier.1.man
deleted file mode 100644
index e5774df..0000000
--- a/docs/man/magnifier.1.man
+++ /dev/null
@@ -1,153 +0,0 @@
-./"
-./" Copyright (C) 2006 IBM Corp.
-./"
-./" GNU Free Documentation License (GFDL)
-./" http://opensource.org/
-./"
-./" GNOME Magnifier
-./"
-./" file: magnifier.1.man
-./"
-./" George Kraft <gk4@austin.ibm.com>
-./"
-.TH "magnifier" 1
-.SH NAME
-magnifier \- GNOME Magnifier (gnome-mag)
-.SH SYNOPSIS
-.B magnifier
-[-vhmif?] [-t|--target-display STRING]
-[-s|--source-display STRING] [--cursor-set=STRING] [--cursor-size=INT]
-[--cursor-scale-factor=FLOAT] [--cursor-color=LONG] [-v|--vertical]
-[-h|--horizontal] [-m|--mouse-follow] [-r|--refresh-time INT]
-[--mouse-latency=INT] [-z|--zoom-factor FLOAT] [-i|--invert-image]
-[--no-initial-region] [--timing-iterations=INT] [--timing-output]
-[--timing-pan-rate=INT] [--timing-delta-x=INT] [--timing-delta-y=INT]
-[--smoothing-type=STRING] [-f|--fullscreen] [--smooth-scrolling]
-[-b|--border-size INT] [-c|--border-color LONG] [--use-test-pattern]
-[--override-redirect] [--ignore-damage]
-[-?|--help] [--usage]
-.SH AVAILABILITY
-The GNOME magnifier (gnome-mag) provides a command-line interface for
-standalone use, although its primary goal is to provide a set of
-magnification services for use by other client applications and assistive
-technologies, like Gnopernicus, Orca or LSR.
-.P
-This magnifier is compatible with operating systems using X Window System,
-although the magnifier will have a better performance and functionality when
-the Damage and Fixes extensions are present.
-.SH DESCRIPTION
-A desktop screen magnifier. If present, the Region Of Interest (ROI)
-for the magnifier can be driven by a screen reader via the
-Assistive Technology Service Provider Interface (ATSPI); otherwise,
-the magnifier will be centered to the pointer position.
-.SH OPTIONS
-.TP
-.B \-t, \--target-display=STRING
-specify display on which to show magnified view
-.TP
-.B \-s, \--source-display=STRING
-specify display to magnify
-.TP
-.B \--cursor-set=STRING
-cursor set to use in target display
-.TP
-.B \--cursor-size=INT
-cursor size to use (overrides cursor-scale-factor)
-.TP
-.B \--cursor-scale-factor=FLOAT
-cursor scale factor
-.TP
-.B \--cursor-color=LONG
-cursor color (applied to 'black' pixels
-.TP
-.B \-v, \-vertical
-split screen vertically (if target display = source display)
-.TP
-.B \-h, \--horizontal
-split screen horizontally (if target display = source display)
-.TP
-.B \-m, \--mouse-follow
-track mouse movements
-.TP
-.B \-r, \--refresh-time=INT
-minimum refresh time for idle, in ms
-.TP
-.B \--mouse-latency=INT
-maximum mouse latency time, in ms
-.TP
-.B \-z, \--zoom-factor=FLOAT
-zoom (scale) factor used to magnify source display
-.TP
-.B \-i, --invert-image
-invert the image colormap
-.TP
-.B \--no-initial-region
-don't create an initial zoom region
-.TP
-.B \--timing-iterations=INT
-iterations to run timing benchmark test (0=continuous)
-.TP
-.B \--timing-output
-display performance ouput
-.TP
-.B \--timing-pan-rate=INT
-timing pan rate in lines per frame
-.TP
-.B \--timing-delta-x=INT
-pixels to pan in x-dimension each frame in timing update test
-.TP
-.B \--timing-delta-y=INT
-pixels to pan in y-dimension each frame in timing update test
-.TP
-.B \--smoothing-type=STRING
-image smoothing algorithm to apply (bilinear-interpolation | none)
-.TP
-.B \-f, \\--fullscreen
-fullscreen magnification, covers entire target display
-[REQUIRES \--source-display and --target-display]
-.TP
-.B \--smooth-scrolling
-use smooth scrolling
-.TP
-.B \-b, \--border-size=INT
-width of border
-.TP
-.B \-c, \--border-color=LONG
-border color specified as (A)RGB 23-bit value, Alpha-MSB
-.TP
-.B \--use-test-pattern
-use test pattern as source
-.TP
-.B \--override-redirect
-make the magnifier window totally unmanaged by the window manager
-.TP
-.B \--ignore-damage
-ignore the X server DAMAGE extension, if present
-.TP
-.B \-?, \--help
-command line help
-.TP
-.B \--usage
-command line synopsis
-.SH FILES
-.TP
-.B /usr/share/gnome-mag/1_32/*.xpm
-.TP
-.B /usr/lib/bonobo/servers/GNOME_Magnifier.server
-.TP
-.B /usr/lib/libgnome-mag.so.2
-.SH BUGS
-See
-.I http://bugs.gnome.org
-.SH AUTHORS
-.TP
-Erwann Chenede <erwann.chenede@sun.com>
-.TP
-Bill Haneman <bill.haneman@sun.com>
-.SH LICENSE
-Licensed under the GNU Lesser Public License (LGPL) v2.1
-.SH "SEE ALSO"
-.I gnopernicus(1),
-.I orca(1),
-.I lsr(1),
-Bonobo, Assistive Technology Service Provider Interface (AT-SPI)
diff --git a/docs/reference/Doxyfile b/docs/reference/Doxyfile
deleted file mode 100644
index 7a1b40c..0000000
--- a/docs/reference/Doxyfile
+++ /dev/null
@@ -1,1212 +0,0 @@
-# Doxyfile 1.4.0
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = gnome-mag
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = YES
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
-# only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = NO
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation.
-
-SHOW_DIRECTORIES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the progam writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE = doxygen-warnings.log
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = ../../idl ../../magnifier
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS = *.c *.h *.idl
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 1
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = NO
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
deleted file mode 100644
index cb9c5f9..0000000
--- a/docs/reference/Makefile.am
+++ /dev/null
@@ -1,58 +0,0 @@
-# Process this file with automake to create Makefile.in.
-
-doxygen_configfile = Doxyfile
-
-EXTRA_DIST = README Doxyfile html
-
-html/index.html:
- -rm -rf html
- -doxygen $(doxygen_configfile) \
- 2> doxygen-warnings.txt | tee doxygen-output.txt && cat doxygen-warnings.txt
-
-gnome-mag-reference-html.tar.gz: html/index.html
- tar cf - html | gzip -c --best >$@
-
-gnome-mag-reference-html.tar.bz2: html/index.html
- tar cf - html | bzip2 -c >$@
-
-doc-clean: html-clean
- -rm -rf xml
- -rm -f gnome-mag_doxygen_tags
- -rm -f gnome-mag-reference-html.tar.gz gnome-mag-reference-html.tar.bz2
-
-html-clean:
- -rm -rf html
-
-referencetopdir = $(datadir)/doc/gnome-mag-$(VERSION)/reference
-referencedir = $(referencetopdir)/html
-
-install-reference: html/index.html
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(referencedir)
- @-dir='$(<D)'; for p in $$dir/*.html $$dir/*.css $$dir/*.png; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(referencedir)/$$f"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(referencedir)/$$f; \
- done
-
-uninstall-reference: html/index.html
- @$(NORMAL_UNINSTALL)
- @-dir='$(<D)'; for p in $$dir/*.html $$dir/*.css $$dir/*.png; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(referencedir)/$$f"; \
- rm -f $(DESTDIR)$(referencedir)/$$f; \
- done
-
-all-local: html/index.html
-
-install-data-local: install-reference
-
-uninstall-local: uninstall-reference
-
-maintainer-clean-local: doc-clean
-
-.PHONY: doc-clean install-reference uninstall-reference html-clean
-
-# Direct all the doxygen console output to a text file, so we can read it later:
-# In doxywizard, disable EXTRACT_ALL to get warnings about undocumented methods.
-doxygen-warnings: html-clean html/index.html
diff --git a/docs/reference/README b/docs/reference/README
deleted file mode 100644
index e82db63..0000000
--- a/docs/reference/README
+++ /dev/null
@@ -1,5 +0,0 @@
-You need to have doxygen installed.
-
-make targets:
-
-all: builds the reference documentation \ No newline at end of file
diff --git a/gnome-mag-1.0-uninstalled.pc.in b/gnome-mag-1.0-uninstalled.pc.in
deleted file mode 100644
index 51183e0..0000000
--- a/gnome-mag-1.0-uninstalled.pc.in
+++ /dev/null
@@ -1,8 +0,0 @@
-idldir=${pc_top_builddir}/${pcfiledir}/idl/gnome-mag-1.0
-
-Name: gnome-mag
-Description: Gnome Screen Magnifier (Uninstalled)
-Requires: libbonobo-2.0 gtk+-2.0
-Version: @VERSION@
-Libs: ${pc_top_builddir}/${pcfiledir}/magnifier/libgnome-mag.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}
diff --git a/gnome-mag-1.0.pc.in b/gnome-mag-1.0.pc.in
deleted file mode 100644
index ad1bc00..0000000
--- a/gnome-mag-1.0.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-idldir=@datadir@/idl/gnome-mag-1.0
-
-Name: gnome-mag
-Description: Gnome Screen Magnifier
-Requires: libbonobo-2.0 gtk+-2.0
-Version: @VERSION@
-Libs: -L${libdir} -lgnome-mag
-Cflags: -I${includedir}/gnome-mag-1.0
diff --git a/idl/.cvsignore b/idl/.cvsignore
deleted file mode 100644
index d436efd..0000000
--- a/idl/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile.in
-Makefile
-
diff --git a/idl/GNOME_Magnifier.idl b/idl/GNOME_Magnifier.idl
deleted file mode 100644
index bfcf385..0000000
--- a/idl/GNOME_Magnifier.idl
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GNOME_MAGNIFIER_IDL
-#define _GNOME_MAGNIFIER_IDL
-
-#include <Bonobo_Unknown.idl>
-#include <Bonobo_Property.idl>
-
-module GNOME {
- module Magnifier {
-
- struct Point {
- long x, y;
- };
-
- struct RectBounds {
- long x1, y1, x2, y2;
- };
-
- interface ZoomRegion : Bonobo::Unknown {
-
- enum AlignPolicy {
- ALIGN_CENTER,
- ALIGN_MIN,
- ALIGN_MAX
- };
-
- enum ScrollingPolicy {
- SCROLL_FASTEST,
- SCROLL_FAST,
- SCROLL_NORMAL,
- SCROLL_SMOOTH,
- SCROLL_SMOOTHEST
- };
-
- enum ColorBlindFilter {
- COLORBLIND_FILTER_T_NO_FILTER,
- COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED,
- COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN,
- COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE,
- COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED,
- COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN,
- COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE,
- COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE,
- COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE,
- COLORBLIND_FILTER_T_SELECTIVE_SATURATE,
- COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE,
- COLORBLIND_FILTER_T_MONOCHRONE_OTHERS
- };
-
- /**
- * Set the current x and y magnification ratio.
- * (Convenience method for setting mag-factor-x and mag-factor-y properties).
- * Note that if the zoom region's target hasn't yet been realized or mapped to the
- * display, we will not be able to detect failure, so a return of %TRUE must
- * be taken on advisement if the operation is performed on a newly-created
- * zoom region.
- * @param magX the magnification factor in the x direction for the specified region.
- * @param magY the magnification factor in the x direction for the specified region.
- * @returns %TRUE if operation succeeded, %FALSE if the requested mag factor cannot be set.
- **/
- boolean setMagFactor (in float magX, in float magY);
-
- /**
- * Get the current x and y magnification ratios.
- * (Convenience method for getting mag-factor-x and mag-factor-y properties).
- * @param magX: the magnification factor in the x direction for the specified region.
- * @param magY: the magnification factor in the x direction for the specified region.
- **/
- void getMagFactor (out float magX, out float magY);
-
- /**
- * Gets the current property settings for this ZoomRegion.
- * Properties managed by the ZoomRegion include "smoothing-type", "contrast",
- * "inverse-video", "border-size", "border-color", "x-alignment", "y-alignment",
- * "is-managed", "viewport", "mag-factor-x", "mag-factor-y".
- * @returns a Bonobo::PropertyBag containing the ZoomRegion's properties.
- **/
- Bonobo::PropertyBag getProperties ();
-
- /**
- * Set the region of interest for the magnifier.
- * @param bounds: the ROI bounding box
- **/
- oneway void setROI (in RectBounds bounds);
-
- /**
- * Mark the zoom region or a sub-region 'dirty' and in need of updating.
- * @note This region will be clipped to the area currently visible in
- * the target region.
- * @param dirtyRegion: the bounding box of the dirty region.
- **/
- void markDirty (in RectBounds dirtyRegion);
-
- /**
- * Query a specific zoom region for its ROI.
- * @returns the RectBounds bounding box of the zoom ROI.
- **/
- RectBounds getROI ();
-
- /**
- * Move and resize the specified zoom region on the target display.
- * (Convenience method for setting "viewport" property).
- * @param bounds: the bounding box, in target display coordinates, of the ZoomRegion's
- * display viewport.
- **/
- void moveResize (in RectBounds bounds);
-
- /**
- * Remove the specified zoom region from the magnifier and destroy it.
- **/
- void dispose ();
-
- /**
- * Set the position where the mouse pointer is to be drawn
- * in this zoom-region, in screen coordinates.
- * @param mouse_x: the x screen coordinate of the pointer hotspot
- * @param mouse_y: the y screen coordinate of the pointer hotspot
- **/
- oneway void setPointerPos (in long mouse_x, in long mouse_y);
-
- /**
- * Set the zoom region image contrast.
- * Set the contrast applied to each image component (red, green and blue).
- * The input for each component must be in the range -1 and 1, otherwise
- * they will be clamped to this interval. The value -1 means reduce 100%
- * the contrast, resulting in a gray image. The value 1 means increase 100%
- * the contrast, resulting in the R, G and B values being black or white.
- * The value 0 means no change in contrast.
- * @param R the amount of red in the contrasted image.
- * @param G the amount of green in the contrasted image.
- * @param B the amount of green in the contrasted image.
- **/
- void setContrast (in float R, in float G, in float B);
-
- /**
- * Get the zoom region image contrast.
- * Get the contrast applied to each image component (red, green and blue).
- * @param R the amount of red in the contrasted image.
- * @param G the amount of green in the contrasted image.
- * @param B the amount of green in the contrasted image.
- **/
- void getContrast (out float R, out float G, out float B);
-
- /**
- * Set the zoom region image brightness.
- * Set the brightness applied to each image component (reg, green and
- * blue). The input for each component must be in the range between -1 and
- * 1, if the are bigger or lower then this range, the value will be clamped
- * to the interval. The value -1 means reduce 100% the brightness,
- * resulting in a black image. The value 1 means increase 100% the
- * brightness, resulting in a white image.
- * @param R the brightness applied to the red component.
- * @param G the brightness applied to the green component.
- * @param B the brightness applied to the blue component.
- **/
- void setBrightness (in float R, in float G, in float B);
-
- /**
- * Get the zoom region image brightness.
- * Get the brightness applied to each image component (red, green and
- * blue).
- * @param R the brightness applied to the red component.
- * @param G the brightness applied to the green component.
- * @param B the brightness applied to the blue component.
- **/
- void getBrightness (out float R, out float G, out float B);
-
- };
-
- typedef sequence<ZoomRegion> ZoomRegionList;
-
- interface Magnifier : Bonobo::Unknown {
-
- /**
- * a \c string specifying the name of the display and screen
- * (on X Windows systems, as used by XOpenDisplay) on which the "source"
- * pixels (e.g. unmagnified image) are located.
- **/
- attribute string SourceDisplay;
-
- /**
- * a \c string specifying the name of the display and screen
- * onto which the magnified image is to be placed.
- **/
- attribute string TargetDisplay;
-
- /**
- * Get the current property settings for this Magnifier.
- * Properties managed by the magnifier include "cursor-set", "cursor-size",
- * "cursor-mag-factor", "target-display-bounds", "source-display-size".
- * @returns a Bonobo::PropertyBag containing the Magnifier's properties.
- **/
- Bonobo::PropertyBag getProperties ();
-
- /**
- * Create a new zoom region for the magnifier.
- * The new region is initially 'unmanaged'; that is, it is not associated with
- * a particular sub-region of the "source" display.
- * @param zx: the scale factor in the x direction for the new zoom region
- * @param zy: the scale factor in the y direction for the new zoom region
- * @param ROI: the initial ROI of the zoom region. RectBounds of negative width/height
- * indicates that the zoom region has no initial ROI.
- * @param viewport: the initial bounds of the ZoomRegion's viewport, in
- * the target display coordinate system.
- * @returns the newly created ZoomRegion.
- **/
- ZoomRegion createZoomRegion (in float zx, in float zy,
- in RectBounds ROI,
- in RectBounds viewport);
-
- /**
- * @returns a ZoomRegionList including all currently defined ZoomRegions
- * for this Magnifier instance.
- **/
- ZoomRegionList getZoomRegions ();
-
- /**
- * Add a new ZoomRegion to the list of currently defined ZoomRegions
- * for this Magnifier instance.
- * @returns \c True if successful, \c False if the ZoomRegion cannot be added.
- **/
- boolean addZoomRegion (in ZoomRegion region);
-
- /**
- * Clears and destroys all currently defined zoom regions.
- **/
- void clearAllZoomRegions ();
-
- /**
- * Unmap the current magnifier from the display, destroy its resources, and exit.
- **/
- void dispose ();
-
- };
- };
-};
-
-#endif
-
diff --git a/idl/Makefile.am b/idl/Makefile.am
deleted file mode 100644
index 9ef2c90..0000000
--- a/idl/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-idldir = $(datadir)/idl/gnome-mag-1.0
-idl_DATA = GNOME_Magnifier.idl
-
-EXTRA_DIST=$(idl_DATA)
-
-CLEANFILES = \ No newline at end of file
diff --git a/magnifier/.cvsignore b/magnifier/.cvsignore
deleted file mode 100644
index ce7d507..0000000
--- a/magnifier/.cvsignore
+++ /dev/null
@@ -1,15 +0,0 @@
-.deps
-.libs
-GNOME_Magnifier.server
-GNOME_Magnifier.server.in
-Makefile.in
-Makefile
-*.o
-GNOME_Magnifier.h
-GNOME_Magnifier-common.c
-GNOME_Magnifier-stubs.c
-GNOME_Magnifier-skels.c
-magnifier
-*.lo
-*.la
-
diff --git a/magnifier/GNOME_Magnifier.server.in.in b/magnifier/GNOME_Magnifier.server.in.in
deleted file mode 100644
index 8ed65e8..0000000
--- a/magnifier/GNOME_Magnifier.server.in.in
+++ /dev/null
@@ -1,12 +0,0 @@
-<oaf_info>
- <oaf_server iid="OAFIID:GNOME_Magnifier_Magnifier:0.9"
- type="exe" location="@BINDIR@/magnifier --ignore-composite">
- <oaf_attribute name="repo_ids" type="stringv">
- <item value="IDL:Bonobo/Unknown:1.0"/>
- <item value="IDL:GNOME/Magnifier/Magnifier:0.9"/>
- <item value="IDL:Accessibility/LoginHelper:1.0"/>
- </oaf_attribute>
- <oaf_attribute name="name" type="string" _value="Magnifier"/>
- <oaf_attribute name="description" type="string" _value="Simple Screen Magnification Service"/>
- </oaf_server>
-</oaf_info>
diff --git a/magnifier/Makefile.am b/magnifier/Makefile.am
deleted file mode 100644
index 555dda0..0000000
--- a/magnifier/Makefile.am
+++ /dev/null
@@ -1,98 +0,0 @@
-Cursorsdir = $(datadir)/gnome-mag
-
-lib_LTLIBRARIES = libgnome-mag.la
-
-bin_PROGRAMS = magnifier
-
-libgnome_mag_la_SOURCES = \
- GNOME_Magnifier-common.c \
- GNOME_Magnifier-stubs.c
-
-libgnome_mag_la_DEPENDENCIES = \
- GNOME_Magnifier.h
-
-libgnome_mag_la_LDFLAGS = \
- $(LT_VERSION_INFO) -no-undefined
-
-libgnome_mag_la_LIBADD = $(LIBDEPS_LIBS)
-
-libgnomemagincludedir=$(includedir)/gnome-mag-1.0/magnifier
-libgnomemaginclude_HEADERS=GNOME_Magnifier.h
-
-AM_CFLAGS = $(CFLAGS) $(DEPS_CFLAGS) $(X_FLAGS)
-
-magnifier_SOURCES = magnifier-main.c \
- magnifier.c \
- magnifier-private.h \
- zoom-region.c \
- zoom-region.h \
- zoom-region-private.h \
- magnifier.h \
- magnifier-private.h \
- gmag-events.c \
- gmag-events.h \
- GNOME_Magnifier.h \
- GNOME_Magnifier-skels.c \
- GNOME_Magnifier-common.c
-magnifier_CFLAGS = $(AM_CFLAGS)
-
-INCLUDES = \
- $(DEPS_CFLAGS) \
- -I$(top_srcdir) \
- -I$(top_builddir) \
- -I$(top_srcdir)/idl \
- $(GNOME_MAG_DEBUG_CFLAGS) \
- -DCURSORSDIR=\""$(Cursorsdir)"\"
-
-IDL_OUT = GNOME_Magnifier.h GNOME_Magnifier-skels.c GNOME_Magnifier-stubs.c GNOME_Magnifier-common.c GNOME_Magnifier-imodule.c
-
-IDL = $(top_srcdir)/idl/GNOME_Magnifier.idl
-
-BUILT_SOURCES = $(IDL_OUT)
-CLEANFILES = $(IDL_OUT)
-DISTCLEANFILES = $(IDL_OUT)
-
-magnifier.h : GNOME_Magnifier.h
-
-IDLFLAGS = -I$(BONOBO_ACTIVATION_IDL_DIR) \
- -I$(LIBBONOBO_IDL_DIR) \
- -I$(top_srcdir)/idl \
- --add-imodule
-
-orbittypelibdir = $(libdir)/orbit-2.0
-orbittypelib_LTLIBRARIES = GNOME_Magnifier_module.la
-GNOME_Magnifier_module_la_LDFLAGS = \
- -export-dynamic -module -avoid-version -no-undefined
-
-GNOME_Magnifier_module_la_LIBADD = $(ORBIT_LIBS)
-
-GNOME_Magnifier_module_la_SOURCES = \
- GNOME_Magnifier-imodule.c
-
-# The X_LIBS must be searched first, since the DEPS_LIBS are setted by a call
-# to pkg-config and can contain a path to X libraries, other way the
-# functionalities finded during the test that setted X_LIBS can not be
-# presented in the final link.
-LDADD = $(X_LIBS) $(DEPS_LIBS) libgnome-mag.la $(POPT_LIBS) $(COLORBLIND_LIBS)
-
-serverinfodir= $(libdir)/bonobo/servers
-$(server_in_files): $(server_in_files).in
- sed -e "s|\@BINDIR\@|$(bindir)|" $< > $@
-server_in_files = GNOME_Magnifier.server.in
-serverinfo_DATA = $(server_in_files:.server.in=.server)
-
-@INTLTOOL_SERVER_RULE@
-
-EXTRA_DIST = $(server_in_files).in
-
-$(IDL_OUT) : $(IDL) $(ORBIT_IDL)
- $(ORBIT_IDL) $(IDLFLAGS) $(IDL)
-
-DONT_DIST_SOURCE = $(IDL_OUT)
-
-CLEANFILES += $(server_in_files) $(serverinfo_DATA)
-
-dist-hook:
- for file in $(DONT_DIST_SOURCE) ; do \
- rm -f $(distdir)/$$file ; \
- done
diff --git a/magnifier/crosshair-cursor.xpm b/magnifier/crosshair-cursor.xpm
deleted file mode 100644
index 0efcd91..0000000
--- a/magnifier/crosshair-cursor.xpm
+++ /dev/null
@@ -1,50 +0,0 @@
-/* XPM */
-static const char *_GNOME_Magnifier_crosshair_cursor[] = {
-/* width height ncolors chars_per_pixel hot_x hot_y */
-"32 32 3 1 15 15",
-/* colors */
-"` c #FFFFFF",
-"* c #000000",
-"o c none",
-/* pixels */
-"oooooooooooooo```ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo```ooooooooooooooo",
-"``````````````ooo``````````````o",
-"`************`ooo`************`o",
-"``````````````ooo``````````````o",
-"oooooooooooooo```ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo`*`ooooooooooooooo",
-"oooooooooooooo```ooooooooooooooo",
-"oooooooooooooooooooooooooooooooo",
-
-
-};
-
-
-
-
-
-
-
diff --git a/magnifier/default-cursor.xpm b/magnifier/default-cursor.xpm
deleted file mode 100644
index 579384e..0000000
--- a/magnifier/default-cursor.xpm
+++ /dev/null
@@ -1,51 +0,0 @@
-/* XPM */
-static const char *_GNOME_Magnifier_default_cursor[] = {
-/* width height ncolors chars_per_pixel */
-"32 32 3 1 0 0",
-/* colors */
-"` c #FFFFFF",
-"* c #000000",
-"o c none",
-/* pixels */
-"`ooooooooooooooooooooooooooooooo",
-"``oooooooooooooooooooooooooooooo",
-"`*`ooooooooooooooooooooooooooooo",
-"`**`oooooooooooooooooooooooooooo",
-"`***`ooooooooooooooooooooooooooo",
-"`****`oooooooooooooooooooooooooo",
-"`*****`ooooooooooooooooooooooooo",
-"`******`oooooooooooooooooooooooo",
-"`*******`ooooooooooooooooooooooo",
-"`********`oooooooooooooooooooooo",
-"`*********`ooooooooooooooooooooo",
-"`**********`oooooooooooooooooooo",
-"`***********`ooooooooooooooooooo",
-"`************`oooooooooooooooooo",
-"`*************`ooooooooooooooooo",
-"`**************`oooooooooooooooo",
-"`***************`ooooooooooooooo",
-"`****************`oooooooooooooo",
-"`*****************`ooooooooooooo",
-"`******************`oooooooooooo",
-"`*******************`ooooooooooo",
-"`********************`oooooooooo",
-"`*********************`ooooooooo",
-"`**********************`oooooooo",
-"`*******`*****```````````ooooooo",
-"`******`o`*****`oooooooooooooooo",
-"`*****`oo`*****`oooooooooooooooo",
-"`****`oooo`*****`ooooooooooooooo",
-"`***`ooooo`*****`ooooooooooooooo",
-"`**`ooooooo`*****`oooooooooooooo",
-"`*`oooooooo`****`ooooooooooooooo",
-"``oooooooooo````oooooooooooooooo",
-
-
-};
-
-
-
-
-
-
-
diff --git a/magnifier/gmag-events.c b/magnifier/gmag-events.c
deleted file mode 100644
index f11726d..0000000
--- a/magnifier/gmag-events.c
+++ /dev/null
@@ -1,1215 +0,0 @@
-/*
- * GNOME-MAG Magnification service for GNOME
- *
- * Copyright 2006 Carlos Eduardo Rodrigues Digenes
- * Copyright 2004 Sun Microsystems Inc. (damage-client.c)
- * Copyright 2001 Sun Microsystems Inc. (magnifier.c)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include "magnifier.h"
-#include "magnifier-private.h"
-#include "gmag-events.h"
-
-#include <stdlib.h>
-
-#include <X11/Xlib.h>
-#ifdef HAVE_XFIXES
-#include <X11/extensions/Xfixes.h>
-#ifdef HAVE_DAMAGE
-#include <X11/extensions/Xdamage.h>
-#ifdef HAVE_COMPOSITE
-#include <X11/extensions/Xrender.h>
-#include <X11/extensions/Xcomposite.h>
-#endif /* HAVE_COMPOSITE */
-#endif /* HAVE_DAMAGE */
-#endif /* HAVE_XFIXES */
-
-#include <glib.h>
-
-#include <gdk/gdkx.h>
-#include <gtk/gtk.h>
-
-static Display *dpy_conn = NULL;
-static guint dpy_gsource = 0;
-static Window root_window, mag_window;
-
-static gboolean use_damage, use_composite;
-
-gint fixes_event_base = 0, fixes_error_base;
-#ifdef HAVE_XFIXES
-#ifdef HAVE_DAMAGE
-static gint damage_event_base, damage_error_base;
-static Damage root_window_damage;
-static XserverRegion gmag_events_tmp_region;
-#ifdef HAVE_COMPOSITE
-static GQueue *mag_windows_list;
-static Damage off_screen_damage;
-static Picture off_screen_picture;
-static XserverRegion off_screen_region;
-static XserverRegion tmp_region, new_region, old_region, exp_region;
-#endif /* HAVE_COMPOSITE */
-#endif /* HAVE_DAMAGE */
-#endif /* HAVE_XFIXES */
-
-#define EVENTS_DEBUG
-#undef EVENTS_DEBUG
-
-#ifdef EVENTS_DEBUG
-
-#ifdef HAVE_DAMAGE
-#define DAMAGE_DEBUG
-#undef DAMAGE_DEBUG
-#endif /* HAVE_DAMAGE */
-
-#ifdef HAVE_COMPOSITE
-#define COMPOSITE_DEBUG
-#undef COMPOSITE_DEBUG
-#endif /* HAVE_COMPOSITE */
-
-#ifdef HAVE_XFIXES
-#define CURSOR_DEBUG
-#undef CURSOR_DEBUG
-#define XFIXES_DEBUG
-#undef XFIXES_DEBUG
-#endif /* HAVE_XFIXES */
-
-#endif /* EVENTS_DEBUG */
-
-#ifdef HAVE_XFIXES
-#ifdef HAVE_COMPOSITE
-
-/*
- * GCompareFunc used in g_queue_find_custom to find windows in
- * mag_windows_list.
- */
-static gint
-gmag_events_g_compare_func (GmagWinPtr pgmag_win, Window xwin)
-{
- if (pgmag_win->xwin == xwin)
- return 0;
-
- return 1;
-}
-
-/*
- * Calculates the clip for all windows in mag_windows_list.
- */
-static void
-gmag_events_calculate_windows_clip ()
-{
- GList *elem = NULL;
- XserverRegion clipSum;
-
- clipSum = XFixesCreateRegion (dpy_conn, 0, 0);
- elem = g_queue_peek_tail_link (mag_windows_list);
- if (!elem) {
- XFixesDestroyRegion (dpy_conn, clipSum);
- return;
- }
- do {
- GmagWinPtr pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->pic)
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesCopyRegion (
- dpy_conn,
- pgmag_win->clip,
- XFixesCreateRegionFromWindow (
- dpy_conn,
- pgmag_win->xwin,
- WindowRegionBounding));
- XFixesTranslateRegion (
- dpy_conn,
- pgmag_win->clip, pgmag_win->attr.x,
- pgmag_win->attr.y);
- XFixesCopyRegion (
- dpy_conn,
- pgmag_win->win_region,
- pgmag_win->clip);
- XFixesSubtractRegion (
- dpy_conn,
- pgmag_win->clip, pgmag_win->clip,
- clipSum);
- XFixesUnionRegion (
- dpy_conn,
- clipSum, clipSum,
- pgmag_win->win_region);
- }
- } while ((elem = g_list_previous (elem)));
- XFixesDestroyRegion (dpy_conn, clipSum);
-}
-
-/*
- * Calculates the clip of a single window in mag_windows_list.
- */
-static void
-gmag_events_calculate_window_clip (GmagWinPtr pgmag_win_newclip)
-{
- GList *elem = NULL;
- XserverRegion clipSum;
-
- clipSum = XFixesCreateRegion (dpy_conn, 0, 0);
- elem = g_queue_peek_tail_link (mag_windows_list);
- if (!elem) {
- XFixesDestroyRegion (dpy_conn, clipSum);
- return;
- }
- do {
- GmagWinPtr pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->xwin == pgmag_win_newclip->xwin) {
- /* the window that must have a new clip was founded */
- XFixesCopyRegion (
- dpy_conn,
- pgmag_win->clip,
- XFixesCreateRegionFromWindow (
- dpy_conn,
- pgmag_win->xwin,
- WindowRegionBounding));
- XFixesTranslateRegion (dpy_conn,
- pgmag_win->clip,
- pgmag_win->attr.x,
- pgmag_win->attr.y);
- XFixesCopyRegion (dpy_conn,
- pgmag_win->win_region,
- pgmag_win->clip);
- XFixesSubtractRegion (dpy_conn,
- pgmag_win->clip, pgmag_win->clip,
- clipSum);
- break;
- }
- if (pgmag_win->pic)
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesUnionRegion (
- dpy_conn,
- clipSum, clipSum,
- pgmag_win->win_region);
- }
- } while ((elem = g_list_previous (elem)));
- XFixesDestroyRegion (dpy_conn, clipSum);
-}
-
-/*
- * Paint a window. If region is None, the window clip region is painted, else
- * the intersection of the window clip region and region is painted.
- */
-static void
-gmag_events_paint_window (GmagWinPtr pgmag_win, XserverRegion region)
-{
- static XserverRegion final_clip = None;
-
- if (!pgmag_win->damaged && !region)
- return;
- if (!pgmag_win->pic)
- return;
- if (pgmag_win->attr.map_state != IsViewable)
- return;
-
- if (!final_clip)
- final_clip = XFixesCreateRegion (
- dpy_conn, 0, 0);
-
- XFixesSetRegion (dpy_conn, final_clip, 0, 0);
-
- if (region) {
- XFixesIntersectRegion (dpy_conn,
- final_clip, region, pgmag_win->clip);
- XFixesSetPictureClipRegion (dpy_conn,
- pgmag_win->pic,
- -(pgmag_win->attr.x),
- -(pgmag_win->attr.y), final_clip);
- } else
- XFixesSetPictureClipRegion (dpy_conn,
- pgmag_win->pic,
- -(pgmag_win->attr.x),
- -(pgmag_win->attr.y),
- pgmag_win->clip);
- XRenderComposite (dpy_conn, PictOpSrc,
- pgmag_win->pic, None, off_screen_picture,
- 0, 0, 0, 0, pgmag_win->attr.x, pgmag_win->attr.y,
- pgmag_win->attr.width, pgmag_win->attr.height);
-}
-
-/*
- * Paint all the windows in mag_windows_list with the specified
- * exposedRegion.
- */
-static void
-gmag_events_paint_windows (XserverRegion exposedRegion)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
- elem = g_queue_peek_head_link (mag_windows_list);
-
- while (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- gmag_events_paint_window (pgmag_win, exposedRegion);
- elem = g_list_next (elem);
- }
-}
-
-/*
- * Sometimes XGetWindowAttributes fail (when the window is destroied), so we
- * put default values in it to not have problems in other parts of the program.
- * I think that only some ones need to be setted, but this was copied from
- * Compiz, so...
- */
-static void
-gmag_events_set_default_window_attributes (XWindowAttributes *wa)
-{
- wa->x = 0;
- wa->y = 0;
- wa->width = 1;
- wa->height = 1;
- wa->border_width = 0;
- wa->depth = 0;
- wa->visual = NULL;
- wa->root = None;
- wa->class = InputOnly;
- wa->bit_gravity = NorthWestGravity;
- wa->win_gravity = NorthWestGravity;
- wa->backing_store = NotUseful;
- wa->backing_planes = 0;
- wa->backing_pixel = 0;
- wa->save_under = FALSE;
- wa->colormap = None;
- wa->map_installed = FALSE;
- wa->map_state = IsUnviewable;
- wa->all_event_masks = 0;
- wa->your_event_mask = 0;
- wa->do_not_propagate_mask = 0;
- wa->override_redirect = TRUE;
- wa->screen = NULL;
-}
-
-/*
- * Creates the necessary information of a redirected window and add it to
- * mag_windows_list.
- */
-static void
-gmag_events_add_window (Window xwin)
-{
- GmagWinPtr new;
- XRenderPictureAttributes pic_attr;
- XRenderPictFormat *format;
-
- new = (GmagWinPtr) malloc (sizeof (GmagWin));
- if (!new)
- g_error ("can't allocate GmagWin (struct _GmagWin)");
-
- if (!XGetWindowAttributes (dpy_conn, xwin,
- &new->attr))
- gmag_events_set_default_window_attributes (&new->attr);
-
- new->xwin = xwin;
-
- if (new->attr.class == InputOnly) {
- new->pic = None;
- new->damage = None;
- new->damaged = FALSE;
- new->damaged_region = None;
- } else {
- format = XRenderFindVisualFormat (
- dpy_conn, new->attr.visual);
- pic_attr.subwindow_mode = IncludeInferiors;
- new->pic = XRenderCreatePicture (
- dpy_conn, xwin, format,
- CPSubwindowMode, &pic_attr);
- new->damage = XDamageCreate (dpy_conn, xwin,
- XDamageReportDeltaRectangles);
- new->damaged = TRUE;
- new->damaged_region = XFixesCreateRegion (dpy_conn, 0, 0);
- new->clip = XFixesCreateRegion (dpy_conn, 0, 0);
- new->win_region = XFixesCreateRegion (dpy_conn, 0, 0);
- }
-
- g_queue_push_tail (mag_windows_list, new);
-}
-
-/*
- * Create the mag_windows_list querying the xserver for the actual
- * windows and adding them to the windows list.
- */
-static void
-gmag_events_create_windows_list ()
-{
- Window root_return, parent_return, *children;
- guint nchildren;
- gint i;
-
- if (!mag_windows_list)
- mag_windows_list = g_queue_new ();
-
- XGrabServer (dpy_conn);
- XSelectInput (dpy_conn, root_window,
- SubstructureNotifyMask);
- XQueryTree (dpy_conn, root_window,
- &root_return, &parent_return, &children, &nchildren);
- for (i = 0; i < nchildren; i++)
- gmag_events_add_window (children[i]);
- XFree (children);
- XUngrabServer (dpy_conn);
-}
-
-/*
- * Destroy the window resources and remove it from the
- * mag_windows_list.
- */
-static void
-gmag_events_remove_window (Window xwin)
-{
- GList *elem = NULL;
- GmagWinPtr pgmag_win;
-
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) xwin,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- g_queue_remove (mag_windows_list, pgmag_win);
- XFixesDestroyRegion (dpy_conn,
- pgmag_win->clip);
- XFixesDestroyRegion (dpy_conn,
- pgmag_win->win_region);
- free (pgmag_win);
- }
-}
-
-/*
- * Add a window damaged region, making a union with the actual damaged region,
- * to the window in mag_windows_list.
- */
-static void
-gmag_events_add_win_damaged_region (Window xwin, XserverRegion region)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) xwin,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- XFixesTranslateRegion (dpy_conn, region,
- pgmag_win->attr.x, pgmag_win->attr.y);
- XFixesUnionRegion (dpy_conn,
- pgmag_win->damaged_region,
- pgmag_win->damaged_region, region);
- pgmag_win->damaged = TRUE;
- }
-}
-
-/*
- * Paint all the windows that have some damage.
- */
-static void
-gmag_events_paint_damaged_windows ()
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
- elem = g_queue_peek_head_link (mag_windows_list);
- while (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->damaged) {
- gmag_events_paint_window (pgmag_win,
- pgmag_win->damaged_region);
- XFixesSetRegion (dpy_conn,
- pgmag_win->damaged_region, 0, 0);
- pgmag_win->damaged = FALSE;
- }
-
- elem = g_list_next (elem);
- }
-}
-
-static void
-gmag_events_circulate_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received CirculateNotify event: 0x%x\n",
- (guint) ev->xcirculate.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xcirculate.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xcirculate.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- g_queue_remove (mag_windows_list, pgmag_win);
- if (ev->xcirculate.place == PlaceOnTop) {
- g_queue_push_tail (mag_windows_list,
- pgmag_win);
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesSubtractRegion (
- dpy_conn,
- tmp_region, pgmag_win->win_region,
- pgmag_win->clip);
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region, tmp_region);
- }
- } else {
- g_queue_push_head (mag_windows_list,
- pgmag_win);
- if (pgmag_win->attr.map_state == IsViewable)
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region,
- pgmag_win->clip);
- }
- }
-}
-
-static void
-gmag_events_configure_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received ConfigureNotify event: 0x%x\n",
- (guint) ev->xconfigure.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xconfigure.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xconfigure.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- if ((pgmag_win->attr.x != ev->xconfigure.x) ||
- (pgmag_win->attr.y != ev->xconfigure.y) ||
- (pgmag_win->attr.width != ev->xconfigure.width) ||
- (pgmag_win->attr.height != ev->xconfigure.height) ||
- (pgmag_win->attr.border_width !=
- ev->xconfigure.border_width)) {
- /* If an attribute of the window has changed we could
- * have an exposed area that is not reported due to the
- * overlay window. So we subtract the new region, from
- * the old one, and we have the value of the exposed
- * region that must be repainted.
- */
- pgmag_win->attr.x = ev->xconfigure.x;
- pgmag_win->attr.y = ev->xconfigure.y;
- pgmag_win->attr.width = ev->xconfigure.width;
- pgmag_win->attr.height = ev->xconfigure.height;
- pgmag_win->attr.border_width =
- ev->xconfigure.border_width;
-
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesCopyRegion (
- dpy_conn,
- old_region, pgmag_win->clip);
- gmag_events_calculate_window_clip (pgmag_win);
- XFixesCopyRegion (
- dpy_conn,
- new_region, pgmag_win->clip);
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region, old_region);
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region, new_region);
- }
- }
- if (!ev->xconfigure.above) {
- g_queue_remove (mag_windows_list, pgmag_win);
- g_queue_push_head (mag_windows_list,
- pgmag_win);
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region,
- pgmag_win->win_region);
- }
- } else {
- elem = g_queue_find_custom (
- mag_windows_list,
- (gconstpointer) ev->xconfigure.above,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- g_queue_remove (mag_windows_list,
- pgmag_win);
- g_queue_insert_after (mag_windows_list,
- elem, pgmag_win);
- if (pgmag_win->attr.map_state == IsViewable) {
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region,
- pgmag_win->win_region);
- }
- }
- }
- }
-}
-
-static void
-gmag_events_create_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received CreateNotify event: 0x%x\n",
- (guint) ev->xcreatewindow.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xcreatewindow.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- gmag_events_add_window (ev->xcreatewindow.window);
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xcreatewindow.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->attr.map_state == IsViewable) {
- gmag_events_calculate_window_clip (pgmag_win);
- XFixesUnionRegion (dpy_conn,
- exp_region, exp_region,
- pgmag_win->clip);
- }
- }
-}
-
-static void
-gmag_events_destroy_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received DestroyNotify event: 0x%x\n",
- (guint) ev->xdestroywindow.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xdestroywindow.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xdestroywindow.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->attr.map_state == IsViewable)
- XFixesUnionRegion (dpy_conn,
- exp_region, exp_region,
- pgmag_win->clip);
- gmag_events_remove_window (ev->xdestroywindow.window);
- }
-}
-
-static void
-gmag_events_map_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received MapNotify event: 0x%x\n",
- (guint) ev->xmap.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xmap.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xmap.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- pgmag_win->attr.map_state = IsViewable;
- gmag_events_calculate_window_clip (pgmag_win);
- XFixesUnionRegion (dpy_conn, exp_region,
- exp_region, pgmag_win->clip);
- }
-}
-
-static void
-gmag_events_unmap_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received UnmapNotify event: 0x%x\n",
- (guint) ev->xunmap.window);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xunmap.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- elem = g_queue_find_custom (mag_windows_list,
- (gconstpointer) ev->xunmap.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- pgmag_win->attr.map_state = IsUnmapped;
- XFixesUnionRegion (dpy_conn, exp_region,
- exp_region, pgmag_win->clip);
- }
-}
-
-static void
-gmag_events_reparent_notify_handler (XEvent *ev)
-{
- GList *elem;
- GmagWinPtr pgmag_win;
-
-#ifdef COMPOSITE_DEBUG
- printf ("Received ReparentNotify event: 0x%x (Window), 0x%x (Parent)\n", (guint) ev->xreparent.window, (guint) ev->xreparent.parent);
-#endif /* COMPOSITE_DEBUG */
- if (ev->xreparent.window == mag_window) {
-#ifdef HAVE_OVERLAY
-#ifdef COMPOSITE_DEBUG
- printf ("Overlay window = 0x%x\n",
- (guint) gmag_events_overlay_window);
-#endif /* COMPOSITE_DEBUG */
-#endif /* HAVE_OVERLAY */
- return;
- }
- if (ev->xreparent.parent != root_window) {
- gmag_events_remove_window (ev->xreparent.window);
- } else {
- gmag_events_add_window (ev->xreparent.window);
- elem = g_queue_find_custom (
- mag_windows_list,
- (gconstpointer) ev->xreparent.window,
- (GCompareFunc) gmag_events_g_compare_func);
- if (elem) {
- pgmag_win = (GmagWinPtr) elem->data;
- if (pgmag_win->attr.map_state == IsViewable) {
- gmag_events_calculate_window_clip (pgmag_win);
- XFixesUnionRegion (
- dpy_conn,
- exp_region, exp_region,
- pgmag_win->clip);
- }
- }
- }
-}
-
-#endif /* HAVE_COMPOSITE */
-
-#ifdef HAVE_DAMAGE
-
-static void
-gmag_events_damage_notify_handler (XEvent *ev)
-{
- XDamageNotifyEvent *dev = (XDamageNotifyEvent *) ev;
-#ifdef DAMAGE_DEBUG
- g_message ("Damage area %3d, %3d x %3d, %3d",
- (int) dev->area.x, (int) dev->area.x + dev->area.width,
- (int) dev->area.y, (int) dev->area.y + dev->area.height);
- g_message ("Damage geometry %3d, %3d x %3d, %3d",
- (int) dev->geometry.x,
- (int) dev->geometry.x + dev->geometry.width,
- (int) dev->geometry.y,
- (int) dev->geometry.y + dev->geometry.height);
-#endif /* DAMAGE_DEBUG */
-
-#ifdef HAVE_COMPOSITE
- if (use_composite) {
- if (dev->damage == off_screen_damage) {
-#ifdef DAMAGE_DEBUG
- g_message ("off_screen_damage damaged");
-#endif /* DAMAGE_DEBUG */
- XDamageSubtract (dpy_conn, dev->damage, None,
- gmag_events_tmp_region);
- XFixesUnionRegion (dpy_conn,
- off_screen_region,
- off_screen_region,
- gmag_events_tmp_region);
- } else {
-#ifdef DAMAGE_DEBUG
- g_message ("Window with damage: 0x%x", dev->drawable);
-#endif /* DAMAGE_DEBUG */
- XDamageSubtract (dpy_conn, dev->damage, None,
- gmag_events_tmp_region);
- gmag_events_add_win_damaged_region (
- dev->drawable, gmag_events_tmp_region);
- }
- }
-#endif /* HAVE_COMPOSITE */
-}
-
-#endif /* HAVE_DAMAGE */
-
-static void
-gmag_events_cursor_convert_to_rgba (Magnifier *magnifier,
- XFixesCursorImage *cursor_image)
-{
- int i, count = cursor_image->width * cursor_image->height;
- for (i = 0; i < count; ++i) {
- guint32 pixval = GUINT_TO_LE (cursor_image->pixels[i]);
- cursor_image->pixels[i] = pixval;
- }
-}
-
-static void
-gmag_events_free_cursor_pixels (guchar *pixels, gpointer data)
-{
- /* XFree (data); FIXME why doesn't this work properly? */
-}
-
-#endif /* HAVE_XFIXES */
-
-GdkPixbuf *
-gmag_events_get_source_pixbuf (Magnifier *magnifier)
-{
-#ifdef HAVE_XFIXES
- XFixesCursorImage *cursor_image = XFixesGetCursorImage (
- dpy_conn);
- GdkPixbuf *cursor_pixbuf = NULL;
- gchar s[6];
- if (cursor_image)
- {
- gmag_events_cursor_convert_to_rgba (magnifier, cursor_image);
- cursor_pixbuf = gdk_pixbuf_new_from_data (
- (guchar *) cursor_image->pixels, GDK_COLORSPACE_RGB,
- TRUE, 8, cursor_image->width, cursor_image->height,
- cursor_image->width * 4,
- gmag_events_free_cursor_pixels, cursor_image);
- gdk_pixbuf_set_option (cursor_pixbuf, "x_hot",
- g_ascii_dtostr (
- s, 6,
- (gdouble) cursor_image->xhot));
- gdk_pixbuf_set_option (cursor_pixbuf, "y_hot",
- g_ascii_dtostr (
- s, 6,
- (gdouble) cursor_image->yhot));
- }
- return cursor_pixbuf;
-#else
- return NULL;
-#endif /* HAVE_XFIXES */
-}
-
-gboolean
-gmag_events_source_has_damage_extension (Magnifier *magnifier)
-{
-#ifdef HAVE_DAMAGE
- gint event_base, error_base;
- Display *dpy;
- g_assert (magnifier);
- dpy = GDK_DISPLAY_XDISPLAY (magnifier->source_display);
- if (g_getenv ("MAGNIFIER_IGNORE_DAMAGE"))
- return FALSE;
- if (XDamageQueryExtension (dpy, &event_base, &error_base))
- return TRUE;
-#endif /* HAVE_DAMAGE */
- return FALSE;
-}
-
-static gboolean
-gmag_events_handler (GIOChannel *source, GIOCondition condition, gpointer data)
-{
-#ifdef HAVE_XFIXES
- XEvent ev;
- XFixesCursorNotifyEvent *cev = NULL;
- gboolean cursor_changed = FALSE;
- Magnifier *magnifier = (Magnifier *) data;
- XRectangle *rectlist;
-#ifdef HAVE_COMPOSITE
- gboolean calc_clip = FALSE;
-#endif /* HAVE_COMPOSITE */
-
-#ifdef HAVE_OVERLAY
- if (magnifier->priv->overlay)
- mag_window = GDK_WINDOW_XID (magnifier->priv->overlay);
-#else
- if (magnifier->priv->w && magnifier->priv->w->window)
- mag_window = GDK_WINDOW_XID (magnifier->priv->w->window);
-#endif /* HAVE_OVERLAY */
-
- do
- {
- XNextEvent(dpy_conn, &ev);
-
-#ifdef HAVE_COMPOSITE
- if (use_composite) {
- switch (ev.type) {
- case CirculateNotify:
- gmag_events_circulate_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case ConfigureNotify:
- gmag_events_configure_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case CreateNotify:
- gmag_events_create_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case DestroyNotify:
- gmag_events_destroy_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case MapNotify:
- gmag_events_map_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case UnmapNotify:
- gmag_events_unmap_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- case ReparentNotify:
- gmag_events_reparent_notify_handler (&ev);
- calc_clip = TRUE;
- break;
- }
- }
-#endif /* HAVE_COMPOSITE */
-
-#ifdef HAVE_DAMAGE
- if (use_damage) {
- if (ev.type == damage_event_base + XDamageNotify) {
- gmag_events_damage_notify_handler (&ev);
- }
- }
-#endif /* HAVE_DAMAGE */
-
-#ifdef HAVE_XFIXES
- if (ev.type == fixes_event_base + XFixesCursorNotify) {
- cursor_changed = TRUE;
- cev = (XFixesCursorNotifyEvent *) &ev;
- }
-#endif /* HAVE_XFIXES */
-
- } while (XPending (dpy_conn));
-
-#ifndef HAVE_OVERLAY
- if (use_composite && mag_window) {
- XRaiseWindow (dpy_conn, mag_window);
- }
-#endif /* HAVE_OVERLAY */
-
-#ifdef HAVE_DAMAGE
- if (!use_composite) {
- XDamageSubtract (dpy_conn, root_window_damage, None,
- gmag_events_tmp_region);
- }
-
- if (use_damage) {
- if (magnifier) {
- int i, howmany;
- /* TODO: maintain this list on the client instead, to
- * avoid the roundtrip below */
-#ifdef HAVE_COMPOSITE
- if (use_composite) {
- rectlist = XFixesFetchRegion (
- dpy_conn,
- off_screen_region,
- &howmany);
- } else {
-#endif /* HAVE_COMPOSITE */
- rectlist = XFixesFetchRegion (
- dpy_conn, gmag_events_tmp_region,
- &howmany);
-#ifdef HAVE_COMPOSITE
- }
-#endif /* HAVE_COMPOSITE */
- if (rectlist == NULL) /* no reply from fetch */
- return TRUE;
- for (i=0; i < howmany; ++i) {
- magnifier_notify_damage (magnifier,
- &rectlist[i]);
- }
- XFree (rectlist);
- }
- }
-#endif /* HAVE_DAMAGE */
-
-#ifdef HAVE_COMPOSITE
- if (use_composite) {
- if (calc_clip) {
- gmag_events_calculate_windows_clip ();
- gmag_events_paint_windows (exp_region);
- }
- gmag_events_paint_damaged_windows ();
- }
-#endif /* HAVE_COMPOSITE */
-
-#ifdef HAVE_XFIXES
- if (cursor_changed) {
- if (magnifier->priv->use_source_cursor) {
- GdkPixbuf *cursor_pixbuf =
- gmag_events_get_source_pixbuf (magnifier);
- magnifier_set_cursor_from_pixbuf (magnifier,
- cursor_pixbuf);
- if (cursor_pixbuf) g_object_unref (cursor_pixbuf);
- } else {
- magnifier_set_cursor_pixmap_by_name (magnifier, cev ? gdk_x11_get_xatom_name (cev->cursor_name) : "default", TRUE);
- }
-
- magnifier_transform_cursor (magnifier);
-#ifdef CURSOR_DEBUG
- if (cev)
- g_message ("cursor changed: subtype=%d, " \
- "cursor_serial=%lu, name=[%x] %s\n",
- (int) cev->subtype, cev->cursor_serial,
- (int) cev->cursor_name,
- gdk_x11_get_xatom_name (cev->cursor_name));
-#endif /* CURSOR_DEBUG */
- cursor_changed = FALSE;
- }
-#endif /* HAVE_XFIXES */
-
-#ifdef HAVE_COMPOSITE
- if (use_composite) {
- XFixesSetRegion (dpy_conn, tmp_region, 0, 0);
- XFixesSetRegion (dpy_conn, new_region, 0, 0);
- XFixesSetRegion (dpy_conn, old_region, 0, 0);
- XFixesSetRegion (dpy_conn, exp_region, 0, 0);
- XFixesSetRegion (dpy_conn, off_screen_region, 0, 0);
- }
-#endif /* HAVE_COMPOSITE */
-
- XFlush (dpy_conn);
-#else
- return FALSE;
-#endif /* HAVE_XFIXES */
- return TRUE;
-}
-
-static gboolean
-gmag_events_use_damage ()
-{
-#ifdef HAVE_DAMAGE
- gint major, event, error;
- if (XQueryExtension (dpy_conn, "DAMAGE", &major, &event, &error) &&
- !g_getenv ("MAGNIFIER_IGNORE_DAMAGE"))
- return TRUE;
- return FALSE;
-#else
- return FALSE;
-#endif /* HAVE_DAMAGE */
-}
-
-static gboolean
-gmag_events_use_composite ()
-{
- if (!gmag_events_use_damage ()) {
- return FALSE;
- }
-#ifdef HAVE_COMPOSITE
- gint major, event, error;
- if (XQueryExtension (dpy_conn, "Composite", &major, &event, &error) &&
- !g_getenv ("MAGNIFIER_IGNORE_COMPOSITE"))
- return TRUE;
- return FALSE;
-#else
- return FALSE;
-#endif /* HAVE_COMPOSITE */
-}
-
-void
-gmag_events_client_init (Magnifier *magnifier)
-{
- GIOChannel *ioc;
- gint fd;
- gint event_base, error_base;
-#ifdef HAVE_COMPOSITE
- XRenderPictureAttributes pic_attr;
- XRenderPictFormat *format;
- GdkDisplay *gdk_display_connection;
- GdkScreen *gdkscr;
- gint scr = 0, root_w, root_h;
-#endif /* HAVE_COMPOSITE */
-
- if (dpy_conn) {
- /* remove the old watch */
- if (dpy_gsource)
- g_source_remove (dpy_gsource);
- XCloseDisplay (dpy_conn);
- }
-
- if (magnifier) {
- /* we need our own connection here to keep from gumming up the
- * works */
- dpy_conn = XOpenDisplay (magnifier->source_display_name);
- root_window = GDK_WINDOW_XWINDOW (magnifier->priv->root);
- } else {
- dpy_conn = XOpenDisplay (NULL);
- root_window = RootWindow (dpy_conn, DefaultScreen (dpy_conn));
- g_message ("warning - using DefaultScreen for X connection.");
- }
-
-#ifdef EVENTS_DEBUG
- XSynchronize (dpy_conn, True);
-#endif /* EVENTS_DEBUG */
-
- fd = ConnectionNumber (dpy_conn);
- ioc = g_io_channel_unix_new (fd);
- dpy_gsource = g_io_add_watch (ioc,
- G_IO_IN | G_IO_HUP | G_IO_PRI | G_IO_ERR,
- gmag_events_handler, magnifier);
- g_io_channel_unref (ioc);
-
-#ifdef HAVE_XFIXES
-
- use_damage = gmag_events_use_damage ();
- use_composite = gmag_events_use_composite ();
-
- if (!XFixesQueryExtension (dpy_conn, &fixes_event_base,
- &fixes_error_base)) {
- g_warning ("XFixes extension not currently active.\n");
- } else {
- XFixesSelectCursorInput (dpy_conn, root_window,
- XFixesDisplayCursorNotifyMask);
- g_message ("added event source to xfixes cursor-notify " \
- "connection");
- }
-
-#ifdef HAVE_DAMAGE
- if (!XDamageQueryExtension (dpy_conn, &damage_event_base,
- &damage_error_base)) {
- g_warning ("Damage extension not currently active.\n");
- } else if (g_getenv ("MAGNIFIER_IGNORE_DAMAGE")) {
- g_warning ("Damage extension being ignored at user request.");
- } else {
- gmag_events_tmp_region = XFixesCreateRegion (dpy_conn, 0, 0);
- if (!use_composite) {
- root_window_damage = XDamageCreate (
- dpy_conn, root_window,
- XDamageReportDeltaRectangles);
- /* I don't know why, but without this XDamageSubtract
- * call below the damage events aren't hanled normally.
- * They start to be handled normally, without the call
- * below, only after you move your mouse.
- */
- XDamageSubtract (dpy_conn, root_window_damage, None,
- None);
- }
- g_message ("added event source to damage connection");
- }
-#else
- g_warning ("this copy of gnome-mag was built without damage " \
- "extension support.\n");
-#endif /* HAVE_DAMAGE */
-
-#ifdef HAVE_COMPOSITE
- if (!XCompositeQueryExtension (dpy_conn, &event_base, &error_base)) {
- g_warning ("Composite extension not currently active.\n");
- } else if (g_getenv ("MAGNIFIER_IGNORE_COMPOSITE")) {
- g_warning ("Composite extension being ignored at user " \
- "request.");
- } else if (!use_damage) {
- g_setenv ("MAGNIFIER_IGNORE_COMPOSITE", "1", TRUE);
- g_warning ("Composite extension being ignored due Damage " \
- "is not actived.");
- } else {
-#ifndef HAVE_OVERLAY
- g_warning ("update composite to version 0.3 or higher to " \
- "have overlay window support.\n");
-#endif /* HAVE_OVERLAY */
-
- gdk_drawable_get_size (magnifier->priv->root, &root_w,
- &root_h);
- magnifier->priv->source_drawable = gdk_pixmap_new (
- magnifier->priv->root, root_w, root_h, -1);
- /* GTK+ uses it's own connection with X, so we must flush that
- * to not receive a BadDrawable when creating a picture of this
- * drawable below. */
- gdk_flush ();
-
- gdk_display_connection = gdk_drawable_get_display (
- magnifier->priv->root);
- gdkscr = gdk_display_get_default_screen (
- gdk_display_connection);
-
- scr = GDK_SCREEN_XNUMBER (gdkscr);
-
- XCompositeRedirectSubwindows (dpy_conn, root_window,
- CompositeRedirectAutomatic);
- off_screen_region = XFixesCreateRegion (
- dpy_conn, 0, 0);
- tmp_region = XFixesCreateRegion (dpy_conn, 0, 0);
- new_region = XFixesCreateRegion (dpy_conn, 0, 0);
- old_region = XFixesCreateRegion (dpy_conn, 0, 0);
- exp_region = XFixesCreateRegion (dpy_conn, 0, 0);
- off_screen_damage = XDamageCreate (
- dpy_conn,
- GDK_DRAWABLE_XID (
- magnifier->priv->source_drawable),
- XDamageReportDeltaRectangles);
-
- format = XRenderFindVisualFormat (
- dpy_conn,
- DefaultVisual (dpy_conn, scr));
- pic_attr.subwindow_mode = IncludeInferiors;
- off_screen_picture = XRenderCreatePicture (
- dpy_conn,
- GDK_DRAWABLE_XID (magnifier->priv->source_drawable),
- format, CPSubwindowMode, &pic_attr);
-
- gmag_events_create_windows_list (gdk_display_connection,
- gdkscr);
- gmag_events_calculate_windows_clip ();
- g_message ("added event source to composite connection");
- }
-#else
- g_warning ("this copy of gnome-mag was built without composite " \
- "extension support.\n");
-#endif /* HAVE_COMPOSITE */
-
-#else
- g_warning ("this copy of gnome-mag was built without xfixes " \
- "extension support.\n");
-#endif /* HAVE_XFIXES */
- XFlush (dpy_conn);
-}
diff --git a/magnifier/gmag-events.h b/magnifier/gmag-events.h
deleted file mode 100644
index b4bffb1..0000000
--- a/magnifier/gmag-events.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * GNOME-MAG Magnification service for GNOME
- *
- * Copyright 2006 Carlos Eduardo Rodrigues Digenes
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_XFIXES
-#include <X11/extensions/Xfixes.h>
-#ifdef HAVE_DAMAGE
-#include <X11/extensions/Xdamage.h>
-#ifdef HAVE_COMPOSITE
-#include <X11/extensions/Xrender.h>
-#endif /* HAVE_COMPOSITE */
-#endif /* HAVE_DAMAGE */
-#endif /* HAVE_XFIXES */
-
-#include "magnifier.h"
-
-typedef struct _GmagWin {
- Window xwin;
-#ifdef HAVE_XFIXES
-#ifdef HAVE_DAMAGE
- Damage damage;
- gboolean damaged;
-#ifdef HAVE_COMPOSITE
- Picture pic;
-#endif /* HAVE_COMPOSITE */
-#endif /* HAVE_DAMAGE */
- XWindowAttributes attr;
- XserverRegion clip;
- XserverRegion win_region;
- XserverRegion damaged_region;
-#endif /* HAVE_XFIXES */
-} GmagWin, *GmagWinPtr;
-
-void gmag_events_client_init (Magnifier *magnifier);
-GdkPixbuf *gmag_events_get_source_pixbuf (Magnifier *magnifier);
-gboolean gmag_events_source_has_damage_extension (Magnifier *magnifier);
diff --git a/magnifier/magnifier-main.c b/magnifier/magnifier-main.c
deleted file mode 100644
index 5808b4b..0000000
--- a/magnifier/magnifier-main.c
+++ /dev/null
@@ -1,618 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <string.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <gdk/gdkwindow.h>
-#include <gdk/gdkx.h>
-#include <gtk/gtk.h>
-#include <libbonobo.h>
-#include "magnifier.h"
-#include "magnifier-private.h"
-#include "zoom-region.h"
-#include "gmag-events.h"
-#include "GNOME_Magnifier.h"
-
-#define ENV_STRING_MAX_SIZE 128
-
-GNOME_Magnifier_ZoomRegion zoom_region;
-
-typedef struct {
- gchar *target_display;
- gchar *source_display;
- gchar *cursor_set;
- gchar *smoothing_type;
- gdouble zoom_factor;
- gdouble zoom_factor_x;
- gdouble zoom_factor_y;
- gint refresh_time;
- gint mouse_poll_time;
- gint cursor_size;
- gdouble cursor_scale_factor;
- gint64 cursor_color;
- gboolean vertical_split;
- gboolean horizontal_split;
- gboolean fullscreen;
- gboolean mouse_follow;
- gboolean invert_image;
- gboolean no_initial_region;
- gint timing_iterations;
- gboolean timing_output;
- gint timing_delta_x;
- gint timing_delta_y;
- gint timing_pan_rate;
- gboolean smooth_scroll;
- gint border_width;
- gint64 border_color;
- gboolean test_pattern;
- gboolean is_override_redirect;
- gboolean ignore_damage;
-#ifdef HAVE_COMPOSITE
- gboolean ignore_composite;
-#endif /* HAVE_COMPOSITE */
- gboolean print_version;
-} MagnifierOptions;
-
-static MagnifierOptions global_options = { NULL, /* target_display */
- NULL, /* source_display */
- "default", /* cursor_set */
- "none", /* smoothing_type */
- 2.0, /* zoom_factor */
- 0.0, /* zoom_factor_x */
- 0.0, /* zoom_factor_y */
- 500, /* refresh_time */
- 50, /* mouse_poll_time */
- 0, /* cursor_size */
- 0.0F, /* cursor_scale_factor */
- 0xFF000000,/* cursor_color */
- 0, /* vertical_split */
- 0, /* horizontal_split */
- 0, /* fullscreen */
- 0, /* mouse_follow */
- 0, /* invert_image */
- 0, /* no_initial_region */
- 0, /* timing_iterations */
- 0, /* timing_output */
- 10, /* timing_delta_x */
- 10, /* timing_delat_y */
- 0, /* timing_pan_rate */
- 1, /* smooth_scroll */
- 0, /* border_width */
- 0, /* border_color */
- 0, /* test_pattern */
- 0, /* is_override_redirect*/
- 0 /* ignore_damage */
-#ifdef HAVE_COMPOSITE
- ,0 /* ignore_composite */
-#endif /* HAVE_COMPOSITE */
- ,0 /* print_version */
- };
-
-static GOptionEntry magnifier_options [] = {
- {"target-display", 't', 0, G_OPTION_ARG_STRING, &global_options.target_display, "specify display on which to show magnified view", NULL},
- {"source-display", 's', 0, G_OPTION_ARG_STRING, &global_options.source_display, "specify display to magnify", NULL},
- {"cursor-set", 0, 0, G_OPTION_ARG_STRING, &global_options.cursor_set, "cursor set to use in target display", NULL},
- {"cursor-size", 0, 0, G_OPTION_ARG_INT, &global_options.cursor_size, "cursor size to use (overrides cursor-scale-factor)", NULL},
- {"cursor-scale-factor", 0, 0, G_OPTION_ARG_DOUBLE, &global_options.cursor_scale_factor, "cursor scale factor", NULL},
- {"cursor-color", 0, 0, G_OPTION_ARG_INT64, &global_options.cursor_color, "cursor color (applied to \'black\' pixels)", NULL},
- {"vertical", 'v', 0, G_OPTION_ARG_NONE, &global_options.vertical_split, "split screen vertically (if target display = source display)", NULL},
- {"horizontal", 'h', 0, G_OPTION_ARG_NONE, &global_options.horizontal_split, "split screen horizontally (if target display = source display)", NULL},
- {"mouse-follow", 'm', 0, G_OPTION_ARG_NONE, &global_options.mouse_follow, "track mouse movements", NULL},
- {"refresh-time", 'r', 0, G_OPTION_ARG_INT, &global_options.refresh_time, "minimum refresh time for idle, in ms", NULL},
- {"mouse-latency", 0, 0, G_OPTION_ARG_INT, &global_options.mouse_poll_time, "maximum mouse latency time, in ms", NULL},
- {"zoom-factor", 'z', 0, G_OPTION_ARG_DOUBLE, &global_options.zoom_factor, "zoom (scale) factor used to magnify source display", NULL},
- {"invert-image", 'i', 0, G_OPTION_ARG_NONE, &global_options.invert_image, "invert the image colormap", NULL},
- {"no-initial-region", 0, 0, G_OPTION_ARG_NONE, &global_options.no_initial_region, "don't create an initial zoom region", NULL},
- {"timing-iterations", 0, 0, G_OPTION_ARG_INT, &global_options.timing_iterations, "iterations to run timing benchmark test (0=continuous)", NULL},
- {"timing-output", 0, 0, G_OPTION_ARG_NONE, &global_options.timing_output, "display performance ouput", NULL},
- {"timing-pan-rate", 0, 0, G_OPTION_ARG_INT, &global_options.timing_pan_rate, "timing pan rate in lines per frame", NULL},
- {"timing-delta-x", 0, 0, G_OPTION_ARG_INT, &global_options.timing_delta_x, "pixels to pan in x-dimension each frame in timing update test", NULL},
- {"timing-delta-y", 0, 0, G_OPTION_ARG_INT, &global_options.timing_delta_y, "pixels to pan in y-dimension each frame in timing update test", NULL},
- {"smoothing-type", 0, 0, G_OPTION_ARG_STRING, &global_options.smoothing_type, "image smoothing algorithm to apply (bilinear-interpolation | none)", NULL},
- {"fullscreen", 'f', 0, G_OPTION_ARG_NONE, &global_options.fullscreen, "fullscreen magnification, covers entire target display [REQUIRES --source-display and --target-display]", NULL},
- {"smooth-scrolling", 0, 0, G_OPTION_ARG_NONE, &global_options.smooth_scroll, "use smooth scrolling", NULL},
- {"border-size", 'b', 0, G_OPTION_ARG_INT, &global_options.border_width, "width of border", NULL},
- {"border-color", 'c', 0, G_OPTION_ARG_INT64, &global_options.border_color, "border color specified as (A)RGB 23-bit value, Alpha-MSB", NULL},
- {"use-test-pattern", 0, 0, G_OPTION_ARG_NONE, &global_options.test_pattern, "use test pattern as source", NULL},
- {"override-redirect", 0, 0, G_OPTION_ARG_NONE, &global_options.is_override_redirect, "make the magnifier window totally unmanaged by the window manager", NULL},
- {"ignore-damage", 0, 0, G_OPTION_ARG_NONE, &global_options.ignore_damage, "ignore the X server DAMAGE extension, if present", NULL},
-#ifdef HAVE_COMPOSITE
- {"ignore-composite", 0, 0, G_OPTION_ARG_NONE, &global_options.ignore_composite, "ignore the X server COMPOSITE extension, if present", NULL},
-#endif /* HAVE_COMPOSITE */
- {"version", 'v', 0, G_OPTION_ARG_NONE, &global_options.print_version, "print version", NULL},
- {NULL}
-};
-
-static void
-init_rect_bounds (GNOME_Magnifier_RectBounds *bounds,
- long x1, long y1, long x2, long y2)
-{
- bounds->x1 = x1;
- bounds->y1 = y1;
- bounds->x2 = x2;
- bounds->y2 = y2;
-}
-
-static int screen_width, screen_height;
-
-static int
-magnifier_main_test_image (gpointer data)
-{
- static long timing_counter = 0;
- static int timing_x_pos = 0;
- static int timing_y_pos = 0;
- static int x_direction = 1;
- static int y_direction = 1;
- Magnifier *magnifier = (Magnifier *) data;
- GNOME_Magnifier_ZoomRegionList *zoom_regions;
- Bonobo_PropertyBag properties;
- CORBA_Environment ev;
- GNOME_Magnifier_RectBounds roi;
- int x_roi, y_roi;
-
- /* Only iterate the number of times specified */
- if (global_options.timing_iterations > 0) {
- if (timing_counter > global_options.timing_iterations) {
- CORBA_exception_init (&ev);
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- if (BONOBO_EX (&ev))
- fprintf (stderr, "EXCEPTION\n");
-
- bonobo_pbclient_set_boolean (properties, "exit-magnifier",
- TRUE, &ev);
- }
- }
-
- CORBA_exception_init (&ev);
-
- x_roi = global_options.timing_delta_x * timing_x_pos;
- roi.x1 = x_roi;
- roi.x2 = (screen_width / global_options.zoom_factor) + roi.x1;
- x_roi = global_options.timing_delta_x * (timing_x_pos + x_direction);
-
- /* Determine if magnifier hit an edge and should reverse direction */
- if (x_roi + (screen_width / global_options.zoom_factor) > screen_width)
- x_direction = -1;
- else if (x_roi < 0)
- x_direction = 1;
-
- timing_x_pos += x_direction;
-
- y_roi = global_options.timing_delta_y * timing_y_pos;
-
- /* Calculate size of screen not covered by magnifier */
- if (global_options.horizontal_split)
- roi.y1 = y_roi + screen_height;
- else
- roi.y1 = y_roi;
- roi.y2 = (screen_height / global_options.zoom_factor) + roi.y1;
-
- y_roi = global_options.timing_delta_y * (timing_y_pos + y_direction);
-
- /* The counter is increased each time the y-direction changes */
- if (y_roi + (screen_height / global_options.zoom_factor) > screen_height) {
- timing_counter++;
- y_direction = -1;
- }
- else if (y_roi < 0) {
- timing_counter++;
- y_direction = 1;
- }
-
- timing_y_pos += y_direction;
-
- if (!IS_MAGNIFIER (magnifier))
- return FALSE;
-
- magnifier->priv->cursor_x = (roi.x2 + roi.x1) / 2;
- magnifier->priv->cursor_y = (roi.y2 + roi.y1) / 2;
-
- zoom_regions =
- GNOME_Magnifier_Magnifier_getZoomRegions (
- BONOBO_OBJREF (magnifier),
- &ev);
-
- if (zoom_regions && (zoom_regions->_length > 0)) {
-
- GNOME_Magnifier_ZoomRegion_setROI (
- zoom_regions->_buffer[0], &roi, &ev);
- }
-
- return TRUE;
-}
-
-static int last_x = 0, last_y = 0;
-
-static int
-magnifier_main_pan_image (gpointer data)
-{
- Magnifier *magnifier = (Magnifier *) data;
- GNOME_Magnifier_ZoomRegionList *zoom_regions;
- GNOME_Magnifier_ZoomRegion zoom_region;
- CORBA_Environment ev;
- GNOME_Magnifier_RectBounds roi;
- int mouse_x_return, mouse_y_return;
- int w, h;
- GdkModifierType mask_return;
-
- CORBA_exception_init (&ev);
-
- if (global_options.mouse_follow && IS_MAGNIFIER (magnifier))
- {
- gdk_window_get_pointer (
- magnifier_get_root (magnifier),
- &mouse_x_return,
- &mouse_y_return,
- &mask_return);
-
- if (last_x != mouse_x_return || last_y != mouse_y_return)
- {
- last_x = mouse_x_return;
- last_y = mouse_y_return;
- w = (magnifier->target_bounds.x2 - magnifier->target_bounds.x1);
- h = (magnifier->target_bounds.y2 - magnifier->target_bounds.y1);
- roi.x1 = mouse_x_return;
- roi.y1 = mouse_y_return;
- roi.x2 = roi.x1 + 1;
- roi.y2 = roi.y1 + 1;
-
- zoom_regions =
- GNOME_Magnifier_Magnifier_getZoomRegions (
- BONOBO_OBJREF (magnifier),
- &ev);
- if (zoom_regions && (zoom_regions->_length > 0))
- {
- int i;
- for (i = 0; i < zoom_regions->_length; ++i)
- {
- /* fprintf (stderr, "panning region %d\n", i);*/
- zoom_region =
- CORBA_Object_duplicate (
- ( (CORBA_Object *)
- (zoom_regions->_buffer))[i], &ev);
- if (zoom_region != CORBA_OBJECT_NIL) {
- GNOME_Magnifier_ZoomRegion_setROI (zoom_region,
- &roi,
- &ev);
- } else fprintf (stderr, "nil region!\n");
- }
- }
- }
- return TRUE;
- }
-
- return FALSE;
-}
-
-static int
-magnifier_main_refresh_all (gpointer data)
-{
- int i;
- Magnifier *magnifier = data;
- CORBA_any *dirty_bounds_any;
- CORBA_Environment ev;
- Bonobo_PropertyBag properties;
- GNOME_Magnifier_RectBounds *dirty_bounds;
- GNOME_Magnifier_ZoomRegionList *regions;
-
- CORBA_exception_init (&ev);
-
- if (!IS_MAGNIFIER (magnifier))
- return FALSE;
-
- regions = GNOME_Magnifier_Magnifier_getZoomRegions (
- BONOBO_OBJREF (magnifier),
- &ev);
-
-#ifdef DEBUG_REFRESH
- fprintf (stderr, "refreshing %d regions\n", regions->_length);
-#endif
-
- properties = GNOME_Magnifier_Magnifier_getProperties (BONOBO_OBJREF (magnifier), &ev);
-
- dirty_bounds_any = Bonobo_PropertyBag_getValue (properties, "source-display-bounds", &ev);
- if (BONOBO_EX (&ev)) {
- g_warning ("Error getting source-display-bounds");
- bonobo_main_quit ();
- return FALSE;
- }
-
- dirty_bounds = (GNOME_Magnifier_RectBounds *) dirty_bounds_any->_value;
-
- fprintf (stderr, "region to update: %d %d %d %d\n",
- dirty_bounds->x1, dirty_bounds->y1, dirty_bounds->x2, dirty_bounds->y2);
-
- for (i = 0; i < regions->_length; ++i)
- GNOME_Magnifier_ZoomRegion_markDirty (
- regions->_buffer [i], dirty_bounds, &ev);
-
- bonobo_object_release_unref (properties, NULL);
-
- return TRUE;
-}
-
-int
-main (int argc, char** argv)
-{
- GOptionContext *context;
- GNOME_Magnifier_RectBounds *roi = GNOME_Magnifier_RectBounds__alloc();
- GNOME_Magnifier_RectBounds *viewport = GNOME_Magnifier_RectBounds__alloc();
- CORBA_any *viewport_any;
- int x = 0, y = 0, fullwidth, fullheight;
- guint pan_handle = 0, refresh_handle = 0;
- CORBA_Environment ev;
- Bonobo_PropertyBag properties;
-
- Magnifier *magnifier;
-
- if (!bonobo_init (&argc, argv)) {
- g_error ("Could not initialize Bonobo");
- }
- CORBA_exception_init (&ev);
-
- context = g_option_context_new ("- a screen magnifier for Gnome");
- g_option_context_set_description (context, "Report bugs to http://bugzilla.gnome.org\n");
- g_option_context_add_main_entries (context, magnifier_options, "main options");
- g_option_context_set_ignore_unknown_options (context, TRUE);
- g_option_context_parse(context, &argc, &argv, NULL);
- g_option_context_free(context);
-
- if (global_options.print_version) {
- g_print ("%s\n", VERSION);
- return 0;
- }
-
- /**
- * slight hack, we set $DISPLAY if --target-display is set.
- * this is because I don't think GTK+ works well with across multiple
- * servers yet.
- **/
- if (global_options.target_display) {
- gchar *string;
- string = g_strconcat ("DISPLAY=", global_options.target_display, NULL);
- putenv (string);
- } else {
- global_options.target_display = getenv ("DISPLAY");
- if (!global_options.target_display) {
- fprintf (stderr, _("Can't open display, DISPLAY is not set"));
- exit (1);
- }
- }
-
- if (!global_options.source_display) {
- global_options.source_display = global_options.target_display;
- }
-
- if (global_options.timing_pan_rate && global_options.timing_iterations == 0)
- {
- g_error ("Must specify timing_iterations when running pan test");
- }
-
- /* FIXME */
- gtk_init (&argc, &argv);
-
- if (global_options.ignore_damage)
- {
- g_setenv ("MAGNIFIER_IGNORE_DAMAGE", "1", TRUE);
- }
-#ifdef HAVE_COMPOSITE
- if (global_options.ignore_composite) {
- g_setenv ("MAGNIFIER_IGNORE_COMPOSITE", "1", TRUE);
- }
-#endif /* HAVE_COMPOSITE */
-
- magnifier = magnifier_new (global_options.is_override_redirect);
-
- properties = GNOME_Magnifier_Magnifier_getProperties (
- BONOBO_OBJREF (magnifier), &ev);
- if (ev._major != CORBA_NO_EXCEPTION) fprintf (stderr, "EXCEPTION\n");
-
- if (global_options.source_display)
- bonobo_pbclient_set_string (properties, "source-display-screen",
- global_options.source_display, NULL);
-
- if (global_options.target_display)
- bonobo_pbclient_set_string (properties, "target-display-screen",
- global_options.target_display, NULL);
-
- if (global_options.cursor_set)
- bonobo_pbclient_set_string (properties, "cursor-set",
- global_options.cursor_set, NULL);
-
- if (global_options.cursor_size)
- bonobo_pbclient_set_long (properties, "cursor-size",
- global_options.cursor_size, NULL);
-
- else if (global_options.cursor_scale_factor != 0.0F)
- bonobo_pbclient_set_float (properties, "cursor-scale-factor",
- global_options.cursor_scale_factor, NULL);
- else
- bonobo_pbclient_set_float (properties, "cursor-scale-factor",
- global_options.zoom_factor, NULL);
-
- if (global_options.cursor_color)
- bonobo_pbclient_set_ulong (properties, "cursor-color",
- global_options.cursor_color,
- NULL);
-
- fullwidth = screen_width = gdk_screen_get_width (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
- fullheight = screen_height = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
-
- if (global_options.vertical_split) {
- screen_width /= 2;
- x = screen_width;
- }
- if (global_options.horizontal_split) {
- screen_height /= 2;
- y = screen_height;
- }
-
- fprintf (stderr, "initial viewport %d %d\n", (int) screen_width,
- (int) screen_height);
-
- init_rect_bounds (viewport, x, y, x + screen_width, y + screen_height);
- viewport_any = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds, viewport);
-
- bonobo_pbclient_set_value (properties, "target-display-bounds",
- viewport_any,
- &ev);
- bonobo_arg_release (viewport_any);
-
- if (global_options.vertical_split || global_options.horizontal_split)
- {
-#ifdef HAVE_COMPOSITE
- if (!g_getenv ("MAGNIFIER_IGNORE_COMPOSITE"))
- init_rect_bounds (viewport, 0, 0, fullwidth, fullheight);
- else
-#endif /* HAVE_COMPOSITE */
- init_rect_bounds (viewport, 0, 0, fullwidth-x, fullheight-y);
- viewport_any = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds, viewport);
- bonobo_pbclient_set_value (properties, "source-display-bounds",
- viewport_any,
- &ev);
-
- bonobo_arg_release (viewport_any);
- } else if (global_options.fullscreen) {
- init_rect_bounds (viewport, 0, 0, fullwidth, fullheight);
- viewport_any = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds,
- viewport);
- bonobo_pbclient_set_value (properties, "source-display-bounds",
- viewport_any,
- &ev);
- bonobo_arg_release (viewport_any);
- }
-
- bonobo_object_release_unref (properties, NULL);
- properties = NULL;
-
- if (global_options.vertical_split ||
- global_options.horizontal_split ||
- global_options.fullscreen)
- {
- int scroll_policy;
-
- init_rect_bounds (roi, 0, 0, 100, 100);
- init_rect_bounds (viewport, 0, 0, screen_width, screen_height);
- zoom_region =
- GNOME_Magnifier_Magnifier_createZoomRegion (
- BONOBO_OBJREF (magnifier),
- global_options.zoom_factor,
- global_options.zoom_factor,
- roi,
- viewport,
- &ev);
-
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- if (BONOBO_EX (&ev))
- fprintf (stderr, "EXCEPTION\n");
-
- scroll_policy = global_options.smooth_scroll ?
- GNOME_Magnifier_ZoomRegion_SCROLL_SMOOTHEST :
- GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST;
-
- bonobo_pbclient_set_long (properties, "timing-iterations",
- global_options.timing_iterations, &ev);
- bonobo_pbclient_set_boolean (properties, "timing-output",
- global_options.timing_output, &ev);
- bonobo_pbclient_set_long (properties, "timing-pan-rate",
- global_options.timing_pan_rate, &ev);
- bonobo_pbclient_set_long (properties, "border-size",
- global_options.border_width, &ev);
- bonobo_pbclient_set_long (properties, "border-color",
- global_options.border_color, &ev);
- bonobo_pbclient_set_short (properties, "smooth-scroll-policy",
- (short) scroll_policy, &ev);
- bonobo_pbclient_set_boolean (properties, "use-test-pattern",
- global_options.test_pattern, &ev);
-
- if (strcmp (global_options.smoothing_type, "none"))
- bonobo_pbclient_set_string (properties, "smoothing-type",
- global_options.smoothing_type, &ev);
-
- if (global_options.invert_image)
- bonobo_pbclient_set_boolean (properties, "inverse-video",
- global_options.invert_image, NULL);
-
- GNOME_Magnifier_Magnifier_addZoomRegion (
- BONOBO_OBJREF (magnifier),
- zoom_region,
- &ev);
-
- bonobo_object_release_unref (properties, &ev);
- properties = NULL;
- }
-
- if (global_options.timing_pan_rate)
- {
- GNOME_Magnifier_ZoomRegionList *zoom_regions;
- GNOME_Magnifier_RectBounds roi;
- roi.x1 = 100;
- roi.x2 = 100 + (screen_width / global_options.zoom_factor);
- roi.y1 = 0;
- roi.y2 = screen_height / global_options.zoom_factor;
-
- zoom_regions = GNOME_Magnifier_Magnifier_getZoomRegions (
- BONOBO_OBJREF (magnifier), &ev);
-
- if (zoom_regions && (zoom_regions->_length > 0))
- {
- GNOME_Magnifier_ZoomRegion_setROI (
- zoom_regions->_buffer[0], &roi, &ev);
- }
- }
- else if (global_options.timing_iterations)
- {
- refresh_handle = g_timeout_add (global_options.refresh_time,
- magnifier_main_test_image,
- magnifier);
- }
- else
- {
- if (global_options.ignore_damage ||
- !gmag_events_source_has_damage_extension (magnifier))
- {
- refresh_handle = g_timeout_add (
- global_options.refresh_time,
- magnifier_main_refresh_all, magnifier);
- }
-
- pan_handle = g_timeout_add (
- global_options.mouse_poll_time,
- magnifier_main_pan_image, magnifier);
- }
-
- bonobo_main ();
-
- if (refresh_handle)
- g_source_remove (refresh_handle);
-
- if (pan_handle)
- g_source_remove (pan_handle);
-
- return 0;
-}
diff --git a/magnifier/magnifier-private.h b/magnifier/magnifier-private.h
deleted file mode 100644
index 2346ef2..0000000
--- a/magnifier/magnifier-private.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef MAGNIFIER_PRIVATE_H_
-#define MAGNIFIER_PRIVATE_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <X11/Xlib.h>
-#include <gtk/gtkwindow.h>
-
-struct _MagnifierPrivate {
- GtkWidget *w;
- GtkWidget *canvas;
- GdkWindow *root;
- GdkWindow *overlay;
- GdkPixmap *source_drawable;
- GdkDrawable *cursor;
- int cursor_default_size_x;
- int cursor_default_size_y;
- gboolean crosswire;
- GdkBitmap *cursor_mask;
- int cursor_x;
- int cursor_y;
- int cursor_hotspot_x;
- int cursor_hotspot_y;
- gboolean use_source_cursor;
- GHashTable *cursorlist;
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* MAGNIFIER_PRIVATE_H_ */
diff --git a/magnifier/magnifier.c b/magnifier/magnifier.c
deleted file mode 100644
index 69cdaaa..0000000
--- a/magnifier/magnifier.c
+++ /dev/null
@@ -1,1875 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include "magnifier.h"
-#include "magnifier-private.h"
-#include "zoom-region.h"
-#include "zoom-region-private.h"
-#include "gmag-events.h"
-#include "GNOME_Magnifier.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <strings.h>
-
-#include <X11/Xatom.h>
-#ifdef HAVE_XFIXES
-#include <X11/extensions/Xfixes.h>
-#ifdef HAVE_COMPOSITE
-#include <X11/extensions/shape.h>
-#include <X11/extensions/Xcomposite.h>
-#endif /* HAVE_COMPOSITE */
-#endif /* HAVE_XFIXES */
-
-#include <libbonobo.h>
-#include <login-helper/login-helper.h>
-
-#include <gdk-pixbuf/gdk-pixbuf-io.h>
-#include <gdk/gdkx.h>
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
-
-/* if you #define this, don't forget to set MAG_CLIENT_DEBUG env variable */
-#define DEBUG_CLIENT_CALLS
-
-#ifdef DEBUG_CLIENT_CALLS
-static gboolean client_debug = FALSE;
-#define DBG(a) if (client_debug) { (a); }
-#else
-#define DBG(a)
-#endif
-
-typedef struct
-{
- LoginHelper parent;
- Magnifier *mag;
-} MagLoginHelper;
-
-typedef struct
-{
- LoginHelperClass parent_class;
-} MagLoginHelperClass;
-
-static GObjectClass *parent_class = NULL;
-
-enum {
- STRUT_LEFT = 0,
- STRUT_RIGHT = 1,
- STRUT_TOP = 2,
- STRUT_BOTTOM = 3,
- STRUT_LEFT_START = 4,
- STRUT_LEFT_END = 5,
- STRUT_RIGHT_START = 6,
- STRUT_RIGHT_END = 7,
- STRUT_TOP_START = 8,
- STRUT_TOP_END = 9,
- STRUT_BOTTOM_START = 10,
- STRUT_BOTTOM_END = 11
-};
-
-enum {
- MAGNIFIER_SOURCE_DISPLAY_PROP,
- MAGNIFIER_TARGET_DISPLAY_PROP,
- MAGNIFIER_SOURCE_SIZE_PROP,
- MAGNIFIER_TARGET_SIZE_PROP,
- MAGNIFIER_CURSOR_SET_PROP,
- MAGNIFIER_CURSOR_SIZE_PROP,
- MAGNIFIER_CURSOR_ZOOM_PROP,
- MAGNIFIER_CURSOR_COLOR_PROP,
- MAGNIFIER_CURSOR_HOTSPOT_PROP,
- MAGNIFIER_CURSOR_DEFAULT_SIZE_PROP,
- MAGNIFIER_CROSSWIRE_SIZE_PROP,
- MAGNIFIER_CROSSWIRE_CLIP_PROP,
- MAGNIFIER_CROSSWIRE_COLOR_PROP
-} PropIdx;
-
-typedef struct
-{
- GNOME_Magnifier_RectBounds rectbounds;
- GNOME_Magnifier_RectBounds viewport;
- gboolean is_managed;
- gint scroll_policy;
- gfloat contrast;
- gfloat zx;
- gfloat zy;
- gint32 xalign;
- gint32 yalign;
- guint32 border_color;
- gint32 border_size;
- gchar *smoothing_type;
- gboolean inverse;
-
-} MagnifierZoomRegionSaveProps;
-
-#ifdef DEBUG_CLIENT_CALLS
-gchar* mag_prop_names[MAGNIFIER_CROSSWIRE_COLOR_PROP + 1] = {
- "SOURCE_DISPLAY",
- "TARGET_DISPLAY",
- "SOURCE_SIZE",
- "TARGET_SIZE",
- "CURSOR_SET",
- "CURSOR_SIZE",
- "CURSOR_ZOOM",
- "CURSOR_COLOR",
- "CURSOR_HOTSPOT",
- "CURSOR_DEFAULT_SIZE",
- "CROSSWIRE_SIZE",
- "CROSSWIRE_CLIP",
- "CROSSWIRE_COLOR"
-};
-#endif
-
-static int _x_error = 0;
-static Magnifier *_this_magnifier = NULL;
-extern gint fixes_event_base;
-
-static void magnifier_init_cursor_set (Magnifier *magnifier, gchar *cursor_set);
-static void magnifier_init_window (Magnifier *magnifier, GdkScreen *screen);
-static gboolean magnifier_check_set_struts (Magnifier *magnifier);
-static gboolean magnifier_reset_struts_at_idle (gpointer data);
-static void magnifier_init_window (Magnifier *magnifier, GdkScreen *screen);
-static void magnifier_adjust_source_size (Magnifier *magnifier);
-static gboolean _is_override_redirect = FALSE;
-
-static Window*
-mag_login_helper_get_raise_windows (LoginHelper *helper)
-{
- Window *mainwin = NULL;
- MagLoginHelper *mag_helper = (MagLoginHelper *) helper;
- Magnifier *magnifier = MAGNIFIER (mag_helper->mag);
-
- if (magnifier && magnifier->priv && magnifier->priv->w)
- {
- mainwin = g_new0 (Window, 2);
- mainwin[0] = GDK_WINDOW_XWINDOW (magnifier->priv->w->window);
- mainwin[1] = None;
- }
- return mainwin;
-}
-
-static LoginHelperDeviceReqFlags
-mag_login_helper_get_device_reqs (LoginHelper *helper)
-{
- /* means "don't grab the xserver or core pointer",
- and "we need to raise windows" */
-
- return LOGIN_HELPER_GUI_EVENTS |
- LOGIN_HELPER_POST_WINDOWS |
- LOGIN_HELPER_CORE_POINTER;
-}
-
-static gboolean
-mag_login_helper_set_safe (LoginHelper *helper, gboolean ignored)
-{
- return TRUE;
-}
-
-static void
-mag_login_helper_class_init (MagLoginHelperClass *klass)
-{
- LoginHelperClass *login_helper_class = LOGIN_HELPER_CLASS(klass);
- login_helper_class->get_raise_windows = mag_login_helper_get_raise_windows;
- login_helper_class->get_device_reqs = mag_login_helper_get_device_reqs;
- login_helper_class->set_safe = mag_login_helper_set_safe;
-}
-
-static void
-mag_login_helper_init (MagLoginHelper *helper)
-{
- helper->mag = NULL; /* we set this with mag_login_helper_set_magnifier */
-}
-
-static void
-mag_login_helper_set_magnifier (MagLoginHelper *helper, Magnifier *mag)
-{
- if (helper)
- helper->mag = mag;
-}
-
-BONOBO_TYPE_FUNC (MagLoginHelper,
- LOGIN_HELPER_TYPE,
- mag_login_helper)
-
-gboolean
-magnifier_error_check (void)
-{
- if (_x_error) {
- _x_error = 0;
- return TRUE;
- }
- return FALSE;
-}
-
-static int
-magnifier_x_error_handler (Display *display,
- XErrorEvent *error)
-{
- if (error->error_code == BadAlloc) {
- _x_error = error->error_code;
- }
- else {
- return -1;
- }
- return 0;
-}
-
-static gboolean
-can_open_display (gchar *display_name)
-{
- Display *d;
- if ((d = XOpenDisplay (display_name)))
- {
- XCloseDisplay (d);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-magnifier_warp_cursor_to_screen (Magnifier *magnifier)
-{
- int x, y, unused_x, unused_y;
- unsigned int mask;
- Window root_return, child_return;
-
- if (magnifier->source_display)
- {
- if (!XQueryPointer (GDK_DISPLAY_XDISPLAY (magnifier->source_display),
- GDK_WINDOW_XWINDOW (magnifier->priv->root),
- &root_return,
- &child_return,
- &x, &y,
- &unused_x, &unused_y,
- &mask))
- {
- XWarpPointer (GDK_DISPLAY_XDISPLAY (magnifier->source_display),
- None,
- GDK_WINDOW_XWINDOW (magnifier->priv->root),
- 0, 0, 0, 0,
- x, y);
- XSync (GDK_DISPLAY_XDISPLAY (magnifier->source_display), FALSE);
- }
- }
-}
-
-static void
-magnifier_zoom_regions_mark_dirty (Magnifier *magnifier, GNOME_Magnifier_RectBounds rect_bounds)
-{
- GList *list;
-
- g_assert (magnifier);
-
- list = magnifier->zoom_regions;
- while (list)
- {
- /* propagate the expose events to the zoom regions */
- GNOME_Magnifier_ZoomRegion zoom_region;
- CORBA_Environment ev;
- zoom_region = list->data;
- CORBA_exception_init (&ev);
- if (zoom_region)
- GNOME_Magnifier_ZoomRegion_markDirty (CORBA_Object_duplicate (zoom_region, &ev),
- &rect_bounds,
- &ev);
- list = g_list_next (list);
- }
-}
-
-void
-magnifier_set_cursor_from_pixbuf (Magnifier *magnifier, GdkPixbuf *cursor_pixbuf)
-{
- GdkPixmap *pixmap, *mask;
- gint width, height;
- GdkGC *gc;
- GdkDrawable *drawable = magnifier->priv->w->window;
-
- if (magnifier->priv->cursor) {
- g_object_unref (magnifier->priv->cursor);
- magnifier->priv->cursor = NULL;
- }
- if (drawable && cursor_pixbuf)
- {
- const gchar *xhot_string = NULL, *yhot_string = NULL;
- width = gdk_pixbuf_get_width (cursor_pixbuf);
- height = gdk_pixbuf_get_height (cursor_pixbuf);
- pixmap = gdk_pixmap_new (drawable, width, height, -1);
- gc = gdk_gc_new (pixmap);
- if (GDK_IS_DRAWABLE (pixmap))
- gdk_draw_pixbuf (pixmap, gc, cursor_pixbuf, 0, 0, 0, 0,
- width, height,
- GDK_RGB_DITHER_NONE, 0, 0);
- else
- DBG (g_warning ("empty cursor pixmap created."));
- mask = gdk_pixmap_new (drawable, width, height, 1);
- gdk_pixbuf_render_threshold_alpha (cursor_pixbuf, mask, 0, 0, 0, 0,
- width, height,
- 200);
- g_object_unref (gc);
- magnifier->priv->cursor = pixmap;
- magnifier->priv->cursor_mask = mask;
- xhot_string = gdk_pixbuf_get_option (cursor_pixbuf,"x_hot");
- yhot_string = gdk_pixbuf_get_option (cursor_pixbuf,"y_hot");
- if (xhot_string) magnifier->cursor_hotspot.x = atoi (xhot_string);
- if (yhot_string) magnifier->cursor_hotspot.y = atoi (yhot_string);
-
- if (pixmap) {
- gdk_drawable_get_size (pixmap,
- &magnifier->priv->cursor_default_size_x,
- &magnifier->priv->cursor_default_size_y);
- magnifier->priv->cursor_hotspot_x = magnifier->cursor_hotspot.x;
- magnifier->priv->cursor_hotspot_y = magnifier->cursor_hotspot.y;
- }
- }
-}
-
-
-GdkPixbuf *
-magnifier_get_pixbuf_for_name (Magnifier *magnifier, const gchar *cursor_name)
-{
- GdkPixbuf *retval = NULL;
- if (magnifier->priv->cursorlist)
- retval = g_hash_table_lookup (magnifier->priv->cursorlist, cursor_name);
- if (retval)
- g_object_ref (retval);
- return retval;
-}
-
-void
-magnifier_set_cursor_pixmap_by_name (Magnifier *magnifier,
- const gchar *cursor_name,
- gboolean source_fallback)
-{
- GdkPixbuf *pixbuf;
- /* search local table; if not found, use source screen's cursor if source_fallback is TRUE */
- if ((pixbuf = magnifier_get_pixbuf_for_name (magnifier, cursor_name)) == NULL) {
-#ifndef HAVE_XFIXES
- source_fallback = FALSE;
-#endif
- if (source_fallback == TRUE)
- {
- pixbuf = gmag_events_get_source_pixbuf (magnifier);
- }
- else
- {
- pixbuf = magnifier_get_pixbuf_for_name (magnifier, "default");
- }
- }
- magnifier_set_cursor_from_pixbuf (magnifier, pixbuf);
- if (pixbuf) g_object_unref (pixbuf);
-}
-
-void
-magnifier_notify_damage (Magnifier *magnifier, XRectangle *rect)
-{
- GNOME_Magnifier_RectBounds rect_bounds;
- rect_bounds.x1 = rect->x;
- rect_bounds.y1 = rect->y;
- rect_bounds.x2 = rect->x + rect->width;
- rect_bounds.y2 = rect->y + rect->height;
-#undef DEBUG_DAMAGE
-#ifdef DEBUG_DAMAGE
- g_message ("damage");
- g_message ("dirty %d, %d to %d, %d", rect_bounds.x1, rect_bounds.y1, rect_bounds.x2, rect_bounds.y2);
-#endif
- magnifier_zoom_regions_mark_dirty (magnifier, rect_bounds);
-}
-
-static void
-magnifier_set_extension_listeners (Magnifier *magnifier, GdkWindow *root)
-{
- gmag_events_client_init (magnifier);
- magnifier->source_initialized = TRUE;
-}
-
-static void
-magnifier_size_allocate (GtkWidget *widget)
-{
- magnifier_check_set_struts (_this_magnifier);
-}
-
-static void
-magnifier_realize (GtkWidget *widget)
-{
- XWMHints wm_hints;
- Atom wm_window_protocols[2];
- Atom wm_type_atoms[1];
- Atom net_wm_window_type;
- GdkDisplay *target_display = gdk_drawable_get_display (widget->window);
-
- static gboolean initialized = FALSE;
-
-#ifndef MAG_WINDOW_OVERRIDE_REDIRECT
- if (!initialized) {
- wm_window_protocols[0] = gdk_x11_get_xatom_by_name_for_display (target_display,
- "WM_DELETE_WINDOW");
- wm_window_protocols[1] = gdk_x11_get_xatom_by_name_for_display (target_display,
- "_NET_WM_PING");
- /* use DOCK until Metacity RFE for new window type goes in */
- wm_type_atoms[0] = gdk_x11_get_xatom_by_name_for_display (target_display,
- "_NET_WM_WINDOW_TYPE_DOCK");
- }
-
- wm_hints.flags = InputHint;
- wm_hints.input = False;
-
- XSetWMHints (GDK_WINDOW_XDISPLAY (widget->window),
- GDK_WINDOW_XWINDOW (widget->window), &wm_hints);
-
- XSetWMProtocols (GDK_WINDOW_XDISPLAY (widget->window),
- GDK_WINDOW_XWINDOW (widget->window), wm_window_protocols, 2);
-
- net_wm_window_type = gdk_x11_get_xatom_by_name_for_display
- (target_display, "_NET_WM_WINDOW_TYPE");
-
- if (net_wm_window_type && wm_type_atoms[0])
- XChangeProperty (GDK_WINDOW_XDISPLAY (widget->window),
- GDK_WINDOW_XWINDOW (widget->window),
- net_wm_window_type,
- XA_ATOM, 32, PropModeReplace,
- (guchar *)wm_type_atoms,
- 1);
-#else
-#endif
- /* TODO: make sure this works/is reset if the DISPLAY
- * (as well as the SCREEN) changes.
- */
-
- XSetErrorHandler (magnifier_x_error_handler);
-}
-
-GdkWindow*
-magnifier_get_root (Magnifier *magnifier)
-{
- if (!magnifier->priv->root && magnifier->source_display) {
- magnifier->priv->root = gdk_screen_get_root_window (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
- }
- return magnifier->priv->root;
-}
-
-static gint
-magnifier_parse_display_name (Magnifier *magnifier, gchar *full_display_string,
- gchar **display_name)
-{
- gchar *screen_ptr;
- gchar **strings;
-
- if (display_name != NULL) {
- strings = g_strsplit (full_display_string, ":", 2);
- *display_name = strings [0];
- if (strings [1] != NULL)
- g_free (strings [1]);
- }
-
- screen_ptr = rindex (full_display_string, '.');
- if (screen_ptr != NULL) {
- return (gint) strtol (++screen_ptr, NULL, 10);
- }
- return 0;
-}
-
-static void
-magnifier_get_display_rect_bounds (Magnifier *magnifier, GNOME_Magnifier_RectBounds *rect_bounds, gboolean is_target)
-{
- if (is_target)
- {
- rect_bounds->x1 = 0;
- rect_bounds->x2 = gdk_screen_get_width (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
- rect_bounds->y1 = 0;
- rect_bounds->y2 = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
-
- }
- else
- {
- rect_bounds->x1 = 0;
- rect_bounds->x2 = gdk_screen_get_width (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
- rect_bounds->y1 = 0;
- rect_bounds->y2 = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
-
- }
-}
-
-static void
-magnifier_adjust_source_size (Magnifier *magnifier)
-{
- GNOME_Magnifier_RectBounds rect_bounds;
- gdouble vfract_top, vfract_bottom, hfract_left, hfract_right;
- magnifier_get_display_rect_bounds (magnifier, &rect_bounds, FALSE);
- hfract_left = (double) (magnifier->target_bounds.x1) / (double) rect_bounds.x2;
- vfract_top = (double) (magnifier->target_bounds.y1) / (double) rect_bounds.y2;
- hfract_right = (double) (rect_bounds.x2 - magnifier->target_bounds.x2) / (double) rect_bounds.x2;
- vfract_bottom = (double) (rect_bounds.y2 - magnifier->target_bounds.y2) / (double) rect_bounds.y2;
- /* we make our 'source' rectangle the largest available subsection which we aren't occupying */
-#ifdef HAVE_COMPOSITE
- if (!g_getenv ("MAGNIFIER_IGNORE_COMPOSITE")) {
- magnifier->source_bounds = rect_bounds;
- } else
-#endif
- if (MAX (hfract_left, hfract_right) > MAX (vfract_top, vfract_bottom)) /* vertical split, approximately */
- {
- if (hfract_right > hfract_left) {
- magnifier->source_bounds.x1 = magnifier->target_bounds.x2;
- magnifier->source_bounds.x2 = rect_bounds.x2;
- }
- else
- {
- magnifier->source_bounds.x1 = rect_bounds.x1;
- magnifier->source_bounds.x2 = magnifier->target_bounds.x1;
- }
- magnifier->source_bounds.y1 = rect_bounds.y1;
- magnifier->source_bounds.y2 = rect_bounds.y2;
- }
- else /* more-or-less horizontally split */
- {
- if (vfract_bottom > vfract_top) {
- magnifier->source_bounds.y1 = magnifier->target_bounds.y2;
- magnifier->source_bounds.y2 = rect_bounds.y2;
- }
- else
- {
- magnifier->source_bounds.y1 = rect_bounds.y1;
- magnifier->source_bounds.y2 = magnifier->target_bounds.y1;
- }
- magnifier->source_bounds.x1 = rect_bounds.x1;
- magnifier->source_bounds.x2 = rect_bounds.x2;
- }
- g_message ("set source bounds to %d,%d; %d,%d",
- magnifier->source_bounds.x1, magnifier->source_bounds.y1, magnifier->source_bounds.x2, magnifier->source_bounds.y2);
-}
-
-static void
-magnifier_unref_zoom_region (gpointer data, gpointer user_data)
-{
-/* Magnifier *magnifier = user_data; NOT USED */
- CORBA_Environment ev;
- GNOME_Magnifier_ZoomRegion zoom_region = data;
- CORBA_exception_init (&ev);
-
- DBG(g_message ("unreffing zoom region"));
-
- GNOME_Magnifier_ZoomRegion_dispose (zoom_region, &ev);
- if (!BONOBO_EX (&ev))
- Bonobo_Unknown_unref (zoom_region, &ev);
-}
-
-static GSList*
-magnifier_zoom_regions_save (Magnifier *magnifier)
-{
- GList *list;
- GSList *save_props = NULL;
-
- g_assert (magnifier);
- list = magnifier->zoom_regions;
-
- DBG(g_message ("saving %d regions", g_list_length (list)));
-
- while (list)
- {
- GNOME_Magnifier_ZoomRegion zoom_region;
- CORBA_Environment ev;
- zoom_region = list->data;
- CORBA_exception_init (&ev);
- if (zoom_region)
- {
- Bonobo_PropertyBag properties;
- CORBA_any *value;
- MagnifierZoomRegionSaveProps *zoomer_props = g_new0 (MagnifierZoomRegionSaveProps, 1);
-
- zoomer_props->rectbounds = GNOME_Magnifier_ZoomRegion_getROI (zoom_region, &ev);
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- value = bonobo_pbclient_get_value (properties, "viewport", TC_GNOME_Magnifier_RectBounds, &ev);
- memcpy (&zoomer_props->viewport, value->_value, sizeof (GNOME_Magnifier_RectBounds));
- CORBA_free (value);
- zoomer_props->is_managed = bonobo_pbclient_get_boolean (properties, "is-managed", NULL);
- zoomer_props->scroll_policy = bonobo_pbclient_get_short (properties, "smooth-scroll-policy", NULL);
- zoomer_props->contrast = bonobo_pbclient_get_float (properties, "contrast", NULL);
- zoomer_props->zx = bonobo_pbclient_get_float (properties, "mag-factor-x", NULL);
- zoomer_props->zy = bonobo_pbclient_get_float (properties, "mag-factor-y", NULL);
- zoomer_props->xalign = bonobo_pbclient_get_long (properties, "x-alignment", NULL);
- zoomer_props->yalign = bonobo_pbclient_get_long (properties, "y-alignment", NULL);
- zoomer_props->border_color = bonobo_pbclient_get_long (properties, "border-color", NULL);
- zoomer_props->border_size = bonobo_pbclient_get_long (properties, "border-size", NULL);
- zoomer_props->smoothing_type = bonobo_pbclient_get_string (properties, "smoothing-type", NULL);
- zoomer_props->inverse = bonobo_pbclient_get_boolean (properties, "inverse-video", NULL);
-
- bonobo_object_release_unref (properties, &ev);
- magnifier_unref_zoom_region ((gpointer) zoom_region, NULL);
- save_props = g_slist_append (save_props, zoomer_props);
- }
- list = g_list_next (list);
- }
-
- magnifier->zoom_regions = NULL;
-
- return save_props;
-}
-
-static void
-magnifier_zoom_regions_restore (Magnifier *magnifier, GSList *region_params)
-{
- GSList *list = region_params;
-
- while (list)
- {
- CORBA_Environment ev;
- MagnifierZoomRegionSaveProps *zoomer_props = list->data;
- GNOME_Magnifier_ZoomRegion new_region;
- Bonobo_PropertyBag new_properties;
-
- CORBA_exception_init (&ev);
- new_region = GNOME_Magnifier_Magnifier_createZoomRegion (BONOBO_OBJREF (magnifier), zoomer_props->zx, zoomer_props->zy, &zoomer_props->rectbounds, &zoomer_props->viewport, &ev);
- new_properties = GNOME_Magnifier_ZoomRegion_getProperties (new_region, &ev);
- bonobo_pbclient_set_boolean (new_properties, "is-managed",
- zoomer_props->is_managed, NULL);
- bonobo_pbclient_set_short (new_properties, "smooth-scroll-policy",
- zoomer_props->scroll_policy, NULL);
- bonobo_pbclient_set_float (new_properties, "contrast",
- zoomer_props->contrast, NULL);
-/* NOT YET USED
- bonobo_pbclient_set_long (new_properties, "x-alignment",
- zoomer_props->xalign, NULL);
- bonobo_pbclient_set_long (new_properties, "y-alignment",
- zoomer_props->yalign, NULL);
-*/
- bonobo_pbclient_set_long (new_properties, "border-color",
- zoomer_props->border_color, NULL);
- bonobo_pbclient_set_long (new_properties, "border-size",
- zoomer_props->border_size, NULL);
- bonobo_pbclient_set_string (new_properties, "smoothing-type",
- zoomer_props->smoothing_type, NULL);
- bonobo_pbclient_set_boolean (new_properties, "inverse-video",
- zoomer_props->inverse, NULL);
- GNOME_Magnifier_Magnifier_addZoomRegion (BONOBO_OBJREF (magnifier), new_region, &ev);
- g_free (zoomer_props->smoothing_type);
- g_free (zoomer_props);
- bonobo_object_release_unref (new_properties, &ev);
- list = g_slist_next (list);
- }
- g_slist_free (region_params);
-}
-
-static void
-magnifier_init_display (Magnifier *magnifier, gchar *display_name, gboolean is_target)
-{
- if (!can_open_display (display_name))
- return;
-
- if (is_target)
- {
- magnifier->target_screen_num =
- magnifier_parse_display_name (magnifier,
- display_name,
- NULL);
- magnifier->target_display =
- gdk_display_open (display_name);
- if (magnifier->target_display_name) g_free (magnifier->target_display_name);
- magnifier->target_display_name = g_strdup (display_name);
- magnifier->priv->root =
- gdk_screen_get_root_window (
- gdk_display_get_screen (
- magnifier->target_display,
- magnifier->target_screen_num));
- }
- else
- {
- magnifier->source_screen_num =
- magnifier_parse_display_name (magnifier,
- display_name,
- NULL);
- magnifier->source_display =
- gdk_display_open (display_name);
- if (magnifier->source_display)
- {
- if (magnifier->source_display_name) g_free (magnifier->source_display_name);
- magnifier->source_display_name = g_strdup (display_name);
- magnifier->priv->root =
- gdk_screen_get_root_window (
- gdk_display_get_screen (
- magnifier->source_display,
- magnifier->source_screen_num));
- }
- }
-}
-
-static void
-magnifier_exit (GtkObject *object)
-{
- gtk_main_quit ();
- exit (0);
-}
-
-#define GET_PIXEL(a,i,j,s,b) \
-(*(guint32 *)(memcpy (b,(a) + ((j) * s + (i) * pixel_size_t), pixel_size_t)))
-
-#define PUT_PIXEL(a,i,j,s,b) \
-(memcpy (a + ((j) * s + (i) * pixel_size_t), &(b), pixel_size_t))
-
-static void
-magnifier_recolor_pixbuf (Magnifier *magnifier, GdkPixbuf *pixbuf)
-{
- int rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- int i, j;
- int w = gdk_pixbuf_get_width (pixbuf);
- int h = gdk_pixbuf_get_height (pixbuf);
- guchar *pixels = gdk_pixbuf_get_pixels (pixbuf);
- guint32 pixval = 0, cursor_color = 0;
- size_t pixel_size_t = 3; /* FIXME: invalid assumption ? */
-
- cursor_color = ((magnifier->cursor_color & 0xFF0000) >> 16) +
- (magnifier->cursor_color & 0x00FF00) +
- ((magnifier->cursor_color & 0x0000FF) << 16);
- for (j = 0; j < h; ++j) {
- for (i = 0; i < w; ++i) {
- pixval = GET_PIXEL (pixels, i, j, rowstride, &pixval);
- if ((pixval & 0x808080) == 0)
- {
- pixval = cursor_color;
- PUT_PIXEL (pixels, i, j, rowstride,
- pixval);
- }
- }
- }
-}
-
-void
-magnifier_transform_cursor (Magnifier *magnifier)
-{
- if (magnifier->priv->cursor) /* don't do this if cursor isn't intialized yet */
- {
- int width, height;
- int size_x, size_y;
- GdkPixbuf *scaled_cursor_pixbuf;
- GdkPixbuf *scaled_mask_pixbuf;
- GdkPixbuf *scaled_mask_pixbuf_alpha;
- GdkPixbuf *cursor_pixbuf;
- GdkPixbuf *mask_pixbuf;
- GdkPixmap *cursor_pixmap = magnifier->priv->cursor;
- GdkPixmap *mask_pixmap = magnifier->priv->cursor_mask;
- GdkGC *cgc;
- GdkGC *mgc;
-
- if (magnifier->cursor_size_x)
- {
- size_x = magnifier->cursor_size_x;
- size_y = magnifier->cursor_size_y;
- }
- else
- {
- size_x = magnifier->priv->cursor_default_size_x *
- magnifier->cursor_scale_factor;
- size_y = magnifier->priv->cursor_default_size_y *
- magnifier->cursor_scale_factor;
- }
- gdk_drawable_get_size (magnifier->priv->cursor, &width, &height);
- if ((size_x == width) && (size_y == height)
- && (magnifier->cursor_color == 0xFF000000)) {
- return; /* nothing changes */
- }
- cgc = gdk_gc_new (cursor_pixmap);
- mgc = gdk_gc_new (mask_pixmap);
- cursor_pixbuf = gdk_pixbuf_get_from_drawable (NULL, cursor_pixmap,
- NULL, 0, 0, 0, 0,
- width, height);
- if (magnifier->cursor_color != 0xFF000000)
- magnifier_recolor_pixbuf (magnifier, cursor_pixbuf);
- mask_pixbuf = gdk_pixbuf_get_from_drawable (NULL,
- mask_pixmap,
- NULL, 0, 0, 0, 0,
- width, height);
- scaled_cursor_pixbuf = gdk_pixbuf_scale_simple (
- cursor_pixbuf, size_x, size_y, GDK_INTERP_NEAREST);
-
- magnifier->cursor_hotspot.x = magnifier->priv->cursor_hotspot_x * size_x
- / magnifier->priv->cursor_default_size_x;
- magnifier->cursor_hotspot.y = magnifier->priv->cursor_hotspot_y * size_y
- / magnifier->priv->cursor_default_size_y;
-
- scaled_mask_pixbuf = gdk_pixbuf_scale_simple (
- mask_pixbuf, size_x, size_y, GDK_INTERP_NEAREST);
- g_object_unref (cursor_pixbuf);
- g_object_unref (mask_pixbuf);
- g_object_unref (cursor_pixmap);
- g_object_unref (mask_pixmap);
- magnifier->priv->cursor = gdk_pixmap_new (
- magnifier->priv->w->window,
- size_x, size_y,
- -1);
- if (!GDK_IS_DRAWABLE (magnifier->priv->cursor))
- {
- DBG (g_warning ("NULL magnifier cursor pixmap."));
- return;
- }
- magnifier->priv->cursor_mask = gdk_pixmap_new (
- magnifier->priv->w->window,
- size_x, size_y,
- 1);
- if (GDK_IS_DRAWABLE (magnifier->priv->cursor)) {
- gdk_draw_pixbuf (magnifier->priv->cursor,
- cgc,
- scaled_cursor_pixbuf,
- 0, 0, 0, 0, size_x, size_y,
- GDK_RGB_DITHER_NONE, 0, 0 );
- }
- else
- DBG (g_warning ("cursor pixmap is non-drawable."));
- scaled_mask_pixbuf_alpha = gdk_pixbuf_add_alpha (
- scaled_mask_pixbuf, True, 0, 0, 0);
- gdk_pixbuf_render_threshold_alpha (scaled_mask_pixbuf_alpha,
- magnifier->priv->cursor_mask,
- 0, 0, 0, 0, size_x, size_y,
- 0x80);
- g_object_unref (scaled_mask_pixbuf_alpha);
- g_object_unref (scaled_cursor_pixbuf);
- g_object_unref (scaled_mask_pixbuf);
- g_object_unref (mgc);
- g_object_unref (cgc);
- }
-}
-
-static void
-magnifier_init_cursor_set (Magnifier *magnifier, gchar *cursor_set)
-{
- /*
- * we check the cursor-set property string here,
- * and create/apply the appropriate cursor settings
- */
- magnifier->cursor_set = cursor_set;
-#ifdef HAVE_XFIXES
- magnifier->priv->use_source_cursor =
- (!strcmp (cursor_set, "default") &&
- (fixes_event_base != 0));
-#else
- magnifier->priv->use_source_cursor = FALSE;
-#endif
- if (magnifier->priv->use_source_cursor) return;
-
- if (!strcmp (magnifier->cursor_set, "none")) {
- magnifier->priv->cursor = NULL;
- return;
- }
- else
- {
- GDir *cursor_dir;
- const gchar *filename;
- gchar *cursor_dirname;
-
- if (magnifier->priv->cursorlist)
- {
- g_hash_table_destroy (magnifier->priv->cursorlist);
- }
- magnifier->priv->cursorlist = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, g_object_unref);
-
- cursor_dirname = g_strconcat (CURSORSDIR, "/", magnifier->cursor_set, NULL);
- cursor_dir = g_dir_open (cursor_dirname, 0, NULL);
- /* assignment, not comparison, is intentional */
- while (cursor_dir && (filename = g_dir_read_name (cursor_dir)) != NULL)
- {
- if (filename)
- {
- gchar *path = g_strconcat (cursor_dirname, "/", filename, NULL);
- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (path, NULL);
- if (pixbuf)
- {
- /* add this pixbuf and its name to our list */
- gchar **sv, *cname;
- cname = g_path_get_basename (filename);
- sv = g_strsplit (cname, ".", 2);
- g_hash_table_insert (magnifier->priv->cursorlist,
- g_strdup (sv[0]),
- pixbuf);
- g_free (cname);
- g_strfreev (sv);
- }
- g_free (path);
- }
- }
- g_free (cursor_dirname);
- if (cursor_dir) g_dir_close (cursor_dir);
- }
- /* don't fallover to source cursor here, we haven't initialized X yet */
- magnifier_set_cursor_pixmap_by_name (magnifier, "default", FALSE);
- magnifier_transform_cursor (magnifier);
-}
-
-static gboolean
-magnifier_reset_overlay_at_idle (gpointer data)
-{
-#ifdef HAVE_COMPOSITE
- if (!g_getenv ("MAGNIFIER_IGNORE_COMPOSITE")) {
- if (data) {
- Magnifier *magnifier = MAGNIFIER (data);
- if (magnifier->priv &&
- GTK_WIDGET_REALIZED (magnifier->priv->w))
- if (magnifier->priv->w->window) {
-#ifdef HAVE_OVERLAY
- gint x, y, over_w, over_h;
-
- magnifier->priv->overlay = gdk_window_foreign_new (XCompositeGetOverlayWindow (GDK_WINDOW_XDISPLAY (magnifier->priv->w->window), GDK_WINDOW_XID (magnifier->priv->root)));
- gdk_window_get_position (
- magnifier->priv->w->window,
- &x, &y);
- gdk_drawable_get_size (
- magnifier->priv->w->window,
- &over_w, &over_h);
- gdk_window_move_resize (
- magnifier->priv->overlay,
- x, y, over_w, over_h);
- gdk_window_reparent (
- magnifier->priv->w->window,
- magnifier->priv->overlay,
- 0, 0);
-#ifdef HAVE_SHAPEINPUT
- XShapeCombineRectangles (GDK_WINDOW_XDISPLAY (magnifier->priv->w->window), GDK_WINDOW_XID (magnifier->priv->overlay), ShapeInput, 0, 0, NULL, 0, ShapeSet, YXBanded);
-#endif /* HAVE_SHAPEINPUT */
-#else
-#ifdef HAVE_SHAPEINPUT
- XShapeCombineRectangles (GDK_WINDOW_XDISPLAY (magnifier->priv->w->window), GDK_WINDOW_XID (magnifier->priv->w->window), ShapeInput, 0, 0, NULL, 0, ShapeSet, YXBanded);
-#endif /* HAVE_SHAPEINPUT */
-#endif /* HAVE_OVERLAY */
- return FALSE;
- }
- }
- } else
- return FALSE;
- return TRUE;
-#endif
- return FALSE;
-}
-
-static gboolean
-magnifier_reset_struts_at_idle (gpointer data)
-{
- if (data)
- {
- Magnifier *magnifier = MAGNIFIER (data);
- if (magnifier->priv && GTK_WIDGET_REALIZED (magnifier->priv->w) &&
- magnifier_check_set_struts (magnifier))
- {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-static gboolean
-magnifier_check_set_struts (Magnifier *magnifier)
-{
-#ifdef HAVE_COMPOSITE
- if (!g_getenv ("MAGNIFIER_IGNORE_COMPOSITE"))
- return TRUE;
-#endif
-
- if (magnifier &&
- magnifier->priv && magnifier->priv->w && GTK_WIDGET_REALIZED (magnifier->priv->w) &&
- magnifier->priv->w->window)
- {
- Atom atom_strut = gdk_x11_get_xatom_by_name ("_NET_WM_STRUT");
- Atom atom_strut_partial = gdk_x11_get_xatom_by_name ("_NET_WM_STRUT_PARTIAL");
- guint32 struts[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- GtkWidget *widget = magnifier->priv->w;
- gint width = gdk_screen_get_width (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
- gint height = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
-
- gint right_margin, left_margin, top_margin, bottom_margin;
- gint wx, wy, ww, wh;
-
- gtk_window_get_position (GTK_WINDOW (magnifier->priv->w), &wx, &wy);
- gtk_window_get_size (GTK_WINDOW (magnifier->priv->w), &ww, &wh);
-
- left_margin = wx;
- right_margin = (width - ww) - wx;
- top_margin = wy;
- bottom_margin = (height - wh) - wy;
-
- /* set the WM_STRUT properties on the appropriate side */
- if (bottom_margin > top_margin &&
- bottom_margin > left_margin &&
- bottom_margin > right_margin)
- {
- struts[STRUT_TOP] = wh + wy;
- struts[STRUT_TOP_START] = wx;
- struts[STRUT_TOP_END] = wx + ww;
- }
- else if (top_margin > bottom_margin &&
- top_margin > left_margin &&
- top_margin > right_margin)
- {
- struts[STRUT_BOTTOM] = height - wy;
- struts[STRUT_BOTTOM_START] = wx;
- struts[STRUT_BOTTOM_END] = wx + ww;
- }
- else if (right_margin > left_margin &&
- right_margin > top_margin &&
- right_margin > bottom_margin)
- {
- struts[STRUT_LEFT] = wx;
- struts[STRUT_LEFT_START] = wy;
- struts[STRUT_LEFT_END] = wh + wy;
- }
- else
- {
- struts[STRUT_RIGHT] = width - wx;
- struts[STRUT_RIGHT_START] = wy;
- struts[STRUT_RIGHT_END] = wy + wh;
- }
-
- gdk_error_trap_push ();
- XChangeProperty (GDK_WINDOW_XDISPLAY (widget->window),
- GDK_WINDOW_XWINDOW (widget->window),
- atom_strut,
- XA_CARDINAL, 32, PropModeReplace,
- (guchar *) &struts, 4);
- XChangeProperty (GDK_WINDOW_XDISPLAY (widget->window),
- GDK_WINDOW_XWINDOW (widget->window),
- atom_strut_partial,
- XA_CARDINAL, 32, PropModeReplace,
- (guchar *) &struts, 12);
- gdk_error_trap_pop ();
-
-#ifdef DEBUG_STRUTS
- g_message ("struts TOP %d (%d - %d)", struts[STRUT_TOP], struts[STRUT_TOP_START], struts[STRUT_TOP_END]);
- g_message ("struts BOTTOM %d (%d - %d)", struts[STRUT_BOTTOM], struts[STRUT_BOTTOM_START], struts[STRUT_BOTTOM_END]);
- g_message ("struts LEFT %d (%d - %d)", struts[STRUT_LEFT], struts[STRUT_LEFT_START], struts[STRUT_LEFT_END]);
- g_message ("struts RIGHT %d (%d - %d)", struts[STRUT_RIGHT], struts[STRUT_RIGHT_START], struts[STRUT_RIGHT_END]);
-#endif
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-magnifier_get_property (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- Magnifier *magnifier = user_data;
- int csize = 0;
-
- DBG (fprintf (stderr, "Get property: \t%s\n", mag_prop_names[arg_id]));
-
- switch (arg_id) {
- case MAGNIFIER_SOURCE_SIZE_PROP:
- BONOBO_ARG_SET_GENERAL (arg, magnifier->source_bounds,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds, NULL);
- break;
- case MAGNIFIER_TARGET_SIZE_PROP:
- BONOBO_ARG_SET_GENERAL (arg, magnifier->target_bounds,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds, NULL);
-
- break;
- case MAGNIFIER_CURSOR_SET_PROP:
- BONOBO_ARG_SET_STRING (arg, magnifier->cursor_set);
- break;
- case MAGNIFIER_CURSOR_SIZE_PROP:
- BONOBO_ARG_SET_INT (arg, magnifier->cursor_size_x);
- BONOBO_ARG_SET_INT (arg, magnifier->cursor_size_y);
- break;
- case MAGNIFIER_CURSOR_ZOOM_PROP:
- BONOBO_ARG_SET_FLOAT (arg, magnifier->cursor_scale_factor);
- break;
- case MAGNIFIER_CURSOR_COLOR_PROP:
- BONOBO_ARG_SET_GENERAL (arg, magnifier->cursor_color,
- TC_CORBA_unsigned_long,
- CORBA_unsigned_long, NULL);
- break;
- case MAGNIFIER_CURSOR_HOTSPOT_PROP:
- BONOBO_ARG_SET_GENERAL (arg, magnifier->cursor_hotspot,
- TC_GNOME_Magnifier_Point,
- GNOME_Magnifier_Point, NULL);
-
- break;
- case MAGNIFIER_CURSOR_DEFAULT_SIZE_PROP:
- if (magnifier->priv->cursor)
- gdk_drawable_get_size (magnifier->priv->cursor,
- &csize, &csize);
- BONOBO_ARG_SET_INT (arg, csize);
- break;
- case MAGNIFIER_CROSSWIRE_SIZE_PROP:
- BONOBO_ARG_SET_INT (arg, magnifier->crosswire_size);
- break;
- case MAGNIFIER_CROSSWIRE_CLIP_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, magnifier->crosswire_clip);
- break;
- case MAGNIFIER_CROSSWIRE_COLOR_PROP:
- BONOBO_ARG_SET_LONG (arg, magnifier->crosswire_color);
- break;
- case MAGNIFIER_SOURCE_DISPLAY_PROP:
- BONOBO_ARG_SET_STRING (arg, magnifier->source_display_name);
- break;
- case MAGNIFIER_TARGET_DISPLAY_PROP:
- BONOBO_ARG_SET_STRING (arg, magnifier->target_display_name);
- break;
- default:
- bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
- };
-}
-
-static void
-magnifier_set_property (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- Magnifier *magnifier = user_data;
- gchar *full_display_string;
-
- switch (arg_id) {
- case MAGNIFIER_SOURCE_DISPLAY_PROP:
- full_display_string = BONOBO_ARG_GET_STRING (arg);
- if (can_open_display (full_display_string))
- {
- GSList *zoom_region_params = NULL;
- magnifier->source_screen_num =
- magnifier_parse_display_name (magnifier,
- full_display_string,
- NULL);
- magnifier->source_display =
- gdk_display_open (full_display_string);
- magnifier->source_display_name = g_strdup (full_display_string);
- zoom_region_params = magnifier_zoom_regions_save (magnifier);
- magnifier->priv->root =
- gdk_screen_get_root_window (
- gdk_display_get_screen (
- magnifier->source_display,
- magnifier->source_screen_num));
- /* attach listeners for DAMAGE, "dirty region", XFIXES cursor changes */
- magnifier_set_extension_listeners (magnifier, magnifier_get_root (magnifier));
- magnifier_get_display_rect_bounds (magnifier, &magnifier->source_bounds, FALSE);
- magnifier_zoom_regions_restore (magnifier, zoom_region_params);
- magnifier_warp_cursor_to_screen (magnifier);
- magnifier_check_set_struts (magnifier);
- }
- DBG(fprintf (stderr, "Set source display: \t%s\n", full_display_string));
- break;
- case MAGNIFIER_TARGET_DISPLAY_PROP:
- full_display_string = BONOBO_ARG_GET_STRING (arg);
- if (can_open_display (full_display_string))
- {
- magnifier->target_screen_num =
- magnifier_parse_display_name (magnifier,
- full_display_string,
- NULL);
- magnifier->target_display =
- gdk_display_open (full_display_string);
- magnifier->target_display_name = g_strdup (full_display_string);
- if (GTK_IS_WINDOW (magnifier->priv->w))
- {
-#ifdef REPARENT_GTK_WINDOW_WORKS
- gtk_window_set_screen (GTK_WINDOW (magnifier->priv->w),
- gdk_display_get_screen (
- magnifier->target_display,
- magnifier->target_screen_num));
-#else
- GSList *zoom_region_params = NULL;
- /* disconnect from the old window's destroy signal */
- g_object_disconnect (magnifier->priv->w,
- "any_signal::realize", magnifier_realize, NULL,
- "any_signal::size_allocate", magnifier_size_allocate, NULL,
- "any_signal::destroy", magnifier_exit, NULL,
- NULL);
- /* save the old zoom region state */
- zoom_region_params = magnifier_zoom_regions_save (magnifier);
- /* destroy the old window */
- gtk_widget_destroy (magnifier->priv->w);
- /* and re-initialize... */
- magnifier_init_window (magnifier, gdk_display_get_screen (
- magnifier->target_display,
- magnifier->target_screen_num));
- /* restore the zoom regions in their new host magnifier window */
- magnifier_zoom_regions_restore (magnifier, zoom_region_params);
-#endif
- }
- magnifier_get_display_rect_bounds (magnifier, &magnifier->source_bounds, FALSE);
- magnifier_init_cursor_set (magnifier, magnifier->cursor_set); /* needed to reset pixmaps */
- gtk_window_move (GTK_WINDOW (magnifier->priv->w),
- magnifier->target_bounds.x1,
- magnifier->target_bounds.y1);
-
- if ((magnifier->target_bounds.x2 - magnifier->target_bounds.x1 > 0) &&
- (magnifier->target_bounds.y2 - magnifier->target_bounds.y1) > 0)
- {
- gtk_window_resize (GTK_WINDOW (magnifier->priv->w),
- magnifier->target_bounds.x2 - magnifier->target_bounds.x1,
- magnifier->target_bounds.y2 - magnifier->target_bounds.y1);
- DBG(fprintf (stderr, "Set target size: \t%d,%d to %d,%d\n",
- magnifier->target_bounds.x1, magnifier->target_bounds.y1, magnifier->target_bounds.x2, magnifier->target_bounds.y2));
- }
- /* N. B. we don't reset the target bounds to the limits of the new display, because */
- /* doing so would override the client-specified magnifier size */
- /* magnifier_get_display_rect_bounds (magnifier, &magnifier->target_bounds, TRUE); */
- magnifier_check_set_struts (magnifier);
- }
- DBG(fprintf (stderr, "Set target display: \t%s (screen %d)\n",
- full_display_string, magnifier->target_screen_num));
- break;
- case MAGNIFIER_SOURCE_SIZE_PROP:
- magnifier->source_bounds = BONOBO_ARG_GET_GENERAL (arg,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds,
- NULL);
- DBG (fprintf (stderr, "Set source size: \t%d,%d to %d,%d\n",
- magnifier->source_bounds.x1, magnifier->source_bounds.y1, magnifier->source_bounds.x2, magnifier->source_bounds.y2));
- break;
- case MAGNIFIER_TARGET_SIZE_PROP:
- magnifier->target_bounds = BONOBO_ARG_GET_GENERAL (arg,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds,
- NULL);
- gtk_window_move (GTK_WINDOW (magnifier->priv->w),
- magnifier->target_bounds.x1,
- magnifier->target_bounds.y1);
-
- gtk_window_resize (GTK_WINDOW (magnifier->priv->w),
- magnifier->target_bounds.x2 - magnifier->target_bounds.x1,
- magnifier->target_bounds.y2 - magnifier->target_bounds.y1);
- magnifier_check_set_struts (magnifier);
- DBG(fprintf (stderr, "Set target size: \t%d,%d to %d,%d\n",
- magnifier->target_bounds.x1, magnifier->target_bounds.y1, magnifier->target_bounds.x2, magnifier->target_bounds.y2));
- if (!strcmp (magnifier->target_display_name, magnifier->source_display_name) &&
- (magnifier->target_screen_num == magnifier->source_screen_num))
- magnifier_adjust_source_size (magnifier);
- break;
- case MAGNIFIER_CURSOR_SET_PROP:
- magnifier_init_cursor_set (magnifier, g_strdup (BONOBO_ARG_GET_STRING (arg)));
- DBG (fprintf (stderr, "Setting cursor set: \t%s\n", BONOBO_ARG_GET_STRING (arg)));
- break;
- case MAGNIFIER_CURSOR_SIZE_PROP:
- magnifier->cursor_size_x = BONOBO_ARG_GET_INT (arg);
- magnifier->cursor_size_y = BONOBO_ARG_GET_INT (arg);
- magnifier_transform_cursor (magnifier);
- DBG (fprintf (stderr, "Setting cursor size: \t%d\n", magnifier->cursor_size_x));
- break;
- case MAGNIFIER_CURSOR_ZOOM_PROP:
- magnifier->cursor_scale_factor = BONOBO_ARG_GET_FLOAT (arg);
- DBG (fprintf (stderr, "Setting cursor scale factor: \t%f\n", (float) magnifier->cursor_scale_factor));
- magnifier_transform_cursor (magnifier);
- break;
- case MAGNIFIER_CURSOR_COLOR_PROP:
- magnifier->cursor_color = BONOBO_ARG_GET_GENERAL (arg,
- TC_CORBA_unsigned_long,
- CORBA_unsigned_long,
- NULL);
- magnifier_transform_cursor (magnifier);
- DBG (fprintf (stderr, "Setting cursor color: \t%u\n", (unsigned) magnifier->cursor_color));
- break;
- case MAGNIFIER_CURSOR_HOTSPOT_PROP:
- magnifier->cursor_hotspot = BONOBO_ARG_GET_GENERAL (arg,
- TC_GNOME_Magnifier_Point,
- GNOME_Magnifier_Point,
- NULL);
- /* TODO: notify zoomers */
- /* FIXME: don't call init_cursor, it overwrites this property! */
- magnifier_transform_cursor (magnifier);
- break;
- case MAGNIFIER_CURSOR_DEFAULT_SIZE_PROP:
- bonobo_exception_set (ev, ex_Bonobo_PropertyBag_ReadOnly);
- break;
- case MAGNIFIER_CROSSWIRE_SIZE_PROP:
- magnifier->crosswire_size = BONOBO_ARG_GET_INT (arg);
- DBG (fprintf (stderr, "Setting crosswire size: \t%d\n", magnifier->crosswire_size));
- /* TODO: notify zoomers */
- break;
- case MAGNIFIER_CROSSWIRE_CLIP_PROP:
- magnifier->crosswire_clip = BONOBO_ARG_GET_BOOLEAN (arg);
- DBG (fprintf (stderr, "Setting crosswire clip: \t%s\n", magnifier->crosswire_clip ? "true" : "false"));
- break;
- case MAGNIFIER_CROSSWIRE_COLOR_PROP:
- magnifier->crosswire_color = BONOBO_ARG_GET_LONG (arg);
- DBG (fprintf (stderr, "Setting crosswire size: \t%ld\n", (long) magnifier->crosswire_color));
- break;
- default:
- bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
- break;
- };
-}
-
-static void
-magnifier_do_dispose (Magnifier *magnifier)
-{
- /* FIXME: this is dead ropey code structuring */
- bonobo_activation_active_server_unregister (
- MAGNIFIER_OAFIID, BONOBO_OBJREF (magnifier));
-
- if (magnifier->zoom_regions)
- g_list_free (magnifier->zoom_regions);
- magnifier->zoom_regions = NULL;
-
- bonobo_main_quit ();
-}
-
-static void
-magnifier_gobject_dispose (GObject *object)
-{
- magnifier_do_dispose (MAGNIFIER (object));
-
- BONOBO_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
-}
-
-static void
-impl_magnifier_set_source_display (PortableServer_Servant servant,
- const CORBA_char *display,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- BonoboArg *arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, display);
-
- DBG (fprintf (stderr, "Set source display: \t%s\n", display));
-
- if (strcmp (display, magnifier->source_display_name)) {
-
- magnifier_set_property (magnifier->property_bag,
- arg,
- MAGNIFIER_SOURCE_DISPLAY_PROP,
- ev,
- magnifier);
- }
- else
- {
- DBG (fprintf (stderr, "Attempt to set source to same value as previous: %s\n",
- display));
- }
- bonobo_arg_release (arg);
-}
-
-static void
-impl_magnifier_set_target_display (PortableServer_Servant servant,
- const CORBA_char *display,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- BonoboArg *arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, display);
-
- DBG (fprintf (stderr, "Set target display: \t%s\n", display));
-
- if (strcmp (display, magnifier->target_display_name))
- {
- magnifier_set_property (magnifier->property_bag,
- arg,
- MAGNIFIER_TARGET_DISPLAY_PROP,
- ev,
- magnifier);
- }
- else
- {
- DBG (fprintf (stderr, "Attempt to set target to same value as previous: %s\n",
- display));
- }
- bonobo_arg_release (arg);
-}
-
-static
-CORBA_string
-impl_magnifier_get_source_display (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- DBG (fprintf (stderr, "Get source display: \t%s\n", magnifier->source_display_name));
-
- return CORBA_string_dup (magnifier->source_display_name ? magnifier->source_display_name : "");
-}
-
-static
-CORBA_string
-impl_magnifier_get_target_display (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- DBG (fprintf (stderr, "Get target display: \t%s\n",
- magnifier->target_display_name));
-
- return CORBA_string_dup (magnifier->target_display_name ? magnifier->target_display_name : "");
-}
-
-static GNOME_Magnifier_ZoomRegion
-impl_magnifier_create_zoom_region (PortableServer_Servant servant,
- const CORBA_float zx,
- const CORBA_float zy,
- const GNOME_Magnifier_RectBounds *roi,
- const GNOME_Magnifier_RectBounds *viewport,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- CORBA_any viewport_any;
- ZoomRegion *zoom_region = zoom_region_new ();
- Bonobo_PropertyBag properties;
- GNOME_Magnifier_ZoomRegion retval;
-
- DBG (fprintf (stderr, "Create zoom region: \tzoom %f,%f, viewport %d,%d to %d,%d\n", (float) zx, (float) zy, viewport->x1, viewport->y1, viewport->x2, viewport->y2));
-
- /* FIXME:
- * shouldn't do this here, since it causes the region to get
- * mapped onto the parent, if if it's not explicitly added!
- */
- DBG(g_message ("creating zoom region with parent %p", magnifier));
- zoom_region->priv->parent = magnifier;
-
- retval = BONOBO_OBJREF (zoom_region);
- /* XXX: should check ev after each call, below */
- CORBA_exception_init (ev);
- GNOME_Magnifier_ZoomRegion_setMagFactor (retval, zx, zy, ev);
-
- if (ev->_major != CORBA_NO_EXCEPTION)
- fprintf (stderr, "EXCEPTION setMagFactor\n");
-
- CORBA_exception_init (ev);
- properties = GNOME_Magnifier_ZoomRegion_getProperties (retval, ev);
- if (ev->_major != CORBA_NO_EXCEPTION)
- fprintf (stderr, "EXCEPTION getProperties\n");
-
- viewport_any._type = TC_GNOME_Magnifier_RectBounds;
- viewport_any._value = (gpointer) viewport;
- Bonobo_PropertyBag_setValue (
- properties, "viewport", &viewport_any, ev);
-
- GNOME_Magnifier_ZoomRegion_setROI (retval, roi, ev);
- if (ev->_major != CORBA_NO_EXCEPTION)
- fprintf (stderr, "EXCEPTION setROI\n");
-
- CORBA_exception_init (ev);
-
- gtk_widget_set_size_request (magnifier->priv->canvas,
- viewport->x2 - viewport->x1,
- viewport->y2 - viewport->y1);
- gtk_widget_show (magnifier->priv->canvas);
- gtk_widget_show (magnifier->priv->w);
-
- bonobo_object_release_unref (properties, ev);
-
- return CORBA_Object_duplicate (retval, ev);
-}
-
-static
-CORBA_boolean
-impl_magnifier_add_zoom_region (PortableServer_Servant servant,
- const GNOME_Magnifier_ZoomRegion region,
- CORBA_Environment * ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
-
- if (!magnifier->source_initialized)
- {
- magnifier_set_extension_listeners (magnifier, magnifier_get_root (magnifier));
- }
-
- /* FIXME: this needs proper lifecycle management */
- magnifier->zoom_regions = g_list_append (magnifier->zoom_regions, region);
- magnifier_check_set_struts (magnifier);
-
- return CORBA_TRUE;
-}
-
-static Bonobo_PropertyBag
-impl_magnifier_get_properties (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- return bonobo_object_dup_ref (
- BONOBO_OBJREF (magnifier->property_bag), ev);
-}
-
-GNOME_Magnifier_ZoomRegionList *
-impl_magnifier_get_zoom_regions (PortableServer_Servant servant,
- CORBA_Environment * ev)
-{
- Magnifier *magnifier =
- MAGNIFIER (bonobo_object_from_servant (servant));
-
- GNOME_Magnifier_ZoomRegionList *list;
- CORBA_Object objref;
- int i, len;
-
- len = g_list_length (magnifier->zoom_regions);
- list = GNOME_Magnifier_ZoomRegionList__alloc ();
- list->_length = len;
- list->_buffer =
- GNOME_Magnifier_ZoomRegionList_allocbuf (list->_length);
- for (i = 0; i < len; ++i) {
- objref = g_list_nth_data (magnifier->zoom_regions, i);
- list->_buffer [i] =
- CORBA_Object_duplicate (objref, ev);
- }
- CORBA_sequence_set_release (list, CORBA_TRUE);
-
- DBG (fprintf (stderr, "Get zoom regions: \t%d\n", len));
-
- return list;
-}
-
-static void
-impl_magnifier_clear_all_zoom_regions (PortableServer_Servant servant,
- CORBA_Environment * ev)
-{
- Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
- fprintf (stderr, "Clear all zoom regions.\n");
-
- g_list_foreach (magnifier->zoom_regions,
- magnifier_unref_zoom_region, magnifier);
- g_list_free (magnifier->zoom_regions);
- magnifier->zoom_regions = NULL;
-}
-
-static void
-impl_magnifier_dispose (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- magnifier_do_dispose (
- MAGNIFIER (bonobo_object_from_servant (servant)));
-}
-
-static void
-magnifier_class_init (MagnifierClass *klass)
-{
- GObjectClass * object_class = (GObjectClass *) klass;
- POA_GNOME_Magnifier_Magnifier__epv *epv = &klass->epv;
- parent_class = g_type_class_peek (BONOBO_TYPE_OBJECT); /* needed by BONOBO_CALL_PARENT! */
-
- object_class->dispose = magnifier_gobject_dispose;
-
- epv->_set_SourceDisplay = impl_magnifier_set_source_display;
- epv->_set_TargetDisplay = impl_magnifier_set_target_display;
- epv->_get_SourceDisplay = impl_magnifier_get_source_display;
- epv->_get_TargetDisplay = impl_magnifier_get_target_display;
- epv->getProperties = impl_magnifier_get_properties;
- epv->getZoomRegions = impl_magnifier_get_zoom_regions;
- epv->createZoomRegion = impl_magnifier_create_zoom_region;
- epv->addZoomRegion = impl_magnifier_add_zoom_region;
- epv->clearAllZoomRegions = impl_magnifier_clear_all_zoom_regions;
- epv->dispose = impl_magnifier_dispose;
-}
-
-static void
-magnifier_properties_init (Magnifier *magnifier)
-{
- BonoboArg *def;
- GNOME_Magnifier_RectBounds rect_bounds;
- gchar *display_env;
-
- magnifier->property_bag =
- bonobo_property_bag_new_closure (
- g_cclosure_new_object (
- G_CALLBACK (magnifier_get_property),
- G_OBJECT (magnifier)),
- g_cclosure_new_object (
- G_CALLBACK (magnifier_set_property),
- G_OBJECT (magnifier)));
-
- /* Aggregate so magnifier implements Bonobo_PropertyBag */
- bonobo_object_add_interface (BONOBO_OBJECT (magnifier),
- BONOBO_OBJECT (magnifier->property_bag));
-
- def = bonobo_arg_new (BONOBO_ARG_STRING);
- display_env = getenv ("DISPLAY");
- BONOBO_ARG_SET_STRING (def, display_env);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "source-display-screen",
- MAGNIFIER_SOURCE_DISPLAY_PROP,
- BONOBO_ARG_STRING,
- def,
- "source display screen",
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "target-display-screen",
- MAGNIFIER_TARGET_DISPLAY_PROP,
- BONOBO_ARG_STRING,
- def,
- "target display screen",
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
-
- magnifier_init_display (magnifier, display_env, TRUE);
- magnifier_init_display (magnifier, display_env, FALSE);
-
- magnifier_get_display_rect_bounds (magnifier, &rect_bounds, FALSE);
- def = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds, &rect_bounds);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "source-display-bounds",
- MAGNIFIER_SOURCE_SIZE_PROP,
- TC_GNOME_Magnifier_RectBounds,
- def,
- "source display bounds/size",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- magnifier_get_display_rect_bounds (magnifier, &rect_bounds, TRUE);
- def = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds, &rect_bounds);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "target-display-bounds",
- MAGNIFIER_TARGET_SIZE_PROP,
- TC_GNOME_Magnifier_RectBounds,
- def,
- "target display bounds/size",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-set",
- MAGNIFIER_CURSOR_SET_PROP,
- BONOBO_ARG_STRING,
- NULL,
- "name of cursor set",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- def = bonobo_arg_new (BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT (def, 64);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-size",
- MAGNIFIER_CURSOR_SIZE_PROP,
- BONOBO_ARG_INT,
- def,
- "cursor size, in pixels",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-scale-factor",
- MAGNIFIER_CURSOR_ZOOM_PROP,
- BONOBO_ARG_FLOAT,
- NULL,
- "scale factor for cursors (overrides size)",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-color",
- MAGNIFIER_CURSOR_COLOR_PROP,
- TC_CORBA_unsigned_long,
- NULL,
- "foreground color for 1-bit cursors, as ARGB",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-hotspot",
- MAGNIFIER_CURSOR_HOTSPOT_PROP,
- TC_GNOME_Magnifier_Point,
- NULL,
- "hotspot relative to cursor's upper-left-corner, at default resolition",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "cursor-default-size",
- MAGNIFIER_CURSOR_DEFAULT_SIZE_PROP,
- BONOBO_ARG_INT,
- NULL,
- "default size of current cursor set",
- Bonobo_PROPERTY_READABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "crosswire-size",
- MAGNIFIER_CROSSWIRE_SIZE_PROP,
- BONOBO_ARG_INT,
- NULL,
- "thickness of crosswire cursor, in target pixels",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "crosswire-color",
- MAGNIFIER_CROSSWIRE_COLOR_PROP,
- BONOBO_ARG_LONG,
- NULL,
- "color of crosswire, as A-RGB; note that alpha is required. (use 0 for XOR wire)",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_property_bag_add (magnifier->property_bag,
- "crosswire-clip",
- MAGNIFIER_CROSSWIRE_CLIP_PROP,
- BONOBO_ARG_BOOLEAN,
- NULL,
- "whether to inset the cursor over the crosswire or not",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-}
-
-static void
-magnifier_init_window (Magnifier *magnifier, GdkScreen *screen)
-{
- GtkWindowType mag_win_type = GTK_WINDOW_TOPLEVEL;
- if (_is_override_redirect) mag_win_type = GTK_WINDOW_POPUP;
-
- magnifier->priv->w =
- g_object_connect (gtk_widget_new (gtk_window_get_type (),
- "user_data", NULL,
- "can_focus", FALSE,
- "type", mag_win_type,
- "title", "magnifier",
- "allow_grow", TRUE,
- "allow_shrink", TRUE,
- "border_width", 0,
- NULL),
- "signal::realize", magnifier_realize, NULL,
- "signal::size_allocate", magnifier_size_allocate, NULL,
- "signal::destroy", magnifier_exit, NULL,
- NULL);
- gtk_window_set_screen (GTK_WINDOW (magnifier->priv->w), screen);
- magnifier->priv->canvas = gtk_fixed_new ();
- gtk_container_add (GTK_CONTAINER (magnifier->priv->w),
- magnifier->priv->canvas);
- magnifier->priv->root = NULL;
-}
-
-static void
-magnifier_init (Magnifier *magnifier)
-{
- magnifier->priv = g_new0 (MagnifierPrivate, 1);
- magnifier_properties_init (magnifier);
- magnifier->zoom_regions = NULL;
- magnifier->source_screen_num = 0;
- magnifier->target_screen_num = 0;
- magnifier->source_display_name = g_strdup (":0.0");
- magnifier->target_display_name = g_strdup (":0.0");
- magnifier->cursor_size_x = 0;
- magnifier->cursor_size_y = 0;
- magnifier->cursor_scale_factor = 1.0F;
- magnifier->cursor_color = 0xFF000000;
- magnifier->crosswire_size = 1;
- magnifier->crosswire_color = 0;
- magnifier->crosswire_clip = FALSE;
- magnifier->cursor_hotspot.x = 0;
- magnifier->cursor_hotspot.y = 0;
- magnifier->priv->cursor = NULL;
- magnifier->priv->w = NULL;
- magnifier->priv->use_source_cursor = TRUE;
- magnifier->priv->cursorlist = NULL;
- magnifier->priv->source_drawable = NULL;
- magnifier->priv->overlay = NULL;
- magnifier_init_window (magnifier,
- gdk_display_get_screen (magnifier->target_display,
- magnifier->target_screen_num));
- magnifier_init_cursor_set (magnifier, "default");
-
- mag_timing.process = g_timer_new ();
- mag_timing.frame = g_timer_new ();
- mag_timing.scale = g_timer_new ();
- mag_timing.idle = g_timer_new ();
-#ifdef DEBUG_CLIENT_CALLS
- client_debug = (g_getenv ("MAG_CLIENT_DEBUG") != NULL);
-#endif
-}
-
-GdkDrawable *
-magnifier_get_cursor (Magnifier *magnifier)
-{
- if (magnifier->priv->cursor == NULL) {
- if ((fixes_event_base == 0) &&
- strcmp (magnifier->cursor_set, "none"))
- {
- GdkPixbuf *pixbuf;
- gchar *default_cursor_filename =
- g_strconcat (CURSORSDIR, "/", "default-cursor.xpm", NULL);
- pixbuf = gdk_pixbuf_new_from_file (default_cursor_filename, NULL);
- if (pixbuf)
- {
- magnifier_set_cursor_from_pixbuf (magnifier, pixbuf);
- g_object_unref (pixbuf);
- magnifier_transform_cursor (magnifier);
- }
- g_free (default_cursor_filename);
- }
-#ifdef HAVE_XFIXES
- else {
- GdkPixbuf *cursor_pixbuf = gmag_events_get_source_pixbuf (
- magnifier);
- magnifier_set_cursor_from_pixbuf (magnifier, cursor_pixbuf);
- if (cursor_pixbuf) g_object_unref (cursor_pixbuf);
- magnifier_transform_cursor (magnifier);
- }
-#endif
- }
- return magnifier->priv->cursor;
-}
-
-Magnifier *
-magnifier_new (gboolean override_redirect)
-{
- Magnifier *mag;
- MagLoginHelper *helper;
- int ret;
-
- _is_override_redirect = override_redirect;
-
- mag = g_object_new (magnifier_get_type(), NULL);
-
- _this_magnifier = mag; /* FIXME what about multiple instances? */
-
- helper = g_object_new (mag_login_helper_get_type (), NULL);
- mag_login_helper_set_magnifier (helper, mag);
-
- bonobo_object_add_interface (bonobo_object (mag),
- BONOBO_OBJECT (helper));
-
- ret = bonobo_activation_active_server_register (
- MAGNIFIER_OAFIID, BONOBO_OBJREF (mag));
- if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
- if ( ret == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
- {
- printf("An instance of magnifier is already active. Exiting Program.\n");
- exit(0);
- }
- else
- g_error ("Error registering magnifier server.\n");
-
- g_idle_add (magnifier_reset_struts_at_idle, mag);
- g_idle_add (magnifier_reset_overlay_at_idle, mag);
-
- return mag;
-}
-
-BONOBO_TYPE_FUNC_FULL (Magnifier,
- GNOME_Magnifier_Magnifier,
- BONOBO_TYPE_OBJECT,
- magnifier)
-
diff --git a/magnifier/magnifier.h b/magnifier/magnifier.h
deleted file mode 100644
index e6ea69e..0000000
--- a/magnifier/magnifier.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef MAGNIFIER_H_
-#define MAGNIFIER_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "GNOME_Magnifier.h"
-
-#include <X11/Xlib.h>
-#ifdef HAVE_XFIXES
-#include <X11/extensions/Xfixes.h>
-#endif /* HAVE_XFIXES */
-
-#include <glib.h>
-
-#include <gdk/gdk.h>
-
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-property-bag.h>
-
-#include <login-helper/login-helper.h>
-
-#define MAGNIFIER_TYPE (magnifier_get_type ())
-#define MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), MAGNIFIER_TYPE, Magnifier))
-#define MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), MAGNIFIER_TYPE, MagnifierClass))
-#define IS_MAGNIFIER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), MAGNIFIER_TYPE))
-#define IS_MAGNIFIER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), MAGNIFIER_TYPE))
-
-#define MAGNIFIER_OAFIID "OAFIID:GNOME_Magnifier_Magnifier:0.9"
-
-typedef struct _MagnifierPrivate MagnifierPrivate;
-
-typedef struct {
- BonoboObject parent;
- BonoboPropertyBag *property_bag;
- GdkDisplay *source_display;
- GdkDisplay *target_display;
- gchar *source_display_name;
- gchar *target_display_name;
- int source_screen_num;
- int target_screen_num;
- GList *zoom_regions;
- gboolean source_initialized;
- gint crosswire_size;
- guint32 crosswire_color;
- gboolean crosswire_clip;
- gchar *cursor_set;
- gint cursor_size_x;
- gint cursor_size_y;
- guint32 cursor_color;
- float cursor_scale_factor;
- GNOME_Magnifier_RectBounds source_bounds;
- GNOME_Magnifier_RectBounds target_bounds;
- GNOME_Magnifier_Point cursor_hotspot;
- MagnifierPrivate *priv;
-} Magnifier;
-
-typedef struct {
- BonoboObjectClass parent_class;
- POA_GNOME_Magnifier_Magnifier__epv epv;
-} MagnifierClass;
-
-/*
- * When running the magnifier in timing test mode (--timing-pan-rate and/or
- * --timing-iterations), then the following output is displayed:
- *
- * Pan Rate = 200
- * Frames Processed = 1225
- * Width/Height/Depth = 640/1024/8
- * Zoom Factor (x/y) = 3.000000/3.000000
- * Update Duration = (avg. 0.010232) (max. 0.002685) (tot. 1.084589) seconds
- * Update Pixels = (avg. 3046) pixels/frame
- * Update Rate = (avg. 97.732909) (max. 372.439485) updates/second
- * Net Update Rate = (avg. 0.297724) (max. 0.457741) Mpex/second
- * Pan Latency = (avg. 0.008229) (max. 0.562326) seconds
- * Tot Frame Duration = (avg. 0.008363) (max. 0.562485) (tot. 10.235981)seconds
- * Frame Rate = (avg. 119.578189) (max. 4854.369141) frames/second
- * Scroll Delta (x) = (avg. 0.000000) (tot. 0) lines
- * Scroll Delta (y) = (avg. 5.019608) (tot. 6144) lines
- * Scroll Rate (x) = (avg. 0.000000) lines/second
- * Scroll Rate (y) = (avg. 600.235657) lines/second
- * Net Render Rate = (avg. 8.685322) (max. 3181.359360) Mpex/second
- *
- * Pan Rate - Displays the pan rate specified on the command line.
- * Only displayed if --timing-pan-rate is used.
- * Frames Processed - Number of frames displayed
- * Width/Height/Depth - The width/height/depth of magnifier display.
- * Zoom Factor (x/y) - The zoom factor used.
- * Update Duration - Average and total time spent updating new sections of
- * the screen.
- * Update Pixels - Number of pixels updated
- * Update Rate - Number of updates possible per second.
- * Net Update Rate - Number of Megapixels updated per second.
- * Pan Latency - Time spent from the beginning of the setROI request
- * until GTK+ has finished processing the update (in
- * GDK's gdk_window_update_idle idle handler.
- * Total Frame Duration - Average and total time processing frames.
- * Frame Rate - Number of frames per second.
- * Scroll Delta - Average and total number of lines scrolled.
- * Scroll Rate - Number of lines scrolled per second. Note that this
- * value will be equal to the --timing-pan-rate value
- * times the y zoom factor.
- * Net Render Rate - Number of Megapixels processed per second.
- *
- * When running with the --timing-output argument, similar information is
- * displayed for each frame plus timing information for the frame. Update
- * information is not displayed for frames where updates do not occur. Pan
- * Rate, Frames Processed, and Width/Height/Depth is not displayed for each
- * frame, only when displaying summary information.
- */
-
-typedef struct timing {
- GTimer *process;
- GTimer *frame;
- GTimer *scale;
- GTimer *idle;
- gdouble scale_val;
- gdouble idle_val;
- gdouble frame_val;
- int dx;
- int dy;
- gdouble scale_total;
- gdouble idle_total;
- gdouble frame_total;
- int dx_total;
- int dy_total;
- long update_pixels_total;
- long num_scale_samples;
- long num_idle_samples;
- long num_frame_samples;
- long num_line_samples;
- gdouble last_frame_val;
- int last_dy;
-} TimingStruct;
-
-TimingStruct mag_timing;
-
-GdkDrawable *magnifier_get_cursor (Magnifier *magnifier);
-GType magnifier_get_type (void);
-GdkWindow *magnifier_get_root (Magnifier *magnifier);
-Magnifier *magnifier_new (gboolean override_redirect);
-gboolean magnifier_error_check (void);
-void magnifier_notify_damage (Magnifier *magnifier, XRectangle *rect);
-void magnifier_set_cursor_from_pixbuf (Magnifier *magnifier,
- GdkPixbuf *cursor_pixbuf);
-void magnifier_set_cursor_pixmap_by_name (Magnifier *magnifier,
- const gchar *cursor_name,
- gboolean source_fallback);
-void magnifier_transform_cursor (Magnifier *magnifier);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* MAGNIFIER_H_ */
diff --git a/magnifier/zoom-region-private.h b/magnifier/zoom-region-private.h
deleted file mode 100644
index 3a6d68a..0000000
--- a/magnifier/zoom-region-private.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef ZOOM_REGION_PRIVATE_H_
-#define ZOOM_REGION_PRIVATE_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _ZoomRegionPrivate {
- GList *q;
- /* bounds of currently exposed region, in target pixmap coords */
- GNOME_Magnifier_RectBounds exposed_bounds;
- /* bounds of valid ('gettable') source area, in source coords */
- GNOME_Magnifier_RectBounds source_area;
- gpointer parent;
- GtkWidget *w;
- GtkWidget *border;
- GdkDrawable *source_drawable;
- GdkGC *default_gc;
- GdkGC *paint_cursor_gc;
- GdkGC *crosswire_gc;
- GdkPixbuf *source_pixbuf_cache;
- GdkPixbuf *scaled_pixbuf;
- GdkPixmap *pixmap;
- GdkPixmap *cursor_backing_pixels;
- GdkRectangle cursor_backing_rect;
- GdkPoint last_cursor_pos;
- GdkPoint last_drawn_crosswire_pos;
- GdkInterpType gdk_interp_type;
- gulong expose_handler_id;
- guint update_pointer_id;
- guint update_handler_id;
- gboolean test;
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* ZOOM_REGION_PRIVATE_H_ */
diff --git a/magnifier/zoom-region.c b/magnifier/zoom-region.c
deleted file mode 100644
index 4e096d5..0000000
--- a/magnifier/zoom-region.c
+++ /dev/null
@@ -1,3565 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <popt.h>
-#ifdef HAVE_COLORBLIND
-#include <colorblind.h>
-#endif /* HAVE_COLORBLIND */
-#include <gdk/gdkwindow.h>
-#include <gtk/gtk.h>
-#ifdef USE_GDKPIXBUF_RENDER_TO_DRAWABLE
-#include <gdk/gdkpixbuf.h>
-#else
-#include <gdk/gdk.h>
-#endif
-#include <gdk/gdkx.h>
-#include <gdk/gdkrgb.h>
-#include <libbonobo.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/cursorfont.h>
-#include <X11/extensions/XTest.h>
-#include <math.h>
-
-#undef ZOOM_REGION_DEBUG
-
-#include "zoom-region.h"
-#include "zoom-region-private.h"
-#include "magnifier.h" /* needed to access parent data */
-#include "magnifier-private.h" /* needed to access parent data */
-
-#define DEBUG_CLIENT_CALLS
-
-#ifdef DEBUG_CLIENT_CALLS
-static gboolean client_debug = FALSE;
-#define DBG(a) if (client_debug) { (a); }
-#else
-#define DBG(a)
-#endif
-
-static GObjectClass *parent_class = NULL;
-
-enum {
- ZOOM_REGION_MANAGED_PROP,
- ZOOM_REGION_POLL_MOUSE_PROP,
- ZOOM_REGION_SMOOTHSCROLL_PROP,
- ZOOM_REGION_COLORBLIND_PROP,
- ZOOM_REGION_INVERT_PROP,
- ZOOM_REGION_SMOOTHING_PROP,
- ZOOM_REGION_CONTRASTR_PROP,
- ZOOM_REGION_CONTRASTG_PROP,
- ZOOM_REGION_CONTRASTB_PROP,
- ZOOM_REGION_BRIGHTR_PROP,
- ZOOM_REGION_BRIGHTG_PROP,
- ZOOM_REGION_BRIGHTB_PROP,
- ZOOM_REGION_XSCALE_PROP,
- ZOOM_REGION_YSCALE_PROP,
- ZOOM_REGION_BORDERSIZE_PROP,
- ZOOM_REGION_BORDERCOLOR_PROP,
- ZOOM_REGION_XALIGN_PROP,
- ZOOM_REGION_YALIGN_PROP,
- ZOOM_REGION_VIEWPORT_PROP,
- ZOOM_REGION_TESTPATTERN_PROP,
- ZOOM_REGION_TIMING_TEST_PROP,
- ZOOM_REGION_TIMING_OUTPUT_PROP,
- ZOOM_REGION_TIMING_PAN_RATE_PROP,
- ZOOM_REGION_EXIT_MAGNIFIER
-} PropIdx;
-
-#ifdef DEBUG_CLIENT_CALLS
-gchar* prop_names[ZOOM_REGION_EXIT_MAGNIFIER + 1] =
-{
- "MANAGED",
- "POLLMOUSE"
- "SMOOTHSCROLL",
- "INVERT",
- "SMOOTHING",
- "CONTRASTR",
- "CONTRASTG",
- "CONTRASTB",
- "XSCALE",
- "YSCALE",
- "BORDERSIZE",
- "BORDERCOLOR",
- "XALIGN",
- "YALIGN",
- "VIEWPORT",
- "TESTPATTERN",
- "TIMING_TEST",
- "TIMING_OUTPUT",
- "TIMING_PAN_RATE",
- "EXIT_MAGNIFIER"
-};
-#endif
-
-typedef enum {
- ZOOM_REGION_ERROR_NONE,
- ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE,
- ZOOM_REGION_ERROR_TOO_BIG
-} ZoomRegionPixmapCreationError;
-
-static float timing_scale_max = 0;
-static float timing_idle_max = 0;
-static float timing_frame_max = 0;
-static float cps_max = 0;
-static float nrr_max = 0;
-static float update_nrr_max = 0;
-static gboolean reset_timing = FALSE;
-static gboolean timing_test = FALSE;
-
-static guint pending_idle_handler = 0;
-static gboolean processing_updates = FALSE;
-static gboolean timing_start = FALSE;
-
-#ifdef TEST_XTST_CURSOR
-static Cursor *x_cursors;
-static Window cursor_window = None;
-#endif
-
-static gboolean can_coalesce = TRUE ; /* change this when event coalescing is working */
-
-#define CLAMP_B_C(v) (t = (v), CLAMP (t, -1, 1));
-
-static void zoom_region_sync (ZoomRegion *region);
-static void zoom_region_finalize (GObject *object);
-static void zoom_region_update (ZoomRegion *zoom_region,
- const GdkRectangle rect);
-static void zoom_region_queue_update (ZoomRegion *zoom_region,
- const GdkRectangle rect);
-
-static int zoom_region_process_updates (gpointer data);
-static void zoom_region_paint (ZoomRegion *zoom_region, GdkRectangle *rect);
-static void zoom_region_paint_pixmap (ZoomRegion *zoom_region, GdkRectangle *rect);
-static int zoom_region_update_pointer_timeout (gpointer data);
-static GdkRectangle zoom_region_rect_from_bounds (ZoomRegion *zoom_region,
- const GNOME_Magnifier_RectBounds *bounds);
-static ZoomRegionPixmapCreationError zoom_region_create_pixmap (ZoomRegion *zoom_region);
-static GdkRectangle zoom_region_update_pixmap (ZoomRegion *zoom_region, const GdkRectangle update_rect, GdkRectangle *paint_rect);
-
-void
-reset_timing_stats()
-{
- timing_scale_max = 0;
- timing_idle_max = 0;
- timing_frame_max = 0;
- cps_max = 0;
- nrr_max = 0;
- update_nrr_max = 0;
- mag_timing.num_scale_samples = 0;
- mag_timing.num_idle_samples = 0;
- mag_timing.num_frame_samples = 0;
- mag_timing.num_line_samples = 0;
- mag_timing.scale_total = 0;
- mag_timing.idle_total = 0;
- mag_timing.frame_total = 0;
- mag_timing.update_pixels_total = 0;
- mag_timing.update_pixels_total = 0;
- mag_timing.dx_total = 0;
- mag_timing.dy_total = 0;
- mag_timing.last_frame_val = 0;
- mag_timing.last_dy = 0;
- g_timer_start (mag_timing.process);
-}
-
-/** DEBUG STUFF **/
-
-#undef DEBUG
-#ifdef DEBUG
-#define DEBUG_RECT(a, b) _debug_announce_rect (a, b)
-#else
-#define DEBUG_RECT(a, b)
-#endif
-static void
-_debug_announce_rect (char *msg, GdkRectangle rect)
-{
- fprintf (stderr, "%s: (%d,%d - %d,%d)\n",
- msg, rect.x, rect.y, rect.x + rect.width, rect.y + rect.height);
-}
-
-static gboolean
-_diff_pixbufs (const GdkPixbuf *a, const GdkPixbuf *b)
-{
- long i, j;
- int bits_per_byte = 8; /* always true? */
- guchar *pa = gdk_pixbuf_get_pixels (a);
- guchar *pb = gdk_pixbuf_get_pixels (b);
- guchar *cpa, *cpb;
- long rsa = gdk_pixbuf_get_rowstride (a);
- long rsb = gdk_pixbuf_get_rowstride (b);
- long rowbytes = gdk_pixbuf_get_width (a) *
- gdk_pixbuf_get_bits_per_sample (a) *
- gdk_pixbuf_get_n_channels (a)/ bits_per_byte;
- long n_rows = gdk_pixbuf_get_height (a);
-
- if (gdk_pixbuf_get_height (b) != n_rows)
- return TRUE;
- if (gdk_pixbuf_get_width (b) != gdk_pixbuf_get_width (a))
- return TRUE;
- for (j = 0; j < n_rows; ++j)
- {
- cpa = pa + j * rsa;
- cpb = pb + j * rsb;
- for (i = 0; i < rowbytes; ++i)
- {
- if (*cpa != *cpb)
- {
- return TRUE;
- }
- cpa++;
- cpb++;
- }
- }
- return FALSE;
-}
-
-/** EVENT COALESCING **/
-
-#ifdef BROKEN_COALESCE_STUFF_GETS_FIXED
-/**
- * _combine_rects:
- * combines two GdkRectangles IFF the union of the two form
- * a rectangle.
- * a: the first GdkRectangle, which will be changed to the new bounds if
- * coalesce operation can be performed, otherwise unchanged.
- * b: the second GdkRectangle.
- * returns: True if the two are coalesced, FALSE otherwise.
- **/
-static gboolean
-_combine_rects (GdkRectangle *a, GdkRectangle *b)
-{
- gboolean can_combine = FALSE;
- if ((a->x == b->x) && (a->x + a->width == b->x + b->width))
- {
- can_combine = TRUE;
- }
- else if ((a->y == b->y) && (a->y + a->height == b->y + b->height))
- {
- can_combine = TRUE;
- }
- if (can_combine)
- {
- GdkRectangle c;
- /* TODO: check and fix this */
- if (gdk_rectangle_intersect (a, b, &c))
- {
- gdk_rectangle_union (a, b, &c);
- *a = c;
- can_combine = TRUE;
- }
- else
- {
- can_combine = FALSE;
- }
- }
- return can_combine;
-}
-
-/**
- * _refactor_rects:
- * Refactor GdkRectangles whose union forms an 'L' shape, swapping
- * the long and short elements. e.g. turns
- *
- * xxx xxx
- * xxx xxx
- * oooooo into oooxxx
- * oooooo oooxxx
- *
- * returns: TRUE if the refactor was performed, FALSE if it could not be
- * completed (i.e. if the rectangles did not form a suitable union).
- **/
-static gboolean
-_refactor_rects (GdkRectangle *p, GdkRectangle *n)
-{
- gboolean refactored = FALSE;
- GdkRectangle *a, *b;
- if (p->x == n->x)
- {
- if (p->width < n->width)
- {
- a = p;
- b = n;
- }
- else
- {
- a = n;
- b = p;
- }
- if (a->y == b->y + b->height)
- {
- a->y -= b->height;
- a->height += b->height;
- b->x += a->width;
- b->width -= a->width;
- refactored = TRUE;
- }
- else if (a->y + a->height == b->y)
- {
- a->height += b->height;
- b->x += a->width;
- b->width -= a->width;
- refactored = TRUE;
- }
- if (refactored) fprintf (stderr, "REFACTOR 1\n");
- }
- else if (p->y == n->y)
- {
- if (p->height < n->height)
- {
- a = p;
- b = n;
- }
- else
- {
- a = n;
- b = p;
- }
- if (a->x == b->x + b->width)
- {
- a->x -= b->width;
- a->width += b->width;
- b->y += a->height;
- b->height -= a->height;
- refactored = TRUE;
- }
- else if (a->x + a->width == b->x)
- {
- a->width += b->width;
- b->y += a->height;
- b->height -= a->height;
- refactored = TRUE;
- }
- if (refactored) fprintf (stderr, "REFACTOR 2\n");
- }
- else if (p->x + p->width == n->x + n->width)
- {
- if (p->width < n->width)
- {
- a = p;
- b = n;
- }
- else
- {
- a = n;
- b = p;
- }
- if (a->y == b->y + b->height)
- {
- a->y -= b->height;
- a->height += b->height;
- b->width -= a->width;
- refactored = TRUE;
- }
- else if (a->y + a->height == b->y)
- {
- a->height += b->height;
- b->width -= a->width;
- refactored = TRUE;
- }
- if (refactored) fprintf (stderr, "REFACTOR 3\n");
- }
- else if (p->y + p->height == n->y + n->height)
- {
- if (p->height < n->height)
- {
- a = p;
- b = n;
- }
- else
- {
- a = n;
- b = p;
- }
- if (a->x == b->x + b->width)
- {
- a->x -= b->width;
- a->width += b->width;
- b->height -= a->height;
- refactored = TRUE;
- }
- else if (a->x + a->width == b->x)
- {
- a->width += b->width;
- b->height -= a->height;
- refactored = TRUE;
- }
- if (refactored) fprintf (stderr, "REFACTOR 4\n");
- }
- return refactored;
-}
-
-static GList*
-_combine_update_rects (GList *q, int lookahead_n)
-{
- int i = 0;
- GdkRectangle *a = q->data;
- GList *p = q;
- while (i < lookahead_n && p && p->next)
- {
- if (_combine_rects (a, q->next->data))
- {
- q = g_list_delete_link (q, p->next);
- }
- else
- {
- p = p->next;
- ++i;
- }
- }
- return q;
-}
-#endif
-
-/*#define _is_horizontal_rect(r) (((2 * (r)->width / 3 * (r)->height)) > 1)*/
-/*#define _is_vertical_rect(r) (((2 * (r)->height / 3 * (r)->width)) > 1)*/
-#define _is_horizontal_rect(r) ((r)->width > (r)->height)
-#define _is_vertical_rect(r) ((r)->height > (r)->width)
-
-/**
- * _coalesce_update_rects :
- * coalesces multiple "vertical" rects and "horizontal"
- * rects into one of each. Can result in overlapping/larger
- * update area for tiled rects, but reduces queue size dramatically.
- **/
-static GList *
-_coalesce_update_rects (GList *q, int min_coalesce_length)
-{
- GdkRectangle *v = NULL, *h = NULL;
- GList *compact_queue = NULL;
-/* fprintf (stderr, "starting queue length = %d\n", g_list_length (q)); */
- if (g_list_length (q) < min_coalesce_length)
- return g_list_copy (q);
- while (q)
- {
- if (_is_vertical_rect ((GdkRectangle *) (q->data)))
- {
- if (v) gdk_rectangle_union (v, q->data, v);
- else
- {
- v = g_new0 (GdkRectangle, 1);
- *v = *(GdkRectangle *)q->data;
- }
- }
- else if (_is_horizontal_rect ((GdkRectangle *) (q->data)))
- {
- if (h) gdk_rectangle_union (h, q->data, h);
- else
- {
- h = g_new0 (GdkRectangle, 1);
- *h = *(GdkRectangle *)q->data;
- }
- }
- else
- compact_queue = g_list_prepend (compact_queue, q->data);
- q = q->next;
- };
- if (v)
- compact_queue = g_list_prepend (compact_queue, v);
- if (h)
- compact_queue = g_list_prepend (compact_queue, h);
-/* fprintf (stderr, "ending queue length = %d\n", g_list_length (compact_queue));*/
- /* don't free the original queue, that's the caller's responsibility */
- return compact_queue;
-}
-
-#ifdef BROKEN_COALESCE_STUFF_GETS_FIXED
-static GList *
-_smartbutbroken_coalesce_update_rects (GList *q, int lookahead_n)
-{
- int i = 0, len;
- fprintf (stderr, "starting queue length = %d\n", g_list_length (q));
- do {
- GdkRectangle *a;
- len = g_list_length (q);
- q = _combine_update_rects (q, lookahead_n);
- a = q->data;
- while (i < lookahead_n && q && q->next)
- {
- if (_refactor_rects (a, q->next->data))
- break;
- else
- ++i;
- }
- q = _combine_update_rects (q, lookahead_n);
- } while (g_list_length (q) < len);
- fprintf (stderr, "ending queue length = %d\n", g_list_length (q));
- return q;
-}
-#endif
-
-/** COORDINATE CONVERSIONS **/
-
-/** clip an area in source coords to the exposed target area **/
-static GdkRectangle
-_rectangle_clip_to_rectangle (GdkRectangle area,
- GdkRectangle clip_rect)
-{
- GdkRectangle clipped;
- clipped.x = MAX (area.x, clip_rect.x);
- clipped.y = MAX (area.y, clip_rect.y);
- clipped.width = MIN ((area.x + area.width), (clip_rect.x + clip_rect.width)) - clipped.x;
- clipped.height = MIN ((area.y + area.height), (clip_rect.y + clip_rect.height)) - clipped.y;
- return clipped;
-}
-
-static GdkRectangle
-_rectangle_clip_to_bounds (GdkRectangle area,
- GNOME_Magnifier_RectBounds *clip_bounds)
-{
- area.x = MAX (area.x, clip_bounds->x1);
- area.x = MIN (area.x, clip_bounds->x2);
- area.width = MIN (area.width, clip_bounds->x2 - area.x);
- area.y = MAX (area.y, clip_bounds->y1);
- area.y = MIN (area.y, clip_bounds->y2);
- area.height = MIN (area.height, clip_bounds->y2 - area.y);
- return area;
-}
-
-static GdkRectangle
-zoom_region_clip_to_source (ZoomRegion *zoom_region,
- GdkRectangle area)
-{
- GNOME_Magnifier_RectBounds *source_rect_ptr;
- if (zoom_region && zoom_region->priv && zoom_region->priv->parent)
- {
- source_rect_ptr = &((Magnifier *)zoom_region->priv->parent)->source_bounds;
- DEBUG_RECT ("clipping to source bounds", zoom_region_rect_from_bounds (zoom_region, source_rect_ptr));
- return _rectangle_clip_to_bounds (area, source_rect_ptr);
- }
- return area;
-}
-
-static GdkRectangle
-zoom_region_clip_to_exposed_target (ZoomRegion *zoom_region,
- GdkRectangle area)
-{
- GNOME_Magnifier_RectBounds onscreen_target, *source_area;
- source_area = &zoom_region->priv->source_area;
-
- onscreen_target.x1 = MAX (floor (zoom_region->priv->exposed_bounds.x1
- / zoom_region->xscale),
- source_area->x1);
- onscreen_target.y1 = MAX (floor (zoom_region->priv->exposed_bounds.y1
- / zoom_region->yscale),
- source_area->y1);
- onscreen_target.x2 = MIN (ceil (zoom_region->priv->exposed_bounds.x2
- / zoom_region->xscale),
- source_area->x2);
- onscreen_target.y2 = MIN (ceil (zoom_region->priv->exposed_bounds.y2
- / zoom_region->yscale),
- source_area->y2);
-
- return _rectangle_clip_to_bounds (area, &onscreen_target);
-}
-
-static GdkRectangle
-zoom_region_clip_to_scaled_pixmap (ZoomRegion *zoom_region,
- GdkRectangle area)
-{
- GdkRectangle pixmap_area = {0, 0, 0, 0};
- if (zoom_region->priv && zoom_region->priv->pixmap)
- {
- gdk_drawable_get_size (zoom_region->priv->pixmap, &pixmap_area.width, &pixmap_area.height);
- return _rectangle_clip_to_rectangle (area, pixmap_area);
- }
- else
- return area;
-}
-
-static GdkRectangle
-zoom_region_clip_to_window (ZoomRegion *zoom_region,
- GdkRectangle area)
-{
- GdkRectangle window_rect;
-
- /* we can just return ATM because _rectangle_clip_to_rectangle is unimplemented now */
-
- return area;
-
- if (zoom_region->priv->w->window)
- gdk_drawable_get_size (GDK_DRAWABLE (zoom_region->priv->w->window),
- &window_rect.x,
- &window_rect.y);
- else
- {
- window_rect.x = 0;
- window_rect.y = 0;
- }
- return _rectangle_clip_to_rectangle (area, window_rect);
-}
-
-static const GdkRectangle
-zoom_region_source_rect_from_view_bounds (ZoomRegion *zoom_region,
- const GNOME_Magnifier_RectBounds *view_bounds)
-{
- GdkRectangle source_rect;
- source_rect.x = floor ((view_bounds->x1 + zoom_region->priv->exposed_bounds.x1)
- / zoom_region->xscale);
- source_rect.y = floor ((view_bounds->y1 + zoom_region->priv->exposed_bounds.y1)
- / zoom_region->yscale);
- source_rect.width = ceil ((view_bounds->x2 - view_bounds->x1) / zoom_region->xscale) + 1;
- source_rect.height = ceil ((view_bounds->y2 - view_bounds->y1) / zoom_region->yscale) + 1;
- return source_rect;
-}
-
-static GdkRectangle
-zoom_region_view_rect_from_source_rect (ZoomRegion *zoom_region,
- const GdkRectangle source_rect)
-{
- GdkRectangle view_rect;
- view_rect.x = source_rect.x * zoom_region->xscale - zoom_region->priv->exposed_bounds.x1;
- view_rect.y = source_rect.y * zoom_region->yscale - zoom_region->priv->exposed_bounds.y1;
- view_rect.width = source_rect.width * zoom_region->xscale;
- view_rect.height = source_rect.height * zoom_region->yscale;
- DEBUG_RECT ("source", source_rect);
- DEBUG_RECT ("converted to view-rect", view_rect);
- return view_rect;
-}
-
-static GdkRectangle
-zoom_region_source_rect_from_view_rect (ZoomRegion *zoom_region,
- const GdkRectangle view_rect)
-{
- GdkRectangle source_rect;
- source_rect.x = floor ((view_rect.x + zoom_region->priv->exposed_bounds.x1)
- / zoom_region->xscale);
- source_rect.y = floor ((view_rect.y + zoom_region->priv->exposed_bounds.y1)
- / zoom_region->yscale);
- source_rect.width = ceil (view_rect.width / zoom_region->xscale) + 1;
- source_rect.height = ceil (view_rect.height / zoom_region->yscale) + 1;
- return source_rect;
-}
-
-static GdkRectangle
-zoom_region_rect_from_bounds (ZoomRegion *zoom_region,
- const GNOME_Magnifier_RectBounds *bounds)
-{
- GdkRectangle rect;
- rect.x = bounds->x1;
- rect.y = bounds->y1;
- rect.width = bounds->x2 - bounds->x1;
- rect.height = bounds->y2 - bounds->y1;
- return rect;
-}
-
-/** ************** **/
-
-static CORBA_boolean
-zoom_region_update_scale (ZoomRegion *zoom_region, gdouble x, gdouble y)
-{
- gdouble x_old = zoom_region->xscale;
- gdouble y_old = zoom_region->yscale;
-
- zoom_region->xscale = x;
- zoom_region->yscale = y;
-
- if (zoom_region->priv->scaled_pixbuf)
- g_object_unref (zoom_region->priv->scaled_pixbuf);
- zoom_region->priv->scaled_pixbuf =
- gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, (zoom_region->priv->source_area.x2 - zoom_region->priv->source_area.x1) * zoom_region->xscale + 1, (zoom_region->priv->source_area.y2 - zoom_region->priv->source_area.y1) * zoom_region->yscale + 1);
-
- if (zoom_region->priv->pixmap)
- g_object_unref (zoom_region->priv->pixmap);
-
- if (zoom_region_create_pixmap (zoom_region) ==
- ZOOM_REGION_ERROR_TOO_BIG) {
- zoom_region->xscale = x_old;
- zoom_region->yscale = y_old;
- zoom_region_create_pixmap (zoom_region);
- g_object_unref (zoom_region->priv->scaled_pixbuf);
-
- /* only create a scaled image big enough for the target
- * display, for now */
- zoom_region->priv->scaled_pixbuf = gdk_pixbuf_new (
- GDK_COLORSPACE_RGB, FALSE, 8, (zoom_region->priv->source_area.x2 - zoom_region->priv->source_area.x1) * zoom_region->xscale + 1, (zoom_region->priv->source_area.y2 - zoom_region->priv->source_area.y1) * zoom_region->yscale + 1);
-
- return CORBA_FALSE;
- }
- return CORBA_TRUE;
-}
-
-static void
-zoom_region_queue_update (ZoomRegion *zoom_region,
- const GdkRectangle update_rect)
-{
- GdkRectangle *rect =
- g_new0 (GdkRectangle, 1);
- *rect = update_rect;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DEBUG_RECT ("queueing update", *rect);
-
- zoom_region->priv->q =
- g_list_prepend (zoom_region->priv->q, rect);
- if (zoom_region->priv && zoom_region->priv->update_handler_id == 0)
- zoom_region->priv->update_handler_id =
- g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
- zoom_region_process_updates,
- zoom_region,
- NULL);
-}
-
-static void
-zoom_region_update_current (ZoomRegion *zoom_region)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->priv)
- {
- gboolean pixmap_valid = GDK_IS_DRAWABLE (zoom_region->priv->pixmap);
- if (!pixmap_valid)
- pixmap_valid = (zoom_region_create_pixmap (zoom_region) == ZOOM_REGION_ERROR_NONE);
- if (pixmap_valid)
- zoom_region_update (zoom_region,
- zoom_region_source_rect_from_view_bounds (
- zoom_region,
- &zoom_region->viewport));
- }
-}
-
-static GdkRectangle
-zoom_region_cursor_rect (ZoomRegion *zoom_region)
-{
- GdkRectangle rect = {0, 0, 0, 0};
- Magnifier *magnifier = zoom_region->priv->parent;
- GdkDrawable *cursor = NULL;
- if (magnifier)
- cursor = magnifier_get_cursor (magnifier);
- if (cursor)
- {
- rect.x = zoom_region->priv->last_cursor_pos.x;
- rect.y = zoom_region->priv->last_cursor_pos.y;
- rect = zoom_region_view_rect_from_source_rect (zoom_region, rect);
- rect.x -= magnifier->cursor_hotspot.x;
- rect.y -= magnifier->cursor_hotspot.y;
- gdk_drawable_get_size (cursor, &rect.width, &rect.height);
- }
- return rect;
-}
-
-static void
-zoom_region_unpaint_crosswire_cursor (ZoomRegion *zoom_region,
- GdkRectangle *clip_rect)
-{
- Magnifier *magnifier = zoom_region->priv->parent;
- GdkRectangle vline_rect, hline_rect;
- GdkPoint cursor_pos;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (!magnifier || magnifier->crosswire_size <= 0) return;
-
- cursor_pos = zoom_region->priv->last_drawn_crosswire_pos;
- vline_rect.x = cursor_pos.x - magnifier->crosswire_size/2;
- vline_rect.y = clip_rect ? clip_rect->y : 0;
- vline_rect.width = MAX (magnifier->crosswire_size, 1);
- vline_rect.height = clip_rect ? clip_rect->height : 4096;
- hline_rect.x = clip_rect ? clip_rect->x : 0;
- hline_rect.y = cursor_pos.y - magnifier->crosswire_size/2;
- hline_rect.width = clip_rect ? clip_rect->width : 4096;
- hline_rect.height = MAX (magnifier->crosswire_size, 1);
-
- zoom_region_paint_pixmap (zoom_region, &vline_rect);
- zoom_region_paint_pixmap (zoom_region, &hline_rect);
-}
-
-static void
-zoom_region_paint_crosswire_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
-{
- Magnifier *magnifier = zoom_region->priv->parent;
- static GdkColormap *cmap;
- static GdkColor last_color;
- static gboolean last_color_init = FALSE;
- GdkGCValues values;
- GdkRectangle rect;
- GdkDrawable *cursor;
- GdkColor color = {0, 0, 0, 0};
- int x_left_clip = 0, x_right_clip = 0, y_top_clip = 0, y_bottom_clip = 0;
- int csize = 0;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (!(magnifier &&
- zoom_region->priv->w->window &&
- GDK_IS_DRAWABLE (zoom_region->priv->w->window) &&
- magnifier->crosswire_size > 0)) return;
-
- if (zoom_region->priv->crosswire_gc == NULL)
- {
- zoom_region->priv->crosswire_gc = gdk_gc_new (zoom_region->priv->w->window);
- cmap = gdk_gc_get_colormap(zoom_region->priv->crosswire_gc);
- last_color_init = FALSE;
- }
-
- if (magnifier->crosswire_color == 0)
- {
- color.red = 0xFFFF;
- color.blue = 0xFFFF;
- color.green = 0xFFFF;
- values.function = GDK_INVERT;
- }
- else
- {
- color.red = (magnifier->crosswire_color & 0xFF0000) >> 8;
- color.green = (magnifier->crosswire_color & 0xFF00);
- color.blue = (magnifier->crosswire_color & 0xFF) << 8;
- values.function = GDK_COPY;
- }
-
- values.foreground = color;
-
- /* Only reset colors if they have changed */
- if (!last_color_init || color.red != last_color.red ||
- color.blue != last_color.blue || color.green != last_color.green)
- {
- if (cmap)
- {
- gdk_rgb_find_color (cmap, &(values.foreground));
- gdk_gc_set_values(zoom_region->priv->crosswire_gc, &values, GDK_GC_FUNCTION | GDK_GC_FOREGROUND);
- }
- else
- {
- gdk_gc_set_values(zoom_region->priv->crosswire_gc, &values, GDK_GC_FUNCTION);
- }
-
- last_color.red = color.red;
- last_color.blue = color.blue;
- last_color.green = color.green;
- last_color_init = TRUE;
- }
-
- rect.x = zoom_region->priv->last_cursor_pos.x;
- rect.y = zoom_region->priv->last_cursor_pos.y;
- rect.width = 0;
- rect.height = 0;
- rect = zoom_region_view_rect_from_source_rect (zoom_region, rect);
- if (clip_rect) gdk_gc_set_clip_rectangle (zoom_region->priv->crosswire_gc, clip_rect);
- else gdk_gc_set_clip_rectangle (zoom_region->priv->crosswire_gc, NULL);
-
- if ((cursor = magnifier_get_cursor (magnifier))) {
- gdk_drawable_get_size (cursor, &csize, &csize);
- }
- if (magnifier->crosswire_clip)
- {
- y_top_clip = rect.y - magnifier->cursor_hotspot.y -
- magnifier->crosswire_size;
- y_bottom_clip = rect.y +
- (csize - magnifier->cursor_hotspot.y) +
- magnifier->crosswire_size;
- x_left_clip = rect.x - magnifier->cursor_hotspot.x -
- magnifier->crosswire_size;
- x_right_clip = rect.x +
- (csize - magnifier->cursor_hotspot.x) +
- magnifier->crosswire_size;
-
- }
- if (magnifier->crosswire_size == 1)
- {
- if (magnifier->crosswire_clip)
- {
- gdk_draw_line (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, rect.x, 0,
- rect.x, y_top_clip);
- gdk_draw_line (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, 0, rect.y,
- x_left_clip, rect.y);
- }
- gdk_draw_line (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, rect.x,
- y_bottom_clip, rect.x, 4096);
- gdk_draw_line (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, x_right_clip,
- rect.y, 4096, rect.y);
- }
- else
- {
- if (magnifier->crosswire_clip )
- {
- gdk_draw_rectangle (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, TRUE,
- rect.x - magnifier->crosswire_size / 2,
- 0, magnifier->crosswire_size, y_top_clip);
- gdk_draw_rectangle (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, TRUE, 0,
- rect.y - magnifier->crosswire_size / 2,
- x_left_clip, magnifier->crosswire_size);
- }
- gdk_draw_rectangle (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, TRUE,
- rect.x - magnifier->crosswire_size / 2,
- y_bottom_clip, magnifier->crosswire_size, 4096);
- gdk_draw_rectangle (zoom_region->priv->w->window, zoom_region->priv->crosswire_gc, TRUE, x_right_clip,
- rect.y - magnifier->crosswire_size / 2,
- 4096, magnifier->crosswire_size);
- }
-}
-
-static void
-zoom_region_unpaint_cursor (ZoomRegion *zoom_region, GdkRectangle *clip_rect)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- zoom_region_paint_pixmap (zoom_region,
- &zoom_region->priv->cursor_backing_rect);
-}
-
-static void
-zoom_region_paint_cursor (ZoomRegion *zoom_region,
- GdkRectangle *clip_rect)
-{
- GdkGCValues values;
- GdkRectangle rect, intersct;
- GdkRectangle fullscreen;
- Magnifier *magnifier = zoom_region->priv->parent;
- rect = zoom_region_cursor_rect (zoom_region);
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (clip_rect == NULL)
- {
- fullscreen = zoom_region_rect_from_bounds (zoom_region,
- &zoom_region->viewport);
- clip_rect = &fullscreen;
- }
- /* save the unclipped cursor pos for 'undrawing' the crosswire, the clipped one is no good */
- zoom_region->priv->last_drawn_crosswire_pos.x = rect.x + magnifier->cursor_hotspot.x;
- zoom_region->priv->last_drawn_crosswire_pos.y = rect.y + magnifier->cursor_hotspot.y;
-
- if (gdk_rectangle_intersect (clip_rect, &rect, &intersct))
- {
- int width = 0, height = 0;
-
- GdkDrawable *cursor = magnifier_get_cursor (magnifier);
- if (!cursor)
- return;
- else if (!GDK_IS_DRAWABLE (cursor)) g_message ("cursor isn't DRAWABLE!");
- zoom_region->priv->cursor_backing_rect = rect;
- if (zoom_region->priv->cursor_backing_pixels) {
- gdk_drawable_get_size (zoom_region->priv->cursor_backing_pixels,
- &width, &height);
- }
- if (rect.width != width || rect.height != height)
- {
- if (zoom_region->priv->cursor_backing_pixels) {
- g_object_unref (zoom_region->priv->cursor_backing_pixels);
- }
- zoom_region->priv->cursor_backing_pixels =
- gdk_pixmap_new (zoom_region->priv->w->window,
- rect.width,
- rect.height,
- -1);
- }
- if (zoom_region->priv->w->window != NULL)
- {
- if (zoom_region->priv->default_gc == NULL)
- zoom_region->priv->default_gc = gdk_gc_new(zoom_region->priv->w->window);
- gdk_draw_drawable (zoom_region->priv->cursor_backing_pixels,
- zoom_region->priv->default_gc,
- zoom_region->priv->w->window,
- rect.x,
- rect.y,
- 0, 0,
- rect.width,
- rect.height);
- }
- DEBUG_RECT ("painting", rect);
- if (cursor && zoom_region->priv->w && GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- {
- if (zoom_region->priv->paint_cursor_gc == NULL)
- zoom_region->priv->paint_cursor_gc = gdk_gc_new (zoom_region->priv->w->window);
-
- gdk_gc_set_clip_rectangle (zoom_region->priv->paint_cursor_gc, clip_rect);
- values.clip_x_origin = rect.x;
- values.clip_y_origin = rect.y;
- values.clip_mask = magnifier->priv->cursor_mask;
- gdk_gc_set_values(zoom_region->priv->paint_cursor_gc, &values, GDK_GC_CLIP_X_ORIGIN |
- GDK_GC_CLIP_Y_ORIGIN | GDK_GC_CLIP_MASK);
-
- gdk_draw_rectangle (zoom_region->priv->w->window,
- zoom_region->priv->paint_cursor_gc,
- TRUE,
- rect.x, rect.y, rect.width, rect.height);
-
- gdk_draw_drawable (zoom_region->priv->w->window,
- zoom_region->priv->paint_cursor_gc,
- cursor,
- 0, 0,
- rect.x,
- rect.y,
- rect.width,
- rect.height);
- }
- }
-}
-
-/**
- * zoom_region_coalesce_updates:
- *
- **/
-static void
-zoom_region_coalesce_updates (ZoomRegion *zoom_region)
-{
- /* TODO: lock the queue ? */
- GList *q;
- int lookahead_n = 4; /* 'distance' to look ahead in queue */
- int max_qlen = 50;
-
- if (zoom_region->priv && zoom_region->priv->q && g_list_length (zoom_region->priv->q) > max_qlen)
- {
- g_list_free (zoom_region->priv->q);
- zoom_region->priv->q = NULL; /* just discard and update everything */
- /* CAUTION: this can be an expensive operation! */
- zoom_region_queue_update (zoom_region, zoom_region_rect_from_bounds
- (zoom_region, &zoom_region->priv->source_area));
- }
- else
-
- if (zoom_region->priv && zoom_region->priv->q &&
- (g_list_length (zoom_region->priv->q) > 1) && can_coalesce)
- {
- q = g_list_reverse (g_list_copy (zoom_region->priv->q));
- if (q)
- {
- GList *coalesce_copy;
- if (zoom_region->coalesce_func)
- {
- GList *new;
- coalesce_copy = (*zoom_region->coalesce_func) (q, lookahead_n);
- new = g_list_reverse (coalesce_copy);
- g_list_free (zoom_region->priv->q);
- zoom_region->priv->q = new;
- }
- g_list_free (q);
- }
- }
-}
-
-
-static void
-zoom_region_paint_border (ZoomRegion *zoom_region)
-{
- GdkColor color;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if ((zoom_region->border_size > 0) &&
- (zoom_region->priv->border->window)) {
- color.red = (((zoom_region->border_color & 0xFF0000) >> 16) *
- 65535) / 255;
- color.green = (((zoom_region->border_color & 0xFF00) >> 8) *
- 65535) / 255;
- color.blue = ((zoom_region->border_color & 0xFF) * 65535) /
- 255;
-
-#ifdef DEBUG_BORDER
- fprintf (stderr, "border color triple RGB=%d|%d|%d\n",
- color.red, color.green, color.blue);
-#endif
-
- gtk_widget_modify_bg (zoom_region->priv->border,
- GTK_STATE_NORMAL, &color);
- }
-}
-
-static void
-zoom_region_paint_pixmap (ZoomRegion *zoom_region,
- GdkRectangle *area)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- g_assert (zoom_region->priv);
- g_assert (zoom_region->priv->w);
-
- if (!GDK_IS_DRAWABLE (zoom_region->priv->w->window)) return;
- if (zoom_region->priv->default_gc == NULL)
- zoom_region->priv->default_gc = gdk_gc_new (zoom_region->priv->w->window);
-
- if (zoom_region->priv->pixmap && GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- {
- gdk_draw_drawable (zoom_region->priv->w->window,
- zoom_region->priv->default_gc,
- zoom_region->priv->pixmap,
- area->x + zoom_region->priv->exposed_bounds.x1 - zoom_region->priv->source_area.x1 * zoom_region->xscale,
- area->y + zoom_region->priv->exposed_bounds.y1 - zoom_region->priv->source_area.y1 * zoom_region->yscale,
- area->x,
- area->y,
- area->width,
- area->height);
- }
-}
-
-/**
- * Note: clips to region's current GdkWindow.
- **/
-static void
-zoom_region_paint (ZoomRegion *zoom_region,
- GdkRectangle *area)
-{
- GdkRectangle paint_area;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DEBUG_RECT ("painting (clipped)", *area);
- paint_area = zoom_region_clip_to_window (zoom_region, *area);
- zoom_region_paint_pixmap (zoom_region, &paint_area);
- zoom_region_paint_cursor (zoom_region, &paint_area);
- zoom_region_paint_crosswire_cursor (zoom_region, &paint_area);
-}
-
-static ZoomRegionPixmapCreationError
-zoom_region_create_pixmap (ZoomRegion *zoom_region)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->priv->w && GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- {
- long width = (zoom_region->priv->source_area.x2 -
- zoom_region->priv->source_area.x1) * zoom_region->xscale;
- long height = (zoom_region->priv->source_area.y2 -
- zoom_region->priv->source_area.y1) * zoom_region->yscale;
- zoom_region->priv->pixmap =
- gdk_pixmap_new (
- zoom_region->priv->w->window,
- width,
- height,
- gdk_drawable_get_depth (
- zoom_region->priv->w->window));
-
- if (magnifier_error_check ()) {
- zoom_region->priv->pixmap = NULL;
- return ZOOM_REGION_ERROR_TOO_BIG;
- }
-
- DEBUG_RECT("viewport", zoom_region_source_rect_from_view_bounds
- (zoom_region, &zoom_region->viewport));
- DEBUG_RECT("source", zoom_region_rect_from_bounds
- (zoom_region, &((Magnifier*)zoom_region->priv->parent)->source_bounds));
-
- zoom_region_update (zoom_region,
-/* zoom_region_source_rect_from_view_bounds (
- zoom_region,
- &zoom_region->viewport));
-*/
- zoom_region_rect_from_bounds
- (zoom_region,
- &((Magnifier *)zoom_region->priv->parent)->source_bounds));
- return ZOOM_REGION_ERROR_NONE;
- }
-
- return ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE;
-}
-
-static void
-zoom_region_expose_handler (GtkWindow * w,
- GdkEventExpose *event,
- gpointer data)
-{
- ZoomRegion *zoom_region = data;
- DEBUG_RECT ("expose", event->area);
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->priv->pixmap == NULL)
- {
- ZoomRegionPixmapCreationError ret;
- /* TODO: scale down if this fails here */
- while ((ret = zoom_region_create_pixmap (zoom_region)) ==
- ZOOM_REGION_ERROR_TOO_BIG) {
- zoom_region->xscale -= 1.0;
- zoom_region->yscale -= 1.0;
- zoom_region->priv->pixmap = NULL;
- g_warning ("Scale factor too big to fit in memory; shrinking.");
- }
- if (ret == ZOOM_REGION_ERROR_NO_TARGET_DRAWABLE)
- g_warning ("create-pixmap: no target drawable");
- }
- zoom_region_paint (zoom_region, &event->area);
-}
-
-static void
-zoom_region_update_cursor (ZoomRegion *zoom_region, int dx, int dy,
- GdkRectangle *clip_rect)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- zoom_region_unpaint_crosswire_cursor (zoom_region, clip_rect);
- zoom_region_unpaint_cursor (zoom_region, clip_rect);
- zoom_region->priv->cursor_backing_rect.x += dx;
- zoom_region->priv->cursor_backing_rect.y += dy;
- zoom_region->priv->last_drawn_crosswire_pos.x += dx;
- zoom_region->priv->last_drawn_crosswire_pos.y += dy;
- zoom_region_paint_cursor (zoom_region, clip_rect);
- zoom_region_paint_crosswire_cursor (zoom_region, clip_rect);
- if (GTK_IS_WIDGET (zoom_region->priv->w) &&
- GDK_IS_WINDOW (zoom_region->priv->w->window))
- gdk_display_sync (gdk_drawable_get_display (
- zoom_region->priv->w->window));
-}
-
-static gboolean
-zoom_region_calculate_scroll_rects (ZoomRegion *zoom_region,
- int dx, int dy,
- GdkRectangle *scroll_rect,
- GdkRectangle *expose_rect_h,
- GdkRectangle *expose_rect_v)
-{
- GdkWindow *window = NULL;
- GdkRectangle rect = {0, 0, 0, 0};
- gboolean retval = TRUE;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- rect.x = 0;
- rect.y = 0;
- if (zoom_region && zoom_region->priv->w &&
- zoom_region->priv->w->window)
- window = zoom_region->priv->w->window;
- else
- retval = FALSE;
- if (!window)
- retval = FALSE;
-
- if (window != NULL)
- gdk_drawable_get_size (GDK_DRAWABLE (window),
- &rect.width,
- &rect.height);
-
- if ((ABS (dx) >= rect.width) || (ABS (dy) >= rect.height)) {
- *scroll_rect = rect;
- DBG(fprintf (stderr, "deltas too big to scroll\n"));
- retval = FALSE;
- }
- else {
- scroll_rect->x = MAX (0, dx);
- scroll_rect->y = MAX (0, dy);
- scroll_rect->width = MIN (rect.width + dx, rect.width - dx);
- scroll_rect->height = MIN (rect.height + dy, rect.height - dy);
- }
-
- expose_rect_h->x = 0;
- expose_rect_h->y = (scroll_rect->y == 0) ? scroll_rect->height : 0;
- expose_rect_h->width = rect.width;
- expose_rect_h->height = rect.height - scroll_rect->height;
-
- expose_rect_v->x = (scroll_rect->x == 0) ? scroll_rect->width : 0;
- expose_rect_v->y = scroll_rect->y;
- expose_rect_v->width = rect.width - scroll_rect->width;
- expose_rect_v->height = scroll_rect->height;
-
- return retval;
-}
-
-static void
-zoom_region_scroll_fast (ZoomRegion *zoom_region, int dx, int dy,
- GdkRectangle *scroll_rect,
- GdkRectangle *expose_rect_h,
- GdkRectangle *expose_rect_v)
-{
- GdkWindow *window;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->priv->w && zoom_region->priv->w->window)
- window = zoom_region->priv->w->window;
- else {
- processing_updates = FALSE;
- return;
- }
- zoom_region_unpaint_crosswire_cursor (zoom_region, scroll_rect);
- zoom_region_unpaint_cursor (zoom_region, scroll_rect);
- gdk_window_scroll (window, dx, dy);
- zoom_region_paint_cursor (zoom_region, scroll_rect);
- zoom_region_paint_crosswire_cursor (zoom_region, scroll_rect);
- gdk_window_process_updates (window, FALSE);
- /* sync reduces cursor flicker, but slows things down */
- if (zoom_region->smooth_scroll_policy >
- GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST)
- gdk_display_sync (gdk_drawable_get_display (window));
-}
-
-static void
-zoom_region_scroll_smooth (ZoomRegion *zoom_region, int dx, int dy,
- GdkRectangle *scroll_rect,
- GdkRectangle *expose_rect_h,
- GdkRectangle *expose_rect_v)
-{
- GdkWindow *window = NULL;
- GdkRectangle window_rect;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->priv->w && GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- window = zoom_region->priv->w->window;
- else
- return;
- window_rect.x = 0;
- window_rect.y = 0;
- gdk_drawable_get_size (GDK_DRAWABLE (window),
- &window_rect.width, &window_rect.height);
- gdk_window_begin_paint_rect (window, &window_rect);
- gdk_window_invalidate_rect (window, &window_rect, FALSE);
- gdk_window_process_updates (window, FALSE);
- gdk_window_end_paint (window);
-}
-
-static void
-zoom_region_scroll (ZoomRegion *zoom_region, int dx, int dy)
-{
- GdkRectangle scroll_rect, expose_rect_h, expose_rect_v;
- gboolean can_scroll;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (timing_test) {
- mag_timing.num_line_samples++;
- mag_timing.dx = abs(dx);
- mag_timing.dy = abs(dy);
- mag_timing.dx_total += mag_timing.dx;
- mag_timing.dy_total += mag_timing.dy;
- if (zoom_region->timing_output) {
- fprintf(stderr, " Panning Increment (x) = %d (avg. %f) lines/frame\n",
- mag_timing.dx, (float)mag_timing.dx_total / (float)mag_timing.num_line_samples);
- fprintf(stderr, " Panning Increment (y) = %d (avg. %f) lines/frame\n",
- mag_timing.dy, (float)mag_timing.dy_total / (float)mag_timing.num_line_samples);
- }
- }
-
- /*
- * Currently processing a screen update. This flag used to disallow
- * other updates to occur until this one finishes
- */
- processing_updates = TRUE;
-
- can_scroll = zoom_region_calculate_scroll_rects (zoom_region, dx, dy,
- &scroll_rect,
- &expose_rect_h,
- &expose_rect_v);
-
- if (can_scroll) {
- zoom_region_update_pixmap (zoom_region, zoom_region_source_rect_from_view_rect (zoom_region, expose_rect_h), NULL);
- zoom_region_update_pixmap (zoom_region, zoom_region_source_rect_from_view_rect (zoom_region, expose_rect_v), NULL);
-
- if (zoom_region->smooth_scroll_policy > GNOME_Magnifier_ZoomRegion_SCROLL_FAST) {
- zoom_region_scroll_smooth (zoom_region, dx, dy,
- &scroll_rect,
- &expose_rect_h,
- &expose_rect_v);
- } else {
- zoom_region_scroll_fast (zoom_region, dx, dy,
- &scroll_rect,
- &expose_rect_h,
- &expose_rect_v);
- }
- } else {
- zoom_region_queue_update (zoom_region, zoom_region_source_rect_from_view_rect (zoom_region, scroll_rect));
- }
-}
-
-static void
-zoom_region_recompute_exposed_bounds (ZoomRegion *zoom_region)
-{
- zoom_region->priv->exposed_bounds.x2 = zoom_region->priv->exposed_bounds.x1
- + (zoom_region->viewport.x2 - zoom_region->viewport.x1);
- zoom_region->priv->exposed_bounds.y2 = zoom_region->priv->exposed_bounds.y1
- + (zoom_region->viewport.y2 - zoom_region->viewport.y1);
-}
-
-static void
-zoom_region_set_cursor_pos (ZoomRegion *zoom_region, int x, int y)
-{
- if (zoom_region->priv)
- {
- zoom_region->priv->last_cursor_pos.x = x;
- zoom_region->priv->last_cursor_pos.y = y;
- }
-}
-
-static gboolean
-zoom_region_update_pointer (ZoomRegion *zoom_region, gboolean draw_cursor)
-{
- Magnifier *magnifier;
- gint mouse_x_return, mouse_y_return;
- guint mask_return;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (!zoom_region->priv || !zoom_region->priv->parent
- || !zoom_region->poll_mouse)
- return FALSE;
-
- magnifier = zoom_region->priv->parent;
-
- /* TODO: there's really no reason we should be using magnifier->priv->root here */
- if (magnifier && magnifier->priv && magnifier_get_root (magnifier))
- {
- gdk_window_get_pointer (
- magnifier_get_root (magnifier),
- &mouse_x_return,
- &mouse_y_return,
- &mask_return);
-
- if (zoom_region->priv->last_cursor_pos.x != mouse_x_return
- || zoom_region->priv->last_cursor_pos.y != mouse_y_return)
- {
- zoom_region_set_cursor_pos (zoom_region,
- mouse_x_return, mouse_y_return);
- if (draw_cursor)
- {
- GdkRectangle paint_area, *clip = NULL;
-
- if (GTK_IS_WIDGET (zoom_region->priv->w) &&
- GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- {
- gdk_drawable_get_size (GDK_DRAWABLE (zoom_region->priv->w->window), &paint_area.width, &paint_area.height);
- paint_area.x = 0;
- paint_area.y = 0;
- clip = &paint_area;
- paint_area =
- zoom_region_clip_to_source (
- zoom_region,
- paint_area);
- }
- zoom_region_update_cursor (zoom_region, 0, 0,
- clip);
- }
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static int
-zoom_region_update_pointer_idle (gpointer data)
-{
- ZoomRegion *zoom_region = (ZoomRegion *) data;
-
- if (zoom_region_update_pointer (zoom_region, TRUE))
- return TRUE;
- else {
- if (zoom_region->priv)
- zoom_region->priv->update_pointer_id =
- g_timeout_add_full (G_PRIORITY_DEFAULT,
- 100,
- zoom_region_update_pointer_timeout,
- zoom_region,
- NULL);
- return FALSE;
- }
-}
-
-static int
-zoom_region_update_pointer_timeout (gpointer data)
-{
- ZoomRegion *zoom_region = data;
-
- if (zoom_region->priv && zoom_region_update_pointer (zoom_region, TRUE)) {
- zoom_region->priv->update_pointer_id =
- g_idle_add_full (G_PRIORITY_HIGH_IDLE,
- zoom_region_update_pointer_idle,
- data,
- NULL);
- return FALSE;
- } else
- return TRUE;
-}
-
-static void
-zoom_region_moveto (ZoomRegion *zoom_region,
- const long x, const long y)
-{
- long dx = x * zoom_region->xscale - zoom_region->priv->exposed_bounds.x1;
- long dy = y * zoom_region->yscale - zoom_region->priv->exposed_bounds.y1;
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
-/* fprintf (stderr, "moveto %ld %ld\n", x, y); */
-
- mag_timing.dx = 0;
- mag_timing.dy = 0;
-
- if ((dx != 0) || (dy != 0)) {
- zoom_region_update_pointer (zoom_region, FALSE);
- zoom_region->priv->exposed_bounds.x1 = x * zoom_region->xscale;
- zoom_region->priv->exposed_bounds.y1 = y * zoom_region->yscale;
- zoom_region_recompute_exposed_bounds (zoom_region);
- zoom_region_scroll (zoom_region,
- -dx, -dy);
- }
-}
-
-/*
- * Process that must be made in-line in the current pixbuf.
- */
-static void
-zoom_region_process_pixbuf (ZoomRegion *zoom_region, GdkPixbuf *pixbuf)
-{
- int rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- int i, j, t;
- int w = gdk_pixbuf_get_width (pixbuf);
- int h = gdk_pixbuf_get_height (pixbuf);
- int n_channels = gdk_pixbuf_get_n_channels (pixbuf);
- guchar *pixels = gdk_pixbuf_get_pixels (pixbuf);
- guchar *pixels_row;
-#ifdef HAVE_COLORBLIND
- COLORBLIND_RUNTIME *cbr;
- COLORBLIND_XCOLOR *color;
-#endif /* HAVE_COLORBLIND */
-
- gboolean manipulate_contrast = FALSE;
- gboolean manipulate_brightness = FALSE;
- gboolean color_blind_filter = FALSE;
-
- if (zoom_region->contrast_r != 0 || zoom_region->contrast_g != 0 ||
- zoom_region->contrast_b != 0) {
- manipulate_contrast = TRUE;
- }
-
- if (zoom_region->bright_r != 0 || zoom_region->bright_g != 0 ||
- zoom_region->bright_b != 0) {
- manipulate_brightness = TRUE;
- }
-
-#ifdef HAVE_COLORBLIND
- if (zoom_region->color_blind_filter !=
- GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER) {
- color_blind_filter = TRUE;
- cbr = colorblind_create ();
- color = malloc (sizeof (COLORBLIND_XCOLOR));
- switch (zoom_region->color_blind_filter) {
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER:
- break; /* This entry is only to avoid a warning */
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_saturate_red);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_saturate_green);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_saturate_blue);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_dessaturate_red);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_dessaturate_green);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_dessaturate_blue);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_hue_shift_positive);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_hue_shift_negative);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_saturate);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE:
- colorblind_set_filter_type (cbr, colorblind_filter_t_selective_dessaturate);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_MONOCHRONE_OTHERS:
- colorblind_set_filter_type (cbr, colorblind_filter_t_monochrome_others);
- break;
- }
- }
-#endif /* HAVE_COLORBLIND */
-
- if (!manipulate_contrast && !zoom_region->invert &&
- !manipulate_brightness && !color_blind_filter)
- return;
-
-#define CLAMP_UCHAR(v) (t = (v), CLAMP (t, 0, 255))
-#define CLAMP_LOW_MID(v) (t = (v), CLAMP (t, 0, 127))
-#define CLAMP_MID_HIGH(v) (t = (v), CLAMP (t, 127, 255))
-
- for (j = 0; j < h; ++j) {
- pixels_row = pixels;
- for (i = 0; i < w; ++i) {
- if (manipulate_contrast) {
- /* Set the RED contrast */
- if (pixels_row[0] <= 127)
- pixels_row[0] = CLAMP_LOW_MID (pixels_row[0] - zoom_region->contrast_r * 127);
- else
- pixels_row[0] = CLAMP_MID_HIGH (pixels_row[0] + zoom_region->contrast_r * 127);
-
- /* Set the GREEN contrast */
- if (pixels_row[1] <= 127)
- pixels_row[1] = CLAMP_LOW_MID (pixels_row[1] - zoom_region->contrast_g * 127);
- else
- pixels_row[1] = CLAMP_MID_HIGH (pixels_row[1] + zoom_region->contrast_g * 127);
-
- /* Set the BLUE contrast */
- if (pixels_row[2] <= 127)
- pixels_row[2] = CLAMP_LOW_MID (pixels_row[2] - zoom_region->contrast_b * 127);
- else
- pixels_row[2] = CLAMP_MID_HIGH (pixels_row[2] + zoom_region->contrast_b * 127);
- }
-
- if (manipulate_brightness) {
- /* Set the RED brightness */
- pixels_row[0] = CLAMP_UCHAR (pixels_row[0] + zoom_region->bright_r * 255);
-
- /* Set the GREEN brightness */
- pixels_row[1] = CLAMP_UCHAR (pixels_row[1] + zoom_region->bright_g * 255);
-
- /* Set the BLUE brightness */
- pixels_row[2] = CLAMP_UCHAR (pixels_row[2] + zoom_region->bright_b * 255);
- }
-
- if (zoom_region->invert) {
- pixels_row[0] = ~(pixels_row[0]);
- pixels_row[1] = ~(pixels_row[1]);
- pixels_row[2] = ~(pixels_row[2]);
- }
-
-#ifdef HAVE_COLORBLIND
- if (color_blind_filter) {
- color->red = pixels_row[0];
- color->green = pixels_row[1];
- color->blue = pixels_row[2];
- if (colorblind_filter (cbr, color)) {
- pixels_row[0] = color->red;
- pixels_row[1] = color->green;
- pixels_row[2] = color->blue;
- }
- }
-#endif /* HAVE_COLORBLIND */
-
- pixels_row += n_channels;
- }
- pixels += rowstride;
- }
-}
-
-static void
-zoom_region_post_process_pixbuf (ZoomRegion *zoom_region,
- GdkPixbuf *subimage,
- GdkPixbuf *scaled_image)
-{
- /* nothing yet */
- /**
- * ADI: This is where your image smoothing code
- * hooks into the magnifier. This routine can call others which
- * post-process the GdkPixbuf before rendering to the screen.
- *
- * We can make this a two-stage process also, whereby the post-process code
- * is only called in a lower-priority idle handler, and queues repaints
- * when it is done.
- **/
-}
-
-static GdkPixbuf *
-zoom_region_get_source_subwindow (ZoomRegion *zoom_region,
- const GdkRectangle bounds)
-{
- int i, j, width, height;
- Magnifier *magnifier = zoom_region->priv->parent;
- GdkPixbuf *subimage = NULL;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- width = gdk_screen_get_width (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
- height = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
-
- if ((bounds.width <= 0) || (bounds.height <= 0))
- {
- return NULL;
- }
-
- if (!zoom_region->priv->source_drawable)
- {
- /* TESTING ONLY */
- if (zoom_region->priv->test) {
- GdkImage *test_image = NULL;
-
- test_image = gdk_image_new (GDK_IMAGE_FASTEST,
- gdk_visual_get_system (),
- width,
- height);
-
- for (i = 0; i < width; ++i)
- for (j = 0; j < height; ++j)
- gdk_image_put_pixel (test_image, i, j, i*j);
-
- zoom_region->priv->source_drawable = gdk_pixmap_new (zoom_region->priv->w->window, width, height, -1);
-
- if (zoom_region->priv->default_gc == NULL)
- zoom_region->priv->default_gc = gdk_gc_new(zoom_region->priv->w->window);
-
- gdk_draw_image (zoom_region->priv->source_drawable,
- zoom_region->priv->default_gc,
- test_image,
- 0, 0,
- 0, 0,
- width, height);
- }
- else
- {
- if (magnifier->priv->source_drawable) {
- zoom_region->priv->source_drawable =
- magnifier->priv->source_drawable;
- } else
- zoom_region->priv->source_drawable = gdk_screen_get_root_window (gdk_display_get_screen (magnifier->source_display, magnifier->source_screen_num));
- }
- if (zoom_region->cache_source)
- {
- zoom_region->priv->source_pixbuf_cache =
- gdk_pixbuf_new (GDK_COLORSPACE_RGB,
- FALSE,
- 8, /* FIXME: not always 8? */
- width, height);
- }
- }
- DEBUG_RECT ("getting subimage from ", bounds);
-
- subimage = gdk_pixbuf_get_from_drawable (NULL, zoom_region->priv->source_drawable,
- gdk_colormap_get_system (),
- bounds.x,
- bounds.y,
- 0,
- 0,
- bounds.width,
- bounds.height);
-
- /* TODO: blank the region overlapped by the target display if source == target */
-
- if (!subimage)
- _debug_announce_rect ("update of invalid subregion!\n", bounds);
-
- /* if this zoom-region keeps a cache, do a diff to see if update is necessary */
- if (zoom_region->cache_source && subimage) {
- GdkPixbuf *cache_subpixbuf =
- gdk_pixbuf_new_subpixbuf (zoom_region->priv->source_pixbuf_cache,
- bounds.x, bounds.y, bounds.width, bounds.height);
- if (_diff_pixbufs (subimage, cache_subpixbuf)) {
- gdk_pixbuf_copy_area (subimage, 0, 0, bounds.width, bounds.height,
- zoom_region->priv->source_pixbuf_cache,
- bounds.x, bounds.y);
- }
- else
- {
- if (subimage)
- g_object_unref (subimage);
- subimage = NULL;
- }
- g_object_unref (cache_subpixbuf);
- }
- return subimage;
-}
-
-static GdkRectangle
-zoom_region_update_pixmap (ZoomRegion *zoom_region,
- const GdkRectangle update_rect,
- GdkRectangle *p_rect)
-{
- GdkPixbuf *subimage;
- GdkRectangle source_rect;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DEBUG_RECT ("unclipped update rect", update_rect);
- source_rect = zoom_region_clip_to_source (zoom_region, update_rect);
- DEBUG_RECT ("clipped to source", source_rect);
- source_rect = zoom_region_clip_to_exposed_target (zoom_region, source_rect);
- DEBUG_RECT ("update rect clipped to exposed target", source_rect);
-
- subimage = zoom_region_get_source_subwindow (zoom_region, source_rect);
-
- if (subimage)
- {
- GdkRectangle paint_rect;
- g_timer_start (mag_timing.scale);
- DEBUG_RECT ("source rect", source_rect);
- paint_rect = zoom_region_view_rect_from_source_rect (zoom_region, source_rect);
- if (p_rect) {
- *p_rect = paint_rect;
- }
- /* paint_rect = zoom_region_clip_to_scaled_pixmap (zoom_region, paint_rect); */
- DEBUG_RECT ("paint rect", paint_rect);
-
- zoom_region_process_pixbuf (zoom_region, subimage);
-
- /**
- * XXX: We seem to be breaking with the original intention
- * here, which was to keep a fullscreen scaled pixbuf in-sync.
- **/
- gdk_pixbuf_scale (subimage,
- zoom_region->priv->scaled_pixbuf,
- 0,
- 0,
- paint_rect.width,
- paint_rect.height,
- 0,
- 0,
- zoom_region->xscale,
- zoom_region->yscale,
- zoom_region->priv->gdk_interp_type);
-
- zoom_region_post_process_pixbuf (zoom_region, subimage,
- zoom_region->priv->scaled_pixbuf);
- if (zoom_region->priv->default_gc == NULL)
- zoom_region->priv->default_gc = gdk_gc_new(zoom_region->priv->w->window);
-
-#ifndef USE_GDK_PIXBUF_RENDER_TO_DRAWABLE
- if (GDK_IS_DRAWABLE (zoom_region->priv->pixmap))
- gdk_draw_pixbuf (zoom_region->priv->pixmap,
- zoom_region->priv->default_gc,
- zoom_region->priv->scaled_pixbuf,
- 0,
- 0,
- paint_rect.x + zoom_region->priv->exposed_bounds.x1 - zoom_region->priv->source_area.x1 * zoom_region->xscale,
- paint_rect.y + zoom_region->priv->exposed_bounds.y1 - zoom_region->priv->source_area.y1 * zoom_region->yscale,
- paint_rect.width,
- paint_rect.height,
- GDK_RGB_DITHER_NONE,
- 0,
- 0);
- else
- g_warning ("updating non-drawable pixmap: region %p", zoom_region);
-#else
- gdk_pixbuf_render_to_drawable (zoom_region->priv->scaled_pixbuf,
- zoom_region->priv->pixmap,
- zoom_region->priv->default_gc,
- 0,
- 0,
- paint_rect.x + zoom_region->priv->exposed_bounds.x1,
- paint_rect.y + zoom_region->priv->exposed_bounds.y1,
- paint_rect.width,
- paint_rect.height,
- GDK_RGB_DITHER_NONE,
- 0,
- 0);
-#endif
- if (magnifier_error_check ())
- g_warning ("Could not render scaled image to drawable; out of memory!\n");
- g_object_unref (subimage);
-
- g_timer_stop (mag_timing.scale);
- }
- return source_rect;
-}
-
-/**
- * zoom_region_update:
- *
- * @rect: a RectBounds structure indicating the source area to update,
- * in the source coordinate system.
- **/
-static void
-zoom_region_update (ZoomRegion *zoom_region,
- const GdkRectangle update_rect)
-{
- GdkRectangle paint_rect = {0, 0, 0, 0};
- if (zoom_region->priv->w && zoom_region->priv->w->window) {
- GdkRectangle source_rect = zoom_region_update_pixmap (zoom_region, update_rect, &paint_rect);
- if (paint_rect.x != 0 || paint_rect.y != 0 ||
- paint_rect.width != 0 || paint_rect.height != 0) {
- gdk_window_begin_paint_rect (
- zoom_region->priv->w->window, &paint_rect);
- zoom_region_paint (zoom_region, &paint_rect);
- gdk_window_end_paint (zoom_region->priv->w->window);
- }
- if (timing_test) {
- mag_timing.num_scale_samples++;
-
- gulong microseconds;
-
- mag_timing.scale_val =
- g_timer_elapsed (mag_timing.scale,
- &microseconds);
- mag_timing.scale_total += mag_timing.scale_val;
-
- if (mag_timing.scale_val != 0 && (timing_scale_max == 0 ||
- (1.0/(float)mag_timing.scale_val) > (1.0/(float)timing_scale_max)))
- timing_scale_max = mag_timing.scale_val;
- if ((source_rect.height * source_rect.width / mag_timing.scale_val) > update_nrr_max)
- update_nrr_max = source_rect.height * source_rect.width / mag_timing.scale_val;
-
- mag_timing.update_pixels_total += source_rect.height * source_rect.width;
-
- if (zoom_region->timing_output) {
- fprintf(stderr, " Update Duration = %f (avg. %f) (max. %f) (tot. %f) seconds\n",
- mag_timing.scale_val, (mag_timing.scale_total /
- mag_timing.num_scale_samples), timing_scale_max, mag_timing.scale_total);
- fprintf(stderr, " Update Pixels = %ld (avg. %ld) pixels/frame\n",
- (long) source_rect.height * source_rect.width,
- mag_timing.update_pixels_total / mag_timing.num_scale_samples);
- fprintf(stderr, " Update Rate = (avg. %f) (max. %f) updates/second\n",
- 1.0/(mag_timing.scale_total / mag_timing.num_scale_samples), 1.0/(float)timing_scale_max);
- fprintf(stderr, " Net Update Rate = (avg. %f) (max. %f) Mpex/second\n",
- ((float)mag_timing.update_pixels_total / (float)mag_timing.scale_total) / 1000000.0,
- update_nrr_max / 1000000.0);
- }
- }
- } else {
- fprintf (stderr, "update on uninitialized zoom region!\n");
- }
-}
-
-static void
-zoom_region_init_window (ZoomRegion *zoom_region)
-{
- GtkFixed *parent;
- GtkWidget *zoomer, *border;
- DBG(fprintf (stderr, "window not yet created...\n"));
- parent = GTK_FIXED (
- ((Magnifier *)zoom_region->priv->parent)->priv->canvas);
- zoomer = gtk_drawing_area_new ();
- border = gtk_drawing_area_new ();
- zoom_region->priv->border = border;
- zoom_region->priv->w = zoomer;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- gtk_widget_set_size_request (GTK_WIDGET (border),
- zoom_region->viewport.x2 -
- zoom_region->viewport.x1,
- zoom_region->viewport.y2 -
- zoom_region->viewport.y1);
- gtk_widget_set_size_request (GTK_WIDGET (zoomer),
- zoom_region->viewport.x2 -
- zoom_region->viewport.x1 -
- zoom_region->border_size * 2,
- zoom_region->viewport.y2 -
- zoom_region->viewport.y1 -
- zoom_region->border_size * 2);
- gtk_fixed_put (parent, border,
- zoom_region->viewport.x1,
- zoom_region->viewport.y1);
- gtk_fixed_put (parent, zoomer,
- zoom_region->viewport.x1 + zoom_region->border_size,
- zoom_region->viewport.y1 + zoom_region->border_size);
- gtk_widget_show (GTK_WIDGET (border));
- gtk_widget_show (GTK_WIDGET (zoomer));
- gtk_widget_show (GTK_WIDGET (parent));
- zoom_region->priv->expose_handler_id =
- g_signal_connect (G_OBJECT (zoom_region->priv->w),
- "expose_event",
- G_CALLBACK (zoom_region_expose_handler),
- zoom_region);
- DBG(fprintf (stderr, "New window created\n"));
-}
-
-static int
-zoom_region_process_updates (gpointer data)
-{
- ZoomRegion *zoom_region = (ZoomRegion *) data;
-
- /* TODO: lock the queue when copying it? */
- zoom_region_coalesce_updates (zoom_region);
-
- if (zoom_region->priv->q != NULL) {
- GList *last = g_list_last (zoom_region->priv->q);
-#ifdef ZOOM_REGION_DEBUG
- fprintf (stderr, "qlen=%d\n", g_list_length (zoom_region->priv->q));
-#endif
- if (last) {
- zoom_region->priv->q = g_list_remove_link (zoom_region->priv->q,
- last);
- zoom_region_update (zoom_region,
- * (GdkRectangle *) last->data);
- g_list_free (last);
-#ifdef DEBUG
- fputs (".\n", stderr); /* debug output, means we actually did something. */
-#endif
- }
- return TRUE;
- }
- else
- {
- if (zoom_region->priv)
- zoom_region->priv->update_handler_id = 0;
- return FALSE;
- }
-}
-
-void
-timing_report(ZoomRegion *zoom_region)
-{
- float frame_avg;
- float x_scroll_incr, y_scroll_incr;
- int width, height, x, y;
-
- if (timing_test) {
- width = (zoom_region->viewport.x2 -
- zoom_region->viewport.x1) / zoom_region->xscale;
- height = (zoom_region->viewport.y2 -
- zoom_region->viewport.y1) / zoom_region->yscale;
-
- frame_avg = mag_timing.frame_total / mag_timing.num_frame_samples;
-
- x_scroll_incr = (float)mag_timing.dx_total / (float)mag_timing.num_line_samples;
- y_scroll_incr = (float)mag_timing.dy_total / (float)mag_timing.num_line_samples;
-
- gdk_drawable_get_size (GDK_DRAWABLE (zoom_region->priv->w->window),
- &x, &y);
-
- fprintf(stderr, " Frames Processed = %ld\n",
- mag_timing.num_frame_samples + 1);
- fprintf(stderr, " Width/Height/Depth = %d/%d/%d\n", x, y,
- gdk_drawable_get_depth (zoom_region->priv->w->window));
- fprintf(stderr, " Zoom Factor (x/y) = %f/%f\n", zoom_region->xscale,
- zoom_region->yscale);
- if (mag_timing.num_scale_samples != 0) {
- fprintf(stderr, " Update Duration = (avg. %f) (max. %f) (tot. %f) seconds\n",
- (mag_timing.scale_total / mag_timing.num_scale_samples), timing_scale_max, mag_timing.scale_total);
- fprintf(stderr, " Update Pixels = (avg. %ld) pixels/frame\n",
- mag_timing.update_pixels_total / mag_timing.num_scale_samples);
- fprintf(stderr, " Update Rate = (avg. %f) (max. %f) updates/second\n",
- 1.0/((float)mag_timing.scale_total / (float)mag_timing.num_scale_samples),
- 1.0/(float)timing_scale_max);
- fprintf(stderr, " Net Update Rate = (avg. %f) (max. %f) Mpex/second\n",
- ((float)mag_timing.update_pixels_total / (float)mag_timing.scale_total) / 1000000.0,
- update_nrr_max / 1000000.0);
- }
- fprintf(stderr, " Pan Latency = (avg. %f) (max. %f) seconds\n",
- (mag_timing.idle_total / mag_timing.num_idle_samples), timing_idle_max);
- fprintf(stderr, " Total Frame Duration = (avg. %f) (max. %f) (tot. %f) seconds\n",
- frame_avg, timing_frame_max, mag_timing.frame_total);
- fprintf(stderr, " Frame Rate = (avg. %f) (max. %f) frames/second\n",
- 1.0 / (mag_timing.frame_total / mag_timing.num_frame_samples), cps_max);
- fprintf(stderr, " Scroll Delta (x) = (avg. %f) (tot. %d) lines\n",
- x_scroll_incr, mag_timing.dx_total);
- fprintf(stderr, " Scroll Delta (y) = (avg. %f) (tot. %d) lines\n",
- y_scroll_incr, mag_timing.dy_total);
- fprintf(stderr, " Scroll Rate (x) = (avg. %f) lines/second\n",
- x_scroll_incr / frame_avg);
- fprintf(stderr, " Scroll Rate (y) = (avg. %f) lines/second\n",
- y_scroll_incr / frame_avg);
-
- fprintf(stderr, " Net Render Rate = (avg. %f) (max. %f) Mpex/second\n\n",
- (height * width *
- ((float)mag_timing.num_frame_samples / (float)mag_timing.frame_total)) / 1000000.0,
- nrr_max / 1000000.0);
- }
-}
-
-static void
-zoom_region_time_frame(ZoomRegion *zoom_region, Magnifier *magnifier)
-{
- float frame_avg;
- float x_scroll_incr, y_scroll_incr;
- int width = magnifier->target_bounds.x2 - magnifier->target_bounds.x1;
- int height = magnifier->target_bounds.y2 - magnifier->target_bounds.y1;
-
- mag_timing.num_frame_samples++;
- g_timer_stop (mag_timing.frame);
-
- gulong microseconds;
-
- mag_timing.frame_val = g_timer_elapsed (mag_timing.frame,
- &microseconds);
-
- mag_timing.frame_total += mag_timing.frame_val;
- if (mag_timing.frame_val > timing_frame_max)
- timing_frame_max = mag_timing.frame_val;
- if (mag_timing.frame_val != 0 && 1.0/mag_timing.frame_val > cps_max)
- cps_max = 1.0/mag_timing.frame_val;
-
- frame_avg = mag_timing.frame_total / mag_timing.num_frame_samples;
-
- x_scroll_incr = (float)mag_timing.dx_total / (float)mag_timing.num_line_samples;
- y_scroll_incr = (float)mag_timing.dy_total / (float)mag_timing.num_line_samples;
-
- if ((height * width / mag_timing.frame_val) > nrr_max)
- nrr_max = height * width / mag_timing.frame_val;
-
- if (zoom_region->timing_output) {
- fprintf(stderr, " Total Frame Duration = %f (avg. %f) (max. %f) (tot. %f) seconds\n",
- mag_timing.frame_val, frame_avg, timing_frame_max, mag_timing.frame_total);
- fprintf(stderr, " Frame Rate = (avg. %f) (max. %f) frames/second\n",
- 1.0 /frame_avg, cps_max);
- fprintf(stderr, " Scroll Delta (x) = (avg. %f) (tot. %d) lines\n",
- x_scroll_incr, mag_timing.dx_total);
- fprintf(stderr, " Scroll Delta (y) = (avg. %f) (tot. %d) lines\n",
- y_scroll_incr, mag_timing.dy_total);
- fprintf(stderr, " Scroll Rate (x) = (avg. %f) lines/second\n",
- x_scroll_incr / frame_avg);
- fprintf(stderr, " Scroll Rate (y) = (avg. %f) lines/second\n",
- y_scroll_incr / frame_avg);
-
- fprintf(stderr, " Net Render Rate = (avg. %f) (max. %f) Mpex/second\n",
- (height * width *
- ((float)mag_timing.num_frame_samples / (float)mag_timing.frame_total)) / 1000000.0,
- nrr_max / 1000000.0);
- }
-
- mag_timing.last_frame_val = mag_timing.frame_val;
- mag_timing.last_dy = mag_timing.dy;
-
- if (reset_timing) {
- fprintf(stderr, "\n### Updates summary:\n\n");
- timing_report (zoom_region);
- fprintf(stderr, "\n### Updates finished, starting panning test\n");
- reset_timing_stats();
- reset_timing = FALSE;
- }
-}
-
-static void
-zoom_region_sync (ZoomRegion *zoom_region)
-{
- while (zoom_region->priv->q)
- zoom_region_process_updates (zoom_region);
-}
-
-static gboolean
-gdk_timing_idle (gpointer data)
-{
- ZoomRegion *zoom_region = data;
-
- /* Now update has finished, reset processing_updates */
- processing_updates = FALSE;
- g_timer_stop (mag_timing.idle);
-
- if (timing_test) {
- mag_timing.num_idle_samples++;
-
- gulong microseconds;
-
- mag_timing.idle_val = g_timer_elapsed (mag_timing.idle,
- &microseconds);
- mag_timing.idle_total += mag_timing.idle_val;
-
- if (mag_timing.idle_val > timing_idle_max)
- timing_idle_max = mag_timing.idle_val;
-
- if (zoom_region->timing_output) {
- fprintf(stderr, " Pan Latency = %f (avg. %f) (max. %f) seconds\n",
- mag_timing.idle_val, (mag_timing.idle_total /
- mag_timing.num_idle_samples), timing_idle_max);
- }
- }
-
- return FALSE;
-}
-
-static void
-zoom_region_align (ZoomRegion *zoom_region)
-{
- Magnifier *magnifier = zoom_region->priv->parent;
- long x = 0, y = 0;
- long width, height;
-
- if (timing_start)
- zoom_region_time_frame(zoom_region, magnifier);
-
- if (timing_test) {
- g_timer_start (mag_timing.frame);
-
- if (zoom_region->timing_output) {
- gint x, y;
-
- gdk_drawable_get_size (GDK_DRAWABLE (zoom_region->priv->w->window),
- &x, &y);
-
- fprintf(stderr, "\nTiming Information - ROI = (%d, %d) (%d, %d):\n",
- zoom_region->roi.x1, zoom_region->roi.y1, zoom_region->roi.x2,
- zoom_region->roi.y2);
- fprintf(stderr, " Frame Number = %ld\n",
- mag_timing.num_frame_samples + 1);
- fprintf(stderr, " Width/Height/Depth = %d/%d/%d\n", x, y,
- gdk_drawable_get_depth (zoom_region->priv->w->window));
- }
-
- /*
- * The timing_start flag makes sure that we don't start displaying output
- * until we have processed an entire frame.
- */
- if (!timing_start)
- g_timer_start (mag_timing.process);
-
- timing_start = TRUE;
- }
-
- g_timer_start (mag_timing.idle);
-
- /*
- * zoom_region_align calls
- * zoom_region_moveto calls
- * zoom_region_scroll calls
- * zoom_region_scroll_fast or zoom_region_scroll_smooth calls
- * gdk_window_scroll or gdk_window_invalidate_rect calls
- * gdk_window_invalidate_region calls
- * gdk_window_invalidate_maybe_recurse
- *
- * The last function in the stack will set up an idle handler of
- * priority GDK_PRIORITY_REDRAW (gdk_window_update_idle) to be called
- * to handle the work of updateing the screen.
- *
- * By setting up an idle handler of priority GDK_PRIORITY_REDRAW + 1,
- * it will be called immediately after and we can determine when GTK+
- * is finished with the update.
- */
- g_idle_add_full (GDK_PRIORITY_REDRAW + 1,
- gdk_timing_idle, zoom_region, NULL);
-
- width = (zoom_region->viewport.x2 -
- zoom_region->viewport.x1) / zoom_region->xscale;
- height = (zoom_region->viewport.y2 -
- zoom_region->viewport.y1) / zoom_region->yscale;
-
- switch (zoom_region->x_align_policy) {
- case GNOME_Magnifier_ZoomRegion_ALIGN_MAX:
- x = zoom_region->roi.x2 - width;
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_MIN:
- x = zoom_region->roi.x1;
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_CENTER:
- default:
- x = ((zoom_region->roi.x1 + zoom_region->roi.x2) - width ) / 2;
- }
-
- switch (zoom_region->y_align_policy) {
- case GNOME_Magnifier_ZoomRegion_ALIGN_MAX:
- y = zoom_region->roi.y2 - height;
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_MIN:
- y = zoom_region->roi.y1;
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_CENTER:
- default:
- y = ((zoom_region->roi.y1 + zoom_region->roi.y2) - height ) / 2;
- }
-
- zoom_region_moveto (zoom_region, x, y);
-}
-
-static void
-zoom_region_set_viewport (ZoomRegion *zoom_region,
- const GNOME_Magnifier_RectBounds *viewport)
-{
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- if (zoom_region->viewport.x1 == viewport->x1 &&
- zoom_region->viewport.y1 == viewport->y1 &&
- zoom_region->viewport.x2 == viewport->x2 &&
- zoom_region->viewport.y2 == viewport->y2) {
- return;
- }
- zoom_region->viewport = *viewport;
-#ifdef DEBUG
- fprintf (stderr, "Setting viewport %d,%d - %d,%d\n",
- (int) viewport->x1, (int) viewport->y1,
- (int) viewport->x2, (int) viewport->y2);
-#endif
- zoom_region_align (zoom_region);
- if (!zoom_region->priv->w) {
- zoom_region_init_window (zoom_region);
- } else {
- CORBA_any *any;
- CORBA_Environment ev;
- Bonobo_PropertyBag properties;
- Magnifier *magnifier = (Magnifier *) zoom_region->priv->parent;
- GtkFixed *fixed = GTK_FIXED (magnifier->priv->canvas);
- gtk_fixed_move (fixed,
- zoom_region->priv->border,
- zoom_region->viewport.x1,
- zoom_region->viewport.y1);
- gtk_fixed_move (fixed,
- zoom_region->priv->w,
- zoom_region->viewport.x1 +
- zoom_region->border_size,
- zoom_region->viewport.y1 +
- zoom_region->border_size);
- gtk_widget_set_size_request (
- GTK_WIDGET (zoom_region->priv->border),
- zoom_region->viewport.x2 - zoom_region->viewport.x1,
- zoom_region->viewport.y2 - zoom_region->viewport.y1);
- gtk_widget_set_size_request (GTK_WIDGET (zoom_region->priv->w),
- zoom_region->viewport.x2 -
- zoom_region->viewport.x1 -
- zoom_region->border_size * 2,
- zoom_region->viewport.y2 -
- zoom_region->viewport.y1 -
- zoom_region->border_size * 2);
- CORBA_exception_init (&ev);
- properties =
- GNOME_Magnifier_Magnifier_getProperties(
- BONOBO_OBJREF (
- (Magnifier *) zoom_region->priv->parent), &ev);
- if (!BONOBO_EX (&ev))
- any = Bonobo_PropertyBag_getValue (
- properties, "source-display-bounds", &ev);
- if (!BONOBO_EX (&ev))
- zoom_region->priv->source_area =
- *((GNOME_Magnifier_RectBounds *) any->_value);
- if (zoom_region->priv->pixmap)
- g_object_unref (zoom_region->priv->pixmap);
- zoom_region_create_pixmap (zoom_region);
- if (zoom_region->priv->scaled_pixbuf)
- g_object_unref (zoom_region->priv->scaled_pixbuf);
-
- zoom_region->priv->scaled_pixbuf =
- gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
- (zoom_region->priv->source_area.x2 -
- zoom_region->priv->source_area.x1) * zoom_region->xscale + 1,
- (zoom_region->priv->source_area.y2 -
- zoom_region->priv->source_area.y1) * zoom_region->yscale + 1);
- }
- zoom_region_queue_update (zoom_region,
- zoom_region_source_rect_from_view_bounds (
- zoom_region, &zoom_region->viewport));
-}
-
-static void
-zoom_region_get_property (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- ZoomRegion *zoom_region = user_data;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Get zoom-region property: %s\n", prop_names[arg_id]));
-
- switch (arg_id) {
- case ZOOM_REGION_MANAGED_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->is_managed);
- break;
- case ZOOM_REGION_POLL_MOUSE_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->poll_mouse);
- break;
- case ZOOM_REGION_INVERT_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->invert);
- break;
- case ZOOM_REGION_SMOOTHSCROLL_PROP:
- BONOBO_ARG_SET_SHORT (arg, zoom_region->smooth_scroll_policy);
- break;
- case ZOOM_REGION_COLORBLIND_PROP:
- BONOBO_ARG_SET_SHORT (arg, zoom_region->color_blind_filter);
- break;
- case ZOOM_REGION_TESTPATTERN_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->priv->test);
- break;
- case ZOOM_REGION_SMOOTHING_PROP:
- BONOBO_ARG_SET_STRING (arg, zoom_region->smoothing);
- break;
- case ZOOM_REGION_CONTRASTR_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->contrast_r);
- break;
- case ZOOM_REGION_CONTRASTG_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->contrast_g);
- break;
- case ZOOM_REGION_CONTRASTB_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->contrast_b);
- break;
- case ZOOM_REGION_BRIGHTR_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->bright_r);
- break;
- case ZOOM_REGION_BRIGHTG_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->bright_g);
- break;
- case ZOOM_REGION_BRIGHTB_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->bright_b);
- break;
- case ZOOM_REGION_XSCALE_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->xscale);
- break;
- case ZOOM_REGION_YSCALE_PROP:
- BONOBO_ARG_SET_FLOAT (arg, zoom_region->yscale);
- break;
- case ZOOM_REGION_BORDERSIZE_PROP:
- BONOBO_ARG_SET_LONG (arg, zoom_region->border_size);
- break;
- case ZOOM_REGION_XALIGN_PROP:
- /* TODO: enums here */
- BONOBO_ARG_SET_INT (arg, zoom_region->x_align_policy);
- break;
- case ZOOM_REGION_YALIGN_PROP:
- BONOBO_ARG_SET_INT (arg, zoom_region->y_align_policy);
- break;
- case ZOOM_REGION_BORDERCOLOR_PROP:
- BONOBO_ARG_SET_LONG (arg,
- zoom_region->border_color);
- break;
- case ZOOM_REGION_VIEWPORT_PROP:
- BONOBO_ARG_SET_GENERAL (arg, zoom_region->viewport,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds,
- NULL);
- break;
- case ZOOM_REGION_TIMING_TEST_PROP:
- BONOBO_ARG_SET_INT (arg, zoom_region->timing_iterations);
- break;
- case ZOOM_REGION_TIMING_OUTPUT_PROP:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->timing_output);
- break;
- case ZOOM_REGION_TIMING_PAN_RATE_PROP:
- BONOBO_ARG_SET_INT (arg, zoom_region->timing_pan_rate);
- break;
- case ZOOM_REGION_EXIT_MAGNIFIER:
- BONOBO_ARG_SET_BOOLEAN (arg, zoom_region->exit_magnifier);
- break;
- default:
- bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
- };
-}
-
-static void
-zoom_region_set_property (BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- ZoomRegion *zoom_region = user_data;
- GNOME_Magnifier_RectBounds bounds;
- gfloat t;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Set zoom-region property: %s\n", prop_names[arg_id]));
-
- switch (arg_id) {
- case ZOOM_REGION_MANAGED_PROP:
- zoom_region->is_managed = BONOBO_ARG_GET_BOOLEAN (arg);
- break;
- case ZOOM_REGION_POLL_MOUSE_PROP:
- zoom_region->poll_mouse = BONOBO_ARG_GET_BOOLEAN (arg);
- if (zoom_region->poll_mouse)
- {
- g_message ("Adding polling timer");
- zoom_region->priv->update_pointer_id =
- g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
- 200,
- zoom_region_update_pointer_timeout,
- zoom_region,
- NULL);
- }
- else if (zoom_region->priv->update_pointer_id)
- {
- g_message ("Removing polling timer");
- g_source_remove (zoom_region->priv->update_pointer_id);
- zoom_region->priv->update_pointer_id = 0;
- }
- break;
- case ZOOM_REGION_INVERT_PROP:
- zoom_region->invert = BONOBO_ARG_GET_BOOLEAN (arg);
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_SMOOTHSCROLL_PROP:
- zoom_region->smooth_scroll_policy = BONOBO_ARG_GET_SHORT (arg);
- break;
- case ZOOM_REGION_COLORBLIND_PROP:
- zoom_region->color_blind_filter = BONOBO_ARG_GET_SHORT (arg);
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_SMOOTHING_PROP:
- zoom_region->smoothing = BONOBO_ARG_GET_STRING (arg);
- if (!strncmp (zoom_region->smoothing, "bilinear", 8))
- zoom_region->priv->gdk_interp_type = GDK_INTERP_BILINEAR;
- else
- zoom_region->priv->gdk_interp_type = GDK_INTERP_NEAREST;
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_TESTPATTERN_PROP:
- zoom_region->priv->test = BONOBO_ARG_GET_BOOLEAN (arg);
- if (zoom_region->priv->source_drawable) {
- g_object_unref (zoom_region->priv->source_drawable);
- zoom_region->priv->source_drawable = NULL;
- }
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_CONTRASTR_PROP:
- zoom_region->contrast_r =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_CONTRASTG_PROP:
- zoom_region->contrast_g =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_CONTRASTB_PROP:
- zoom_region->contrast_b =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_BRIGHTR_PROP:
- zoom_region->bright_r =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_BRIGHTG_PROP:
- zoom_region->bright_g =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_BRIGHTB_PROP:
- zoom_region->bright_b =
- CLAMP_B_C (BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_XSCALE_PROP:
- (void) zoom_region_update_scale (zoom_region,
- BONOBO_ARG_GET_FLOAT (arg),
- zoom_region->yscale);
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_YSCALE_PROP:
- (void) zoom_region_update_scale (zoom_region,
- zoom_region->xscale,
- BONOBO_ARG_GET_FLOAT (arg));
- zoom_region_update_current (zoom_region);
- break;
- case ZOOM_REGION_BORDERSIZE_PROP:
- zoom_region->border_size = BONOBO_ARG_GET_LONG (arg);
- gtk_widget_set_size_request (
- GTK_WIDGET (zoom_region->priv->border),
- zoom_region->viewport.x2 -
- zoom_region->viewport.x1,
- zoom_region->viewport.y2 -
- zoom_region->viewport.y1);
- gtk_widget_set_size_request (GTK_WIDGET (zoom_region->priv->w),
- zoom_region->viewport.x2 -
- zoom_region->viewport.x1 -
- zoom_region->border_size * 2,
- zoom_region->viewport.y2 -
- zoom_region->viewport.y1 -
- zoom_region->border_size * 2);
- gtk_fixed_move (GTK_FIXED (((Magnifier *)zoom_region->priv->parent)->priv->canvas), zoom_region->priv->border, zoom_region->viewport.x1, zoom_region->viewport.y1);
- gtk_fixed_move (GTK_FIXED (((Magnifier *)zoom_region->priv->parent)->priv->canvas), zoom_region->priv->w, zoom_region->viewport.x1 + zoom_region->border_size, zoom_region->viewport.y1 + zoom_region->border_size);
- break;
- case ZOOM_REGION_BORDERCOLOR_PROP:
- zoom_region->border_color =
- BONOBO_ARG_GET_LONG (arg);
- zoom_region_paint_border (zoom_region);
- break;
- case ZOOM_REGION_XALIGN_PROP:
- zoom_region->x_align_policy = BONOBO_ARG_GET_INT (arg);
- zoom_region_align (zoom_region);
- break;
- case ZOOM_REGION_YALIGN_PROP:
- /* TODO: enums here */
- zoom_region->y_align_policy = BONOBO_ARG_GET_INT (arg);
- zoom_region_align (zoom_region);
- break;
- case ZOOM_REGION_VIEWPORT_PROP:
- bounds = BONOBO_ARG_GET_GENERAL (arg,
- TC_GNOME_Magnifier_RectBounds,
- GNOME_Magnifier_RectBounds,
- NULL);
- zoom_region_set_viewport (zoom_region, &bounds);
- break;
- case ZOOM_REGION_TIMING_TEST_PROP:
- zoom_region->timing_iterations = BONOBO_ARG_GET_INT (arg);
- timing_test = TRUE;
- break;
- case ZOOM_REGION_TIMING_OUTPUT_PROP:
- zoom_region->timing_output = BONOBO_ARG_GET_BOOLEAN (arg);
- break;
- case ZOOM_REGION_TIMING_PAN_RATE_PROP:
- zoom_region->timing_pan_rate = BONOBO_ARG_GET_INT (arg);
- timing_test = TRUE;
- break;
- case ZOOM_REGION_EXIT_MAGNIFIER:
- zoom_region->exit_magnifier = BONOBO_ARG_GET_BOOLEAN (arg);
- break;
- default:
- bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
- };
-}
-
-static int
-zoom_region_process_pending (gpointer data)
-{
- ZoomRegion *zoom_region = (ZoomRegion *) data;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- zoom_region_align (zoom_region);
- return FALSE;
-}
-
-static int
-zoom_region_pan_test (gpointer data)
-{
- ZoomRegion *zoom_region = (ZoomRegion *) data;
- Magnifier *magnifier = zoom_region->priv->parent;
- GNOME_Magnifier_ZoomRegionList *zoom_regions;
- GNOME_Magnifier_RectBounds roi;
- CORBA_Environment ev;
- static int counter = 0;
- static gboolean finished_update = !TRUE;
- static float last_pixels_at_speed = -1;
- float pixels_at_speed;
- float total_time;
- int screen_height, height;
- int pixel_position;
- int pixel_direction;
-
- screen_height = gdk_screen_get_height (
- gdk_display_get_screen (magnifier->source_display,
- magnifier->source_screen_num));
-
- height = (zoom_region->viewport.y2 -
- zoom_region->viewport.y1) / zoom_region->yscale;
-
- roi.x1 = zoom_region->roi.x1;
- roi.x2 = zoom_region->roi.x2;
-
- g_timer_stop (mag_timing.process);
-
- gulong microseconds;
-
- total_time = g_timer_elapsed (mag_timing.process, &microseconds);
-
- if (mag_timing.frame_total != 0.0)
- pixels_at_speed = total_time * zoom_region->timing_pan_rate;
- else
- pixels_at_speed = 0.0;
-
- /* Wait until it is actually necessary to update the screen */
- if ((int)(last_pixels_at_speed) == (int)(pixels_at_speed))
- return TRUE;
-
- pixel_position = (int)(pixels_at_speed) % (screen_height - height);
- counter = (int)(pixels_at_speed) / (screen_height - height);
- pixel_direction = counter % 2;
-
- if (!finished_update) {
- if ((int)(pixels_at_speed) > (zoom_region->roi.y1 + height))
- roi.y1 = zoom_region->roi.y1 + height;
- else
- roi.y1 = (int)(pixels_at_speed);
-
- if (roi.y1 >= screen_height - height) {
- roi.y1 = screen_height - height;
- }
- } else {
- if (pixel_direction == 0)
- roi.y1 = screen_height - height - pixel_position;
- else
- roi.y1 = pixel_position;
- }
-
- roi.y2 = roi.y1 + height;
- magnifier->priv->cursor_x = (roi.x2 + roi.x1) / 2;
- magnifier->priv->cursor_y = (roi.y2 + roi.y1) / 2;
-
- /* Add one since in first loop we call zoom_region_process_updates */
- if (counter > zoom_region->timing_iterations - 1)
- zoom_region->exit_magnifier = TRUE;
-
- zoom_regions = GNOME_Magnifier_Magnifier_getZoomRegions (
- BONOBO_OBJREF (magnifier), &ev);
-
- if (zoom_regions && (zoom_regions->_length > 0)) {
- GNOME_Magnifier_ZoomRegion_setROI (
- zoom_regions->_buffer[0], &roi, &ev);
- }
-
- if (!finished_update) {
- zoom_region_process_updates(zoom_region);
- if (roi.y1 == screen_height - height) {
- finished_update = TRUE;
- reset_timing = TRUE;
- }
- }
-
- last_pixels_at_speed = pixels_at_speed;
-
- return FALSE;
-}
-
-static void
-impl_zoom_region_set_pointer_pos (PortableServer_Servant servant,
- const CORBA_long mouse_x,
- const CORBA_long mouse_y,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
- GdkRectangle paint_area, *clip = NULL;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Set Pointer: \t%ld,%ld\n",
- (long) mouse_x, (long) mouse_y));
-
- fprintf (stderr, "Set Pointer: \t%ld,%ld\n",
- (long) mouse_x, (long) mouse_y);
-
- zoom_region_set_cursor_pos (zoom_region, (int) mouse_x, (int) mouse_y);
-
- if (GTK_IS_WIDGET (zoom_region->priv->w) &&
- GDK_IS_DRAWABLE (zoom_region->priv->w->window))
- {
- gdk_drawable_get_size (
- GDK_DRAWABLE (
- zoom_region->priv->w->window),
- &paint_area.width, &paint_area.height);
- paint_area.x = 0;
- paint_area.y = 0;
- clip = &paint_area;
- paint_area = zoom_region_clip_to_source (
- zoom_region, paint_area);
- }
- /*
- * if we update the cursor now, it causes flicker if the client
- * subsequently calls setROI, so we wait for a redraw.
- * Perhaps we should cue a redraw on idle instead?
- */
-}
-
-static void
-impl_zoom_region_set_contrast (PortableServer_Servant servant,
- const CORBA_float R,
- const CORBA_float G,
- const CORBA_float B,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
- gfloat t;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Set contrast: \t%f,%f %f\n", R, G, B));
-
- /* if the contrast values are the same, this is a NOOP */
- if (zoom_region->contrast_r == R &&
- zoom_region->contrast_g == G &&
- zoom_region->contrast_b == B)
- return;
-
- zoom_region->contrast_r = CLAMP_B_C (R);
- zoom_region->contrast_g = CLAMP_B_C (G);
- zoom_region->contrast_b = CLAMP_B_C (B);
-
- zoom_region_update_current (zoom_region);
-}
-
-static void
-impl_zoom_region_get_contrast (PortableServer_Servant servant,
- CORBA_float *R,
- CORBA_float *G,
- CORBA_float *B,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
-
- *R = zoom_region->contrast_r;
- *G = zoom_region->contrast_g;
- *B = zoom_region->contrast_b;
-}
-
-static void
-impl_zoom_region_set_brightness (PortableServer_Servant servant,
- const CORBA_float R,
- const CORBA_float G,
- const CORBA_float B,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
- gfloat t;
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Set brightness: \t%f,%f %f\n", R, G, B));
-
- /* if the contrast values are the same, this is a NOOP */
- if (zoom_region->bright_r == R &&
- zoom_region->bright_g == G &&
- zoom_region->bright_b == B)
- return;
-
- zoom_region->bright_r = CLAMP_B_C (R);
- zoom_region->bright_g = CLAMP_B_C (G);
- zoom_region->bright_b = CLAMP_B_C (B);
-
- zoom_region_update_current (zoom_region);
-}
-
-static void
-impl_zoom_region_get_brightness (PortableServer_Servant servant,
- CORBA_float *R,
- CORBA_float *G,
- CORBA_float *B,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
-
- *R = zoom_region->bright_r;
- *G = zoom_region->bright_g;
- *B = zoom_region->bright_b;
-}
-
-static void
-impl_zoom_region_set_roi (PortableServer_Servant servant,
- const GNOME_Magnifier_RectBounds *bounds,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DBG (fprintf (stderr, "Set ROI: \t%d,%d %d,%d\n",
- bounds->x1, bounds->y1, bounds->x2, bounds->y2));
-
- if ((zoom_region->roi.x1 == bounds->x1) &&
- (zoom_region->roi.x2 == bounds->x2) &&
- (zoom_region->roi.y1 == bounds->y1) &&
- (zoom_region->roi.y2 == bounds->y2)) {
- return;
- }
-
- /* if these bounds are clearly bogus, warn and ignore */
- if (!bounds || (bounds->x2 <= bounds->x1)
- || (bounds->y2 < bounds->y1) ||
- ((bounds->x1 + bounds->x2)/2 < 0) ||
- ((bounds->y1 + bounds->y2)/2 < 0))
- {
- g_warning ("Bad bounds request (%d,%d to %d,%d), ignoring.\n",
- bounds->x1, bounds->y1, bounds->x2, bounds->y2);
- return;
- }
-
- zoom_region->roi = *bounds;
-
- if (zoom_region->timing_pan_rate > 0) {
- /* Set idle handler to do panning test */
- g_idle_add_full (GDK_PRIORITY_REDRAW + 3,
- zoom_region_pan_test, zoom_region, NULL);
- }
-
- if (zoom_region->exit_magnifier) {
- if (timing_test) {
- fprintf(stderr, "\n### Timing Summary:\n\n");
- if (zoom_region->timing_pan_rate)
- fprintf(stderr, " Pan Rate = %d\n", zoom_region->timing_pan_rate);
- timing_report(zoom_region);
- }
- exit(0);
- }
-
- /*
- * Do not bother trying to update the screen if the last
- * screen update has not had time to complete.
- */
- if (processing_updates) {
- /* Remove any previous idle handler */
- if (pending_idle_handler != 0) {
- g_source_remove(pending_idle_handler);
- pending_idle_handler = 0;
- }
-
- /* Set idle handler to process this pending update when possible */
-
- pending_idle_handler = g_idle_add_full (GDK_PRIORITY_REDRAW + 2,
- zoom_region_process_pending, zoom_region, NULL);
-
- if (zoom_region->timing_output) {
- fprintf(stderr,
- "\n [Last update not finished, pending - ROI=(%d, %d) (%d, %d)]\n\n",
- zoom_region->roi.x1, zoom_region->roi.y1, zoom_region->roi.x2,
- zoom_region->roi.y2);
- }
- } else {
- zoom_region_align (zoom_region);
- }
-}
-
-static CORBA_boolean
-impl_zoom_region_set_mag_factor (PortableServer_Servant servant,
- const CORBA_float mag_factor_x,
- const CORBA_float mag_factor_y,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- CORBA_any *any;
- CORBA_boolean retval = CORBA_TRUE;
-
- if ((zoom_region->xscale == mag_factor_x) &&
- (zoom_region->yscale == mag_factor_y)) {
- return retval;
- }
-
- /* TODO: assert that parent is magnifier object */
- Bonobo_PropertyBag properties =
- GNOME_Magnifier_Magnifier_getProperties(
- BONOBO_OBJREF (
- (Magnifier *) zoom_region->priv->parent), ev);
- any = Bonobo_PropertyBag_getValue (
- properties, "source-display-bounds", ev);
- if (!BONOBO_EX (ev))
- zoom_region->priv->source_area =
- *((GNOME_Magnifier_RectBounds *) any->_value);
- else
- retval = CORBA_FALSE;
-
- retval = zoom_region_update_scale (zoom_region,
- mag_factor_x, mag_factor_y);
-
- zoom_region_update_current (zoom_region);
- zoom_region_sync (zoom_region);
-
- bonobo_object_release_unref (properties, NULL);
- return retval;
-}
-
-static void
-impl_zoom_region_get_mag_factor (PortableServer_Servant servant,
- CORBA_float *mag_factor_x,
- CORBA_float *mag_factor_y,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- *mag_factor_x = zoom_region->xscale;
- *mag_factor_y = zoom_region->yscale;
-}
-
-static Bonobo_PropertyBag
-impl_zoom_region_get_properties (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- return bonobo_object_dup_ref (
- BONOBO_OBJREF (zoom_region->properties), ev);
-}
-
-static void
-impl_zoom_region_mark_dirty (PortableServer_Servant servant,
- const GNOME_Magnifier_RectBounds *roi_dirty,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- DEBUG_RECT ("mark dirty", zoom_region_rect_from_bounds (
- zoom_region, roi_dirty) );
-
- zoom_region_update_pointer (zoom_region, TRUE);
- /* XXX ? should we clip here, or wait till process_updates? */
- zoom_region_queue_update (zoom_region,
- zoom_region_clip_to_source (zoom_region,
- zoom_region_rect_from_bounds (zoom_region, roi_dirty)));
-}
-
-static GNOME_Magnifier_RectBounds
-impl_zoom_region_get_roi (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- return zoom_region->roi;
-}
-
-static void
-impl_zoom_region_move_resize (PortableServer_Servant servant,
- const GNOME_Magnifier_RectBounds *viewport_bounds,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
-
-#ifdef ZOOM_REGION_DEBUG
- g_assert (zoom_region->alive);
-#endif
- zoom_region_set_viewport (zoom_region, viewport_bounds);
-}
-
-/* could be called multiple times... */
-static void
-zoom_region_do_dispose (ZoomRegion *zoom_region)
-{
- DBG(g_message ("disposing region %p", zoom_region));
- if (zoom_region->priv && zoom_region->priv->expose_handler_id &&
- GTK_IS_WIDGET (zoom_region->priv->w)) {
- g_signal_handler_disconnect (
- zoom_region->priv->w,
- zoom_region->priv->expose_handler_id);
- zoom_region->priv->expose_handler_id = 0;
- }
- if (zoom_region->priv && zoom_region->priv->update_pointer_id)
- g_source_remove (zoom_region->priv->update_pointer_id);
- if (zoom_region->priv && zoom_region->priv->update_handler_id)
- g_source_remove (zoom_region->priv->update_handler_id);
- g_idle_remove_by_data (zoom_region);
-
-#ifdef ZOOM_REGION_DEBUG
- zoom_region->alive = FALSE;
-#endif
-}
-
-static void
-impl_zoom_region_dispose (PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- ZoomRegion *zoom_region =
- ZOOM_REGION (bonobo_object_from_servant (servant));
- zoom_region_do_dispose (zoom_region);
-}
-
-
-/* could be called multiple times */
-static void
-zoom_region_dispose (GObject *object)
-{
- ZoomRegion *zoom_region = ZOOM_REGION (object);
-
- zoom_region_do_dispose (zoom_region);
-
- BONOBO_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
-}
-
-static void
-zoom_region_class_init (ZoomRegionClass *klass)
-{
- GObjectClass * object_class = (GObjectClass *) klass;
- POA_GNOME_Magnifier_ZoomRegion__epv *epv = &klass->epv;
- parent_class = g_type_class_peek (BONOBO_TYPE_OBJECT); /* needed by BONOBO_CALL_PARENT! */
-
- object_class->dispose = zoom_region_dispose;
- object_class->finalize = zoom_region_finalize;
-
- epv->setMagFactor = impl_zoom_region_set_mag_factor;
- epv->getMagFactor = impl_zoom_region_get_mag_factor;
- epv->getProperties = impl_zoom_region_get_properties;
- epv->setROI = impl_zoom_region_set_roi;
- epv->setPointerPos = impl_zoom_region_set_pointer_pos;
- epv->markDirty = impl_zoom_region_mark_dirty;
- epv->getROI = impl_zoom_region_get_roi;
- epv->moveResize = impl_zoom_region_move_resize;
- epv->dispose = impl_zoom_region_dispose;
- epv->setContrast = impl_zoom_region_set_contrast;
- epv->getContrast = impl_zoom_region_get_contrast;
- epv->setBrightness = impl_zoom_region_set_brightness;
- epv->getBrightness = impl_zoom_region_get_brightness;
-
- reset_timing_stats();
-#ifdef DEBUG_CLIENT_CALLS
- client_debug = (g_getenv ("MAG_CLIENT_DEBUG") != NULL);
-#endif
-}
-
-static void
-zoom_region_properties_init (ZoomRegion *zoom_region)
-{
- BonoboArg *def;
-
- zoom_region->properties =
- bonobo_property_bag_new_closure (
- g_cclosure_new_object (
- G_CALLBACK (zoom_region_get_property),
- G_OBJECT (zoom_region)),
- g_cclosure_new_object (
- G_CALLBACK (zoom_region_set_property),
- G_OBJECT (zoom_region)));
-
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, TRUE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "is-managed",
- ZOOM_REGION_MANAGED_PROP,
- BONOBO_ARG_BOOLEAN,
- def,
- "If false, zoom region does not auto-update, but is drawn into directly by the client",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, TRUE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "poll-mouse",
- ZOOM_REGION_POLL_MOUSE_PROP,
- BONOBO_ARG_BOOLEAN,
- NULL,
- "If false, zoom region does not poll for pointer location, but is (exclusively) given it by the client",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_SHORT);
- BONOBO_ARG_SET_SHORT (def, GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST);
-
- bonobo_property_bag_add (zoom_region->properties,
- "smooth-scroll-policy",
- ZOOM_REGION_SMOOTHSCROLL_PROP,
- BONOBO_ARG_SHORT,
- def,
- "scrolling policy, slower versus faster",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_SHORT);
- BONOBO_ARG_SET_SHORT (
- def,
- GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER);
-
- bonobo_property_bag_add (zoom_region->properties,
- "color-blind-filter",
- ZOOM_REGION_COLORBLIND_PROP,
- BONOBO_ARG_SHORT,
- def,
- "color blind filter to apply in an image",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, FALSE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "use-test-pattern",
- ZOOM_REGION_TESTPATTERN_PROP,
- BONOBO_ARG_BOOLEAN,
- def,
- "use test pattern for source",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, TRUE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "inverse-video",
- ZOOM_REGION_INVERT_PROP,
- BONOBO_ARG_BOOLEAN,
- def,
- "inverse video display",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
-
- bonobo_property_bag_add (zoom_region->properties,
- "smoothing-type",
- ZOOM_REGION_SMOOTHING_PROP,
- BONOBO_ARG_STRING,
- NULL,
- "image smoothing algorithm used",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "red-contrast",
- ZOOM_REGION_CONTRASTR_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "red image contrast ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "green-contrast",
- ZOOM_REGION_CONTRASTG_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "green image contrast ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "blue-contrast",
- ZOOM_REGION_CONTRASTB_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "blue image contrast ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "red-brightness",
- ZOOM_REGION_BRIGHTR_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "red image brightness ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "green-brightness",
- ZOOM_REGION_BRIGHTG_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "green image brightness ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 0.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "blue-brightness",
- ZOOM_REGION_BRIGHTB_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "blue image brightness ratio",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 2.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "mag-factor-x",
- ZOOM_REGION_XSCALE_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "x scale factor",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_FLOAT);
- BONOBO_ARG_SET_FLOAT (def, 2.0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "mag-factor-y",
- ZOOM_REGION_YSCALE_PROP,
- BONOBO_ARG_FLOAT,
- def,
- "y scale factor",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_LONG);
- BONOBO_ARG_SET_LONG (def, 0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "border-size",
- ZOOM_REGION_BORDERSIZE_PROP,
- BONOBO_ARG_LONG,
- def,
- "size of zoom-region borders, in pixels",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_LONG);
- BONOBO_ARG_SET_LONG (def, 0x00000000);
-
- bonobo_property_bag_add (zoom_region->properties,
- "border-color",
- ZOOM_REGION_BORDERCOLOR_PROP,
- BONOBO_ARG_LONG,
- def,
- "border color, as RGBA32",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT (def, 0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "x-alignment",
- ZOOM_REGION_XALIGN_PROP,
- BONOBO_ARG_INT,
- def,
- "x-alignment policy for this region",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
- def = bonobo_arg_new (BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT (def, 0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "y-alignment",
- ZOOM_REGION_YALIGN_PROP,
- BONOBO_ARG_INT,
- def,
- "y-alignment policy for this region",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- bonobo_property_bag_add (zoom_region->properties,
- "viewport",
- ZOOM_REGION_VIEWPORT_PROP,
- TC_GNOME_Magnifier_RectBounds,
- NULL,
- "viewport bounding box",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- def = bonobo_arg_new (BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT (def, 0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "timing-iterations",
- ZOOM_REGION_TIMING_TEST_PROP,
- BONOBO_ARG_INT,
- def,
- "timing iterations",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, FALSE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "timing-output",
- ZOOM_REGION_TIMING_OUTPUT_PROP,
- BONOBO_ARG_BOOLEAN,
- def,
- "timing output",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT (def, 0);
-
- bonobo_property_bag_add (zoom_region->properties,
- "timing-pan-rate",
- ZOOM_REGION_TIMING_PAN_RATE_PROP,
- BONOBO_ARG_INT,
- def,
- "timing pan rate",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
- bonobo_arg_release (def);
-
- def = bonobo_arg_new (BONOBO_ARG_BOOLEAN);
- BONOBO_ARG_SET_BOOLEAN (def, FALSE);
-
- bonobo_property_bag_add (zoom_region->properties,
- "exit-magnifier",
- ZOOM_REGION_EXIT_MAGNIFIER,
- BONOBO_ARG_BOOLEAN,
- def,
- "timing output",
- Bonobo_PROPERTY_READABLE |
- Bonobo_PROPERTY_WRITEABLE);
-
- bonobo_arg_release (def);
-
-}
-
-static void
-zoom_region_private_init (ZoomRegionPrivate *priv)
-{
- GdkRectangle rect = {0, 0, 0, 0};
- GNOME_Magnifier_RectBounds rectbounds = {0, 0, 0, 0};
- priv->parent = NULL;
- priv->w = NULL;
- priv->default_gc = NULL;
- priv->paint_cursor_gc = NULL;
- priv->crosswire_gc = NULL;
- priv->q = NULL;
- priv->scaled_pixbuf = NULL;
- priv->source_pixbuf_cache = NULL;
- priv->source_drawable = NULL;
- priv->pixmap = NULL;
- priv->cursor_backing_rect = rect;
- priv->cursor_backing_pixels = NULL;
- priv->gdk_interp_type = GDK_INTERP_NEAREST;
- priv->expose_handler_id = 0;
- priv->test = FALSE;
- priv->last_cursor_pos.x = 0;
- priv->last_cursor_pos.y = 0;
- priv->last_drawn_crosswire_pos.x = 0;
- priv->last_drawn_crosswire_pos.y = 0;
- priv->exposed_bounds = rectbounds;
- priv->source_area = rectbounds;
- priv->update_pointer_id = 0;
- priv->update_handler_id = 0;
-}
-
-static void
-zoom_region_init (ZoomRegion *zoom_region)
-{
- DBG(g_message ("initializing region %p", zoom_region));
-
- zoom_region_properties_init (zoom_region);
- zoom_region->smooth_scroll_policy =
- GNOME_Magnifier_ZoomRegion_SCROLL_SMOOTH;
- zoom_region->color_blind_filter =
- GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER;
- zoom_region->contrast_r = 0.0;
- zoom_region->contrast_g = 0.0;
- zoom_region->contrast_b = 0.0;
- zoom_region->bright_r = 0.0;
- zoom_region->bright_g = 0.0;
- zoom_region->bright_b = 0.0;
- zoom_region->invert = FALSE;
- zoom_region->cache_source = FALSE;
- zoom_region->border_size = 0;
- zoom_region->border_color = 0;
- zoom_region->roi.x1 = 0;
- zoom_region->roi.x1 = 0;
- zoom_region->roi.x2 = 1;
- zoom_region->roi.x2 = 1;
- zoom_region->x_align_policy = GNOME_Magnifier_ZoomRegion_ALIGN_CENTER;
- zoom_region->y_align_policy = GNOME_Magnifier_ZoomRegion_ALIGN_CENTER;
- zoom_region->coalesce_func = _coalesce_update_rects;
- zoom_region->poll_mouse = TRUE;
- zoom_region->priv = g_malloc (sizeof (ZoomRegionPrivate));
- zoom_region_private_init (zoom_region->priv);
- bonobo_object_add_interface (BONOBO_OBJECT (zoom_region),
- BONOBO_OBJECT (zoom_region->properties));
- zoom_region->timing_output = FALSE;
-#ifdef ZOOM_REGION_DEBUG
- zoom_region->alive = TRUE;
-#endif
- zoom_region->priv->update_pointer_id =
- g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
- 200,
- zoom_region_update_pointer_timeout,
- zoom_region,
- NULL);
-}
-
-ZoomRegion *
-zoom_region_new (void)
-{
- return g_object_new (zoom_region_get_type(), NULL);
-}
-
-/* this one really shuts down the object - called once only */
-static void
-zoom_region_finalize (GObject *region)
-{
- ZoomRegion *zoom_region = (ZoomRegion *) region;
-
- DBG(g_message ("finalizing region %p", zoom_region));
-
- if (zoom_region->priv && zoom_region->priv->q)
- {
- g_list_free (zoom_region->priv->q);
- zoom_region->priv->q = NULL;
- }
- if (GTK_IS_WIDGET (zoom_region->priv->w))
- gtk_container_remove (GTK_CONTAINER (((Magnifier *) zoom_region->priv->parent)->priv->canvas), GTK_WIDGET (zoom_region->priv->w));
- if (GTK_IS_WIDGET (zoom_region->priv->border))
- gtk_container_remove (GTK_CONTAINER (((Magnifier *) zoom_region->priv->parent)->priv->canvas), GTK_WIDGET (zoom_region->priv->border));
- if (zoom_region->priv->source_pixbuf_cache)
- g_object_unref (zoom_region->priv->source_pixbuf_cache);
- if (zoom_region->priv->scaled_pixbuf)
- g_object_unref (zoom_region->priv->scaled_pixbuf);
- if (zoom_region->priv->pixmap)
- g_object_unref (zoom_region->priv->pixmap);
- zoom_region->priv->pixmap = NULL;
- zoom_region->priv->parent = NULL;
- if (zoom_region->priv->cursor_backing_pixels)
- g_object_unref (zoom_region->priv->cursor_backing_pixels);
- g_free (zoom_region->priv);
- zoom_region->priv = NULL;
-#ifdef ZOOM_REGION_DEBUG
- zoom_region->alive = FALSE;
-#endif
- BONOBO_CALL_PARENT (G_OBJECT_CLASS, finalize, (region));
-}
-
-BONOBO_TYPE_FUNC_FULL (ZoomRegion,
- GNOME_Magnifier_ZoomRegion,
- BONOBO_TYPE_OBJECT,
- zoom_region);
diff --git a/magnifier/zoom-region.h b/magnifier/zoom-region.h
deleted file mode 100644
index 2119aaa..0000000
--- a/magnifier/zoom-region.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef ZOOM_REGION_H_
-#define ZOOM_REGION_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <bonobo/bonobo-object.h>
-#include "GNOME_Magnifier.h"
-
-#define ZOOM_REGION_TYPE (zoom_region_get_type ())
-#define ZOOM_REGION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), ZOOM_REGION_TYPE, ZoomRegion))
-#define ZOOM_REGION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), ZOOM_REGION_TYPE, ZoomRegionClass))
-#define IS_ZOOM_REGION(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), ZOOM_REGION_TYPE))
-#define IS_ZOOM_REGION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ZOOM_REGION_TYPE))
-
-typedef GList * (*CoalesceFunc)(GList *, int);
-
-typedef struct _ZoomRegionPrivate ZoomRegionPrivate;
-
-typedef struct {
- BonoboObject parent;
- BonoboPropertyBag *properties;
- gboolean invert;
- gboolean is_managed;
- gboolean cache_source;
- gchar *smoothing;
- gfloat contrast;
- gfloat xscale;
- gfloat yscale;
- gfloat contrast_r;
- gfloat contrast_g;
- gfloat contrast_b;
- gfloat bright_r;
- gfloat bright_g;
- gfloat bright_b;
- gint border_size;
- guint32 border_color; /* A-RGB, 8 bits each, MSB==alpha */
- gint x_align_policy; /* TODO: enums here */
- gint y_align_policy;
- GNOME_Magnifier_ZoomRegion_ScrollingPolicy smooth_scroll_policy;
- GNOME_Magnifier_ZoomRegion_ColorBlindFilter color_blind_filter;
- /* bounds of viewport, in target magnifier window coords */
- GNOME_Magnifier_RectBounds roi;
- GNOME_Magnifier_RectBounds viewport;
- ZoomRegionPrivate *priv;
- CoalesceFunc coalesce_func;
- gint timing_iterations;
- gboolean timing_output;
- gint timing_pan_rate;
- gboolean exit_magnifier;
- gboolean poll_mouse;
-#ifdef ZOOM_REGION_DEBUG
- gboolean alive;
-#endif
-} ZoomRegion;
-
-typedef struct {
- BonoboObjectClass parent_class;
- POA_GNOME_Magnifier_ZoomRegion__epv epv;
-} ZoomRegionClass;
-
-GType zoom_region_get_type (void);
-ZoomRegion *zoom_region_new (void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* ZOOM_REGION_H_ */
diff --git a/po/.cvsignore b/po/.cvsignore
deleted file mode 100644
index 45bfd92..0000000
--- a/po/.cvsignore
+++ /dev/null
@@ -1,9 +0,0 @@
-*.mo
-*.gmo
-*.pot
-Makefile
-Makefile.in
-POTFILES
-cat-id-tbl.c
-stamp-cat-id
-messages
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644
index 7558f06..0000000
--- a/po/ChangeLog
+++ /dev/null
@@ -1,585 +0,0 @@
-2007-0303 Yair Hershkovitz <yairhr@gmail.com>
-
- * he.po: Updated Hebrew translation.
-
-2007-03-03 Luca Ferretti <elle.uca@libero.it>
-
- * it.po: Updated Italian translation
-
-2007-02-27 Gintautas Miliauskas <gintas@akl.lt>
-
- * lt.po: Updated Lithuanian translation.
-
-2007-02-25 Alexander Shopov <ash@contact.bg>
-
- * bg.po: Updated Bulgarian translation by
- Alexander Shopov <ash@contact.bg>
-
-2007-02-24 Gabor Kelemen <kelemeng@gnome.hu>
-
- * hu.po: Translation updated.
-
-2007-02-25 Changwoo Ryu <cwryu@debian.org>
-
- * ko.po: Updated Korean translation.
-
-2007-02-22 Gintautas Miliauskas <gintas@akl.lt>
-
- * lt.po: Updated Lithuanian translation.
-
-2007-02-021 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>
-
- * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
- * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2007-02-20 Artur Flinta <aflinta@cvs.gnome.org>
-
- * pl.po: Updated Polish translation by GNOME PL Team.
-
-2007-02-14 Duarte Loreto <happyguy_pt@hotmail.com>
-
- * pt.po: Updated Portuguese translation.
-
-2007-02-12 Ilkka Tuohela <hile@iki.fi>
-
- * fi.po: Updated Finnish translation.
-
-2007-02-04 Ole Laursen <olau@hardworking.dk>
-
- * da.po: Danish translation updated by Peter Bach.
-
-2007-01-31 Wouter Bolsterlee <wbolster@svn.gnome.org>
-
- * nl.po: Translation updated by Wouter Bolsterlee.
-
-2007-01-31 Stéphane Raimbault <stephane.raimbault@gmail.com>
-
- * fr.po: Update French translation.
-
-2007-01-26 Hendrik Richter <hendrikr@gnome.org>
-
- * de.po: Updated German translation.
-
-2007-01-07 Priit Laes <plaes@svn.gnome.org>
-
- * et.po: Estonian translation update by Ivar Smolin.
-
-2007-01-06 Matic Zgur <mr.zgur@gmail.com>
-
- * sl.po: Updated Slovenian translation.
-
-2007-01-05 Clytie Siddall <clytie@riverland.net.au>
-
- * vi.po: Updated Vietnamese translation.
-
-2007-01-04 Guilherme de S. Pastore <gpastore@gnome.org>
-
- * pt_BR.po: Updated Brazilian Portuguese translation.
-
-2006-12-29 David Lodge <dave@cirt.net>
-
- * en_GB.po: Updated English (British) translation
-
-2006-12-27 Djihed Afifi <djihed@gmail.com>
-
- * ar.po: Updated Arabic Translation.
-
-2006-12-25 Raivis Dejus <orvils@gmail.com>
-
- * lv.po: Updated Latvian Translation.
-
-2006-12-24 Djihed Afifi <djihed@gmail.com>
-
- * ar.po: Updated Arabic Translation.
-
-2006-12-19 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>
-
- * ca.po: Updated Catalan translation.
-
-2006-12-18 Ales Nyakhaychyk <nab@mail.by>
-
- * be.po: Updated Belarusian Translation by Ihar Hrachyshka.
-
-2006-12-17 Djihed Afifi <djihed@gmail.com>
-
- * ar.po: Updated Arabic Translation.
-
-2006-12-15 Djihed Afifi <djihed@gmail.com>
-
- * ar.po: Updated Arabic Translation.
-
-2006-12-15 Kjartan Maraas <kmaraas@gnome.org>
-
- * nb.po: Updated Norwegian bokmål translation.
-
-2006-12-15 Francisco Javier F. Serrador <serrador@openshine.com>
-
- * es.po: Updated Spanish translation.
-
-2006-12-14 Jovan Naumovski <jovan@lugola.net>
-
- * mk.po: Updated Macedonian translation.
-
-2006-12-14 Theppitak Karoonboonyanan <thep@linux.thai.net>
-
- * th.po: Updated Thai translation.
-
-2006-12-14 Ankit Patel <ankit644@yahoo.com>
-
- * gu.po: Updated Gujarati Translation.
-
-2006-11-27 Daniel Nylander <po@danielnylander.se>
-
- * sv.po: Updated Swedish translation.
-
-2006-11-19 Wouter Bolsterlee <wbolster@cvs.gnome.org>
-
- * pl.po: Translation updated by GNOME PL Team.
-
-2006-11-18 Djihed Afifi <djihed@gmail.com>
-
- * ar.po: Updated Arabic Translation.
-
-2006-10-30 Djihed Afifi <djihed@gmail.com>
-
- * ar.po Updated Arabic Translation.
-
-2006-09-27 Runa Bhattacharjee <runabh@gmail.com>
-
- * si.po: Added Sinhala Translation by Tyronne Wickramaratne.
- * LINGUAS: Added Sinhala "si" to the list of languages
-
-2006-09-19 Guntupalli Karunakar <karunakar@indlinux.org>
-
- * as.po: Added Assamese translation.
- * LINGUAS: Added 'as' for Assamese.
-
-2006-08-22 Thierry Randrianiriana <thierry@isvtec.com>
-
- * mg.po: Added Malagasy translation.
- * LINGUAS: Added 'mg'.
-
-2006-07-07 Swapnil Hajare <dreamil@gmail.com>
-
- * mr.po: Added Marathi Translation
- * LINGUAS: Added Marathi (mr) to the list of languages.
-
-2006-07-03 Runa Bhattacharjee <runabh@gmail.com>
-
- * bn_IN.po: Added Bengali India Translation
- * LINGUAS: Added Bengali India (bn_IN) to the list of languages.
-
-2006-07-03 Simos Xenitellis <simos@gnome.org>
-
- * ne.po: Removed ^M, bug #316750.
-
-2006-06-26 Abel Cheung <abel@oaka.org>
-
- * zh_HK.po, zh_TW.po: Updated traditional Chinese translation.
-
-2006-06-08 Gora Mohanty <gmohanty@cvs.gnome.org>
-
- * LINGUAS: Added 'eo' (Esperanto)
- * eo.po: Added Esperanto translation by Guillaume Savaton
- <gsavaton@hotmail.com>
-
-2006-04-27 Kjartan Maraas <kmaraas@gnome.org>
-
- * LINGUAS: Remove "no".
-
-2006-04-21 Priit Laes <amd@store20.com>
-
- * et.po: Translation updated by Ivar Smolin.
-
-2006-03-24 Tommi Vainikainen <thv@iki.fi>
-
- * dz.po: Added Dzongkha translation from Pema Geyleg.
-
-2005-11-01 Simos Xenitellis <simos@gnome.org>
-
- * ky.po: Added Kirghiz translation by Ilyas Bakirov.
-
-2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com>
-
- * ku.po: Added Kurdish translation
-
-2005-08-08 Danilo Šegan <danilo@gnome.org>
-
- * sr.po, sr@Latn.po: Updated by Igor Nestorović.
-
-2005-06-22 Abel Cheung <maddog@linuxhall.org>
-
- * zh_TW.po: Fix language team reference.
-
-2005-06-07 Ignacio Casal Quinteiro <nacho.resa@gmail.com>
-
- * gl.po: Updated Galician translation.
-
-2005-04-21 Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>
-
- * ug.po: Added Uighur translation.
-
-2005-03-31 Steve Murphy <murf@e-tools.com>
-
- * rw.po: Added Kinyarwanda translation.
-
-2005-03-17 Adam Weinberger <adamw@gnome.org>
-
- * en_CA.po: Updated Canadian English translation.
-
-2005-02-04 Priit Laes <plaes@cvs.gnome.org>
-
- * et.po: Translation updated by Ivar Smolin.
-
-2005-01-10 Pawan Chitrakar <pawan@nplinux.org.np>
-
- * ne.po: Added Nepali Translation
-
-2004-10-11 Mətin Əmirov <metin@karegen.com>
-
- * ka.po: Translation added by Aiet Kolkhi.
-
-2004-10-06 David Lodge <dave@cirt.net>
-
- * ang.po: Added Old English translation for James Johnson.
-
-2004-09-08 Adam Weinberger <adamw@gnome.org>
-
- * en_CA.po: Updated Canadian English translation.
-
-2004-08-26 Jayaradha <njaya@redhat.com>
-
- * ta.po: Tamil translation added.
-2004-08-20 Laurent Dhima <laurenti@alblinux.net>
-
- * sq.po: Updated Albanian translation.
-
-2004-08-18 Laurent Dhima <laurenti@alblinux.net>
-
- * sq.po: Updated Albanian translation.
-
-2004-08-16 Christian Rose <menthos@menthos.com>
-
- * bs.po: Added Bosnian translation by
- Kemal Sanjta <gomez@lugzdk.ba>.
-
-2004-08-16 Kjartan Maraas <kmaraas@gnome.org>
-
- * nb.po: Add this.
-
-2004-08-13 Tommi Vainikainen <thv@iki.fi>
-
- * fi.po: Unified some fields in po headers for Finnish team.
-
-2004-08-13 Gora Mohanty <gmohanty@cvs.gnome.org>
-
- * or.po: Updated Oriya translation.
-
-2004-06-28 Laurent Dhima <laurenti@alblinux.net>
-
- * sq.po: Translation updated.
-
-2004-05-29 Christian Rose <menthos@menthos.com>
-
- * tk.po: Updated Turkmen translation by
- Gurban Mühemmet Tewekgeli <gmtavakkoli@yahoo.com>.
-
-2004-05-27 Mohammad DAMT <mdamt@bisnisweb.com>
-
- * id.po: Added Indonesian translation done by Ahmad Riza H Nst <rizahnst@eriagempita.co.id>
-
-2004-04-09 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * gu.po: Added Gujurati translation by
- Gujarati Team <magnet@magnet-i.com>.
-
-2004-03-21 Mugurel Tudor <mugurelu@go.ro>
-
- * ro.po: Added Romanian translation by
- Mişu Moldovan <dumol@go.ro>
-
-2004-03-20 Gareth Owen <gowen72@yahoo.com>
-
- * en_GB.po: Added British translation
-
-2004-03-17 Leonid Kanter <leon@asplinux.ru>
-
- * ru.po: Added Russian translation.
-
-2004-03-17 John C Barstow <jbarstow@cvs.gnome.org>
-
- * mi.po: Added Māori translation.
-
-2004-03-13 Danilo Šegan <dsegan@gmx.net>
-
- * tk.po: Added Turkmen translation by Gurban Mohemmet Tewekgeli
- <gmt@kakilik.org>.
-
-2004-03-08 Alexander Winston <alexander.winston@comcast.net>
-
- * en_CA.po: Added Canadian English translation at "2 translated
- messages" status.
-
-2004-03-06 Mətin Əmirov <metin@karegen.com>
-
- * az.po: Translation updated.
-
-2004-03-05 Paisa Seeluangsawat <paisa@users.sf.net>
-
- * th.po: Added Thai translation. There was a mistake
- in the last commit.
-
-2004-03-04 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * pa.po: Added Punjabi translation by
- Amanpreet Singh Alam <amanlinux@netscape.net>.
-
-2004-02-27 Paisa Seeluangsawat <paisa@users.sf.net>
-
- * th.po: Added Thai translation.
-
-2004-02-23 Abel Cheung <maddog@linux.org.hk>
-
- * kn.po: Fix encoding.
-
-2004-02-06 Robert Sedak <robert.sedak@sk.htnet.hr>
-
- * hr.po: Updated Croatian translation.
-
-2004-01-31 Mətin Əmirov <metin@karegen.com>
-
- * az.po: Translation updated.
-
-2003-12-27 Åsmund Skjæveland <aasmunds@fys.uio.no>
-
- * nn.po: Updated Norwegian Nynorsk translation.
-
-2003-12-20 Arafat Medini <lumina@silverpen.de>
-
- * ar.po: Added Arabic translation
-
-2003-12-10 Tõivo Leedjärv <toivo@linux.ee>
-
- * et.po: Added Estonian translation
- by Allan Sims <allsi@eau.ee>.
-
-2003-12-09 Åsmund Skjæveland <aasmunds@fys.uio.no>
-
- * nn.po: Added Norwegian Nynorsk translation.
-
-2003-12-05 Iñaki Larañaga <dooteo@euskalgnu.org>
-
- * eu.po: Updated Basque translation.
-
-2003-11-26 Nikos Charonitakis <frolix68@gnome.org>
-
- * el.po: Updated Greek translation.
-
-2003-11-01 Paul Duffy <dubhthach@frink.nuigalway.ie>
-
- * ga.po: Fixed formatting errors. Submitted by
- David O'Callaghan <david.ocallaghan@cs.tcd.ie>
-
-2003-10-17 Yogeesh MB <yogeeshappa.mathighatta@wipro.com>
-
- * kn.po: Adding Kannada translation
-
-2003-09-30 Christian Rose <menthos@menthos.com>
-
- * eu.po: Added Basque translation by
- Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>.
-
-2003-09-22 Taneem Ahmed <taneem@bengalinux.org>
-
- * bn.po: Added Bangla translation by Sayamindu
- of Ankur group <gnome-translation@bengalinux.org>.
-
-2003-09-19 Christian Rose <menthos@menthos.com>
-
- * br.po: Added Breton translation by
- Francis Tyers <francis.tyers@hp.com>.
-
-2003-09-02 Gediminas Paulauskas <menesis@delfi.lt>
-
- * lt.po: Add Lithuanian translation by
- Tomas Kuliavas <tokul@users.sourceforge.net>.
-
-2003-08-28 Pablo Gonzalo del Campo <pablodc@bigfoot.com>
-
- * es.po: Revision of Spanish translation by
- Francisco Javier F. Serrador <serrador@arrakis.es>.
-
-2003-08-24 Sanlig Badral <badral@openmn.org>
-
- * mn.po: Added Mongolian translation.
-
-2003-08-19 Dafydd Harries <daf@parnassus.ath.cx>
-
- * cy.po: Updated Welsh translation.
-
-2003-08-18 Metin Amiroff <metin@karegen.com>
-
- * az.po: Updated Azerbaijani translation.
-
-2003-08-08 Guntupalli Karunakar <karunakar@freedomink.org>
-
- * hi.po: Added Hindi translation.
-
-2003-08-06 Wang Jian <lark@linux.net.cn>
-
- * zh_CN.po: Added Simplified Chinese translation by
- Funda Wang <fundawang@linux.net.cn>.
-
-2003-08-01 Yuriy Syrota <yuriy@beer.com>
-
- * uk.po: Added Ukrainian translation
-
-2003-07-20 Samúel Jón Gunnarsson <sammi@techattack.nu>
-
- * is.po: Added Icelandic translation
-
-2003-07-13 Metin Amiroff <metin@karegen.com>
-
- * az.po: Updated Azerbaijani translation.
-
-2003-07-08 Alessio Frusciante <algol@firenze.linux.it>
-
- * it.po: Added Italian translation.
-
-2003-07-06 Andras Timar <timar@gnome.hu>
-
- * hu.po: Added Hungarian translation.
-
-2003-07-02 Laurent Dhima <laurenti@alblinux.net>
-
- * sq.po: Added Albanian translation.
-
-2003-06-30 Artur Flinta <aflinta@cvs.gnome.org>
-
- * pl.po: Updated Polish translation.
-
-2003-06-29 Dafydd Harries <daf@parnassus.ath.cx>
-
- * cy.po: Added Welsh translation.
-
-2003-06-28 Jordi Mallach <jordi@sindominio.net>
-
- * ca.po: Added Catalan translation.
-
-2003-06-18 Fatih Demir <kabalak@gtranslator.org>
-
- * tr.po: Added Turkish translation by Saim Onur Zaim.
-
-2003-06-03 Changwoo Ryu <cwryu@debian.org>
-
- * ko.po: Added Korean translation from Young-Ho
- Cha <ganadist@mizi.com>.
-
-2003-05-20 Marcel Telka <marcel@telka.sk>
-
- * sk.po: Added Slovak translation.
-
-2003-05-13 Abel Cheung <maddog@linux.org.hk>
-
- * zh_TW.po: New traditional Chinese translation.
-
-2003-05-10 Danilo Šegan <dsegan@gmx.net>
-
- * sr.po, sr@Latn.po: Added Serbian translation by Serbian team
- (Prevod.org).
-
-2003-04-26 Takeshi AIHANA <aihana@gnome.gr.jp>
-
- * ja.po: Added Japanese translation by
- KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>.
-
-2003-04-05 Duarte Loreto <happyguy_pt@hotmail.com>
-
- * pt.po: Added Portuguese translation.
-
-2003-03-25 Metin Amiroff <metin@karegen.com>
-
- * az.po: Added Azerbaijani translaion.
-
-2003-02-26 Dmitry G. Mastrukov <dmitry@taurussoft.org>
-
- * be.po: Updated Belarusian translation
- from Belarusian team <i18n@infonet.by>.
-
-2003-02-21 Christian Rose <menthos@menthos.com>
-
- * ga.po: Added Irish translation by
- Paul Duffy <dubhthach@frink.nuigalway.ie>.
-
-2003-02-21 Roozbeh Pournader <roozbeh@sharif.edu>
-
- * fa.po: Added Persian translation.
-
-2003-02-20 Dmitry G. Mastrukov <dmitry@taurussoft.org>
-
- * be.po: Added Belarusian translation
- from Belarusian team <i18n@infonet.by>.
-
-2003-01-27 Pauli Virtanen <pauli.virtanen@hut.fi>
-
- * fi.po: Added Finnish translation by Lauri Nurmi.
-
-2003-01-23 Kjartan Maraas <kmaraas@gnome.org>
-
- * no.po: Added Norwegian translation.
-
-2003-01-22 Evandro Fernandes Giovanini <evandrofg@ig.com.br>
-
- * pt_BR.po: Added Brazilian Portuguese translation
- from Alexandre Folle de Menezes <afmenez@terra.com.br>.
-
-2003-01-10 Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
-
- * nl.po: Dutch translation added by Tino Meinen.
-
-2002-01-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
-
- * es.po: Added Spanish translation
-
-2003-01-03 Yanko Kaneti <yaneti@declera.com>
-
- * bg.po (added): Added Bulgarian translation by
- Alexander Shopov <al_shopov@yahoo.com>.
-
-2002-12-22 Ole Laursen <olau@hardworking.dk>
-
- * da.po: Converted to UTF-8, changed the strings slightly.
-
-2002-11-25 Hasbullah Bin Pit <sebol@ikhlas.com>
-
- * ms.po: Added Malay translation.
-
-2002-11-24 Christophe Merlet <redfox@redfoxcenter.org>
-
- * fr.po: Added French translation.
-
-2002-11-19 Pablo Saratxaga <pablo@mandrakesoft.com>
-
- * vi.po: Added Vietnamese file
- * el.po, da.po: corrected header problems
-
-2002-11-17 Kostas Papadimas <pkst@gmx.net>
-
- * el.po: Added Greek translation.
-
-2002-11-12 Peteris Krisjanis <peteris.krisjanis@os.lv>
-
- * lv.po: Added Latvian translation.
-
-2002-11-02 Christian Neumair <chris@gnome-de.org>
-
- * de.po: Updated German translation.
-
-2002-10-21 Christian Rose <menthos@menthos.com>
-
- * sv.po: Added Swedish translation.
- * .cvsignore: Added this file.
-
-2002-09-02 Kenneth Rohde Christiansen <kenneth@gnu.org>
-
- * da.po: Added Danish translation
diff --git a/po/LINGUAS b/po/LINGUAS
deleted file mode 100644
index d666619..0000000
--- a/po/LINGUAS
+++ /dev/null
@@ -1,82 +0,0 @@
-# please keep this list sorted alphabetically
-#
-ang
-ar
-as
-az
-be
-bg
-bn
-bn_IN
-br
-bs
-ca
-cs
-cy
-da
-de
-dz
-el
-en_CA
-en_GB
-eo
-es
-et
-eu
-fa
-fi
-fr
-ga
-gl
-gu
-he
-hi
-hr
-hu
-id
-is
-it
-ja
-ka
-kn
-ko
-ku
-ky
-lt
-lv
-mg
-mi
-mk
-ml
-mn
-mr
-ms
-nb
-ne
-nl
-nn
-or
-pa
-pl
-pt
-pt_BR
-ro
-ru
-rw
-si
-sk
-sl
-sq
-sr
-sr@Latn
-sv
-ta
-th
-tk
-tr
-ug
-uk
-vi
-zh_CN
-zh_HK
-zh_TW
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index 8d5cfa9..0000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,2 +0,0 @@
-magnifier/GNOME_Magnifier.server.in.in
-magnifier/magnifier-main.c
diff --git a/po/ang.po b/po/ang.po
deleted file mode 100644
index e068462..0000000
--- a/po/ang.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Old English Translation of gnome-mag.HEAD.
-# Copyright (C) 2004 GNOME Foundation
-# This file is distributed under the same license as the gnome-mag.HEAD package.
-# James Johnson <modean52@comcast.net>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 20:57+0100\n"
-"PO-Revision-Date: 2004-09-16 18:32-0600\n"
-"Last-Translator: James Johnson <modean52@comcast.net>\n"
-"Language-Team: Old English <modean52@comcast.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Íecere"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Ánfeald Léohtbordes Íecnunge Þegnung"
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644
index ae7d51d..0000000
--- a/po/ar.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of gnome-mag.HEAD.ar.po to Arabic
-# Arabic translation of PACKAGE.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Arafat Medini <lumina@silverpen.de>, 2003.
-# Khaled Hosny <khaledhosny@eglug.org>, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.ar\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-27 16:32+0000\n"
-"PO-Revision-Date: 2006-12-16 09:56+0100\n"
-"Last-Translator: Djihed Afifi <djihed@gmail.com>\n"
-"Language-Team: Arabic <support@arabeyes.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n>=3 && "
-"n<=10 ? 2 : 3\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "مكبّر"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "خدمة بسيطة لتكبير الشاشة"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "لم يمكن فتح الشاشة، المتغير DISPLAY غير محدد."
diff --git a/po/as.po b/po/as.po
deleted file mode 100644
index 2af74c3..0000000
--- a/po/as.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of gnome-mag.HEAD.as.po to Assamese
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Amitakhya Phukan <amitakhya.phukan@gmail.com>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.as\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-29 08:28+0200\n"
-"PO-Revision-Date: 2006-08-29 19:35+0530\n"
-"Last-Translator: Amitakhya Phukan <amitakhya.phukan@gmail.com>\n"
-"Language-Team: Assamese\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "বিবৰ্ধক "
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "সামান্য প্ৰদ্দা বিবৰ্ধক সেৱা"
-
diff --git a/po/az.po b/po/az.po
deleted file mode 100644
index 98810a5..0000000
--- a/po/az.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Translation of gnome-mag.HEAD.az.po file to Azerbaijani Turkish
-# Copyright (C) 2003 Mətin Əmirov
-# This file is distributed under the same license as the gnome-mag package.
-# Mətin Əmirov <metin@karegen.com>, 2003, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag-2-2\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-11 18:09+0200\n"
-"Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
-"Language-Team: Azerbaijani Turkish <translation-team-az@lists.sourceforge."
-"net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Böyüdücü"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Ekran Böyütmə Xidməti"
diff --git a/po/be.po b/po/be.po
deleted file mode 100644
index a1a0d3c..0000000
--- a/po/be.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# translation of gnome-mag.HEAD.be.po to Belarusian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Vital Khilko <dojlid@mova.org>, 2003.
-# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.be\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-17 02:51+0100\n"
-"PO-Revision-Date: 2003-02-25 16:53+0200\n"
-"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n"
-"Language-Team: Belarusian <i18n@mova.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Сэрвіс павелічэньня экрана"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Немагчыма адкрыць дысплэй, зьменная DISPLAY не выстаўленая"
diff --git a/po/bg.po b/po/bg.po
deleted file mode 100644
index 3b0b387..0000000
--- a/po/bg.po
+++ /dev/null
@@ -1,29 +0,0 @@
-# Bulgarian translation of gnome-mag po file.
-# Copyright (C) 2002, 2007 Free Software Foundation, Inc.
-# Alexander Shopov <ash@contact.bg>, 2002, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-25 23:01+0200\n"
-"PO-Revision-Date: 2007-02-25 23:02+0200\n"
-"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Проста услуга за увеличаване на екрана"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Не може да се отвори дисплей. Не е зададена променливата DISPLAY."
diff --git a/po/bn.po b/po/bn.po
deleted file mode 100644
index 6a604ca..0000000
--- a/po/bn.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Bengali Translation of GNOME-Mag
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GNOME-Mag package.
-# Sayamindu Dasgupta <unmadindu@bengalinux.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNOME-Mag HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-18 12:23+IST\n"
-"Last-Translator: Sayamindu Dasgupta <unmadindu@bengalinux.org>\n"
-"Language-Team: Bengali <gnome-translation@bengalinux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "বিবর্ধক"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "সাধারণ পর্দা (স্ক্রীণ) বিবর্ধন সেবা"
diff --git a/po/bn_IN.po b/po/bn_IN.po
deleted file mode 100644
index bc9d358..0000000
--- a/po/bn_IN.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Bengali Translation of GNOME-Mag
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the GNOME-Mag package.
-# Sayamindu Dasgupta <unmadindu@bengalinux.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNOME-Mag HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-07-03 07:21+0200\n"
-"PO-Revision-Date: 2003-08-18 12:23+IST\n"
-"Last-Translator: Sayamindu Dasgupta <unmadindu@bengalinux.org>\n"
-"Language-Team: Bengali <gnome-translation@bengalinux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "বিবর্ধক"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "সাধারণ পর্দা (স্ক্রীণ) বিবর্ধন সেবা"
diff --git a/po/br.po b/po/br.po
deleted file mode 100644
index 16cfa3b..0000000
--- a/po/br.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Breton translation for gnome-mag
-# Copyright (C) 2003 Francis Tyers
-# This file is distributed under the same license as the gnome-mag package.
-# Francis Tyers <francis.tyers@hp.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-09-19 18:47+0200\n"
-"Last-Translator: Francis Tyers <francis.tyers@hp.com>\n"
-"Language-Team: GNOME Breton Team <francis.tyers@hp.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Loupenn"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servij Loupenn Plaen"
diff --git a/po/bs.po b/po/bs.po
deleted file mode 100644
index 43761c7..0000000
--- a/po/bs.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of gnome-mag.HEAD.po to Bosnian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Kemal Sanjta <gomez@lugzdk.ba>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-27 19:42+0200\n"
-"PO-Revision-Date: 2004-07-28 02:14+0200\n"
-"Last-Translator: Kemal Sanjta <gomez@lugzdk.ba>\n"
-"Language-Team: Bosnian <+>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Povećalo"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Jednostavni servis povećanja ekrana"
-
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644
index dfbd342..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Catalan translation of Gnome-mag.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Jordi Mallach <jordi@sindominio.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-19 07:52+0100\n"
-"PO-Revision-Date: 2006-12-19 07:54+0100\n"
-"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
-"Language-Team: Catalan <tradgnome@softcatala.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Ampliador"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Simple servei d'ampliació de la pantalla"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr ""
-"No s'ha pogut obrir la pantalla, la variable DISPLAY no està establerta"
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644
index 34cea15..0000000
--- a/po/cs.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Czech gnome-mag translation.
-# Copyright (C) 2002 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Michal Bukovjan <bukm@centrum.cz>, 2002.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2002-11-13 12:32GMT\n"
-"Last-Translator: Michal Bukovjan <bukm@centrum.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.6\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Jednoduchá služba zvětšení obrazovky"
diff --git a/po/cy.po b/po/cy.po
deleted file mode 100644
index a83b821..0000000
--- a/po/cy.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# gnome-mag yn Gymraeg.
-# Copyright (C) 2003, The Free Software Foundation
-# This file is distributed under the same license as the gnome-mag package.
-# Dafydd Harries <daf@parnassus.ath.cx>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-07-05 04:28+0100\n"
-"Last-Translator: Dafydd Harries <daf@parnassus.ath.cx>\n"
-"Language-Team: Cymraeg <gnome-cy@www.linux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Chwyddwr"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Gwasanaeth Syml Chwyddo'r Sgrîn"
diff --git a/po/da.po b/po/da.po
deleted file mode 100644
index ed4dd52..0000000
--- a/po/da.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Danish gnome-mag translation.
-# Copyright (C) 2007 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Ole Laursen <olau@hardworking.dk>, 2002.
-# Peter Bach <bach.peter@gmail.com>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-04 13:53+0100\n"
-"PO-Revision-Date: 2007-01-31 14:05+0200\n"
-"Last-Translator: Peter Bach <bach.peter@gmail.com>\n"
-"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Forstørrer"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Simpel skærmforstørrelsestjeneste"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Kan ikke åbne skærm, DISPLAY er ikke sat"
diff --git a/po/de.po b/po/de.po
deleted file mode 100644
index a11bc11..0000000
--- a/po/de.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# German gnome-mag translation.
-# Copyright (C) 2002 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Christian Neumair <chris@gnome-de.org>, 2002.
-# Hendrik Richter <hendrikr@gnome.org>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:50+0100\n"
-"PO-Revision-Date: 2007-01-26 10:51+0100\n"
-"Last-Translator: Hendrik Richter <hendrikr@gnome.org>\n"
-"Language-Team: German <gnome-de@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupe"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Einfacher Dienst zur Vergrößerung des Bildschirms"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr ""
-"Auf Bildschirm kann nicht zugegriffen werden, da DISPLAY nicht gesetzt ist"
diff --git a/po/dz.po b/po/dz.po
deleted file mode 100644
index 09835ff..0000000
--- a/po/dz.po
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.dz\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-06 05:08+0100\n"
-"PO-Revision-Date: 2006-03-23 16:27-0500\n"
-"Last-Translator: \n"
-"Language-Team: DZONGKHA <pgeyleg@dit.gov.bt>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2;plural=(n!=1);\n"
-"X-Poedit-Language: Dzongkha\n"
-"X-Poedit-Country: BHUTAN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ཆེ་ཤེལ།"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "འཇམ་སམ་གྱི་གསལ་གཞི་ཆེར་བསྐྱེད་ཞབས་ཏོག"
-
diff --git a/po/el.po b/po/el.po
deleted file mode 100644
index 9f48bef..0000000
--- a/po/el.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# gnome-mag.
-# Copyright (C) Free Software Foundation 2002
-# This file is distributed under the same license as the PACKAGE package.
-# Kostas Papadimas <pkst@gmx.net>, 2002.
-# Nikos Charonitakis <frolix68@gnome.org>, 2003.
-# Nikos 26Nov03 Review
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-11-26 10:43-0200\n"
-"Last-Translator: Nikos Charonitakis <charosn@her.fothnet.gr>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Μεγεθυντής"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Μια Απλή Υπηρεσία Μεγέθυνσης Οθόνης"
diff --git a/po/en_CA.po b/po/en_CA.po
deleted file mode 100644
index 6d5982b..0000000
--- a/po/en_CA.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Canadian English translation for gnome-mag
-# Copyright (C) Adam Weinberger and the GNOME Foundaztion
-# This file is distributed under the same licence as the gnome-mag package.
-# Alexander Winston <alexander.winston@comcast.net>, 2004.
-# Adam Weinberger <adamw@gnome.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.10.8\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-09-08 03:13-0400\n"
-"PO-Revision-Date: 2004-09-08 18:45-0400\n"
-"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
-"Language-Team: Canadian English <adamw@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Magnifier"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Simple Screen Magnification Service"
diff --git a/po/en_GB.po b/po/en_GB.po
deleted file mode 100644
index d5a68fd..0000000
--- a/po/en_GB.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# English (British) translation.
-# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the gnome-mag package.
-# Gareth Owen <gowen72@yahoo.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-29 18:30+0000\n"
-"PO-Revision-Date: 2006-12-29 18:31-0000\n"
-"Last-Translator: David Lodge <dave@cirt.net>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Magnifier"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Simple Screen Magnification Service"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Can't open display, DISPLAY is not set"
-
diff --git a/po/eo.po b/po/eo.po
deleted file mode 100644
index 8479bd1..0000000
--- a/po/eo.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Esperanto translation of gnome-mag
-# Copyright (C) 2006 THE gnome-mag'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the gnome-mag package.
-# Dominique PELLE <dominique.pelle@free.fr>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-08 00:14+0530\n"
-"PO-Revision-Date: 2006-05-04 11:52+0200\n"
-"Last-Translator: Dominique PELLE <dominique.pelle@free.fr>\n"
-"Language-Team: Esperanto <eo-tradukado@lists.tuxfamily.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Pligrandigilo"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servo por simpla pligrandigo de ekrano"
diff --git a/po/es.po b/po/es.po
deleted file mode 100644
index 01e337b..0000000
--- a/po/es.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of gnome-mag.HEAD.po to Spanish
-# Swedish messages for gnome-mag.
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-#
-# $Id$
-# Germán Poo Caamaño <gpoo@ubiobio.cl>, 2002.
-# Francisco Javier F. Serrador <serrador@arrakis.es>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-15 00:21+0100\n"
-"PO-Revision-Date: 2006-12-15 00:21+0100\n"
-"Last-Translator: Francisco Javier F. Serrador <serrador@arrakis.es>\n"
-"Language-Team: Spanish <traductores@es.gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servicio sencillo de ampliación de pantalla"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "No se puede abrir la pantalla, DISPLAY no está establecido"
diff --git a/po/et.po b/po/et.po
deleted file mode 100644
index 7165851..0000000
--- a/po/et.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# GNOME luubi eesti keele tõlge.
-# Estonian translation of GNOME Magnifer.
-#
-# Copyright (C) 2003, 2005 The Free Software Foundation
-# Copyright (C) 2007, The GNOME Project.
-# This file is distributed under the same license as the Gnome Magnifer package.
-#
-# Allan Sims <allsi@eau.ee>, 2003.
-# Ivar Smolin <okul@linux.ee>, 2005, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Gnome-Magnifer HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-02 05:44+0000\n"
-"PO-Revision-Date: 2007-01-03 08:07+0200\n"
-"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
-"Language-Team: Estonian <gnome-et@linux.ee>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Luup"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Lihtne ekraani suurendamise teenus"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Kuva pole võimalik avada kuna DISPLAY on määramata"
diff --git a/po/eu.po b/po/eu.po
deleted file mode 100644
index 62fe4ce..0000000
--- a/po/eu.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of gnome-mag.HEAD.eu.po to Basque
-# translation of gnome-mag.HEAD.po to Basque
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.eu\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-09-24 12:06GMT\n"
-"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>\n"
-"Language-Team: Basque <itzulpena@euskalgnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Pantaila handitzearen zerbitzu sinplea"
diff --git a/po/fa.po b/po/fa.po
deleted file mode 100644
index a49e463..0000000
--- a/po/fa.po
+++ /dev/null
@@ -1,22 +0,0 @@
-# Persian translation of gnome-mag.
-# Copyright (C) 2003 The FarsiWeb Project Group
-# Roozbeh Pournader <roozbeh@sharif.edu>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-02-21 13:57+0330\n"
-"Last-Translator: Roozbeh Pournader <roozbeh@sharif.edu>\n"
-"Language-Team: Persian <farsi@lists.sharif.edu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ذره‌بین"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "برنامه‌ی ساده‌ی بزرگ‌بینی صفحه"
diff --git a/po/fi.po b/po/fi.po
deleted file mode 100644
index 52c74bc..0000000
--- a/po/fi.po
+++ /dev/null
@@ -1,29 +0,0 @@
-# Finnish translation of gnome-mag.
-# Copyright (C) 2003 the Free Software Foundation, Inc.
-# Suomennos: http://gnome-fi.sourceforge.net/
-# Lauri Nurmi <lanurmi@iki.fi>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-12 20:25+0300\n"
-"PO-Revision-Date: 2007-02-12 20:27+0300\n"
-"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
-"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Suurennuslasi"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Yksinkertainen ruudunsuurennuspalvelu"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Näyttöä ei voi avata, muuttuja DISPLAY ei ole asetettu"
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644
index f7e463f..0000000
--- a/po/fr.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# French translation of gnome-mag.
-# Copyright (C) 2002 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Christophe Merlet (RedFox) <redfox@redfoxcenter.org>, 2002.
-# Stéphane Raimbault <stephane.raimbault@gmail.com>, 2007
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.9.8\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-31 19:38+0100\n"
-"PO-Revision-Date: 2007-01-31 20:18+0100\n"
-"Last-Translator: Stéphane Raimbault <stephane.raimbault@gmail.com>\n"
-"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Loupe"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Service basique d'agrandissement de l'écran"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Impossible d'ouvrir l'affichage car la variable « DISPLAY » n'est pas définie"
diff --git a/po/ga.po b/po/ga.po
deleted file mode 100644
index a66d4cc..0000000
--- a/po/ga.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Irish Translation of Gnome Mag
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# Pól Ó Dubhthaigh <dubhthach@zion.nuigalway.ie>,2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-02-21 17:05+0100\n"
-"Last-Translator: Pól Ó Dubhthaigh <dubhthach@zion.nuigalway.ie>\n"
-"Language-Team: Irish\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Formhéadúcháin"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Seirbhís le haighaidh an Scáthán a formhéadaigh"
diff --git a/po/gl.po b/po/gl.po
deleted file mode 100644
index 290b44a..0000000
--- a/po/gl.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of gl.po to Galego
-# translation of gnome-mag.HEAD.po to Galego
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gl\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-07 22:32+0200\n"
-"PO-Revision-Date: 2005-06-07 22:32+0200\n"
-"Last-Translator: Ignacio Casal Quinteiro <nacho.resa@gmail.com>\n"
-"Language-Team: Galego\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Anteollo"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servizo sinxelo de ampliación de pantalla"
diff --git a/po/gu.po b/po/gu.po
deleted file mode 100644
index e4e712b..0000000
--- a/po/gu.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# translation of gnome-mag.HEAD.gu.po to Gujarati
-# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-# MagNet <magnet@magnet-i.com>, 2004.
-# Ankit Patel <ankit@redhat.com>, 2004, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.gu\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-14 07:08+0100\n"
-"PO-Revision-Date: 2006-12-14 15:39+0530\n"
-"Last-Translator: Ankit Patel <ankit@redhat.com>\n"
-"Language-Team: Gujarati <fedora-trans-gu@redhat.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"<magnet@magnet-i.com>\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
-"\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "વિસ્તૃત કરનાર"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "સામાન્ય સ્ક્રીન વિસ્તૃતિકરણ સેવા"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "ડિસ્પ્લે ખોલી શકતા નથી, DISPLAY સુયોજિત નથી"
-
diff --git a/po/he.po b/po/he.po
deleted file mode 100644
index 4f8de15..0000000
--- a/po/he.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# translation of gnome-mag.HEAD.po to Hebrew
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-02 05:44+0000\n"
-"PO-Revision-Date: 2002-11-29 17:42+0200\n"
-"Last-Translator: Gil 'Dolfin' Osher <dolfin@rpg.org.il>\n"
-"Language-Team: Hebrew <he@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0beta2\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "זכוכית מגדלת"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "שירות זכוכית מגדלת למסך פשוט"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Can't open display, DISPLAY is not set"
diff --git a/po/hi.po b/po/hi.po
deleted file mode 100644
index f8baca6..0000000
--- a/po/hi.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# translation of gnome-mag.HEAD.po to Hindi
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# G Karunakar <karunakar@freedomink.org>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-08 19:20+0530\n"
-"Last-Translator: G Karunakar <karunakar@freedomink.org>\n"
-"Language-Team: Hindi <indlinux-hindi-gnome@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "आवर्धक"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "साधारण सक्रीन आवर्धन सेवा"
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644
index 07fea32..0000000
--- a/po/hr.po
+++ /dev/null
@@ -1,22 +0,0 @@
-# Translation of gnome-mag to Croatiann
-# Copyright (C) Croatiann team
-# Translators: Automatski Prijevod <>,Denis Lackovic <delacko@fly.srk.fer.hr>,
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2004-02-05 23:48+CET\n"
-"Last-Translator: auto\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: TransDict server\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Povećalo"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Jednostavna usluga povećanja zaslona"
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644
index d4e1f9b..0000000
--- a/po/hu.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# gnome-mag Hungarian translation.
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Andras Timar <timar@gnome.hu>, 2003.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-02 05:44+0000\n"
-"PO-Revision-Date: 2007-02-24 10:36+0100\n"
-"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
-"Language-Team: Hungarian <gnome@gnome.hu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Nagyító"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Egyszerű képernyőnagyító szolgáltatás"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "A megjelenítő nem nyitható meg, a DISPLAY változó nincs beállítva"
-
diff --git a/po/id.po b/po/id.po
deleted file mode 100644
index 48fd3c1..0000000
--- a/po/id.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Ahmad Riza H Nst <ari@160c.afraid.org> 20040519
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag gnome-2-6\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-05-27 16:39+0700\n"
-"PO-Revision-Date: 2004-05-19 18:46+0700\n"
-"Last-Translator: Ahmad Riza H Nst <ari@160c.afraid.org>\n"
-"Language-Team: Indonesia <sukarelawan@gnome.linux.or.id>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Kaca Pembesar"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Layanan Sederhana Untuk Kaca Pembesar Layar"
diff --git a/po/is.po b/po/is.po
deleted file mode 100644
index 1e4fa2c..0000000
--- a/po/is.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-07-20 18:13-0100\n"
-"Last-Translator: Samuel Jon Gunnarsson <sammi@techattack.nu>\n"
-"Language-Team: Icelandic <gnome@techattack.nu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Stækkunargler"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Einföld skjástækkunarglersþjónusta"
diff --git a/po/it.po b/po/it.po
deleted file mode 100644
index 1c146fd..0000000
--- a/po/it.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# gnome-mag italian translation
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the gnome-mag package.
-# Alessio Frusciante <algol@firenze.linux.it>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-03-03 12:02+0100\n"
-"PO-Revision-Date: 2007-03-03 12:03+0100\n"
-"Last-Translator: Alessio Frusciante <algol@firenze.linux.it>\n"
-"Language-Team: Italian <tp@lists.linux.it>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Ingranditore"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Semplice servizio di ingrandimento schermo"
-
-# aggiunto variabile...
-#: ../magnifier/magnifier-main.c:398
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Impossibile aprire il display, variabile DISPLAY non impostata"
diff --git a/po/ja.po b/po/ja.po
deleted file mode 100644
index 724905a..0000000
--- a/po/ja.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# gnome-mag ja
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-03-05 14:11+0900\n"
-"Last-Translator: KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>\n"
-"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "拡大"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "簡易スクリーン拡大サービス"
diff --git a/po/ka.po b/po/ka.po
deleted file mode 100644
index f283563..0000000
--- a/po/ka.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Georgian translation of gnome-mag.
-# Copyright (C) 2004 Aiet Kolkhi
-# This file is distributed under the same license as the gnome-mag package.
-# Aiet Kolkhi <aiet@qartuli.net>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.1\n"
-"POT-Creation-Date: 2004-04-29 15:11+0200\n"
-"PO-Revision-Date: 2004-04-30 01:16+0400\n"
-"Last-Translator: Aiet Kolkhi <aiet@qartuli.net>\n"
-"Language-Team: Georgian <aiet@qartuli.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "გამადიდებელი"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "მარტივი ეკრანის გამადიდებელი სერვისი"
-
diff --git a/po/kn.po b/po/kn.po
deleted file mode 100644
index 5614a28..0000000
--- a/po/kn.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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: 2003-10-17 02:48+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Yogeesh MB <yogeeshappa.mathighatta@wipro.com>\n"
-"Language-Team: Kannada <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ಭೂತಗನ್ನಡಿ"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "ಪರದೆ ದೊಡ್ಡದಾಗಿ ತೋರಿಸುವ ಸರಳ ಸೇವೆ"
diff --git a/po/ko.po b/po/ko.po
deleted file mode 100644
index d261535..0000000
--- a/po/ko.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is distributed under the same license as the PACKAGE package.
-# Young-Ho, Cha <ganadist at mizi.com>, 2006.
-# Changwoo Ryu <cwryu@debian.org>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-25 06:13+0900\n"
-"PO-Revision-Date: 2007-02-25 06:14+0900\n"
-"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
-"Language-Team: GTP Korean <gnome-kr-translation@gnome.or.kr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "돋보기"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "간단한 화면 돋보기 서비스"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "디스플레이를 열 수 없습니다. DISPLAY 환경 변수를 설정하지 않았습니다"
diff --git a/po/ku.po b/po/ku.po
deleted file mode 100644
index 6ffa682..0000000
--- a/po/ku.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# translation of gnome-mag.HEAD.po to Kurdish
-# Kurdish Translation of Gnome-Mag
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Erdal Ronahi <erdal.ronahi@gmail.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-09-09 13:27+0200\n"
-"PO-Revision-Date: 2005-10-15 16:14+0200\n"
-"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n"
-"Language-Team: Kurdish <gnu-ku-wergerandin@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10\n"
-"Plural-Forms: nplurals=2; plural= n != 1\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Rojik"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servîsa Mezinkirina Dîmenê ya Basît"
-
diff --git a/po/ky.po b/po/ky.po
deleted file mode 100644
index a40d42b..0000000
--- a/po/ky.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Kirghiz translation of gnome-mag package
-# This file is distributed under the same license as the gnome-mag package.
-# Ilyas Bakirov <just_ilyas@yahoo.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.12.10\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-31 06:06+0100\n"
-"PO-Revision-Date: 2005-10-31 21:37+0500\n"
-"Last-Translator: Ilyas Bakirov <just_ilyas@yahoo.com>\n"
-"Language-Team: Kirghiz <ztimur@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Чоңойткуч"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Жөнөкөй экран чоңойткуч кызматы"
-
diff --git a/po/lt.po b/po/lt.po
deleted file mode 100644
index 514329a..0000000
--- a/po/lt.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of lt.po to Lithuanian
-# Lithuanian translation of gnome-mag.
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Tomas Kuliavas <tokul@users.sourceforge.net>, 2003.
-# Gintautas Miliauskas <gintas@akl.lt>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: lt\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-27 15:47+0200\n"
-"PO-Revision-Date: 2007-02-22 02:02+0200\n"
-"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
-"Language-Team: Lithuanian <gnome-lt@lists.akl.lt>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Paprastas ekrano didinimo įrankis"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Nepavyko atverti ekrano, nes nenustatytas DISPLAY"
diff --git a/po/lv.po b/po/lv.po
deleted file mode 100644
index 4903c74..0000000
--- a/po/lv.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# translation of lv.po to Latvian
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-# Raivis Dejus <orvils@gmail.com>, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: lv\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-25 16:12+0200\n"
-"PO-Revision-Date: 2006-12-25 16:12+0200\n"
-"Last-Translator: Raivis Dejus <orvils@gmail.com>\n"
-"Language-Team: Latvian <locale@laka.lv>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Vienkāršs Ekrāna Palielināšanas Serviss"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Nevar atvērt ekrānu, DISPLAY nav uzstādīts"
-
diff --git a/po/mg.po b/po/mg.po
deleted file mode 100644
index 555a107..0000000
--- a/po/mg.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# MALAGASY TRANSLATION OF GNOME-MAG.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Thierry Randrianiriana <thierry@isvtec.com>, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: GNOME-MAG VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-22 07:57+0200\n"
-"PO-Revision-Date: 2006-08-22 20:38+0300\n"
-"Last-Translator: Fano Rajaonarisoa <fano@isvtec.com>\n"
-"Language-Team: MALAGASY <i18n-malagasy-gnome@gna.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Fitaratra fanalehibiazana"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Sampanasa fanalehibiazana efijery tsotra"
diff --git a/po/mi.po b/po/mi.po
deleted file mode 100644
index bb302fc..0000000
--- a/po/mi.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# English translation of gnome-mag.
-# Copyright (C) 2004 THE gnome-mag'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the gnome-mag package.
-# John C Barstow <jbarstow@cvs.gnome.org>, 2004.
-# , fuzzy
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 2.6\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2004-03-17 00:03+1300\n"
-"Last-Translator: John C Barstow <jbarstow@cvs.gnome.org>\n"
-"Language-Team: Maori <maori@nzlinux.org.nz>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Karu Whakarahi"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Te Ratonga mō Mata Whakarahi"
diff --git a/po/mk.po b/po/mk.po
deleted file mode 100755
index 4ddd411..0000000
--- a/po/mk.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of gnome-mag.HEAD.mk.po to Macedonian
-# translation of gnome-mag.HEAD.po to
-# translation of gnome-mag.HEAD.po to
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER, 2003
-#
-# Vladislav Bidikov <bidikovi@mail.com.mk>, 2003.
-# Jovan Naumovski <jovan@lugola.net>, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.mk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-14 15:59+0100\n"
-"PO-Revision-Date: 2006-12-14 20:32+0100\n"
-"Last-Translator: Jovan Naumovski <jovan@lugola.net>\n"
-"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Обичен Екран за уредот за зголемување"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Не можам да го отворам екранот, DISPLAY не е поставен"
-
diff --git a/po/ml.po b/po/ml.po
deleted file mode 100644
index cb30309..0000000
--- a/po/ml.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# translation of gnome-mag.HEAD.ml.po to
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# FSF-India <locale@gnu.org.in>, 2003.
-# Suresh Valiya Parambil <mvpsuresh@yahoo.com>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.ml\n"
-"POT-Creation-Date: 2003-06-06 04:22+0200\n"
-"PO-Revision-Date: 2003-07-24 20:51-0600\n"
-"Last-Translator: Suresh Valiya Parambil <mvpsuresh@yahoo.com>\n"
-"Language-Team: <ml@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ഭൂതകണ്ണാടി്"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "ലളിതമായ സ്ക്രീന് ഭൂതകണ്ണാടി"
diff --git a/po/mn.po b/po/mn.po
deleted file mode 100644
index 51640c6..0000000
--- a/po/mn.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# translation of gnome-mag.HEAD.po to Mongolian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Sanlig Badral <Badral@openmn.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-23 14:20+0200\n"
-"Last-Translator: Sanlig Badral <Badral@openmn.org>\n"
-"Language-Team: Mongolian <openmn-kdemn@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Өсгөгч шил"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Энгийн дэлгэц өсгөгч үйлчилгээ"
diff --git a/po/mr.po b/po/mr.po
deleted file mode 100644
index 745e161..0000000
--- a/po/mr.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of gnome-mag.HEAD.po to Marathi
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Rahul Bhalerao <b.rahul.pm@gmail.com>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-07-07 11:40-0700\n"
-"PO-Revision-Date: 2006-05-23 23:28+0530\n"
-"Last-Translator: Rahul Bhalerao <b.rahul.pm@gmail.com>\n"
-"Language-Team: Marathi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "वर्धक भिंग"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "साधी पटल मोठे करणारी सेवा"
diff --git a/po/ms.po b/po/ms.po
deleted file mode 100644
index 4224c0c..0000000
--- a/po/ms.po
+++ /dev/null
@@ -1,22 +0,0 @@
-# gnome-mag maly translation
-# Jika takut risiko, Jangan bicara tentang Perjuangan
-# Hasbullah Bin Pit (sebol) <sebol@ikhlas.com>, 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: atk HEAD\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2002-11-10 20:20+0800\n"
-"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
-"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Pembesar"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Servis Pembesaran Skrin Ringkas"
diff --git a/po/nb.po b/po/nb.po
deleted file mode 100644
index 08d11a9..0000000
--- a/po/nb.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-15 11:01+0100\n"
-"PO-Revision-Date: 2006-12-15 10:59+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
-"Language-Team: Norwegian <no@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Forstørrelsesglass"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Enkel tjeneste for forstørring på skjermen"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Kan ikke åpne skjerm. DISPLAY er ikke satt"
diff --git a/po/ne.po b/po/ne.po
deleted file mode 100644
index 5bc647c..0000000
--- a/po/ne.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.ne.po\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-12-11 04:22+0100\n"
-"PO-Revision-Date: 2005-01-09 20:13+0545\n"
-"Last-Translator: rajeev shrestha <rajeev_rajee01@hotmail.com.np>\n"
-"Language-Team: Nepali <info@mpp.org.np>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Nepali\n"
-"X-Poedit-Country: NEPAL\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "अभिवर्दक"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "साधारण पर्दा अभिवर्दन सेवा"
-
diff --git a/po/nl.po b/po/nl.po
deleted file mode 100644
index d8a79a6..0000000
--- a/po/nl.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Dutch translation of gnome-mag.
-# Copyright (C) 2003 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnom-mag package.
-# Tino Meinen <a.t.meinen@chello.nl>, 2003.
-# Wouter Bolsterlee <wbolster@gnome.org>, 2007
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag gnome-2.2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-31 23:56+0100\n"
-"PO-Revision-Date: 2007-01-31 23:56+0100 \n"
-"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n"
-"Language-Team: Dutch <vertaling@nl.linux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Vergrootglas"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Eenvoudig scherm-vergrootglas"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Kan scherm niet openen: DISPLAY is niet ingesteld"
diff --git a/po/nn.po b/po/nn.po
deleted file mode 100644
index 57e7a29..0000000
--- a/po/nn.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# translation of nn.po to Norwegian Nynorsk
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Åsmund Skjæveland <aasmunds@fys.uio.no>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: nn\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-12-09 15:10+0100\n"
-"Last-Translator: Åsmund Skjæveland <aasmunds@fys.uio.no>\n"
-"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Forstørringsglas"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Enkel skjermforstørringsteneste"
diff --git a/po/or.po b/po/or.po
deleted file mode 100644
index 7530e17..0000000
--- a/po/or.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Oriya translation of gnome-mag.HEAD.pot.
-# Copyright (C) 2004, Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004.
-# $Id$
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.or\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-11 11:42+0200\n"
-"PO-Revision-Date: 2004-08-11 22:48+0530\n"
-"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
-"Language-Team: Oriya <oriya-group@lists.sarovar.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ବୃଦ୍ଧକ"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "ସରଳ ପରଦା ବୃଦ୍ଧି କରିବା ସେବା"
diff --git a/po/pa.po b/po/pa.po
deleted file mode 100644
index 3b8ae0b..0000000
--- a/po/pa.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# translation of gnome-mag.HEAD.pa.po to Punjabi
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Amanpreet Singh Alam <aalam@redhat.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD.pa\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-11 11:42+0200\n"
-"PO-Revision-Date: 2004-08-11 20:11+0530\n"
-"Last-Translator: Amanpreet Singh Alam <aalam@redhat.com>\n"
-"Language-Team: Punjabi <pa@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "ਵੱਡਦਰਸ਼ੀ"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "ਸਧਾਰਨ ਸਕਰੀਨ ਵੱਡਦਰਸ਼ੀ ਸੇਵਾ"
-
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644
index 3b36f9e..0000000
--- a/po/pl.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (C) 2001-2002 Free Software Foundation, Inc.
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-# Aktualną wersję tego pliku możesz odnaleźć w repozytorium cvs.gnome.pl
-# (:pserver:anonymous@cvs.gnome.pl:/home/cvs, puste hasło)
-# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
-# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas na adres:
-# translators@gnome.pl
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-20 22:20+0100\n"
-"PO-Revision-Date: 2003-03-17 12:18+0100\n"
-"Last-Translator: GNOME PL Team <translators@gnome.pl>\n"
-"Language-Team: Polish <pl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Prosta usługa powiększania ekranu"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Nie można otworzyć wyświetlacza, zmienna DISPLAY nie jest ustawiona"
diff --git a/po/pt.po b/po/pt.po
deleted file mode 100644
index 0173148..0000000
--- a/po/pt.po
+++ /dev/null
@@ -1,29 +0,0 @@
-# gnome-mag's Portuguese Translation
-# Copyright © 2003, 2007 gnome-mag
-# This file is distributed under the same license as the gnome-mag package.
-# Duarte Loreto <happyguy_pt@hotmail.com> 2003, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.18\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-14 21:08+0000\n"
-"PO-Revision-Date: 2007-02-14 21:10+0000\n"
-"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Simples Serviço de Ampliação de Ecrã"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Incapaz de abrir o ecrã, variável DISPLAY não está definida"
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100644
index 8961792..0000000
--- a/po/pt_BR.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# gnome-mag: translation to Brazilian Portuguese (pt_BR)
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2003.
-# Guilherme de S. Pastore <gpastore@gnome.org>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-04 09:30-0200\n"
-"PO-Revision-Date: 2007-01-04 09:46-0200\n"
-"Last-Translator: Guilherme de S. Pastore <gpastore@gnome.org>\n"
-"Language-Team: Brazilian Portuguese <gnome-l10n-br@listas.cipsga.org.br>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Serviço Simples de Ampliação de Tela"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Não foi possível abrir a tela, a variável DISPLAY não está definida"
diff --git a/po/ro.po b/po/ro.po
deleted file mode 100644
index 105f543..0000000
--- a/po/ro.po
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Mişu Moldovan <dumol@go.ro>, 2004.
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2004-03-21 00:02+0200\n"
-"Last-Translator: Mişu Moldovan <dumol@go.ro>;\n"
-"Language-Team: Romanian <gnomero-list@lists.sourceforge.net>;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Magnificator"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Unealtă de mărire a ecranului"
diff --git a/po/ru.po b/po/ru.po
deleted file mode 100644
index 1137ac3..0000000
--- a/po/ru.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Russian translation of gnome-mag package
-# This file is distributed under the same license as the gnome-mag package.
-# Leonid Kanter <leon@asplinux.ru>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2004-03-17 11:33+0200\n"
-"Last-Translator: Leonid Kanter <leon@asplinux.ru>\n"
-"Language-Team: Russian <gnome-cyr@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-"X-Generator: KBabel 1.3.1\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Простая служба увеличения экрана"
diff --git a/po/rw.po b/po/rw.po
deleted file mode 100644
index 2190781..0000000
--- a/po/rw.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# translation of gnome-mag to Kinyarwanda.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Steve Murphy <murf@e-tools.com>, 2005
-# Steve performed initial rough translation from compendium built from translations provided by the following translators:
-# Philibert Ndandali <ndandali@yahoo.fr>, 2005.
-# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
-# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
-# Carole Karema <karemacarole@hotmail.com>, 2005.
-# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
-# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005.
-# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005..
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 2.12\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-31 17:27-0700\n"
-"PO-Revision-Date: 2005-03-28 19:35-0700\n"
-"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
-"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr ""
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr ""
diff --git a/po/si.po b/po/si.po
deleted file mode 100644
index e6af968..0000000
--- a/po/si.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# translation of gnome-mag.HEAD.po to Sinhala
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Tyronne Wickramarathne <tywickra@redhat.com>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-09-26 08:39+0200\n"
-"PO-Revision-Date: 2006-09-27 17:59+0530\n"
-"Last-Translator: Tyronne Wickramarathne <tywickra@redhat.com>\n"
-"Language-Team: Sinhala <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "විශාලනකාරකය"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "සරල තිර විශාලනය කිරීමේ යාන්ත්‍රණය"
-
diff --git a/po/sk.po b/po/sk.po
deleted file mode 100644
index 85f03bd..0000000
--- a/po/sk.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# Slovak translation for gnome-mag.
-# Copyright (C) 2003 Marcel Telka
-# This file is distributed under the same license as the gnome-mag package.
-# Marcel Telka <marcel@telka.sk>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-05-20 07:52+0200\n"
-"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
-"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Jednoduchá služba na zväčšovanie obrazovky"
diff --git a/po/sl.po b/po/sl.po
deleted file mode 100644
index a23b053..0000000
--- a/po/sl.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Slovenian translation of gnome-mag.
-# Copyright (C) 2000-2007 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Andraz Tori <andraz.tori1@guest.arnes.si>, 2000.
-# Matic Žgur <mr.zgur@gmail.com>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2007-01-06 14:19+0100\n"
-"Last-Translator: Matic Žgur <mr.zgur@gmail.com>\n"
-"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-"X-Poedit-Language: Slovenian\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Povečevalo"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Enostavna storitev povečevanja zaslona"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Ni mogoče odpreti zaslona, DISPLAY ni nastavljen"
-
diff --git a/po/sq.po b/po/sq.po
deleted file mode 100644
index 31b699b..0000000
--- a/po/sq.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Albanian translation of gnome-mag
-# This file is distributed under the same license as the gnome-mag package.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Laurent Dhima <laurenti@alblinux.net>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-19 11:45+0200\n"
-"PO-Revision-Date: 2003-07-02 17:34+0200\n"
-"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
-"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Zmadhues (Lupë)"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Një shërbim i thjeshtë për të zmadhuar ekranin"
diff --git a/po/sr.po b/po/sr.po
deleted file mode 100644
index 67608c5..0000000
--- a/po/sr.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# Serbian translation of gnome-mag
-# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005.
-#
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Maintainer: Бранко Ивановић <popeye@one.ekof.bg.ac.yu>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-08 14:40+0200\n"
-"PO-Revision-Date: 2005-08-08 14:41+0200\n"
-"Last-Translator: Бранко Ивановић <popeye@one.ekof.bg.ac.yu>\n"
-"Language-Team: Serbian (sr) <serbiangnome-lista@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Једноставни сервис за увећање екранског приказа"
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
deleted file mode 100644
index e60fe13..0000000
--- a/po/sr@Latn.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# Serbian translation of gnome-mag
-# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004, 2005.
-#
-# This file is distributed under the same license as the gnome-mag package.
-#
-# Maintainer: Branko Ivanović <popeye@one.ekof.bg.ac.yu>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-08 14:40+0200\n"
-"PO-Revision-Date: 2005-08-08 14:41+0200\n"
-"Last-Translator: Branko Ivanović <popeye@one.ekof.bg.ac.yu>\n"
-"Language-Team: Serbian (sr) <serbiangnome-lista@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Lupa"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Jednostavni servis za uvećanje ekranskog prikaza"
diff --git a/po/sv.po b/po/sv.po
deleted file mode 100644
index 713ecc3..0000000
--- a/po/sv.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Swedish messages for gnome-mag.
-# Copyright (C) 2002, 2006 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Daniel Nylander <po@danielnylander.se>, 2006.
-# Christian Rose <menthos@menthos.com>, 2002.
-#
-# $Id$
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-11-27 09:56+0100\n"
-"PO-Revision-Date: 2006-11-27 10:27+0100\n"
-"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
-"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Förstorare"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Enkel skärmförstoringstjänst"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Kan inte öppna display, DISPLAY inte inställd"
-
diff --git a/po/ta.po b/po/ta.po
deleted file mode 100644
index 7c7d956..0000000
--- a/po/ta.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# translation of ta.po to Tamil
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Jayaradha N <jaya@pune.redhat.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ta\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-26 11:45+0200\n"
-"PO-Revision-Date: 2004-08-26 18:43+0530\n"
-"Last-Translator: Jayaradha N <jaya@pune.redhat.com>\n"
-"Language-Team: Tamil <zhakanini@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "அளவு மாற்றி"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "சுலபமானக திரை அளவு மாற்றி சேவை"
-
diff --git a/po/th.po b/po/th.po
deleted file mode 100644
index 0634931..0000000
--- a/po/th.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Thai translations for gnome-mag package.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Paisa Seeluangsawat <paisa@users.sf.net>, 2004.
-# Theppitak Karoonboonyanan <thep@linux.thai.net>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-12-14 18:11+0700\n"
-"PO-Revision-Date: 2004-02-27 02:06-0600\n"
-"Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
-"Language-Team: Thai <L10n@opentle.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "แว่นขยาย"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "บริการแว่นขยายจอ"
-
-#: magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "ไม่สามารถเปิดดิสเพลย์ได้ เนื่องจากค่า DISPLAY ไม่ได้กำหนดไว้"
diff --git a/po/tk.po b/po/tk.po
deleted file mode 100644
index fef66a4..0000000
--- a/po/tk.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# Turkmen translation of gnome-mag
-# Copyright (C) 2004 Free Software Foundation
-# Copyright (C) 2004 Gurban Mühemmet Tewekgeli and
-# Kakilik - Turkmen free software developers community
-# This file is distributed under the terms of GNU General Public License (GPL)
-# Gurban Mühemmet Tewekgeli <gmtavakkoli@yahoo.com>, 2004.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-11 03:53+0100\n"
-"PO-Revision-Date: 2004-05-25 17:49+0330\n"
-"Last-Translator: Gurban Mühemmet Tewekgeli <gmtavakkoli@yahoo.com>\n"
-"Language-Team: Turkmen <kakilikgroup@yahoo.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Ulaldýançy"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Sadaja Perdäni Ulaldýan Servisi"
diff --git a/po/tr.po b/po/tr.po
deleted file mode 100644
index 0b33e9b..0000000
--- a/po/tr.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Turkish translation of gnome-mag
-# This file is distributed under the same license as the gnome-mag package.
-# Copyright (C) 2003 gnome-mag'S COPYRIGHT HOLDER
-# Sami Onur Zaim <onurzaim@hotmail.com>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-06-16 17:49+0300\n"
-"Last-Translator: Sami Onur Zaim <onurzaim@hotmail.com>\n"
-"Language-Team: Turkish <gnome-turk@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Büyüteç"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Basit ekran büyüteç servisi"
diff --git a/po/ug.po b/po/ug.po
deleted file mode 100644
index 6b2121b..0000000
--- a/po/ug.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# Uighur Translation of Gnome-mag
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>, 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-21 10:03+0200\n"
-"PO-Revision-Date: \n"
-"Last-Translator: Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>\n"
-"Language-Team: GNOME Uighur Translation Project <gnome-uighur@yahoogroups."
-"com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "چوڭايتقۇچ"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "ئاددى ئېكران چوڭايتىش مۇلازىمىتى"
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644
index ada499c..0000000
--- a/po/uk.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# Ukrainian translation of gnome-mag.
-# Copyright (C) 2003 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnome-mag package.
-# Yuriy Syrota <yuriy@beer.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-01 12:35+0300\n"
-"Last-Translator: Yuriy Syrota <yuriy@beer.com>\n"
-"Language-Team: Ukrainian <uk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Лупа"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Проста екранна лупа"
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100644
index f0b4fe1..0000000
--- a/po/vi.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Vietnamese translation for NAME.
-# Copyright © 2007 Gnome i18n Project for Vietnamese.
-# T.M.Thanh <tmthanh@yahoo.com>, 2002.
-# Clytie Siddall <clytie@riverland.net.au>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Gnome-Mag VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-02 05:44+0000\n"
- "PO-Revision-Date: 2007-01-05 22:36+1030\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: LocFactoryEditor 1.6fc1\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "Kính lúp"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "Dịch Vụ Kính lúp Màn Hình Đơn Giản"
-
-#: ../magnifier/magnifier-main.c:385
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "Không thể mở bộ trình bày vì chưa đặt biến môi trường DISPLAY"
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 79d67a9..0000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Funda Wang <fundawang@linux.net.cn>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag\n"
-"POT-Creation-Date: 2004-04-06 15:01+0100\n"
-"PO-Revision-Date: 2003-08-05 21:37+0800\n"
-"Last-Translator: Funda Wang <fundawang@linux.net.cn>\n"
-"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "放大镜"
-
-#: magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "简单的屏幕放大镜服务"
diff --git a/po/zh_HK.po b/po/zh_HK.po
deleted file mode 100644
index 043f11e..0000000
--- a/po/zh_HK.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Chinese (Hong Kong) translation of gnome-mag.
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-# Abel Cheung <abel@oaka.org>, 2003.
-# Abel Cheung <abel@oaka.org>, 2007.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.14.10\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-21 21:16+0800\n"
-"PO-Revision-Date: 2007-02-21 21:17+0800\n"
-"Last-Translator: Woodman Tuen <wmtuen@gmail.com>\n"
-"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "放大鏡"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "簡單的螢幕放大鏡服務"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "無法開啟顯示,顯示並未設定"
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644
index c845d28..0000000
--- a/po/zh_TW.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Chinese (Taiwan) translation of gnome-mag.
-# Copyright (C) 2003, 2007 Free Software Foundation, Inc.
-# Abel Cheung <abel@oaka.org>, 2003.
-# Abel Cheung <abel@oaka.org>, 2007.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gnome-mag 0.14.10\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-21 21:16+0800\n"
-"PO-Revision-Date: 2007-02-21 02:22+0800\n"
-"Last-Translator: Woodman Tuen <wmtuen@gmail.com>\n"
-"Language-Team: Chinese/Traditional <zh-l10n@linux.org.tw>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:1
-msgid "Magnifier"
-msgstr "放大鏡"
-
-#: ../magnifier/GNOME_Magnifier.server.in.in.h:2
-msgid "Simple Screen Magnification Service"
-msgstr "簡單的螢幕放大鏡服務"
-
-#: ../magnifier/magnifier-main.c:390
-#, c-format
-msgid "Can't open display, DISPLAY is not set"
-msgstr "無法開啟顯示,顯示並未設定"
diff --git a/test/.cvsignore b/test/.cvsignore
deleted file mode 100644
index 6fe7fe4..0000000
--- a/test/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.deps
-.libs
-Makefile.in
-Makefile
-test-magnifier
-*.o
-
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644
index 3467183..0000000
--- a/test/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-
-noinst_PROGRAMS = control-client mag-test
-
-control_client_SOURCES = control-client.c
-
-mag_test_SOURCES = mag-test.c
-
-INCLUDES = \
- $(DEPS_CFLAGS) \
- -I$(top_srcdir) \
- -I$(top_builddir) \
- -I$(top_builddir)/magnifier \
- -I$(top_srcdir)/idl
-
-LDADD = $(DEPS_LIBS) $(top_builddir)/magnifier/libgnome-mag.la $(X_LIBS) $(POPT_LIBS)
-
-
-
diff --git a/test/control-client.c b/test/control-client.c
deleted file mode 100644
index 5f69989..0000000
--- a/test/control-client.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <libbonobo.h>
-#include <gdk/gdk.h>
-#include "GNOME_Magnifier.h"
-
-static void
-init_rect_bounds (GNOME_Magnifier_RectBounds *bounds,
- long x1, long y1, long x2, long y2)
-{
- bounds->x1 = x1;
- bounds->y1 = y1;
- bounds->x2 = x2;
- bounds->y2 = y2;
-}
-
-static GNOME_Magnifier_Magnifier
-get_magnifier()
-{
- static GNOME_Magnifier_Magnifier magnifier = NULL;
- static gboolean is_error = FALSE;
- CORBA_Object oclient;
- char *obj_id;
- CORBA_Environment ev;
-
- if (!magnifier && !is_error)
- {
- CORBA_exception_init (&ev);
- obj_id = "OAFIID:GNOME_Magnifier_Magnifier:0.9";
-
- oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- fprintf (stderr,
- ("Activation error: during magnifier activation: %s\n"),
- CORBA_exception_id(&ev));
- CORBA_exception_free(&ev);
- is_error = TRUE;
- }
-
- if (CORBA_Object_is_nil (oclient, &ev))
- {
- g_error ("Could not locate magnifier");
- is_error = TRUE;
- }
-
- magnifier = (GNOME_Magnifier_Magnifier) oclient;
-
- /* bonobo_activate (); ? */
- }
-
- return magnifier;
-}
-
-static GNOME_Magnifier_ZoomRegion
-test_client_magnifier_get_zoomer (GNOME_Magnifier_Magnifier magnifier, int index)
-{
- CORBA_Environment ev;
- GNOME_Magnifier_ZoomRegionList *zoomers;
- CORBA_exception_init (&ev);
- zoomers = GNOME_Magnifier_Magnifier_getZoomRegions (magnifier, &ev);
- if (zoomers && index < zoomers->_length)
- return zoomers->_buffer [index];
- else
- return CORBA_OBJECT_NIL;
-}
-
-static void
-magnifier_clear_all_regions ()
-{
- GNOME_Magnifier_Magnifier magnifier = get_magnifier();
- CORBA_Environment ev;
- CORBA_exception_init (&ev);
-
- if (magnifier)
- GNOME_Magnifier_Magnifier_clearAllZoomRegions (magnifier,
- &ev);
-}
-
-static int
-magnifier_create_region (float zx, float zy, int x1, int y1, int x2, int y2)
-{
- GNOME_Magnifier_Magnifier magnifier = get_magnifier();
- GNOME_Magnifier_ZoomRegion zoomer;
- CORBA_Environment ev;
- CORBA_exception_init (&ev);
-
- if (magnifier)
- {
- GNOME_Magnifier_RectBounds *roi = GNOME_Magnifier_RectBounds__alloc ();
- GNOME_Magnifier_RectBounds *viewport = GNOME_Magnifier_RectBounds__alloc ();
- roi->x1 = 0;
- roi->y1 = 0;
- roi->x2 = x2 - x1;
- roi->y2 = y2 - y1;
- viewport->x1 = x1;
- viewport->y1 = y1;
- viewport->x2 = x2;
- viewport->y2 = y2;
- zoomer = GNOME_Magnifier_Magnifier_createZoomRegion (magnifier,
- (const CORBA_float) zx,
- (const CORBA_float) zy,
- roi,
- viewport,
- &ev);
- GNOME_Magnifier_Magnifier_addZoomRegion (magnifier,
- zoomer,
- &ev);
- }
- return 1;
-}
-
-int main(int argc, char ** argv){
-
- GNOME_Magnifier_Magnifier magnifier;
- GNOME_Magnifier_RectBounds *viewport = NULL;
- GNOME_Magnifier_ZoomRegion zoom_region;
- Bonobo_PropertyBag properties;
- CORBA_Environment ev;
- CORBA_any *rect_any;
- GNOME_Magnifier_RectBounds *rectangle;
- CORBA_boolean boo;
- CORBA_string target_disp = NULL;
- CORBA_string source_disp = NULL;
- int x, y, width, height;
-
- CORBA_exception_init (&ev);
-
- float R, G, B;
-
- if (!bonobo_init (&argc, argv))
- {
- g_error ("Could not initialize Bonobo");
- }
-
- if (argc >= 2){
- magnifier = get_magnifier ();
- }
- else
- return 0;
-
- gdk_init (&argc, &argv);
- properties = GNOME_Magnifier_Magnifier_getProperties (magnifier, &ev);
- width = gdk_screen_get_width (gdk_screen_get_default ());
- height = gdk_screen_get_height (gdk_screen_get_default ());
- x = width / 2;
- y = 0;
- viewport = GNOME_Magnifier_RectBounds__alloc ();
- init_rect_bounds (viewport, x, y, width, height);
- rect_any = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds,
- viewport);
- bonobo_pbclient_set_value (properties, "target-display-bounds",
- rect_any, &ev);
- bonobo_arg_release (rect_any);
- bonobo_object_release_unref (properties, NULL);
-
- zoom_region = test_client_magnifier_get_zoomer (magnifier, 0);
-
- switch (*argv[1])
- {
- case 'z':
- if (zoom_region == CORBA_OBJECT_NIL) return -1;
- printf ("setting mag factor to %f\n", (float) atof (argv[1]+1));
- GNOME_Magnifier_ZoomRegion_setMagFactor (zoom_region,
- (float) atof (argv[1]+1),
- (float) atof (argv[1]+1),
- &ev);
- break;
- case 'b':
- if (zoom_region == CORBA_OBJECT_NIL) return -1;
- printf ("resizing region 0 to 100x100 at (200, 0)\n");
- viewport = GNOME_Magnifier_RectBounds__alloc ();
- viewport->x1 = 0;
- viewport->y1 = 0;
- viewport->x2 = 680;
- viewport->y2 = 510;
- GNOME_Magnifier_ZoomRegion_moveResize (zoom_region,
- viewport,
- &ev);
- break;
- case 'd':
- printf ("destroying/clearing all regions.\n");
- magnifier_clear_all_regions ();
- break;
- case 'c':
- fprintf (stderr, "creating 2.5x by 5x region at 100,100; 300x200\n");
- magnifier_create_region (2.5, 2.5, 341, 0, 1023, 510);
- break;
- case 's':
- GNOME_Magnifier_Magnifier__set_SourceDisplay (magnifier, argv[1]+1, &ev);
- fprintf (stderr, "\n Set Source To : %s\n", argv[1]+1);
- break;
- case 'o':
- target_disp = GNOME_Magnifier_Magnifier__get_TargetDisplay (magnifier, &ev);
- fprintf (stderr, "\n Magnifier Target is : %s\n", target_disp);
- break;
- case 'p':
- source_disp = GNOME_Magnifier_Magnifier__get_SourceDisplay (magnifier, &ev);
- fprintf (stderr, "\n Magnifier Source is : %s\n", source_disp);
- break;
- case 't':
- GNOME_Magnifier_Magnifier__set_TargetDisplay (magnifier, argv[1]+1, &ev);
- fprintf (stderr, "\n Set Target to : %s\n", argv[1]+1);
- break;
- case 'm':
- properties = GNOME_Magnifier_Magnifier_getProperties (magnifier, &ev);
- bonobo_pbclient_set_float (properties, "cursor-scale-factor", 2.0, NULL);
- bonobo_pbclient_set_ulong (properties, "cursor-color", 0x255, NULL);
- bonobo_object_release_unref (properties, NULL);
- break;
- case 'a':
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- switch (bonobo_pbclient_get_long (properties, "x-alignment", NULL)) {
- case GNOME_Magnifier_ZoomRegion_ALIGN_CENTER:
- bonobo_pbclient_set_long (properties, "x-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_MIN, NULL);
- bonobo_pbclient_set_long (properties, "y-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_MIN, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_MIN:
- bonobo_pbclient_set_long (properties, "x-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_MAX, NULL);
- bonobo_pbclient_set_long (properties, "y-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_MAX, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_ALIGN_MAX:
- bonobo_pbclient_set_long (properties, "x-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_CENTER, NULL);
- bonobo_pbclient_set_long (properties, "y-alignment", GNOME_Magnifier_ZoomRegion_ALIGN_CENTER, NULL);
- break;
- }
- bonobo_object_release_unref (properties, NULL);
- break;
- case 'k':
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- bonobo_pbclient_set_long (properties, "border-size", 20, NULL);
- bonobo_pbclient_set_long (properties, "border-color", 255, NULL);
- bonobo_object_release_unref (properties, NULL);
- break;
- case 'x':
- GNOME_Magnifier_Magnifier_dispose (magnifier, &ev);
- break;
- case 'B':
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- switch (bonobo_pbclient_get_short (properties, "color-blind-filter", NULL)) {
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_SATURATE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_MONOCHRONE_OTHERS, NULL);
- break;
- case GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_MONOCHRONE_OTHERS:
- bonobo_pbclient_set_short (properties, "color-blind-filter", GNOME_Magnifier_ZoomRegion_COLORBLIND_FILTER_T_NO_FILTER, NULL);
- break;
- }
- break;
- case 'C':
- GNOME_Magnifier_ZoomRegion_setContrast (zoom_region,
- atof (argv[2]),
- atof (argv[3]),
- atof (argv[4]),
- &ev);
- GNOME_Magnifier_ZoomRegion_getContrast (zoom_region, &R, &G, &B, &ev);
- printf ("ZoomRegion R, G, B: %f, %f, %f\n", R, G, B);
- break;
- case 'D':
- GNOME_Magnifier_ZoomRegion_setBrightness (zoom_region,
- atof (argv[2]),
- atof (argv[3]),
- atof (argv[4]),
- &ev);
- GNOME_Magnifier_ZoomRegion_getBrightness (zoom_region, &R, &G, &B, &ev);
- printf ("ZoomRegion R, G, B: %f, %f, %f\n", R, G, B);
- break;
- case 'S':
- properties = GNOME_Magnifier_Magnifier_getProperties (magnifier, &ev);
- bonobo_pbclient_set_long (properties, "cursor-size", 200, NULL);
- bonobo_pbclient_set_ulong (properties, "cursor-color", 0xFFF, NULL);
- bonobo_object_release_unref (properties, NULL);
- break;
- case 'T':
- rect_any = CORBA_any__alloc ();
- rectangle = GNOME_Magnifier_RectBounds__alloc ();
- rectangle->x1 = 341;
- rectangle->x2 = 1023;
- rectangle->y1 = 0;
- rectangle->y2 = 510;
- rect_any->_type = TC_GNOME_Magnifier_RectBounds;
- rect_any->_value = ORBit_copy_value (rectangle, TC_GNOME_Magnifier_RectBounds);
- properties = GNOME_Magnifier_Magnifier_getProperties (magnifier, &ev);
- Bonobo_PropertyBag_setValue (properties, "target-display-bounds", rect_any, NULL);
- bonobo_object_release_unref (properties, NULL);
- break;
- case 'X':
- if (zoom_region == CORBA_OBJECT_NIL) return -1;
- printf ("toggle mouse polling\n");
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoom_region, &ev);
- boo = bonobo_pbclient_get_boolean (properties, "poll-mouse", NULL);
- bonobo_pbclient_set_boolean (properties, "poll-mouse", !boo, NULL);
- bonobo_object_release_unref (properties, NULL);
- GNOME_Magnifier_ZoomRegion_setPointerPos (zoom_region,
- 50, 50,
- &ev);
- break;
- }
-return 0;
-}
-
diff --git a/test/mag-test.c b/test/mag-test.c
deleted file mode 100644
index db6a166..0000000
--- a/test/mag-test.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <libbonobo.h>
-#include <gdk/gdk.h>
-#include "GNOME_Magnifier.h"
-
-static GNOME_Magnifier_Magnifier _the_magnifier = NULL;
-
-static void
-init_rect_bounds (GNOME_Magnifier_RectBounds *bounds,
- long x1, long y1, long x2, long y2)
-{
- bounds->x1 = x1;
- bounds->y1 = y1;
- bounds->x2 = x2;
- bounds->y2 = y2;
-}
-
-static GNOME_Magnifier_Magnifier
-get_magnifier()
-{
- CORBA_Object oclient;
- char *obj_id;
- CORBA_Environment ev;
-
- if (!_the_magnifier)
- {
- CORBA_exception_init (&ev);
- obj_id = "OAFIID:GNOME_Magnifier_Magnifier:0.9";
-
- oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
- if (ev._major != CORBA_NO_EXCEPTION) {
- fprintf (stderr,
- ("Activation error: during magnifier activation: %s\n"),
- CORBA_exception_id(&ev));
- CORBA_exception_free(&ev);
- }
-
- if (CORBA_Object_is_nil (oclient, &ev))
- {
- g_error ("Could not locate magnifier");
- }
-
- _the_magnifier = (GNOME_Magnifier_Magnifier) oclient;
-
- }
-
- return _the_magnifier;
-}
-
-#ifdef WE_USE_THIS_AGAIN
-static GNOME_Magnifier_ZoomRegion
-test_client_magnifier_get_zoomer (GNOME_Magnifier_Magnifier magnifier, int index)
-{
- CORBA_Environment ev;
- GNOME_Magnifier_ZoomRegionList *zoomers;
- CORBA_exception_init (&ev);
- zoomers = GNOME_Magnifier_Magnifier_getZoomRegions (magnifier, &ev);
- if (zoomers && index < zoomers->_length)
- return zoomers->_buffer [index];
- else
- return CORBA_OBJECT_NIL;
-}
-#endif
-
-static void
-init_rectbounds (GNOME_Magnifier_RectBounds *bounds, int x1, int y1, int x2, int y2)
-{
- bounds->x1 = x1;
- bounds->y1 = y1;
- bounds->x2 = x2;
- bounds->y2 = y2;
-}
-
-static void
-test_new_region (GNOME_Magnifier_Magnifier magnifier,
- float xscale,
- float yscale,
- int x1,
- int y1,
- int x2,
- int y2,
- GNOME_Magnifier_ZoomRegion_ScrollingPolicy scroll_policy,
- gchar *smoothing_type,
- gboolean is_inverse,
- GNOME_Magnifier_ZoomRegion_AlignPolicy align)
-{
- GNOME_Magnifier_RectBounds *viewport = GNOME_Magnifier_RectBounds__alloc ();
- GNOME_Magnifier_RectBounds *roi = GNOME_Magnifier_RectBounds__alloc ();
- GNOME_Magnifier_ZoomRegion zoomer;
- Bonobo_PropertyBag properties;
- CORBA_Environment ev;
-
- CORBA_exception_init (&ev);
-
- init_rectbounds (roi, 0, 0, 100, 100);
- init_rectbounds (viewport, x1, y1, x2, y2);
-
- zoomer = GNOME_Magnifier_Magnifier_createZoomRegion (magnifier,
- xscale,
- yscale,
- roi,
- viewport,
- &ev);
- GNOME_Magnifier_Magnifier_addZoomRegion (magnifier,
- zoomer,
- &ev);
-
- properties = GNOME_Magnifier_ZoomRegion_getProperties (zoomer, &ev);
-
- Bonobo_PropertyBag_setValue (properties, "smooth-scroll-policy",
- bonobo_arg_new_from (BONOBO_ARG_INT,
- &scroll_policy), &ev);
- Bonobo_PropertyBag_setValue (properties, "x-alignment",
- bonobo_arg_new_from (BONOBO_ARG_INT,
- &align), &ev);
- Bonobo_PropertyBag_setValue (properties, "y-alignment",
- bonobo_arg_new_from (BONOBO_ARG_INT,
- &align), &ev);
-
- if (smoothing_type)
- {
- BonoboArg *arg = bonobo_arg_new (BONOBO_ARG_STRING);
- BONOBO_ARG_SET_STRING (arg, smoothing_type);
- Bonobo_PropertyBag_setValue (properties, "smoothing-type",
- arg, &ev);
- }
-
- if (is_inverse)
- Bonobo_PropertyBag_setValue (properties, "inverse-video",
- bonobo_arg_new_from (BONOBO_ARG_BOOLEAN,
- &is_inverse),
- &ev);
-}
-
-int main(int argc, char ** argv){
-
- GNOME_Magnifier_Magnifier magnifier;
- GNOME_Magnifier_RectBounds *viewport = NULL;
- CORBA_Environment ev;
- CORBA_any *rect_any;
- Bonobo_PropertyBag properties;
- int x, y, width, height;
-
- CORBA_exception_init (&ev);
-
- if (!bonobo_init (&argc, argv))
- {
- g_error ("Could not initialize Bonobo");
- }
-
- magnifier = get_magnifier ();
-
- gdk_init (&argc, &argv);
- properties = GNOME_Magnifier_Magnifier_getProperties (magnifier, &ev);
- width = gdk_screen_get_width (gdk_screen_get_default ());
- height = gdk_screen_get_height (gdk_screen_get_default ());
- x = width / 2;
- y = 0;
- viewport = GNOME_Magnifier_RectBounds__alloc ();
- init_rect_bounds (viewport, x, y, width - x, height);
- rect_any = bonobo_arg_new_from (TC_GNOME_Magnifier_RectBounds,
- viewport);
- bonobo_pbclient_set_value (properties, "target-display-bounds",
- rect_any, &ev);
- bonobo_arg_release (rect_any);
- bonobo_object_release_unref (properties, NULL);
-
- GNOME_Magnifier_Magnifier_clearAllZoomRegions (magnifier, &ev);
-
- test_new_region (magnifier, 2.0, 2.0, 0, 0, 400, 200,
- GNOME_Magnifier_ZoomRegion_SCROLL_SMOOTHEST,
- NULL, FALSE, GNOME_Magnifier_ZoomRegion_ALIGN_CENTER);
- test_new_region (magnifier, 2.0, 2.0, 0, 200, 400, 400,
- GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST,
- NULL, FALSE, GNOME_Magnifier_ZoomRegion_ALIGN_CENTER);
- test_new_region (magnifier, 0.75, 1.5, 0, 400, 200, 600,
- GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST,
- "bilinear", TRUE, GNOME_Magnifier_ZoomRegion_ALIGN_CENTER);
- test_new_region (magnifier, 3.0, 3.0, 200, 400, 400, 600,
- GNOME_Magnifier_ZoomRegion_SCROLL_FASTEST,
- "bilinear", FALSE, GNOME_Magnifier_ZoomRegion_ALIGN_MIN);
- return 0;
-}
-