diff options
author | Carlos Eduardo Rodrigues Diógenes <carlosd@src.gnome.org> | 2007-03-04 19:39:08 +0000 |
---|---|---|
committer | Carlos Eduardo Rodrigues Diógenes <carlosd@src.gnome.org> | 2007-03-04 19:39:08 +0000 |
commit | a951d22654ce4e84356cf32a0a74775e9dbf2232 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | |
parent | 8f2167967a0c038693f62d3738ceee87edd0799d (diff) |
corrected the branch namegnome_2_18
svn path=/branches/gnome_2_18; revision=473
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 - @@ -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. @@ -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, - µseconds); - 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, - µseconds); - - 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, - µseconds); - 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, µseconds); - - 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; -} - |