finally moved this to the default branch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgignore Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,35 @@
+pidgin-guifications-*.tar.* +(pre|gf)_config.h(\.in)?$ +config.(guess|log|status|sub) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AUTHORS Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,41 @@
+Gary Kramlich <grim@reaperworld.com> +Daniel Atallah <daniel_atallah@yahoo.com> +Stu Tomlinson <stu@nosnilmot.com> +Kevin Stange <kstange@users.sf.net> +John Bailey <rekkanoryo@users.sf.net> +Stu Tomlinson (src rpm, rh8, rh9, fc1, fc2, fc3, mdk9.2) +Lennert Van Alboom (mdk10, mdk10.1) +Tollef Fog Heen (debian, ubuntu) +Douglas Furlong (fc3 PPC, fc4 i386) +Chris O'Reilly (arch linux) +Nathan Walp for helping with cleaning up the out of tree compile +Andy Korvemaker for the debian packages +Lennert Van Alboom for the mdk10 package +Aaron Bock for the receive message notification +Miah Gregory for leak checking +Nathaniel Waters for the animation formula +Tollef Fog Heen for access to a 64bit machine +Douglas Furlong for the FC3 PowerPC rpm's --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/COPYING Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + The precise terms and conditions for copying, distribution and + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +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 +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + END OF TERMS AND CONDITIONS + How to Apply These Terms to Your New Programs + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA +Also add information on how to contact you by electronic and paper mail. +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ChangeLog Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,300 @@
+ * Made the nick-said notification not fire if your nick is in another word. + For example, if my nick is grim, it will not fire when someone says + * Added a new notification "new-emails" for handling multiple new emails. + * Added Hykle Bons's theme + * Really fixed the G_GNUC_NULL_TERMINATED errors on non-Windows platforms. + * Use large PRPL icons for scalling (alxorlov) + * Make sure notification popups' context menus are drawn on-screen. + * Changed mini and Penguins themes to display screen name instead of + conversation name when displaying typing notifications--fixes the + * Fixed build on Windows and other systems where G_GNUC_NULL_TERMINATED + in libpurple headers causes compilation issues. + * Fixed "make installer" target so it works in cross-compile environments. + * Fixed a brokenness in configure.ac that caused configure to fail + * Cleaned up the remaining non history references to gaim +Version 2.13beta7 4/30/07: + * Changed a ton of Gaim and gaim to Pidgin and pidgin, respectively +Version 2.13beta6 1/19/07: + * Repackaged for Gaim 2.0.0beta6 +Version 2.13beta5 11/10/06: + * Removed our addition of the XML PI since Gaim's + xml_node_to_formatted_string does it for us now. This fixes sf bug +Version 2.13beta4 10/18/06: + * Updated to work with Gaim 2.0Beta4 + * Moved from gettext to intltool + * possibly other minor changes +Version 2.13beta3.1 8/22/06: + * Implemented email notifications. + * Notifications for accounts that are still "connecting" are not shown. + * Removed compatibility with Gaim 1.x.y. +Version 2.13beta3 3/29/06: + * Implemented file transfer notifications + * Fixed the "doesn't unqueue conversations correctly" bug. +Version 2.13beta2 1/24/06: + * Updated to work with Gaim 2.0.0beta2 +Version 2.13beta1 12/17/05: + * Updated to work with gaim 2.0.0Beta1 + * Fixed 'Show While Away' bug + * Hit the 10,000 lines of code mark + * New notifications correctly get the use gtk theme, width, and height + settings from a master theme if it exists. + * New notifications will be created to use the gtk theme by default. + * Notifications can now have aliases in the theme editor. + * Fixed context menu from crashing Gaim when the buddy is not on your list. + * Fixed a bug in the context menu for chat join/parts where IM focused the + chat rather than the user. + * Fixed a bug where the notification height was actually being saved as the + notification's width if it was using the gtk theme. + * The currently selected theme for a buddy list node is now properly shown. + * At long last, animation. + * Clicking on chat notifications works again. + * Added notification priorities, see the FAQ for more information. + * Fixed notifications not showing on 64bit machines. (Tollef Fog Heen) + * Added back the "Show while away" preference. + * Theme items that were partially off the notification are now rendered. + * Default font and background can now be set via a gtkrc. + * Multiple monitor support fully works on both xinerama and win32, including + setting which monitor to display the notification. + * All items in the text editor will now be shown in the NLS if it is + translated, thanks to Nathan Fredrickson for helping me pin this down. + * Fixed the notification titles disappearing in the theme editor (maxcow) + * Fixed text not showing if no font was set for the notification and the gtk + theme also didn't have a font. + * Added "Master Notifications" to the theme editor. + * Added a "Get More" button to the theme list, which displays the theme + tracker in a web browser. + * Themes now follow the gtk theme's settings if theres no font, font color, + or notification background set. + * Fixed buddy icons showing in typing events. + * Fixed open conversation action not working for new conversations. + * Fixed open conversation crashing gaim, if the conversation was closed + before the notification went away. + * Fixed notifications only showing for buddies. + * Fixed notifications appearing partially on screen if the windows taskbar + was on the top or left and set to stay on top of other windows. + * Removed monitor/screen preferences for win32. Notifications will show on + the monitor with the taskbar. + * Added the ability to select a theme or no theme for buddies contacts and + groups. Check the faq for more info. + * Fixed notifications covering taskbars on win32 + * Fixed monitor pref not working. + * Fixed a leak in notification finding + * Fixed memory leaks in theme loading (Miah Gregory) + * Fixed the context menu, so it works on all notifications. + * Made editing a theme name for a theme that was loaded, then saved, unload + * Duplicating text items now actually works without crashing gaim. + * Moved "Max Visible Guifications" to the advanced page + * Moved the remaining appearance preferences to the new general page + * Moved the mouse page to the genernal page + * Removed "Sign On Delay" preference, defaulted to ten seconds + * Removed "Zoom" preference + * Removed 'Hide chat join/leave messages' defaulted to no + * Removed 'Hide notifications for focused conversations', defaulted to yes + * Removed 'Show contacts as one guification', defaulted to yes + * Removed 'Show Guifications while away', defaulted to yes + * Removed 'Show alias if set', defaulted to yes + * Removed "Show during screen saver" pref, and defaulted to no. + * 64bit compiler warnings and crashes fixed (Nathan Walp) + * Added the ability to move items and notifications up and down in the theme + * Added a role to the guifications windows. Some may find this useful. + * Added back the pangoft2 dependency. Yes this means text is readable + * Added a copy theme button to the theme tab + * Fixed a crash bug if you sorted themes by summary and a theme didn't + * Removed pangoft2 dependency + * Removed horizontal and vertical offset prefs for the stack. We now use + the _NET_WORKAREA atom to position accordingly + * Theme info pane now shows what notifications and how many of that type + * Added a 'Nick Spoken' event + * Bug where we see our own chat messages fixed + * Implemented show contacts as one guifications + * Added throttling for events + * Added preference to not show when the screen saver is active + * Made the columns of the notification and theme lists sortable + * Fixed buddy icons not working + * Added a duplicate button to the theme editor's toolbar to duplicate a + notification or an item + * Fixed image corruption when it's copied to the theme dir + * Icon items of buddy icons or status icons fallback to the protocol icon + if the person does not have a buddy icon or is not a buddy. + * Updated to work with gaim 1.0.0 + * Fixed the off by one bug for 'Max Visible Guifications' pref + * The return of mouse preferences + * Gtk 2.0 support (again) + * Drag-and-drop theme installation + * Icon types and sizes no longer need to be explictly set + * Added a pref to hide conversation notifications if the conversation has + * Added topic-changed notification + * %r format token fixed + * Moved to SourceForge's CVS server + * Themes now save in a human readable xml format + * Added the ability to create a notification anywhere in the theme editor + * Added the ability to create an item while editing an item in the theme + * Fixed the select a theme, click delete, select another theme, click yes + in the delete confirmation, deletes wrong theme bug + * Fixed the select an item, click delete, select another item, click yes + in the delete confirmation, deletes wrong item bug + * %c will look for the alias of the chat or user if the preference to + * Fixed bug in Top-Left Horizontal positioning + * Added option to choose which display in a multihead system to display + the notifications on (requires gtk 2.2.0 and up) + * Fixed positioning so they won't be placed in dead areas created by + xinerama (requires gtk 2.2.0 and up) + * Pango 1.2.3-1.2.5 unreadable font bug fixed. Many thanks to all that + helped us track this down, as well as Stu, who tweaked it + * Added theme support and editor + * Added natural language support + * Added a bunch of new notifications (more to come) + * Added a preference for the maximum of guifications to show at once + * Mouse preferences removed, they will be added back in the next version. + For the time being, left is open conversation, middle is destory, and + * Updated to work with gaim 0.81 + * Changed the changed signal for spin buttons to value-changed so if someones + Gtk theme is hiding the up down buttons, the pref will still get saved. + * Updated to work with gaim 0.80 + * Updated to work with gaim 0.79 + * Updated to work with gaim 0.78 + * Finally added offsets for the notifications + * Redefined compiler warnings removed (Stu Tomlinson) + * Updated to work with gaim 0.77 + * Added a notification for a message being received (Aaron Bock) + * Only the last action performed by a user will be shown. The last is the + most revelant, for example, "so and so is back", "so and so signed off" + will now only display that "so and so signed off" + * Memory leaks have been sealed + * Added a signal emit so that we can display other plugins contributions to + * Fixed some memory leaks in the ellipsis code + * Fixed some spelling mistakes + * Changed the way that I grab the protocol icon. This should make + guifications no longer depend on the prpl_info struct not changing. That + means no more releases just to fix that ;) + * Guifications will no longer work with Gaim prior to 0.75, if you do + not want to update Gaim, 1.4 will work just fine. There are no + plans to add backwards compatibility + * The library name has changed from guificat.so to guifications.so, so be sure + to clear the old file out. They will both work at the same time, but I do + * Guifications no longer needs to be in the Gaim source tree to compile. + It will still compile with in the gaim source tree, but it is no longer + mandatory, nor does it require you to edit any of Gaim's files + * Updated guifications to work without prpl id's, I know this doesn't mean + much to most of you, but it's a change ;) + * Fixed a bug where if a connection was canceled and then later established, + no guifications would be shown for that account + * Ray added a toggle to hide guifications while away, note: this will only + hide guifications for accounts that are away. If you have multiple accounts + connected, and only one account away, you will still see guifications from + * Fixed some errors and left out information in the INSTALL file + * Fixed a bug where local and server alias would not be displayed correct if + they contained html special chars + * Updated the default background: made the gaim guy smaller so the + default text doesn't overlap him + * Updated most if not all of the docs + * Added user defined mouse buttons for clicking on a guification. These + include: Close Window, Get Info, Open Conversation, View Log, and the main + context menu from the buddy list. + * Potential bug where an image gets set with a notification up removed. + This really wasn't a bug, but it just looked bad. + * Made clicking a guification to open a window switch to that tab if tab + windows are enabled and a conversation is already open. + * Added release notification. Theres a toggle for it on the advanced tab. + * Fixed "growing" option menus (dropdown lists) + * Added the ability to "zoom" the guifications + * Notifications will now open up an IM window when they are clicked. This + is probably buggy, so play with it and let me know. + * Fixed the bug where the notifications were only showing if all events + * Added message box if an invalid image file is selected + * Fixed a compiler warning + * Took animation out completely, I got it working but it looked like crap so + I just removed it all together. + * Windows makefiles added and it should compile under windows now + * Windows binary added to sf releases + * Debugging output added to all functions + * Fixed an issue with the file selection dialog showing the current font + * Other random fixes and clean ups in the configuration window + * Everything in the configuration window is working except for animations. + Since I haven't come up with a decent and effective way to do it yet, it --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ChangeLog.l18n Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,123 @@
+ * French translation updated (Adri2000) + * Russian translation updated (Dmitry Beloglazov) + * Simplified Chinese translation updated (Zhengang Li) + * Bangla translation added (Mahay Alam Khan) + * Galician translation added (Ignacio Casal Quinteiro) + * Hungarian translation added (John Rapchuck, Nyitrai Istvan) + * Italian translation updated (Giacomo Succi) + * Japanese translation updated (Yoshinari Takaoka) + * Macedonian translation added (Arangel Angov) + * Russian translation updated (Dmitry Beloglazov) + * Serbian translation added (Filip Miletic) + * Serbian (Latin) translation added (Filip Miletic) + * Swedish translation updated (Sergej Kotliar) + * Ukrainian translation added (Mykola Lynnyk) + * Dutch translation updated (Lennert Van Alboom) + * Chinese (traditional) added (Ambrose Li) + * Czech translation added (Netizen Trancelis) + * English (British) translation updated (Stu Tomlinson) + * German translation updated (David Kilian) + * Italian translation updated (Giacomo Succi) + * Portuguese (Brazilian) translation updated (Gustavo Vasconcelos) + * Russian translation added (Dmitry Beloglazov) + * Slovak translation updated (Jozef Riha) + * Swedish translation updated (Sergej Kotliar) + * Dutch translation updated (Lennert Van Alboom) + * English (British) translation updated (Stu Tomlinson) + * French translation updated (Julien Enche) + * German translation updated (David Kiliani) + * Italian translation updated (Giacomo Succi) + * Japanese translation updated (Yoshinari Takaoka) + * Portuguese translation updated (Duarte Henriques) + * German translation updated (David Kiliani) + * Portuguese (Brazilian) translation added (Gustavo Vasconcelos) + * Slovak translation added (Jozef Riha) + * Swedish translation updated (Peter Hjalmarsson) + * English (Australian) translation updated (Peter Lawler) + * Simplified Chinese translation updated (Zhen'gang LI) + * Dutch translation updated (Lennert Van Alboom) + * English (British) translation updated (Stu Tomlinson) + * French translation updated (Julien Enche) + * Italian translation updated (Giacomo Succi) + * Portuguese translation updated (Duarte Henriques) + * Simplified Chinese translation added (Zhen'gang LI) + * Spanish translation updated (David Rubio) + * Swedish translation updated (Peter Hjalmarsson) + * Dutch translation updated (Lennert Van Alboom) + * English (Australian) translation updated (Peter Lawler) + * English (British) translation updated (Stu Tomlinson) + * French translation updated (Lennert Van Alboom) + * German translation updated (David Kiliani) + * Italian translation updated (Giacomo Succi) + * Japanese translation added (Yoshinari Takaoka) + * Spanish translation updated (David Rubio) + * Swedish translation updated (Peter Hjalmarsson) + * Dutch translation updated (Lennert Van Alboom) + * English (Australian) translation updated (Peter Lawler) + * English (British) translation updated (Stu Tomlinson) + * French translation updated (Lennert Van Alboom) + * Portuguese translation updated (Duarte Henriques) + * Spanish translation updated (David Rubio) + * Swedish translation updated (Peter Hjalmarsson) + * German translation update (David Kiliani) + * Italian translation updated (Giacomo Succi) + * English (British) translation updated (Stu Tomlinson) + * Spanish translation updated (David Rubio) + * Swedish (Sweden) translation moved to Swedish and updated + * Dutch translation updated (Lennert Van Alboom) + * French translation updated (Lennert Van Alboom) + * English (Australian) translation updated (Peter Lawler) + * Swedish (Sweden) translation added (Kalle Kotte) + * English (Australian) translation updated (Peter Lawler) + * English (British) translation updated (Stu Tomlinson) + * Italian translation updated (Giacomo Succi) + * Portuguese translation added (Duarte Henriques) + * Spanish translation updated (David Rubio) + * Italian translation added (Giacomo Succi) + * Chinese (traditional) translation updated (Ambrose Li) + * Dutch translation updated (Lennert Van Alboom) + * English (Australian) translation updated (Peter Lawler) + * English (British) translation updated (Stu Tomlinson) + * French translation updated (Lennert Van Alboom) + * German translation updated (David Kiliani) + * Chinese (traditional) added (Ambrose Li) + * Dutch translation added (Lennert Van Alboom) + * English (Australian) translation added (dup of below, really) + * English (British) translation added (Stu Tomlinson) + * French translation added (Lennert Van Alboom) + * German translation added (Stefan Georg) + * Hebrew translation added (Ficoos Bangaly) + * Norwegian translation added (Lars-Erik A. Labori) + * Spanish translation added (Davide Rubio) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/INSTALL Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,32 @@
+Untar the source tarball: + tar zxvf guifications-VERSION.tar.gz +Next run the configure script. If you have installed Pidgin and it's headers +in the standard location, then configure should find the Pidgin source. If not, +you need to set the environment variable PKG_CONFIG_PATH to point to the +directory containing pidgin.pc before running configure. You should configure +with the same prefix was used for Pidgin (for packages this would be /usr), eg: + PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --prefix=/usr +As long as you haven't gotten any error messages during the configure script, +you'll be read to compile. To compile just type 'make': +Guifications will install to the Pidgin lib directory and all of the +configuration images into the Pidgin datadir. These directories are usually +/usr/local/lib/pidgin and /usr/local/share/pixmaps/pidgin, so be sure you have +write access to these directories, or use 'su' to become root and then run +Once thats done, you are good to go. Restart Pidgin, go into the plugins +dialog. Enable Guifications, right out of the box it will work with all the +default settings. There is always a large configuration for you to play with --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/INSTALL.WIN32 Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,57 @@
+To install Guifications, simply extract the contents of this zip file +to your pidgin install directory, which is C:\Program Files\Pidgin by +You need a complete Pidgin build environment set up, and Pidgin already +If you're using a version of MinGW 3.1-1 or lower you'll need to update +some of the api, and extract/copy it into your MinGW directory. You can +get the updated api from: +http://prdownloads.sf.net/mingw/w32api-3.1.tar.gz?download +You also need fontconfig and freetype2 development bits, which you can get +http://www.gimp.org/~tml/gimp/win32/fontconfig-dev-2.2.2-20040412.zip and +http://prdownloads.sourceforge.net/gnuwin32/freetype-2.1.2-1-lib.zip?download +extract those in ~/win32-dev/gtk_2_0 (where ~/win32-dev is part of your Pidgin +Then extract the Guifications source into: + pidgin-source-tree/plugins/ +pidgin-source being what ever path you extracted the pidgin source tree to. +For example, if your pidgin source tree is in /home/user/pidgin-VERSION +you want to "cd" over to /home/user/pidgin-VERSION/plugins/ and type: + tar zxvf guifications-VERSION.tar.gz +Then cd into the source dir + make -f Makefile.mingw install +When it's done building copy + win32-install-dir/plugins/guifications.dll + win32-install-dir/pixmaps/guifications +to your pidgin install dir, (Keeping the already defined tree structure of +And you should be good to go. Restart pidgin and try it out. --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.am Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,46 @@
+ pidgin-guifications.spec \ + guifications-installer.nsi \ +SUBDIRS = doc nsis pixmaps $(PO_DIR) src themes +BUILT_SOURCES = gf_config.h +$(OBJECTS): $(BUILT_SOURCES) + echo $(DIST_ARCHIVES) | xargs -n 1 gpg -a -b +gf_config.h: pre_config.h + cp -f po/Makefile po/.tmp-Makefile + sed -e "s#localedir = .*#localedir = $(PIDGIN_DATADIR)/locale#g" < po/.tmp-Makefile > po/Makefile + $(sedpath) 's/\#define PACKAGE/\#define GF_PACKAGE/g' pre_config.h > $@ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.mingw Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,50 @@
+# Description: Makefile for win32 (mingw) guifications 2 +-include $(GF_TOP)/local.mak +PIDGIN_TREE_TOP ?= ../../.. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak +GF_VERSION := $(shell cat ./VERSION) +PIDGIN_VERSION := $(shell cat $(PIDGIN_TREE_TOP)/VERSION) +.PHONY: all install installer clean + $(MAKE) -C $(GF_SRC) -f Makefile.mingw + $(MAKE) -C $(GF_PO) -f Makefile.mingw +gf_config.h: gf_config.h.mingw + cp gf_config.h.mingw gf_config.h + $(MAKE) -C $(GF_PIXMAPS) -f Makefile.mingw install + $(MAKE) -C $(GF_THEMES) -f Makefile.mingw install + $(MAKE) -C $(GF_SRC) -f Makefile.mingw install + $(MAKE) -C $(GF_PO) -f Makefile.mingw install + $(MAKENSIS) -DGUIFICATIONS_VERSION="$(GF_VERSION)" -DPIDGIN_VERSION="$(PIDGIN_VERSION)" -DPIDGIN_TREE_TOP="$(PIDGIN_TREE_TOP)" guifications-installer.nsi + $(MAKE) -C $(GF_SRC) -f Makefile.mingw clean + rm -f gf_config.h guifications-*.exe --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,1 @@
+For all news and changes please see the ChangeLog --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,15 @@
+ The end all, be all, toaster popup plugin! +Guifications, are notifications windows styled after those found in msn, +deadaim, and newer version of aim, yahoo instant messenger, and a lot of +other applications. I've fashioned them after being as user customizable +as possible. It is entirely gtk based and there for should compile on +anything that Pidgin will compile on. +For install instructions for windows see INSTALL.WIN32 +For all other operating systems see the INSTALL file --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TODO Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,30 @@
+############################################################################### +# For some version some time: +############################################################################### + This is really nasty, and really needs to be rewritten and cleaned up. + Figure out what I want to do about it showing up in the new + notification window when a master already exists. + I'd like to do this inside the theme editor, but also show it + in the themes page. The problem is we need data, that I'd like + the user to be able to modify. For instance, we need a buddy + and or a conversation, as well as what they said, if they have a + buddy icon, etc. I'm very open to ideas on this.. + I'm open to suggestions. xml:lang sounds good.. but then we're doing + excessive checks for languages that probably aren't there. So I'm open + Just waiting for those of you out there, to make this happen. + Sean Egan said he would merge this plugin into Pidgin proper a long time + ago, but this hasn't happened yet. None of us really want to spend the + time to make this happen, so we're waiting for volunteers. --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/VERSION Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,1 @@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/VERSION.in Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,1 @@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/autogen.sh Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,135 @@
+# Guifications - The end-all, be-all notification framework +# Copyright (C) 2003-2007 Gary Kramlich <grim@reaperworld.com> +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +############################################################################### +############################################################################### +# This script uses a config file that can be used to stash common arguments +# passed to configure or environment variables that need to be set before +# configure is called. The configuration file is a simple shell script that +# By default, the config file that is used is named 'autogen.args'. This can +# Available options that are handled are as follow: +# ACLOCAL_FLAGS - command line arguments to pass to aclocal +# AUTOCONF_FLAGS - command line arguments to pass to autoconf +# AUTOHEADER_FLAGS - command line arguments to pass to autoheader +# AUTOMAKE_FLAGS - command line arguments to pass to automake flags +# CONFIGURE_FLAGS - command line arguments to pass to configure +# INTLTOOLIZE_FLAGS - command line arguments to pass to intltoolize +# LIBTOOLIZE_FLAGS - command line arguments to pass to libtoolize +# If you're using a different c compiler, you can override the environment +# variable in 'autogen.args'. For example, say you're using distcc, just add +# the following to 'autogen.args': +# This will work for any influential environment variable to configure. +############################################################################### +ARGS_FILE="autogen.args" +############################################################################### +############################################################################### + echo -n "checking for ${CMD}... " + if [ x"${BIN}" = x"" ] ; then + echo "${CMD} is required to build ${PACKAGE}!" +run_or_die () { # beotch + echo -n "running ${CMD} ${@}... " + OUTPUT=`${CMD} ${@} 2>&1` + if [ x"${OUTPUT}" != x"" ] ; then +############################################################################### +# We really start here, yes, very sneaky! +############################################################################### +if [ x"${FIGLET}" != x"" ] ; then + ${FIGLET} -f small ${PACKAGE} + echo "build system is being generated" + echo "autogenerating build system for '${PACKAGE}'" +############################################################################### +# Look for our args file +############################################################################### +echo -n "checking for ${ARGS_FILE}: " +if [ -f ${ARGS_FILE} ] ; then + echo -n "sourcing ${ARGS_FILE}: " +############################################################################### +# Check for our required helpers +############################################################################### +check "libtoolize"; LIBTOOLIZE=${BIN}; +check "intltoolize"; INTLTOOLIZE=${BIN}; +check "aclocal"; ACLOCAL=${BIN}; +check "autoheader"; AUTOHEADER=${BIN}; +check "automake"; AUTOMAKE=${BIN}; +check "autoconf"; AUTOCONF=${BIN}; +############################################################################### +# Run all of our helpers +############################################################################### +run_or_die ${LIBTOOLIZE} -c -f --automake ${LIBTOOLIZE_FLAGS} +run_or_die ${INTLTOOLIZE} -c -f --automake ${INTLTOOLIZE_FLAGS} +run_or_die ${ACLOCAL} ${ACLOCAL_FLAGS} +run_or_die ${AUTOHEADER} ${AUTOHEADER_FLAGS} +run_or_die ${AUTOMAKE} -a -c -f --gnu ${AUTOMAKE_FLAGS} +run_or_die ${AUTOCONF} -f ${AUTOCONF_FLAGS} +############################################################################### +############################################################################### +echo "running ./configure ${CONFIGURE_FLAGS} $@" +./configure ${CONFIGURE_FLAGS} $@ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/configure.ac Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,177 @@
+# Most of this configure script was ripped from pidgin or the +# pidgin-encryption configure script, thanks guys ;) +AC_INIT([pidgin-guifications], [2.17dev], [guifications-devel@lists.guifications.org]) +AM_CONFIG_HEADER(pre_config.h) +AM_INIT_AUTOMAKE([foreign dist-bzip2]) +AC_PATH_PROG(sedpath, sed) +dnl This disables check of libtool for these compilers +dnl # Make sure we have pkg-config +LIBTOOL="$LIBTOOL --silent" +# I'm lazy and figured config.h is the best place for this ;) +AC_DEFINE_UNQUOTED(GF_WEBSITE, "http://pidgin.guifications.org", [Guifications Website]) +AH_TOP([ /* our header */ +#endif /* _GF_CONFIG_H */ +GETTEXT_PACKAGE=guifications +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used.]) +ALL_LINGUAS="bn cs de en_AU en_GB es fr gl he hu it ja mk nl no pt pt_BR ru sk sr sr@Latn sv uk zh_CN zh_TW" +# Look for the C compiler +AC_ARG_ENABLE(debug, [ --enable-debug compile with debugging support],,enable_debug=no) +AC_ARG_ENABLE(deprecated, [ --disable-deprecated compile without deprecated API usage],,enable_deprecated=yes) +if test "x$enable_debug" = "xyes" ; then + AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.]) +if test "x$enable_deprecated" = no; then + DEBUG_CFLAGS = "$DEBUG_CFLAGS -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED" +if test "x$GCC" = "xyes"; then + CFLAGS="$CFLAGS -Wall -g3" +PKG_CHECK_MODULES(PIDGIN, pidgin purple) +if test x"$prefix" = x"NONE" ; then + PIDGIN_LIBDIR=`pkg-config --variable=libdir pidgin` + PIDGIN_DATADIR=`pkg-config --variable=datadir pidgin` + PIDGIN_LIBDIR="$libdir" + PIDGIN_DATADIR="$datadir" +AC_SUBST(PIDGIN_DATADIR) +# check for gtk and other dependencies +PKG_CHECK_MODULES(GLIB, [glib-2.0]) +PKG_CHECK_MODULES(GTK, [gtk+-2.0]) +PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= 1.1.0, + AC_DEFINE(HAVE_PANGOFT2, 1, [Define if we've found pangoft2.]) +AC_SUBST(PANGOFT2_CFLAGS) +# Check if plugins are enabled +AM_CONDITIONAL(PLUGINS, test "$want_plugins" = "yes") +dnl ####################################################################### +dnl # Disable installation of translation files +dnl ####################################################################### +AC_ARG_ENABLE(nls, AC_HELP_STRING([--enable-nls], [enable installation of translation files]), enable_i18n="$enableval", enable_i18n=yes) +AM_CONDITIONAL(INSTALL_I18N, test "x$enable_i18n" = "xyes") +AC_CONFIG_COMMANDS_PRE([ + if test -e VERSION; then + cp -p VERSION VERSION.ac-save +AC_CONFIG_COMMANDS_POST([ + cmp VERSION VERSION.ac-save || touch -r VERSION.ac-save VERSION + pidgin-guifications.spec + nsis/translations/Makefile +echo Configuration complete +echo Debugging enabled..............: $enable_debug +echo Deprecated API enabled.........: $enable_deprecated +echo Type make to compile +echo Thank you for using Guifications --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/Makefile.am Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,6 @@
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/QUOTES Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,175 @@
+(23:47:21) Gary Kramlich: now +(23:47:24) Gary Kramlich: s/w// +(23:47:49) Gary Kramlich: you know you're geek when your regex correction is +longer than the correct word +[00:19] rekkanoryo i'm not above theft when it's NOT illegal :) +09:41> CIA-7: grim * guifications2/ (configure.ac src/gf_item_text.c +themes/funky/theme.xml): This is very crappy looking, but working, of +drawing text from a pango layout to a pixbuf. I _AM_ working on +cleaning it up.. but I want to get this is already... +09:42> nosnilmot: s/ of/ way of/ +09:42> grim: eh.. it works without 'way' :P +09:42> nosnilmot: you fix the code, I'll fix the bugs in your commit +09:43> grim: good deal :) +05:37> grim: http://linmagazine.co.il/node/view/2794 +05:38> grim: that still cracks me up.. +05:38> grim: wish i new what it said though :/ +05:39> nosnilmot: It says "look how crap this is, it sits over the top +of the toolbar, and because it wasn't i18n we couldn't find the pref to +21:46> datallah: bah... it is pango's fault +21:46> nosnilmot: EVERYTHING is pango's fault +21:47> datallah: at some level +(14:50:14) me too entered the room. +(14:50:23) me: ok i think i may have this.. +(14:50:24) me too left the room. +(14:50:29) me: then again.. +09:34> Alver: nosnilmot: it's only got 4 wires +09:34> Alver: 10Mbit baby +09:34> Alver: But seems like I did it ;) +09:35> Alver: working alright +09:35> nosnilmot: it's not CAT-5 then, but yes, for networking only the +blue & green pairs are used +09:37> Alver: it's got orange/white and blue/white pairs +09:39> nosnilmot: fortunately most electrons are not fasion conscious so +don't care too much about the actual colours of the wires they're +05:06> stu|laptop: running windows is definitely a case of having +something "badly misconfigured" +05:06> stu|laptop: you've got the wrong OS installed +[01:16] grim you know whats funny? +[01:16] grim when i started uber hacking on thursday, it was at like +revision 88 or something.. +[01:18] bleeter always thought you were a crap coder :-P +[01:18] CIA-9 grim * r201 /trunk/gflib/gflib/gf_color.h: this was +[01:18] grim remind me not to credit you for anything... :P +(23:15:08) friend: how be you? +(23:16:18) John: hacking away at this plugin i'm trying to write +(23:16:54) friend: sounds so violent +[23:43] <rekkanoryo> grim suggested then that it was timestamps and he was right +[23:43] <grim> of course i'm right! +[23:43] <grim> i'm always fucking right +[23:43] <Bleeter> except when yer fucking wrong :P +<grim> 1m42s minesweeper ;) +<rekkanoryo> how in the hell do you go thru that many mines that fast? +<grim> i'm a guitar player too.. +<grim> the chicks dig me when they see what i'm capable of ;) +* rekkanoryo won't touch the first comment with a 10 foot pole +<rekkanoryo> or the third +12:34 * Bleeter ssshhh's +12:36 < datallah> you boys are fucked up :) +12:42 < Bleeter> it passes the time +15:14 < rekkanoryo> shell commands generally work better in bash than in gaim without /exec... +[00:14] rekkanoryo bleet|lap: if my committing forces you to quit being lazy, then my purpose in life is fulfilled :P +[00:14] bleet|lap hopefully not so complete you end it, 'coz then where'd I be +15:45 * bleet|lap nominates EvilDennisR as the Gayer of the Village +15:45 < grim> "Channel gayer: EvilDennisR" +16:10 < EvilDennisR> y'all just jealous that I give way better head than you ever will +16:11 < EvilDennisR> get your tongue pierced, then maybe you'll have a fighting chance +09:44 < grim> this is not blender +08:44 < Bleetaarrrrrr> methinks someone lost their sense of humour in the sargasso sea +08:44 <@rekka|laptop> maybe, maybe not +08:44 < Bleetaarrrrrr> or maybe it be lookin' at the mermaids that did it to him +08:47 < grim> we were only supposed to look at the mermaids.. +08:47 < grim> fuck what happened to my legs.. +08:47 < grim> wtf is this fin shit?! +08:48 < Alvyarrrrr> Yarrr, me be thinkin grim would make a daymn fine fish soup now +08:48 * grim swims away as fast as possible, and decides to make the best of being a merman and bone some mermaids.. +08:49 < Alvyarrrrr> grim: yarrrrrr, ye cowardly scumbag :P stand and fight ye soupbowl destiny like a man! +08:50 < grim> i have a fucking fin.. i'm a god damn fish!! and i'm not hungry, so i'm goning to bone! +11:14 < grim> hey look at me, i'm java, instead of doing constructor chaining on the declaration line i make you have to use super() but it has to be the first line.. +11:14 < grim> what a bunch of horseshit +11:18 < grim> also C isn't like "hey crotchstain, I'm only going to let you do that this way" +16:08 random_user_in_private_message: geez I'm fed up with buying clothes on ebay that dont fit X-( +18:05 < r0bby> grim write a book +18:05 < r0bby> make it dirty too +18:06 < r0bby> and give me a shout out +18:07 < Alver> "Pimpin bitchez & coding stuff - the Gary Kramlich story" +18:07 < Alver> "with an introduction by Evil 'ho' DennisR" +19:10 < BWS> you guys remind me of my roomates last year.. +19:10 < BWS> but I don't have to smell you :) +22:49 < rekkanoryo> sadrul: we just have a couple plugins that don't do anything yet +22:50 < sadrul> yeah, but that's because you are too lazy :-p +22:50 < rekkanoryo> actually, no, it's because i don't care that much ;) +22:50 < sadrul> which is clearly a mistake +23:27 < rekkanoryo> i prefer to think of it as a perk of being a developer. to an extent i have the right to selectively care or not care ;) +23:40 < sadrul> i don't want to go back to sleeping 12 hours a day +23:40 < grim> sadrul: ..|., +23:41 < sadrul> grim: is that a text-replacement? :-p +23:41 < rekkanoryo> sadrul: no, he's just typed it so frequently he fires it of in about 0.5 seconds flat +20:28 < grim> anyways, bbiaf +20:29 < i686> be back in a fart..? +20:46 < grim> it was a 18min fart :) +20:46 < i686> ooooh, gassy.. +20:48 < rekkanoryo> you know, if it wasn't for knowing for a fact that grim is the most insane person + ever to exist i'd have to wonder which of you is worse +17:01 < bleeter> if you think about it, some of our forebears must've been real sickos +17:02 < esquilax> chicken ass +17:02 < bleeter> 'oh, look what just fell out of this chicken's bum.. I think I'll eat it' +17:02 < bleeter> 'hey, I wonder what'll happen if *I* squeeze that cow's tits' +17:02 < bleeter> and so forth +11:03 < EvilDennisR> I want funpidgin to rub my balls +11:03 < EvilDennisR> I'll request that feature +23:24 < grim> well reading would be helpful :P +23:24 < rekkanoryo> ok, mom :-P +23:25 < grim> i'm not commenting on that, because it's going to be awkward.. +21:48 < EvilDennisR> Gary always has time to stab a mother fucker +18:39 -!- Gothgirl quit ["Now if you will excuse me, I have a giant ball of oil to throw out my window"] +18:47 < grim> anyone get her quit message? +18:48 < rekkanoryo> nope +18:48 < grim> k, so i'm not being stupid, just average ;) +18:48 < rekkanoryo> ..|., Binary file doc/flow.dia has changed
Binary file doc/flow.png has changed
Binary file doc/gf_object.dia has changed
Binary file doc/gf_object.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gf_config.h.mingw Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,307 @@
+/* pre_config.h. Generated by configure. */ +/* pre_config.h.in. Generated from configure.ac by autoheader. */ +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. +/* #undef CRAY_STACKSEG_END */ +/* Define to 1 if using `alloca.c'. */ +/* Define if debugging is enabled. */ +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* Guifications Website */ +#define GF_WEBSITE "http://pidgin.guifications.org" +/* Define to 1 if you have `alloca', as a function or macro. */ +/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). +/* Define to 1 if you have the <argz.h> header file. */ +/* Define to 1 if you have the `asprintf' function. */ +/* Define if the GNU dcgettext() function is already present or preinstalled. +#define HAVE_DCGETTEXT 1 +/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you +#define HAVE_DECL_FEOF_UNLOCKED 1 +/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if +#define HAVE_DECL_FGETS_UNLOCKED 0 +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you +#define HAVE_DECL_GETC_UNLOCKED 1 +/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you +#define HAVE_DECL__SNPRINTF 0 +/* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you +#define HAVE_DECL__SNWPRINTF 0 +/* Define to 1 if you have the <dlfcn.h> header file. */ +/* Define to 1 if you have the `fwprintf' function. */ +/* Define if we've found pidgin. */ +/* Define to 1 if you have the `getcwd' function. */ +/* Define to 1 if you have the `getegid' function. */ +/* Define to 1 if you have the `geteuid' function. */ +/* Define to 1 if you have the `getgid' function. */ +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* Define to 1 if you have the `getuid' function. */ +/* Define if you have the iconv() function. */ +/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */ +/* Define if <inttypes.h> exists and doesn't clash with <sys/types.h>. */ +#define HAVE_INTTYPES_H 1 +/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 +/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ +/* #define HAVE_LANGINFO_CODESET 1 */ +/* Define if your <locale.h> file defines LC_MESSAGES. */ +#define HAVE_LC_MESSAGES 1 +/* Define to 1 if you have the <limits.h> header file. */ +/* Define to 1 if you have the <locale.h> header file. */ +/* Define if you have the 'long double' type. */ +#define HAVE_LONG_DOUBLE 1 +/* Define if you have the 'long long' type. */ +#define HAVE_LONG_LONG 1 +/* Define to 1 if you have the <malloc.h> header file. */ +/* Define to 1 if you have the <memory.h> header file. */ +/* Define to 1 if you have the `mempcpy' function. */ +/* Define to 1 if you have a working `mmap' system call. */ +/* Define to 1 if you have the `munmap' function. */ +/* Define to 1 if you have the <nl_types.h> header file. */ +#define HAVE_NL_TYPES_H 1 +/* Define if we've found pangoft2. */ +/* Define if your printf() function supports format strings with positions. */ +#define HAVE_POSIX_PRINTF 1 +/* Define to 1 if you have the `putenv' function. */ +/* Define to 1 if you have the `setenv' function. */ +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 +/* Define to 1 if you have the `snprintf' function. */ +/* Define to 1 if you have the <stddef.h> header file. */ +/* Define to 1 if you have the <stdint.h> header file. */ +/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares +#define HAVE_STDINT_H_WITH_UINTMAX 1 +/* Define to 1 if you have the <stdlib.h> header file. */ +/* Define to 1 if you have the `stpcpy' function. */ +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 +/* Define to 1 if you have the `strdup' function. */ +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 +/* Define to 1 if you have the <string.h> header file. */ +/* Define to 1 if you have the `strtoul' function. */ +/* Define to 1 if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 +/* Define to 1 if you have the `tsearch' function. */ +/* Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>. */ +#define HAVE_UINTMAX_T 1 +/* Define to 1 if you have the <unistd.h> header file. */ +/* Define if you have the 'unsigned long long' type. */ +#define HAVE_UNSIGNED_LONG_LONG 1 +/* Define if you have the 'wchar_t' type. */ +/* Define to 1 if you have the `wcslen' function. */ +/* Define if you have the 'wint_t' type. */ +/* Define to 1 if you have the `__argz_count' function. */ +#define HAVE___ARGZ_COUNT 1 +/* Define to 1 if you have the `__argz_next' function. */ +#define HAVE___ARGZ_NEXT 1 +/* Define to 1 if you have the `__argz_stringify' function. */ +#define HAVE___ARGZ_STRINGIFY 1 +/* Define to 1 if you have the `__fsetlocking' function. */ +#define HAVE___FSETLOCKING 1 +/* Define as const if the declaration of iconv() needs const. */ +/* Define if integer division by zero raises signal SIGFPE. */ +#define INTDIV0_RAISES_SIGFPE 1 +#define GF_PACKAGE "guifications" +/* Define to the address where bug reports for this package should be sent. */ +#define GF_PACKAGE_BUGREPORT "guifications-devel@lists.sourceforge.net" +/* Define to the full name of this package. */ +#define GF_PACKAGE_NAME "guifications" +/* Define to the full name and version of this package. */ +/*#define GF_PACKAGE_STRING "guifications2 2.0cvs"*/ +/* Define to the one symbol short name of this package. */ +/*#define GF_PACKAGE_TARNAME "guifications2"*/ +/* Define to the version of this package. */ +/*#define GF_PACKAGE_VERSION "2.0cvs"*/ +/* Define if <inttypes.h> exists and defines unusable PRI* macros. */ +/* #undef PRI_MACROS_BROKEN */ +/* Define as the maximum value of type 'size_t', if the system doesn't define +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ +/* Define to 1 if you have the ANSI C header files. */ +/* Version number of package */ +/* Define to empty if `const' does not conform to ANSI C. */ +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +/* Define to `long' if <sys/types.h> does not define. */ +/* Define as the type of the result of subtracting two pointers, if the system +/* Define to empty if the C compiler doesn't support this keyword. */ +/* Define to `unsigned' if <sys/types.h> does not define. */ +/* Define to unsigned long or unsigned long long if <stdint.h> and + <inttypes.h> don't define. */ +#endif /* _GF_CONFIG_H */ --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/guifications-installer.nsi Fri Aug 07 15:06:23 2009 -0500
@@ -0,0 +1,446 @@
+; NSIS Script For Guifications Plugin +; Author Daniel A. Atallah +; Based on the Pidgin installer by Herman Bloggs and the Pidgin-Encryption installer by Bill Tompkins +;-------------------------------- +!insertmacro GetParameters +;-------------------------------- + Name "Pidgin Guifications ${GUIFICATIONS_VERSION}" + OutFile "pidgin-guifications-${GUIFICATIONS_VERSION}.exe" + ;The Default Installation Directory + InstallDir "$PROGRAMFILES\pidgin" + InstallDirRegKey HKLM SOFTWARE\pidgin "" + SetCompressor /SOLID lzma +;Reserve files used in .onInit for faster start-up +!insertmacro MUI_RESERVEFILE_LANGDLL + !define GUIFICATIONS_UNINST_EXE "pidgin-guifications-uninst.exe" + !define GUIFICATIONS_DLL "guifications.dll" + !define GUIFICATIONS_UNINSTALL_LNK "Guifications Uninstall.lnk" +;-------------------------------- + !define GUIFICATIONS_REG_KEY "SOFTWARE\pidgin-guifications" + !define GUIFICATIONS_UNINSTALL_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\pidgin-guifications" +;------------------------------- +; Pidgin Plugin installer helper stuff + !addincludedir "${PIDGIN_TREE_TOP}\pidgin\win32\nsis" + !include "pidgin-plugin.nsh" +;-------------------------------- +; Modern UI Configuration + !define MUI_ICON .\nsis\install.ico + !define MUI_UNICON .\nsis\install.ico + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "nsis\header.bmp" + !define MUI_CUSTOMFUNCTION_GUIINIT gf_checkPidginVersion + !define MUI_ABORTWARNING + !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" + !define MUI_LANGDLL_REGISTRY_KEY ${GUIFICATIONS_REG_KEY} + !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" +;-------------------------------- + !define MUI_WELCOMEPAGE_TITLE $(WELCOME_TITLE) + !define MUI_WELCOMEPAGE_TEXT $(WELCOME_TEXT) + !insertmacro MUI_PAGE_WELCOME + !define MUI_LICENSEPAGE_RADIOBUTTONS + !insertmacro MUI_PAGE_LICENSE ".\COPYING" + !define MUI_DIRECTORYPAGE_TEXT_TOP $(DIR_SUBTITLE) + !define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(DIR_INNERTEXT) + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !define MUI_FINISHPAGE_TITLE $(FINISH_TITLE) + !define MUI_FINISHPAGE_TEXT $(FINISH_TEXT) + !insertmacro MUI_PAGE_FINISH +;-------------------------------- + !insertmacro MUI_LANGUAGE "English" + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Spanish" + !include "nsis\translations\english.nsh" + !include "nsis\translations\french.nsh" + !include "nsis\translations\italian.nsh" + !include "nsis\translations\spanish.nsh" +; Uninstall the previous version if it exists +Section -SecUninstallOldPlugin + ; Check install rights.. + Call CheckUserInstallRights + StrCmp $R0 "HKLM" rights_hklm + StrCmp $R0 "HKCU" rights_hkcu done + ReadRegStr $R1 HKCU "${GUIFICATIONS_REG_KEY}" "" + ReadRegStr $R2 HKCU "${GUIFICATIONS_REG_KEY}" "Version" + ReadRegStr $R3 HKCU "${GUIFICATIONS_UNINSTALL_KEY}" "UninstallString" + ReadRegStr $R1 HKLM "${GUIFICATIONS_REG_KEY}" "" + ReadRegStr $R2 HKLM "${GUIFICATIONS_REG_KEY}" "Version" + ReadRegStr $R3 HKLM "${GUIFICATIONS_UNINSTALL_KEY}" "UninstallString" + ; If previous version exists .. remove + StrCmp $R2 "" uninstall_problem + IfFileExists $R3 0 uninstall_problem + ; Have uninstall string.. go ahead and uninstall. + ; Need to copy uninstaller outside of the install dir + CopyFiles /SILENT $R3 "$TEMP\${GUIFICATIONS_UNINST_EXE}" + IfErrors uninstall_problem + ExecWait '"$TEMP\${GUIFICATIONS_UNINST_EXE}" /S _?=$R1' + Delete "$TEMP\${GUIFICATIONS_UNINST_EXE}" + Delete "$TEMP\${GUIFICATIONS_UNINST_EXE}" + ; Just delete the plugin and uninstaller, and remove Registry key + MessageBox MB_YESNO $(GUIFICATIONS_PROMPT_WIPEOUT) IDYES do_wipeout IDNO cancel_install + StrCmp $R0 "HKLM" del_lm_reg del_cu_reg + DeleteRegKey HKCU ${GUIFICATIONS_REG_KEY} + Goto uninstall_prob_cont + DeleteRegKey HKLM ${GUIFICATIONS_REG_KEY} + Delete "$R1\plugins\${GUIFICATIONS_DLL}" + RMDir /r "$R1\pixmaps\pidgin\guifications" + SetOutPath "$INSTDIR\locale\${LANG}\LC_MESSAGES" + File /oname=guifications.mo po\${LANG}.gmo + Call CheckUserInstallRights + StrCmp $R0 "NONE" instrights_none + StrCmp $R0 "HKLM" instrights_hklm instrights_hkcu + ; Write the version registry keys: + WriteRegStr HKLM ${GUIFICATIONS_REG_KEY} "" "$INSTDIR" + WriteRegStr HKLM ${GUIFICATIONS_REG_KEY} "Version" "${GUIFICATIONS_VERSION}" + ; Write the uninstall keys for Windows + WriteRegStr HKLM ${GUIFICATIONS_UNINSTALL_KEY} "DisplayName" "$(GUIFICATIONS_UNINSTALL_DESC)" + WriteRegStr HKLM ${GUIFICATIONS_UNINSTALL_KEY} "UninstallString" "$INSTDIR\${GUIFICATIONS_UNINST_EXE}" + SetShellVarContext "all" + ; Write the version registry keys: + WriteRegStr HKCU ${GUIFICATIONS_REG_KEY} "" "$INSTDIR" + WriteRegStr HKCU ${GUIFICATIONS_REG_KEY} "Version" "${GUIFICATIONS_VERSION}" + ; Write the uninstall keys for Windows + WriteRegStr HKCU ${GUIFICATIONS_UNINSTALL_KEY} "DisplayName" "$(GUIFICATIONS_UNINSTALL_DESC)" + WriteRegStr HKCU ${GUIFICATIONS_UNINSTALL_KEY} "UninstallString" "$INSTDIR\${GUIFICATIONS_UNINST_EXE}" + ; No registry keys for us... + SetOutPath "$INSTDIR\plugins" + File "src\${GUIFICATIONS_DLL}" + SetOutPath "$INSTDIR\pixmaps\pidgin\guifications\conf" + SetOutPath "$INSTDIR\pixmaps\pidgin\guifications\themes\default" + File "themes\default\theme.xml" + File "themes\default\background.png" + SetOutPath "$INSTDIR\pixmaps\pidgin\guifications\themes\mini" + File "themes\mini\theme.xml" + File "themes\mini\background.png" + SetOutPath "$INSTDIR\pixmaps\pidgin\guifications\themes\Penguins" + File "themes\Penguins\theme.xml" + File "themes\Penguins\penguin.png" + ; translations - if there is a way to automate this, i can't find it + !insertmacro INSTALL_GMO "bn" + !insertmacro INSTALL_GMO "cs" + !insertmacro INSTALL_GMO "de" + !insertmacro INSTALL_GMO "en_AU" + !insertmacro INSTALL_GMO "en_GB" + !insertmacro INSTALL_GMO "es" + !insertmacro INSTALL_GMO "fr" + !insertmacro INSTALL_GMO "gl" + !insertmacro INSTALL_GMO "he" + !insertmacro INSTALL_GMO "hu" + !insertmacro INSTALL_GMO "it" + !insertmacro INSTALL_GMO "ja" + !insertmacro INSTALL_GMO "mk" + !insertmacro INSTALL_GMO "nl" + !insertmacro INSTALL_GMO "no" + !insertmacro INSTALL_GMO "pt" + !insertmacro INSTALL_GMO "pt_BR" + !insertmacro INSTALL_GMO "ru" + !insertmacro INSTALL_GMO "sk" + !insertmacro INSTALL_GMO "sr" + !insertmacro INSTALL_GMO "sr@Latn" + !insertmacro INSTALL_GMO "sv" + !insertmacro INSTALL_GMO "uk" + !insertmacro INSTALL_GMO "zh_CN" + !insertmacro INSTALL_GMO "zh_TW" + CreateShortCut "$SMPROGRAMS\Pidgin\${GUIFICATIONS_UNINSTALL_LNK}" "$INSTDIR\${GUIFICATIONS_UNINST_EXE}" + WriteUninstaller "$INSTDIR\${GUIFICATIONS_UNINST_EXE}" + Call un.CheckUserInstallRights + StrCmp $R0 "NONE" no_rights + StrCmp $R0 "HKCU" try_hkcu try_hklm + ReadRegStr $R0 HKCU "${GUIFICATIONS_REG_KEY}" "" + StrCmp $R0 $INSTDIR 0 cant_uninstall + ; HKCU install path matches our INSTDIR.. so uninstall + DeleteRegKey HKCU "${GUIFICATIONS_REG_KEY}" + DeleteRegKey HKCU "${GUIFICATIONS_UNINSTALL_KEY}" + ReadRegStr $R0 HKLM "${GUIFICATIONS_REG_KEY}" "" + StrCmp $R0 $INSTDIR 0 try_hkcu + ; HKLM install path matches our INSTDIR.. so uninstall + DeleteRegKey HKLM "${GUIFICATIONS_REG_KEY}" + DeleteRegKey HKLM "${GUIFICATIONS_UNINSTALL_KEY}" + ; Sets start menu and desktop scope to all users.. + SetShellVarContext "all" + Delete "$INSTDIR\plugins\${GUIFICATIONS_DLL}" + RMDir /r "$INSTDIR\pixmaps\pidgin\guifications" + ; loop through locale dirs and try to delete any guifications translations + FindFirst $R1 $R2 "$INSTDIR\locale\*" + IfErrors doneFindingTranslations + processCurrentTranslationDir: + StrCmp $R2 "." readNextTranslationDir + StrCmp $R2 ".." readNextTranslationDir + IfFileExists "$INSTDIR\locale\$R2\LC_MESSAGES\guifications.mo" +1 readNextTranslationDir + Delete "$INSTDIR\locale\$R2\LC_MESSAGES\guifications.mo"