From: <lsc...@us...> - 2006-09-11 18:29:44
|
Revision: 17252 http://svn.sourceforge.net/gaim/?rev=17252&view=rev Author: lschiere Date: 2006-09-11 11:29:35 -0700 (Mon, 11 Sep 2006) Log Message: ----------- 1)add file 2)test it compiles 3)attempt to commit it, watch svn fail 4)set the silly property things 5)commit Modified Paths: -------------- trunk/configure.ac trunk/gtk/gtkdialogs.c trunk/po/ChangeLog Added Paths: ----------- trunk/po/ar.po Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-09-11 17:35:48 UTC (rev 17251) +++ trunk/configure.ac 2006-09-11 18:29:35 UTC (rev 17252) @@ -46,7 +46,7 @@ ;; esac -ALL_LINGUAS="am az bg bn bs ca ca@valencia cs da de el en_AU en_CA en_GB es et eu fa fi fr gl gu he hi hu it ja ka ko ku lt mk my_MM nb ne nl nn pa pl pt_BR pt ro ru sk sl sq sr sr@Latn sv ta te th tr uk vi xh zh_CN zh_TW" +ALL_LINGUAS="am ar az bg bn bs ca ca@valencia cs da de el en_AU en_CA en_GB es et eu fa fi fr gl gu he hi hu it ja ka ko ku lt mk my_MM nb ne nl nn pa pl pt_BR pt ro ru sk sl sq sr sr@Latn sv ta te th tr uk vi xh zh_CN zh_TW" AM_GLIB_GNU_GETTEXT dnl we don't use autobreak on cygwin!! Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-09-11 17:35:48 UTC (rev 17251) +++ trunk/gtk/gtkdialogs.c 2006-09-11 18:29:35 UTC (rev 17252) @@ -112,6 +112,7 @@ /* Order: Code, then Alphabetical by Last Name */ static struct translator current_translators[] = { + {N_("Arabic"), "ar", "Mohamed Magdy", "al...@ya..."}, {N_("Bulgarian"), "bg", "Vladimira Girginova", "mi...@he..."}, {N_("Bulgarian"), "bg", "Vladimir (Kaladan) Petkov", "vp...@i-..."}, {N_("Bengali"), "bn", "INDRANIL DAS GUPTA", "in...@l2..."}, Modified: trunk/po/ChangeLog =================================================================== --- trunk/po/ChangeLog 2006-09-11 17:35:48 UTC (rev 17251) +++ trunk/po/ChangeLog 2006-09-11 18:29:35 UTC (rev 17252) @@ -1,6 +1,7 @@ Gaim: The Pimpin' Penguin IM Clone that's good for the soul! version 2.0.0: + * Arabic translation added (Mohamed Magdy) * Bengali translation added (INDRANIL DAS GUPTA and Samia Nimatullah) * Bosnian translation added (Lejla Hadzialic) * Bulgarian translation updated (Vladimir "Kaladan" Petkov) Added: trunk/po/ar.po =================================================================== --- trunk/po/ar.po (rev 0) +++ trunk/po/ar.po 2006-09-11 18:29:35 UTC (rev 17252) @@ -0,0 +1,13800 @@ +msgid "" +msgstr "" +"Project-Id-Version: Gaim\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2006-08-28 22:22+0200\n" +"Last-Translator: Mohamed Magdy <al...@ya...>\n" +"Language-Team: Mohamed Magdy <al...@ya...>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-Country: EGYPT\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../gaim.desktop.in.h:1 +msgid "Gaim Internet Messenger" +msgstr "جايم مراسل الانترنت" + +#: ../gaim.desktop.in.h:2 +msgid "Internet Messenger" +msgstr "مراسل الانترنت" + +#: ../gaim.desktop.in.h:3 +msgid "Send instant messages over multiple protocols" +msgstr "أرسل رسائل قصيرة عبر بروتوكلات متعددة" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ciphertest.c:264 +#, fuzzy +msgid "Cipher Test" +msgstr "اختبار الضبط" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/ciphertest.c:267 +#: ../plugins/ciphertest.c:269 +msgid "Tests the ciphers that ship with gaim." +msgstr "" + +#: ../plugins/contact_priority.c:61 +#, fuzzy +msgid "Buddy is idle" +msgstr "الملفّ فارغ" + +#: ../plugins/contact_priority.c:62 +#, fuzzy +msgid "Buddy is away" +msgstr "الملفّ فارغ" + +#: ../plugins/contact_priority.c:63 +msgid "Buddy is \"extended\" away" +msgstr "" + +#. Not used yet. +#: ../plugins/contact_priority.c:66 +#, fuzzy +msgid "Buddy is mobile" +msgstr "الملفّ فارغ" + +#: ../plugins/contact_priority.c:68 +#, fuzzy +msgid "Buddy is offline" +msgstr "الملفّ فارغ" + +#: ../plugins/contact_priority.c:90 +msgid "Point values to use when..." +msgstr "" + +#: ../plugins/contact_priority.c:118 +msgid "The buddy with the <i>largest score</i> is the buddy who will have priority in the contact.\n" +msgstr "" + +#: ../plugins/contact_priority.c:125 +msgid "Use last buddy when scores are equal" +msgstr "" + +#: ../plugins/contact_priority.c:130 +msgid "Point values to use for account..." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/contact_priority.c:182 +#, fuzzy +msgid "Contact Priority" +msgstr "وضع الاولوية" + +#. *< name +#. *< version +#. *< summary +#: ../plugins/contact_priority.c:185 +msgid "Allows for controlling the values associated with different buddy states." +msgstr "" + +#. *< description +#: ../plugins/contact_priority.c:187 +msgid "Allows for changing the point values of idle/away/offline states for buddies in contact priority computations." +msgstr "" + +#. *< api_version +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/crazychat/cc_gaim_plugin.c:146 +msgid "Crazychat" +msgstr "دردشة مجنونة" + +#. *< name +#. *< version +#. * summary +#: ../plugins/crazychat/cc_gaim_plugin.c:149 +msgid "Plugin to establish a Crazychat session." +msgstr "" + +#. * description +#: ../plugins/crazychat/cc_gaim_plugin.c:151 +msgid "Uses Gaim to obtain buddy ips to connect for a Crazychat session" +msgstr "" + +#. make the network configuration frame +#: ../plugins/crazychat/cc_gaim_plugin.c:295 +msgid "Network Configuration" +msgstr "ضبط الشبكة" + +#: ../plugins/crazychat/cc_gaim_plugin.c:307 +msgid "TCP port" +msgstr "TCP منفذ" + +#: ../plugins/crazychat/cc_gaim_plugin.c:317 +msgid "UDP port" +msgstr "UDP منفذ" + +#. make the feature configuration frame +#: ../plugins/crazychat/cc_gaim_plugin.c:329 +#, fuzzy +msgid "Feature Calibration" +msgstr "الميزّة الرئيسية" + +#. add enabled / disabled +#: ../plugins/crazychat/cc_gaim_plugin.c:345 +#: ../src/gtkaccount.c:2259 +#: ../src/gtkplugin.c:574 +msgid "Enabled" +msgstr "مفعل" + +#: ../plugins/crazychat/cc_gaim_plugin.c:350 +msgid "Disabled" +msgstr "معطل" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/dbus-example.c:155 +msgid "DBus Example" +msgstr "" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/dbus-example.c:158 +#: ../plugins/dbus-example.c:160 +#, fuzzy +msgid "DBus Plugin Example" +msgstr ":غير موجود MP3 مقبس تصدير " + +#: ../plugins/docklet/docklet.c:154 +msgid "Right-click for more unread messages...\n" +msgstr "" + +#: ../plugins/docklet/docklet.c:157 +#: ../src/gtkblist.c:3253 +#, fuzzy, c-format +msgid "%d unread message from %s\n" +msgid_plural "%d unread messages from %s\n" +msgstr[0] "قطع الاتصال مع الخادم" +msgstr[1] "" + +#: ../plugins/docklet/docklet.c:432 +msgid "Change Status" +msgstr "تغيير الحالة" + +#: ../plugins/docklet/docklet.c:435 +#: ../src/gtkstatusbox.c:673 +#: ../src/protocols/gg/gg.c:996 +#: ../src/protocols/jabber/buddy.c:1369 +#: ../src/protocols/msn/state.c:29 +#: ../src/protocols/msn/state.c:30 +#: ../src/protocols/msn/state.c:37 +#: ../src/protocols/msn/state.c:38 +#: ../src/protocols/novell/novell.c:2843 +#: ../src/protocols/yahoo/yahoo.c:2759 +#: ../src/status.c:155 +msgid "Available" +msgstr "متاح" + +#. Away stuff +#. get_yahoo_status_from_gaim_status() returns YAHOO_STATUS_CUSTOM for +#. * the generic away state (YAHOO_STATUS_TYPE_AWAY) with no message +#: ../plugins/docklet/docklet.c:439 +#: ../src/gtkprefs.c:1774 +#: ../src/gtkstatusbox.c:674 +#: ../src/protocols/gg/gg.c:999 +#: ../src/protocols/irc/irc.c:519 +#: ../src/protocols/irc/msgs.c:223 +#: ../src/protocols/jabber/buddy.c:1373 +#: ../src/protocols/novell/novell.c:2846 +#: ../src/protocols/oscar/oscar.c:695 +#: ../src/protocols/oscar/oscar.c:4376 +#: ../src/protocols/oscar/oscar.c:5440 +#: ../src/protocols/silc/buddy.c:1469 +#: ../src/protocols/yahoo/yahoo.c:3229 +#: ../src/protocols/yahoo/yahoo.c:3302 +#: ../src/status.c:158 +msgid "Away" +msgstr "بعيد" + +#: ../plugins/docklet/docklet.c:443 +#: ../src/gtkstatusbox.c:675 +#: ../src/protocols/oscar/oscar.c:699 +#: ../src/protocols/yahoo/yahoo.c:2753 +#: ../src/status.c:157 +msgid "Invisible" +msgstr "غير مرئى" + +#: ../plugins/docklet/docklet.c:447 +#: ../src/gtkblist.c:2959 +#: ../src/gtkstatusbox.c:676 +#: ../src/protocols/gg/gg.c:993 +#: ../src/protocols/jabber/buddy.c:1367 +#: ../src/protocols/novell/novell.c:2855 +#: ../src/protocols/oscar/oscar.c:770 +#: ../src/protocols/oscar/oscar.c:5412 +#: ../src/protocols/yahoo/yahoo.c:2757 +#: ../src/status.c:154 +msgid "Offline" +msgstr "غير متصل" + +#: ../plugins/docklet/docklet.c:467 +#: ../src/gtkstatusbox.c:681 +msgid "New..." +msgstr "جديد" + +#: ../plugins/docklet/docklet.c:468 +#: ../src/gtkstatusbox.c:682 +msgid "Saved..." +msgstr "تم الحفظ" + +#: ../plugins/docklet/docklet.c:484 +#, fuzzy +msgid "Show Buddy List" +msgstr "قائمة ألسنة الصفحات" + +#: ../plugins/docklet/docklet.c:489 +#: ../src/gtkconv.c:5677 +msgid "Unread Messages" +msgstr "رسائل غير مقروئة" + +#: ../plugins/docklet/docklet.c:510 +msgid "New Message..." +msgstr "رسالة جديدة" + +#: ../plugins/docklet/docklet.c:519 +#: ../src/gtkaccount.c:2475 +msgid "Accounts" +msgstr "الحسابات" + +#: ../plugins/docklet/docklet.c:520 +#: ../src/gtkplugin.c:538 +#, fuzzy +msgid "Plugins" +msgstr "ملحقات" + +#: ../plugins/docklet/docklet.c:521 +#: ../src/gtkprefs.c:1915 +msgid "Preferences" +msgstr "التخصيصات" + +#: ../plugins/docklet/docklet.c:525 +msgid "Mute Sounds" +msgstr "" + +#. TODO: need a submenu to change status, this needs to "link" +#. * to the status in the buddy list gtkstatusbox +#. +#: ../plugins/docklet/docklet.c:538 +msgid "Quit" +msgstr "غلق" + +#: ../plugins/docklet/docklet.c:679 +msgid "Blink tray icon for unread..." +msgstr "" + +#: ../plugins/docklet/docklet.c:682 +msgid "_Instant Messages:" +msgstr "" + +#: ../plugins/docklet/docklet.c:684 +#: ../plugins/docklet/docklet.c:692 +#: ../plugins/win32/winprefs/winprefs.c:462 +#: ../src/gtkprefs.c:823 +#: ../src/gtkprefs.c:1764 +#: ../src/gtkprefs.c:1778 +msgid "Never" +msgstr "أبدا" + +#: ../plugins/docklet/docklet.c:685 +#, fuzzy +msgid "In hidden conversations" +msgstr "عرض الملفات ال_مخفيّة." + +#: ../plugins/docklet/docklet.c:686 +#: ../plugins/docklet/docklet.c:694 +#: ../plugins/timestamp_format.c:39 +#: ../plugins/timestamp_format.c:48 +#: ../plugins/win32/winprefs/winprefs.c:463 +#: ../src/gtkprefs.c:825 +msgid "Always" +msgstr "دائما" + +#: ../plugins/docklet/docklet.c:690 +msgid "C_hat Messages:" +msgstr "" + +#: ../plugins/docklet/docklet.c:693 +msgid "When my nick is said" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/docklet/docklet.c:720 +#, fuzzy +msgid "System Tray Icon" +msgstr "خطأ عند تحميل الأيقونة: %s" + +#. *< name +#. *< version +#. * summary +#: ../plugins/docklet/docklet.c:723 +msgid "Displays an icon for Gaim in the system tray." +msgstr "" + +#. * description +#: ../plugins/docklet/docklet.c:725 +msgid "Displays a system tray icon (in GNOME, KDE, or Windows for example) to show the current status of Gaim, allow fast access to commonly used functions, and to toggle display of the buddy list. Also provides options to blink for unread messages." +msgstr "" + +#: ../plugins/docklet/eggtrayicon.c:123 +#, fuzzy +msgid "Orientation" +msgstr "التوجيه" + +#: ../plugins/docklet/eggtrayicon.c:124 +#, fuzzy +msgid "The orientation of the tray." +msgstr "مطفأة السّجائر" + +#: ../plugins/extplacement.c:80 +#, fuzzy +msgid "By conversation count" +msgstr "اعترض من قبل المستخدم" + +#: ../plugins/extplacement.c:101 +msgid "Conversation Placement" +msgstr "" + +#: ../plugins/extplacement.c:106 +msgid "Number of conversations per window" +msgstr "" + +#: ../plugins/extplacement.c:112 +msgid "Separate IM and Chat windows when placing by number" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/extplacement.c:135 +msgid "ExtPlacement" +msgstr "" + +#. *< name +#. *< version +#: ../plugins/extplacement.c:137 +msgid "Extra conversation placement options." +msgstr "" + +#. *< summary +#. * description +#: ../plugins/extplacement.c:139 +msgid "Restrict the number of conversations per windows, optionally separating IMs and Chats" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/filectl.c:248 +#, fuzzy +msgid "Gaim File Control" +msgstr "لوح ادوات تحكم أوداسيتي" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/filectl.c:251 +#: ../plugins/filectl.c:253 +msgid "Allows you to control Gaim by entering commands in a file." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/gaiminc.c:91 +#, fuzzy +msgid "Gaim Demonstration Plugin" +msgstr ":غير موجود MP3 مقبس تصدير " + +#. *< name +#. *< version +#. * summary +#: ../plugins/gaiminc.c:94 +msgid "An example plugin that does stuff - see the description." +msgstr "" + +#. * description +#: ../plugins/gaiminc.c:96 +msgid "" +"This is a really cool plugin that does a lot of stuff:\n" +"- It tells you who wrote the program when you log in\n" +"- It reverses all incoming text\n" +"- It sends a message to people on your list immediately when they sign on" +msgstr "" + +#: ../plugins/gaimrc.c:41 +#, fuzzy +msgid "Cursor Color" +msgstr "مختار الألوان" + +#: ../plugins/gaimrc.c:42 +#, fuzzy +msgid "Secondary Cursor Color" +msgstr "_حفظ اللون هنا" + +#: ../plugins/gaimrc.c:43 +#, fuzzy +msgid "Hyperlink Color" +msgstr "مختار الألوان" + +#: ../plugins/gaimrc.c:56 +#, fuzzy +msgid "GtkTreeView Expander Size" +msgstr "chunk size غير صالح" + +#: ../plugins/gaimrc.c:57 +msgid "GtkTreeView Horizontal Separation" +msgstr "" + +#: ../plugins/gaimrc.c:76 +#, fuzzy +msgid "Conversation Entry" +msgstr "أختيار مدخل" + +#: ../plugins/gaimrc.c:77 +#, fuzzy +msgid "Conversation History" +msgstr "مسح التاريخ" + +#: ../plugins/gaimrc.c:78 +msgid "Log Viewer" +msgstr "عارض الدفتر" + +#: ../plugins/gaimrc.c:79 +#, fuzzy +msgid "Request Dialog" +msgstr "عرض صندوق حوار عن" + +#: ../plugins/gaimrc.c:80 +msgid "Notify Dialog" +msgstr "صندوق حوار التذكير" + +#: ../plugins/gaimrc.c:91 +msgid "GtkTreeView Indent Expanders" +msgstr "" + +#: ../plugins/gaimrc.c:287 +#, c-format +msgid "Select Color for %s" +msgstr "%s إختيار لون ل" + +#: ../plugins/gaimrc.c:289 +msgid "Select Color" +msgstr "أختار لون" + +#: ../plugins/gaimrc.c:324 +#, c-format +msgid "Select Font for %s" +msgstr "%s إختيار خط ل" + +#: ../plugins/gaimrc.c:364 +msgid "Select Interface Font" +msgstr "اختار خط الواجهة" + +#: ../plugins/gaimrc.c:420 +msgid "General" +msgstr "عام" + +#: ../plugins/gaimrc.c:425 +#, fuzzy +msgid "GTK+ Interface Font" +msgstr "تعليمات تنقيح GTK+ التي ستضبط" + +#: ../plugins/gaimrc.c:445 +msgid "GTK+ Text Shortcut Theme" +msgstr "" + +#: ../plugins/gaimrc.c:480 +msgid "Interface colors" +msgstr "ألوان الواجهة" + +#: ../plugins/gaimrc.c:504 +msgid "Widget Sizes" +msgstr "" + +#: ../plugins/gaimrc.c:525 +msgid "Fonts" +msgstr "الخطوط" + +#: ../plugins/gaimrc.c:548 +msgid "Tools" +msgstr "أدوات" + +#: ../plugins/gaimrc.c:553 +#, fuzzy, c-format +msgid "Write settings to %s%sgtkrc-2.0" +msgstr "خطأ فى التأكد من الخصائص" + +#: ../plugins/gaimrc.c:561 +msgid "Re-read gtkrc files" +msgstr "" + +#: ../plugins/gaimrc.c:588 +msgid "Gaim GTK+ Theme Control" +msgstr "" + +#: ../plugins/gaimrc.c:590 +#: ../plugins/gaimrc.c:591 +msgid "Provides access to commonly used gtkrc settings." +msgstr "" + +#. Configuration frame +#: ../plugins/gestures/gestures.c:235 +#, fuzzy +msgid "Mouse Gestures Configuration" +msgstr "&مساعد ضبط الشبكة" + +#: ../plugins/gestures/gestures.c:242 +msgid "Middle mouse button" +msgstr "" + +#: ../plugins/gestures/gestures.c:247 +#, fuzzy +msgid "Right mouse button" +msgstr "المؤشر يمين\tيمين" + +#. "Visual gesture display" checkbox +#: ../plugins/gestures/gestures.c:259 +#, fuzzy +msgid "_Visual gesture display" +msgstr "عرض صندوق حوار عن" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/gestures/gestures.c:289 +msgid "Mouse Gestures" +msgstr "" + +#. *< name +#. *< version +#. * summary +#: ../plugins/gestures/gestures.c:292 +msgid "Provides support for mouse gestures" +msgstr "" + +#. * description +#: ../plugins/gestures/gestures.c:294 +msgid "" +"Allows support for mouse gestures in conversation windows.\n" +"Drag the middle mouse button to perform certain actions:\n" +"\n" +"Drag down and then to the right to close a conversation.\n" +"Drag up and then to the left to switch to the previous conversation.\n" +"Drag up and then to the right to switch to the next conversation." +msgstr "" + +#. Extract their Name and put it in +#. Contact Info +#. Personal +#. Business +#: ../plugins/gevolution/add_buddy_dialog.c:131 +#: ../plugins/gevolution/assoc-buddy.c:119 +#: ../src/gtkplugin.c:587 +#: ../src/gtkroomlist.c:604 +#: ../src/protocols/jabber/jabber.c:770 +#: ../src/protocols/msn/msn.c:1529 +#: ../src/protocols/msn/msn.c:1582 +#: ../src/protocols/msn/msn.c:1603 +msgid "Name" +msgstr "الأسم" + +#: ../plugins/gevolution/add_buddy_dialog.c:142 +msgid "Instant Messaging" +msgstr "رسائل فورية" + +#: ../plugins/gevolution/add_buddy_dialog.c:442 +#: ../src/gtkblist.c:4562 +#: ../src/protocols/silc/buddy.c:736 +#: ../src/protocols/silc/buddy.c:1030 +#: ../src/protocols/silc/buddy.c:1075 +#: ../src/protocols/silc/buddy.c:1174 +#: ../src/protocols/yahoo/yahoo.c:3002 +msgid "Add Buddy" +msgstr "أضف صاحب" + +#. Add the label. +#: ../plugins/gevolution/add_buddy_dialog.c:455 +msgid "Select a person from your address book below, or add a new person." +msgstr "" + +#. "Search" +#: ../plugins/gevolution/add_buddy_dialog.c:468 +#: ../plugins/gevolution/assoc-buddy.c:353 +#: ../src/protocols/jabber/buddy.c:1726 +#: ../src/protocols/oscar/oscar.c:6042 +#: ../src/protocols/sametime/sametime.c:5532 +msgid "Search" +msgstr "بحث" + +#: ../plugins/gevolution/add_buddy_dialog.c:549 +#: ../plugins/gevolution/new_person_dialog.c:307 +#: ../src/gtkblist.c:4646 +#: ../src/gtkblist.c:5009 +msgid "Group:" +msgstr "مجموعة" + +#. "New Person" button +#: ../plugins/gevolution/add_buddy_dialog.c:575 +#: ../plugins/gevolution/assoc-buddy.c:464 +#: ../plugins/gevolution/new_person_dialog.c:251 +msgid "New Person" +msgstr "شخص جديد" + +#. "Select Buddy" button +#: ../plugins/gevolution/add_buddy_dialog.c:592 +msgid "Select Buddy" +msgstr "أختيار صاحب" + +#. Add the label. +#: ../plugins/gevolution/assoc-buddy.c:340 +msgid "Select a person from your address book to add this buddy to, or create a new person." +msgstr "" + +#. Add the expander +#: ../plugins/gevolution/assoc-buddy.c:428 +msgid "User _details" +msgstr "تفاصيل_ المستخدم" + +#. "Associate Buddy" button +#: ../plugins/gevolution/assoc-buddy.c:481 +msgid "_Associate Buddy" +msgstr "" + +#: ../plugins/gevolution/eds-utils.c:73 +#: ../plugins/gevolution/eds-utils.c:86 +#: ../src/protocols/jabber/jabber.c:1142 +msgid "None" +msgstr "لا شىء" + +#: ../plugins/gevolution/gevo-util.c:64 +#: ../plugins/gevolution/gevolution.c:96 +#: ../src/blist.c:516 +#: ../src/blist.c:1281 +#: ../src/blist.c:1508 +#: ../src/gtkblist.c:4452 +#: ../src/protocols/jabber/roster.c:67 +msgid "Buddies" +msgstr "الأصحاب" + +#: ../plugins/gevolution/gevolution.c:262 +#: ../plugins/gevolution/gevolution.c:268 +msgid "Unable to send e-mail" +msgstr "عاجز عن ارسال بريدا" + +#: ../plugins/gevolution/gevolution.c:263 +msgid "The evolution executable was not found in the PATH." +msgstr "" + +#: ../plugins/gevolution/gevolution.c:269 +msgid "The specified buddy was not found in the Evolution Contacts." +msgstr "" + +#: ../plugins/gevolution/gevolution.c:286 +#, fuzzy +msgid "Add to Address Book" +msgstr "أعادة توجيه الى عنوان غير صالح" + +#: ../plugins/gevolution/gevolution.c:290 +msgid "Send E-Mail" +msgstr "أرسل بريد الكترونى" + +#. Configuration frame +#: ../plugins/gevolution/gevolution.c:417 +#, fuzzy +msgid "Evolution Integration Configuration" +msgstr "&مساعد ضبط الشبكة" + +#. Label +#: ../plugins/gevolution/gevolution.c:420 +msgid "Select all accounts that buddies should be auto-added to." +msgstr "" + +#: ../plugins/gevolution/gevolution.c:450 +#: ../plugins/idle.c:153 +#: ../plugins/idle.c:189 +#: ../src/gtknotify.c:402 +#: ../src/gtkpounce.c:1255 +msgid "Account" +msgstr "الحساب" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/gevolution/gevolution.c:527 +msgid "Evolution Integration" +msgstr "" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/gevolution/gevolution.c:530 +#: ../plugins/gevolution/gevolution.c:532 +msgid "Provides integration with Evolution." +msgstr "" + +#: ../plugins/gevolution/new_person_dialog.c:267 +msgid "Please enter the person's information below." +msgstr "" + +#: ../plugins/gevolution/new_person_dialog.c:271 +msgid "Please enter the buddy's screen name and account type below." +msgstr "" + +#: ../plugins/gevolution/new_person_dialog.c:291 +msgid "Account type:" +msgstr "نوع الحساب" + +#: ../plugins/gevolution/new_person_dialog.c:295 +#: ../src/gtkaccount.c:780 +#: ../src/gtkblist.c:4608 +msgid "Screen name:" +msgstr "اسم الشاشة" + +#. Optional Information section +#: ../plugins/gevolution/new_person_dialog.c:315 +msgid "Optional information:" +msgstr "معلومات غير ملزمة" + +#. Label +#: ../plugins/gevolution/new_person_dialog.c:338 +#: ../src/gtkaccount.c:422 +#: ../src/gtkaccount.c:444 +#: ../src/protocols/oscar/oscar.c:601 +msgid "Buddy Icon" +msgstr "أيقونة الصاحب" + +#: ../plugins/gevolution/new_person_dialog.c:350 +msgid "First name:" +msgstr "الاسم الاول" + +#: ../plugins/gevolution/new_person_dialog.c:362 +msgid "Last name:" +msgstr "الاسم الاخير" + +#: ../plugins/gevolution/new_person_dialog.c:382 +msgid "E-mail:" +msgstr "البريد الالكترونى" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/gtk-signals-test.c:160 +#, fuzzy +msgid "GTK Signals Test" +msgstr "ملخص لنتائج الاختبار" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/gtk-signals-test.c:163 +#: ../plugins/gtk-signals-test.c:165 +msgid "Test to see that all ui signals are working properly." +msgstr "" + +#: ../plugins/history.c:120 +#, c-format +msgid "<b>Conversation with %s on %s:</b><br>" +msgstr "" + +#: ../plugins/history.c:147 +msgid "History Plugin Requires Logging" +msgstr "" + +#: ../plugins/history.c:148 +msgid "" +"Logging can be enabled from Tools -> Preferences -> Logging.\n" +"\n" +"Enabling logs for instant messages and/or chats will activate history for the same conversation type(s)." +msgstr "" + +#: ../plugins/history.c:188 +msgid "History" +msgstr "تاريخ" + +#: ../plugins/history.c:190 +msgid "Shows recently logged conversations in new conversations." +msgstr "" + +#: ../plugins/history.c:191 +msgid "When a new conversation is opened this plugin will insert the last conversation into the current conversation." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/iconaway.c:82 +#, fuzzy +msgid "Iconify on Away" +msgstr "خطأ في السطر %d: %s" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/iconaway.c:85 +#: ../plugins/iconaway.c:87 +msgid "Iconifies the buddy list and your conversations when you go away." +msgstr "" + +#: ../plugins/idle.c:158 +#: ../plugins/idle.c:216 +msgid "Minutes" +msgstr "دقائق" + +#. This is a cultural reference. Dy'er Mak'er is a song by Led Zeppelin. +#. If that doesn't translate well into your language, drop the 's before translating. +#: ../plugins/idle.c:165 +#: ../plugins/idle.c:198 +#: ../plugins/idle.c:223 +#: ../plugins/idle.c:315 +msgid "I'dle Mak'er" +msgstr "" + +#: ../plugins/idle.c:166 +#: ../plugins/idle.c:255 +msgid "Set Account Idle Time" +msgstr "" + +#: ../plugins/idle.c:169 +#: ../plugins/idle.c:227 +#, fuzzy +msgid "_Set" +msgstr "تحديد" + +#: ../plugins/idle.c:170 +#: ../plugins/idle.c:203 +#: ../plugins/idle.c:228 +msgid "_Cancel" +msgstr "_الغاء" + +#: ../plugins/idle.c:183 +msgid "None of your accounts are idle." +msgstr "" + +#: ../plugins/idle.c:199 +#: ../plugins/idle.c:259 +msgid "Unset Account Idle Time" +msgstr "" + +#: ../plugins/idle.c:202 +#, fuzzy +msgid "_Unset" +msgstr "غير مثبّت :: غير معيّن" + +#: ../plugins/idle.c:224 +#: ../plugins/idle.c:263 +msgid "Set Idle Time for All Accounts" +msgstr "" + +#: ../plugins/idle.c:268 +msgid "Unset Idle Time for All Idled Accounts" +msgstr "" + +#: ../plugins/idle.c:317 +#: ../plugins/idle.c:318 +msgid "Allows you to hand-configure how long you've been idle" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ipc-test-client.c:87 +#, fuzzy +msgid "IPC Test Client" +msgstr "ملخص لنتائج الاختبار" + +#. *< name +#. *< version +#. * summary +#: ../plugins/ipc-test-client.c:90 +msgid "Test plugin IPC support, as a client." +msgstr "" + +#. * description +#: ../plugins/ipc-test-client.c:92 +msgid "Test plugin IPC support, as a client. This locates the server plugin and calls the commands registered." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ipc-test-server.c:74 +msgid "IPC Test Server" +msgstr "IPC خادم اختبار" + +#. *< name +#. *< version +#. * summary +#: ../plugins/ipc-test-server.c:77 +msgid "Test plugin IPC support, as a server." +msgstr "" + +#. * description +#: ../plugins/ipc-test-server.c:79 +msgid "Test plugin IPC support, as a server. This registers the IPC commands." +msgstr "" + +#: ../plugins/log_reader.c:1408 +msgid "User is offline." +msgstr "المستخدم غير متصل" + +#: ../plugins/log_reader.c:1414 +#, fuzzy +msgid "Auto-response sent:" +msgstr " غير صالحةHTTPاستجابة" + +#: ../plugins/log_reader.c:1424 +#: ../plugins/log_reader.c:1427 +#: ../plugins/statenotify.c:80 +#, fuzzy, c-format +msgid "%s has signed off." +msgstr "قلع عنصر القائمة" + +#: ../plugins/log_reader.c:1441 +msgid "One or more messages may have been undeliverable." +msgstr "" + +#: ../plugins/log_reader.c:1451 +msgid "You were disconnected from the server." +msgstr "" + +#: ../plugins/log_reader.c:1459 +msgid "You are currently disconnected. Messages will not be received unless you are logged in." +msgstr "" + +#: ../plugins/log_reader.c:1474 +msgid "Message could not be sent because the maximum length was exceeded." +msgstr "" + +#: ../plugins/log_reader.c:1479 +#, fuzzy +msgid "Message could not be sent." +msgstr "fzsftp غير قادر على تشغيل" + +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1840 +#: ../plugins/log_reader.c:1945 +msgid "Adium" +msgstr "" + +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1852 +#: ../plugins/log_reader.c:1949 +msgid "Fire" +msgstr "نار" + +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1864 +#: ../plugins/log_reader.c:1953 +msgid "Messenger Plus!" +msgstr "Messenger Plus!" + +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1876 +#: ../plugins/log_reader.c:1957 +msgid "MSN Messenger" +msgstr "MSNمراسل" + +#. The names of IM clients are marked for translation at the request of +#. translators who wanted to transliterate them. Many translators +#. choose to leave them alone. Choose what's best for your language. +#: ../plugins/log_reader.c:1888 +#: ../plugins/log_reader.c:1961 +msgid "Trillian" +msgstr "Trillian" + +#. Add general preferences. +#: ../plugins/log_reader.c:1927 +msgid "General Log Reading Configuration" +msgstr "" + +#: ../plugins/log_reader.c:1931 +#, fuzzy +msgid "Fast size calculations" +msgstr "chunk size غير صالح" + +#: ../plugins/log_reader.c:1935 +#, fuzzy +msgid "Use name heuristics" +msgstr "الإسم طويل جداً" + +#. Add Log Directory preferences. +#: ../plugins/log_reader.c:1941 +msgid "Log Directory" +msgstr "فولدر الدفتر" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/log_reader.c:1984 +msgid "Log Reader" +msgstr "قارىء الدفتر" + +#. *< name +#. *< version +#. * summary +#: ../plugins/log_reader.c:1988 +msgid "Includes other IM clients' logs in the log viewer." +msgstr "" + +#. * description +#: ../plugins/log_reader.c:1992 +msgid "When viewing logs, this plugin will include logs from other IM clients. Currently, this includes Adium, Fire, Messenger Plus!, MSN Messenger, and Trillian." +msgstr "" + +#: ../plugins/mailchk.c:160 +msgid "Mail Checker" +msgstr "مدقق البريد" + +#: ../plugins/mailchk.c:162 +msgid "Checks for new local mail." +msgstr "" + +#: ../plugins/mailchk.c:163 +msgid "Adds a small box to the buddy list that shows if you have new mail." +msgstr "" + +#: ../plugins/mono/loader/mono.c:213 +#, fuzzy +msgid "Mono Plugin Loader" +msgstr "خطأ داخلي في محمل GIF (%s)" + +#: ../plugins/mono/loader/mono.c:215 +#: ../plugins/mono/loader/mono.c:216 +msgid "Loads .NET plugins with Mono." +msgstr "" + +#: ../plugins/musicmessaging/musicmessaging.c:44 +msgid "A music messaging session has been requested. Please click the MM icon to accept." +msgstr "" + +#: ../plugins/musicmessaging/musicmessaging.c:45 +msgid "Music messaging session confirmed." +msgstr "" + +#: ../plugins/musicmessaging/musicmessaging.c:416 +msgid "Music Messaging" +msgstr "رسائل موسيقية" + +#: ../plugins/musicmessaging/musicmessaging.c:417 +msgid "There was a conflict in running the command:" +msgstr "" + +#: ../plugins/musicmessaging/musicmessaging.c:525 +#, fuzzy +msgid "Error Running Editor" +msgstr "خطأ أثناء التحويل: %s" + +#: ../plugins/musicmessaging/musicmessaging.c:526 +msgid "The following error has occured:" +msgstr "" + +#. Configuration frame +#: ../plugins/musicmessaging/musicmessaging.c:625 +#, fuzzy +msgid "Music Messaging Configuration" +msgstr "&مساعد ضبط الشبكة" + +#: ../plugins/musicmessaging/musicmessaging.c:629 +#, fuzzy +msgid "Score Editor Path" +msgstr "محرر صوت رقمي حر" + +#: ../plugins/musicmessaging/musicmessaging.c:630 +msgid "_Apply" +msgstr "_تنفيذ" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#. *< name +#. *< version +#: ../plugins/musicmessaging/musicmessaging.c:665 +msgid "Music Messaging Plugin for collaborative composition." +msgstr "" + +#. * summary +#: ../plugins/musicmessaging/musicmessaging.c:667 +msgid "The Music Messaging Plugin allows a number of users to simultaneously work on a piece of music by editting a common score in real-time." +msgstr "" + +#. ---------- "Notify For" ---------- +#: ../plugins/notify.c:638 +#, fuzzy +msgid "Notify For" +msgstr "بحث عن؟" + +#: ../plugins/notify.c:642 +msgid "_IM windows" +msgstr "" + +#: ../plugins/notify.c:649 +msgid "C_hat windows" +msgstr "" + +#: ../plugins/notify.c:657 +msgid "\t_Only when someone says your screen name" +msgstr "" + +#: ../plugins/notify.c:667 +msgid "_Focused windows" +msgstr "" + +#. ---------- "Notification Methods" ---------- +#: ../plugins/notify.c:675 +#, fuzzy +msgid "Notification Methods" +msgstr "طرق ال_إدخال" + +#: ../plugins/notify.c:682 +msgid "Prepend _string into window title:" +msgstr "" + +#. Count method button +#: ../plugins/notify.c:701 +msgid "Insert c_ount of new messages into window title" +msgstr "" + +#. Urgent method button +#: ../plugins/notify.c:710 +msgid "Set window manager \"_URGENT\" hint" +msgstr "" + +#. Raise window method button +#: ../plugins/notify.c:719 +#, fuzzy +msgid "R_aise conversation window" +msgstr "ملائمة للنافذة\tCtrl+F" + +#. ---------- "Notification Removals" ---------- +#: ../plugins/notify.c:727 +#, fuzzy +msgid "Notification Removal" +msgstr "إزالة الضوضاء" + +#. Remove on focus button +#: ../plugins/notify.c:732 +msgid "Remove when conversation window _gains focus" +msgstr "" + +#. Remove on click button +#: ../plugins/notify.c:739 +msgid "Remove when conversation window _receives click" +msgstr "" + +#. Remove on type button +#: ../plugins/notify.c:747 +msgid "Remove when _typing in conversation window" +msgstr "" + +#. Remove on message send button +#: ../plugins/notify.c:755 +msgid "Remove when a _message gets sent" +msgstr "" + +#. Remove on conversation switch button +#: ../plugins/notify.c:764 +msgid "Remove on switch to conversation ta_b" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/notify.c:853 +#, fuzzy +msgid "Message Notification" +msgstr "هوية رسالة" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/notify.c:856 +#: ../plugins/notify.c:858 +msgid "Provides a variety of ways of notifying you of unread messages." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/perl/perl.c:583 +#, fuzzy +msgid "Perl Plugin Loader" +msgstr "خطأ داخلي في محمل GIF (%s)" + +#. *< name +#. *< version +#. *< summary +#: ../plugins/perl/perl.c:585 +#: ../plugins/perl/perl.c:586 +msgid "Provides support for loading perl plugins." +msgstr "" + +#: ../plugins/psychic.c:19 +#, fuzzy +msgid "Psychic Mode" +msgstr "&طريقة النقل" + +#: ../plugins/psychic.c:20 +msgid "Psychic mode for incoming conversation" +msgstr "" + +#: ../plugins/psychic.c:21 +msgid "Causes conversation windows to appear as other users begin to message you. This works for AIM, ICQ, Jabber, Sametime, and Yahoo!" +msgstr "" + +#. This is a quote from Star Wars. You should +#. probably not translate it literally. If +#. you can't find a fitting cultural reference +#. in your language, consider translating +#. something like this instead: +#. "You feel a new message coming." +#: ../plugins/psychic.c:63 +msgid "You feel a disturbance in the force..." +msgstr "" + +#: ../plugins/psychic.c:82 +msgid "Only enable for users on the buddy list" +msgstr "" + +#: ../plugins/psychic.c:87 +msgid "Disable when away" +msgstr "تعطيب عندما تكون الحالة بعيد" + +#: ../plugins/psychic.c:91 +msgid "Display notification message in conversations" +msgstr "" + +#: ../plugins/raw.c:175 +msgid "Raw" +msgstr "خام" + +#: ../plugins/raw.c:177 +msgid "Lets you send raw input to text-based protocols." +msgstr "" + +#: ../plugins/raw.c:178 +msgid "Lets you send raw input to text-based protocols (Jabber, MSN, IRC, TOC). Hit 'Enter' in the entry box to send. Watch the debug window." +msgstr "" + +#: ../plugins/relnot.c:63 +#, c-format +msgid "You are using Gaim version %s. The current version is %s.<hr>" +msgstr "" + +#: ../plugins/relnot.c:69 +#, c-format +msgid "" +"<b>ChangeLog:</b>\n" +"%s<br><br>" +msgstr "" + +#: ../plugins/relnot.c:74 +#, c-format +msgid "You can get version %s from:<br><a href=\"http://gaim.sourceforge.net/\">http://gaim.sourceforge.net</a>." +msgstr "" + +#: ../plugins/relnot.c:78 +#: ../plugins/relnot.c:79 +msgid "New Version Available" +msgstr "نسخة جديدة متاحة" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/relnot.c:137 +msgid "Release Notification" +msgstr "" + +#. *< name +#. *< version +#. * summary +#: ../plugins/relnot.c:140 +msgid "Checks periodically for new releases." +msgstr "" + +#. * description +#: ../plugins/relnot.c:142 +msgid "Checks periodically for new releases and notifies the user with the ChangeLog." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/signals-test.c:684 +#, fuzzy +msgid "Signals Test" +msgstr "اختبار الضبط" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/signals-test.c:687 +#: ../plugins/signals-test.c:689 +msgid "Test to see that all signals are working properly." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/simple.c:37 +msgid "Simple Plugin" +msgstr "" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/simple.c:40 +#: ../plugins/simple.c:42 +msgid "Tests to see that most things are working." +msgstr "" + +#: ../plugins/spellchk.c:1945 +msgid "Duplicate Correction" +msgstr "" + +#: ../plugins/spellchk.c:1946 +msgid "The specified word already exists in the correction list." +msgstr "" + +#: ../plugins/spellchk.c:2154 +#, fuzzy +msgid "Text Replacements" +msgstr "نص كلمة السر" + +#: ../plugins/spellchk.c:2177 +msgid "You type" +msgstr "أنت تكتب" + +#: ../plugins/spellchk.c:2191 +msgid "You send" +msgstr "أنت تبعث" + +#: ../plugins/spellchk.c:2205 +msgid "Whole words only" +msgstr "كلمات كاملة فقط" + +#: ../plugins/spellchk.c:2217 +msgid "Case sensitive" +msgstr "حالة حساسة" + +#: ../plugins/spellchk.c:2243 +msgid "Add a new text replacement" +msgstr "" + +#: ../plugins/spellchk.c:2259 +msgid "You _type:" +msgstr "أنت _تكتب" + +#: ../plugins/spellchk.c:2276 +msgid "You _send:" +msgstr "أنت _ترسل" + +#. Created here so it can be passed to whole_words_button_toggled. +#: ../plugins/spellchk.c:2288 +msgid "_Exact case match (uncheck for automatic case handling)" +msgstr "" + +#: ../plugins/spellchk.c:2290 +msgid "Only replace _whole words" +msgstr "" + +#: ../plugins/spellchk.c:2315 +msgid "General Text Replacement Options" +msgstr "" + +#: ../plugins/spellchk.c:2316 +msgid "Enable replacement of last word on send" +msgstr "" + +#: ../plugins/spellchk.c:2341 +#, fuzzy +msgid "Text replacement" +msgstr "نص كلمة السر" + +#: ../plugins/spellchk.c:2343 +#: ../plugins/spellchk.c:2344 +msgid "Replaces text in outgoing messages according to user-defined rules." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ssl/ssl-gnutls.c:256 +msgid "GNUTLS" +msgstr "جنويتلس" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/ssl/ssl-gnutls.c:259 +#: ../plugins/ssl/ssl-gnutls.c:261 +msgid "Provides SSL support through GNUTLS." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ssl/ssl-nss.c:412 +msgid "NSS" +msgstr "NSS" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/ssl/ssl-nss.c:415 +#: ../plugins/ssl/ssl-nss.c:417 +msgid "Provides SSL support through Mozilla NSS." +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ssl/ssl.c:94 +msgid "SSL" +msgstr "SSL" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/ssl/ssl.c:97 +#: ../plugins/ssl/ssl.c:99 +msgid "Provides a wrapper around SSL support libraries." +msgstr "" + +#: ../plugins/statenotify.c:50 +#, c-format +msgid "%s is no longer away." +msgstr "" + +#: ../plugins/statenotify.c:52 +#, fuzzy, c-format +msgid "%s has gone away." +msgstr "ارتفاع الأيقونة صفر" + +#: ../plugins/statenotify.c:62 +#, fuzzy, c-format +msgid "%s has become idle." +msgstr "ارتفاع الأيقونة صفر" + +#: ../plugins/statenotify.c:64 +#, c-format +msgid "%s is no longer idle." +msgstr "" + +#: ../plugins/statenotify.c:73 +#, fuzzy, c-format +msgid "%s has signed on." +msgstr "خطأ في السطر %d: %s" + +#: ../plugins/statenotify.c:91 +msgid "Notify When" +msgstr "تذكير عندما" + +#: ../plugins/statenotify.c:94 +msgid "Buddy Goes _Away" +msgstr "" + +#: ../plugins/statenotify.c:97 +msgid "Buddy Goes _Idle" +msgstr "" + +#: ../plugins/statenotify.c:100 +msgid "Buddy _Signs On/Off" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/statenotify.c:142 +msgid "Buddy State Notification" +msgstr "" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/statenotify.c:145 +#: ../plugins/statenotify.c:148 +msgid "Notifies in a conversation window when a buddy goes or returns from away or idle." +msgstr "" + +#: ../plugins/tcl/tcl.c:413 +#, fuzzy +msgid "Tcl Plugin Loader" +msgstr "خطأ داخلي في محمل GIF (%s)" + +#: ../plugins/tcl/tcl.c:415 +#: ../plugins/tcl/tcl.c:416 +msgid "Provides support for loading Tcl plugins" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/ticker/ticker.c:77 +#: ../plugins/ticker/ticker.c:355 +msgid "Buddy Ticker" +msgstr "" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/ticker/ticker.c:358 +#: ../plugins/ticker/ticker.c:360 +msgid "A horizontal scrolling version of the buddy list." +msgstr "" + +#: ../plugins/timestamp.c:186 +msgid "iChat Timestamp" +msgstr "" + +#: ../plugins/timestamp.c:193 +msgid "Delay" +msgstr "تأخير" + +#: ../plugins/timestamp.c:200 +msgid "minutes." +msgstr "دقائق" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/timestamp.c:256 +msgid "Timestamp" +msgstr "طابع وقتى" + +#. *< name +#. *< version +#. * summary +#. * description +#: ../plugins/timestamp.c:259 +#: ../plugins/timestamp.c:261 +msgid "Adds iChat-style timestamps to conversations every N minutes." +msgstr "" + +#: ../plugins/timestamp_format.c:22 +#, fuzzy +msgid "Timestamp Format Options" +msgstr "عرض خيارات المساعدة" + +#: ../plugins/timestamp_format.c:27 +msgid "_Force (traditional Gaim) 24-hour time format" +msgstr "" + +#: ../plugins/timestamp_format.c:30 +msgid "Show dates in..." +msgstr "أظهر التاريخ ب" + +#: ../plugins/timestamp_format.c:35 +#, fuzzy +msgid "Co_nversations:" +msgstr "تع&ليقات" + +#: ../plugins/timestamp_format.c:37 +#: ../plugins/timestamp_format.c:46 +msgid "For delayed messages" +msgstr "للرسائل المتأخرة" + +#: ../plugins/timestamp_format.c:38 +#: ../plugins/timestamp_format.c:47 +msgid "For delayed messages and in chats" +msgstr "" + +#: ../plugins/timestamp_format.c:44 +msgid "_Message Logs:" +msgstr "_دفاتر الرسائل" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/timestamp_format.c:149 +#, fuzzy +msgid "Message Timestamp Formats" +msgstr "يفنح عرض سجل الرسائل " + +#. *< name +#. *< version +#. * summary +#: ../plugins/timestamp_format.c:152 +msgid "Customizes the message timestamp formats." +msgstr "" + +#. * description +#: ../plugins/timestamp_format.c:154 +msgid "This plugin allows the user to customize conversation and logging message timestamp formats." +msgstr "" + +#: ../plugins/win32/transparency/win2ktrans.c:183 +#: ../plugins/win32/transparency/win2ktrans.c:569 +#: ../plugins/win32/transparency/win2ktrans.c:616 +#, fuzzy +msgid "Opacity:" +msgstr "الت_عتيم:" + +#. IM Convo trans options +#: ../plugins/win32/transparency/win2ktrans.c:533 +msgid "IM Conversation Windows" +msgstr "" + +#: ../plugins/win32/transparency/win2ktrans.c:534 +#, fuzzy +msgid "_IM window transparency" +msgstr "ملائمة للنافذة\tCtrl+F" + +#: ../plugins/win32/transparency/win2ktrans.c:548 +msgid "_Show slider bar in IM window" +msgstr "" + +#: ../plugins/win32/transparency/win2ktrans.c:555 +msgid "Remove IM window transparency on focus" +msgstr "" + +#: ../plugins/win32/transparency/win2ktrans.c:558 +#: ../plugins/win32/transparency/win2ktrans.c:606 +msgid "Always on top" +msgstr "دائما على الاعلى" + +#. Buddy List trans options +#: ../plugins/win32/transparency/win2ktrans.c:590 +#, fuzzy +msgid "Buddy List Window" +msgstr "قائمة ألسنة الصفحات" + +#: ../plugins/win32/transparency/win2ktrans.c:591 +msgid "_Buddy List window transparency" +msgstr "" + +#: ../plugins/win32/transparency/win2ktrans.c:604 +msgid "Remove Buddy List window transparency on focus" +msgstr "" + +#. *< type +#. *< ui_requirement +#. *< flags +#. *< dependencies +#. *< priority +#. *< id +#: ../plugins/win32/transparency/win2ktrans.c:658 +#, fuzzy +msgid "Transparency" +msgstr "الشفافية" + +#. *< name +#. *< version +#. * summary +#: ../plugins/win32/transparency/win2ktrans.c:661 +msgid "Variable Transparency for the buddy list and conversations." +msgstr "" + +#. * description +#: ../plugins/win32/transparency/win2ktrans.c:663 +msgid "" +"This plugin enables variable alpha transparency on conversation windows and the buddy list.\n" +"\n" +"* Note: This plugin requires Win2000 or greater." +msgstr "" + +#: ../plugins/win32/winprefs/winprefs.c:434 +msgid "GTK+ Runtime Version" +msgstr "GTK+ Runtime نسخة" + +#. Autostart +#: ../plugins/win32/winprefs/winprefs.c:442 +msgid "Startup" +msgstr "البداية" + +#: ../plugins/win32/winprefs/winprefs.c:443 +msgid "_Start Gaim on Windows startup" +msgstr "" + +#. Buddy List +#: ../plugins/win32/winprefs/winprefs.c:455 +#: ../src/gtkblist.c:3687 +msgid "Buddy List" +msgstr "قائمة الأصحاب" + +#: ../plugins/win32/winprefs/winprefs.c:456 +#, fuzzy +msgid "_Dockable Buddy List" +msgstr "قائمة ألسنة الصفحات" + +#. Blist On Top +#: ../plugins/win32/winprefs/winprefs.c:460 +msgid "_Keep Buddy List window on top:" +msgstr "" + +#. XXX: Did this ever work? +#: ../plugins/win32/winprefs/winprefs.c:465 +#, fuzzy +msgid "Only when docked" +msgstr "تط&بيق على التنزيلات فقط" + +#. Conversations +#: ../plugins/win32/winprefs/winprefs.c:469 +#: ../src/gtkprefs.c:819 +#: ../src/gtkprefs.c:1879 +msgid "Conversations" +msgstr "محادثات" + +#: ../plugins/win32/winprefs/winprefs.c:470 +msgid "_Flash window when messages are received" +msgstr "" + +#: ../plugins/win32/winprefs/winprefs.c:494 +#, fuzzy +msgid "WinGaim Options" +msgstr "خيارات التّطبيق:" + +#: ../plugins/win32/winprefs/winprefs.c:496 +msgid "Options specific to Windows Gaim." +msgstr "" + +#: ../plugins/win32/winprefs/winprefs.c:497 +msgid "Provides options specific to Windows Gaim, such as buddy list docking and conversation flashing." +msgstr "" + +#: ../src/account.c:773 +msgid "accounts" +msgstr "حسابات" + +#: ../src/account.c:917 +msgid "Password is required to sign on." +msgstr "" + +#: ../src/account.c:942 +#, c-format +msgid "Enter password for %s (%s)" +msgstr "%s (%s) أدخل كلمة المرور ل" + +#: ../src/account.c:949 +msgid "Enter Password" +msgstr "أدخل كلمة المرور" + +#: ../src/account.c:954 +msgid "Save password" +msgstr "أحفظ كلمة المرور" + +#. * +#. * A wrapper for gaim_request_action() that uses @c OK and @c Cancel buttons. +#. +#: ../src/account.c:962 +#: ../src/account.c:1133 +#: ../src/gtkblist.c:3570 +#: ../src/gtkdialogs.c:615 +#: ../src/gtkdialogs.c:752 +#: ../src/gtkdialogs.c:826 +#: ../src/gtkrequest.c:269 +#: ../src/protocols/gg/gg.c:497 +#: ../src/protocols/gg/gg.c:655 +#: ../src/protocols/gg/gg.c:791 +#: ../src/protocols/jabber/jabber.c:1339 +#: ../src/protocols/jabber/xdata.c:337 +#: ../src/protocols/msn/msn.c:250 +#: ../src/protocols/msn/msn.c:265 +#: ../src/protocols/msn/msn.c:280 +#: ../src/protocols/msn/msn.c:295 +#: ../src/protocols/oscar/oscar.c:1367 +#: ../src/protocols/oscar/oscar.c:2129 +#: ../src/protocols/oscar/oscar.c:2216 +#: ../src/protocols/oscar/oscar.c:5690 +#: ../src/protocols/oscar/oscar.c:5892 +#: ../src/protocols/oscar/oscar.c:5917 +#: ../src/protocols/oscar/oscar.c:5973 +#: ../src/protocols/silc/buddy.c:466 +#: ../src/protocols/silc/buddy.c:1182 +#: ../src/protocols/silc/chat.c:424 +#: ../src/protocols/silc/chat.c:462 +#: ../src/protocols/silc/chat.c:725 +#: ../src/protocols/silc/ops.c:1297 +#: ../src/protocols/silc/ops.c:1910 +#: ../src/protocols/silc/silc.c:753 +#: ../src/protocols/yahoo/yahoo.c:3087 +#: ../src/protocols/yahoo/yahoo.c:3096 +#: ../src/request.h:1344 +msgid "OK" +msgstr "موافق" + +#: ../src/account.c:963 +#: ../src/account.c:1134 +#: ../src/account.c:1171 +#: ../src/gtkaccount.c:2173 +#: ../src/gtkaccount.c:2643 +#: ../src/gtkblist.c:5050 +#: ../src/gtkdialogs.c:616 +#: ../src/gtkdialogs.c:753 +#: ../src/gtkdialogs.c:827 +#: ../src/gtkdialogs.c:846 +#: ../src/gtkdialogs.c:868 +#: ../src/gtkdialogs.c:888 +#: ../src/gtkdialogs.c:932 +#: ../src/gtkdialogs.c:987 +#: ../src/gtkdialogs.c:1024 +#: ../src/gtkdialogs.c:1049 +#: ../src/gtkimhtmltoolbar.c:419 +#: ../src/gtkplugin.c:296 +#: ../src/gtkpounce.c:1088 +#: ../src/gtkprivacy.c:566 +#: ../src/gtkprivacy.c:579 +#: ../src/gtkprivacy.c:604 +#: ../src/gtkprivacy.c:615 +#: ../src/gtkrequest.c:270 +#: ../src/gtksavedstatuses.c:296 +#: ../src/protocols/gg/gg.c:498 +#: ../src/protocols/gg/gg.c:656 +#: ../src/protocols/gg/gg.c:792 +#: ../src/protocols/gg/gg.c:871 +#: ../src/protocols/jabber/buddy.c:594 +#: ../src/protocols/jabber/buddy.c:1727 +#: ../src/protocols/jabber/buddy.c:1761 +#: ../src/protocols/jabber/chat.c:778 +#: ../src/protocols/jabber/jabber.c:839 +#: ../src/protocols/jabber/jabber.c:1340 +#: ../src/protocols/jabber/xdata.c:338 +#: ../src/protocols/msn/msn.c:251 +#: ../src/protocols/msn/msn.c:266 +#: ../src/protocols/msn/msn.c:281 +#: ../src/protocols/msn/msn.c:296 +#: ../src/protocols/msn/msn.c:313 +#: ../src/protocols/oscar/oscar.c:1368 +#: ../src/protocols/oscar/oscar.c:2130 +#: ../src/protocols/oscar/oscar.c:2169 +#: ../src/protocols/oscar/oscar.c:2217 +#: ../src/protocols/oscar/oscar.c:5691 +#: ../src/protocols/oscar/oscar.c:5743 +#: ../src/protocols/oscar/oscar.c:5893 +#: ../src/protocols/oscar/oscar.c:5918 +#: ../src/protocols/oscar/oscar.c:5974 +#: ../src/protocols/oscar/oscar.c:6043 +#: ../src/protocols/oscar/peer.c:992 +#: ../src/protocols/sametime/sametime.c:3365 +#: ../src/protocols/sametime/sametime.c:3450 +#: ../src/protocols/sametime/sametime.c:3620 +#: ../src/protocols/sametime/sametime.c:5320 +#: ../src/protocols/sametime/sametime.c:5409 +#: ../src/protocols/sametime/sametime.c:5533 +#: ../src/protocols/silc/buddy.c:467 +#: ../src/protocols/silc/buddy.c:1078 +#: ../src/protocols/silc/buddy.c:1183 +#: ../src/protocols/silc/chat.c:597 +#: ../src/protocols/silc/chat.c:726 +#: ../src/protocols/silc/ops.c:1911 +#: ../src/protocols/silc/silc.c:754 +#: ../src/protocols/silc/silc.c:959 +#: ../src/protocols/yahoo/yahoo.c:3088 +#: ../src/protocols/yahoo/yahoo.c:3097 +#: ../src/request.h:1344 +#: ../src/request.h:1354 +msgid "Cancel" +msgstr "الغاء" + +#: ../src/account.c:988 +#: ../src/connection.c:96 +#, c-format +msgid "Missing protocol plugin for %s" +msgstr "" + +#: ../src/account.c:990 +#: ../src/connection.c:99 +#: ../src/gtkblist.c:3568 +msgid "Connection Error" +msgstr "خطأ فى الأتصال" + +#: ../src/account.c:1070 +#: ../src/protocols/gg/gg.c:696 +#: ../src/protocols/jabber/jabber.c:1292 +msgid "New passwords do not match." +msgstr "كلمات المرور الجديدة لا تتطابق" + +#: ../src/account.c:1079 +msgid "Fill out all fields completely." +msgstr "" + +#: ../src/account.c:1102 +msgid "Original password" +msgstr "كلمة المرور الأصلية" + +#: ../src/account.c:1109 +msgid "New password" +msgstr "كلمة مرور جديدة" + +#: ../src/account.c:1116 +msgid "New password (again)" +msgstr "كلمة المرور الجديدة ـ مرةأخرىـ" + +#: ../src/account.c:1122 +#, fuzzy, c-format +msgid "Change password for %s" +msgstr "طلب كلمة المرور" + +#: ../src/account.c:1130 +msgid "Please enter your current password and your new password." +msgstr "" + +#: ../src/account.c:1163 +#, fuzzy, c-format +msgid "Change user information for %s" +msgstr "لم أستطع تلقي معلومات عن الملف '%s': %s" + +#: ../src/account.c:1166 +#: ../src/protocols/toc/toc.c:1685 +#, fuzzy +msgid "Set User Info" +msgstr "اعترض من قبل المستخدم" + +#: ../src/account.c:1170 +#: ../src/gtkdebug.c:684 +#: ../src/gtkrequest.c:276 +#: ../src/protocols/jabber/buddy.c:593 +msgid "Save" +msgstr "حفظ" + +#: ../src/account.c:1675 +#: ../src/gtkft.c:159 +#: ../src/protocols/gg/gg.c:1002 +#: ../src/protocols/jabber/buddy.c:636 +#: ../src/protocols/jabber/buddy.c:1363 +#: ../src/protocols/jabber/buddy.c:1380 +#: ../src/protocols/novell/novell.c:2858 +msgid "Unknown" +msgstr "مجهول" + +#: ../src/blist.c:543 +msgid "buddy list" +msgstr "قائمة الأصحاب" + +#: ../src/blist.c:1182 +msgid "Chats" +msgstr "دردشات" + +#: ../src/blist.c:1904 +#, c-format +msgid "%d buddy from group %s was not removed because it belongs to an account which is disabled or offline. This buddy and the group were not removed.\n" +msgid_plural "%d buddies from group %s were not removed because they belong to accounts which are currently disabled or offline. These buddies and the group were not removed.\n" +msgstr[0] "" +msgstr[1] "" + +#: ../src/blist.c:1914 +msgid "Group not removed" +msgstr "المجموعة لم تزال" + +#: ../src/connection.c:98 +msgid "Registration Error" +msgstr "خطأ فى التسجيل" + +#: ../src/connection.c:277 +#, fuzzy, c-format +msgid "+++ %s signed on" +msgstr "تشغيل القفز" + +#: ../src/connection.c:310 +#, fuzzy, c-format +msgid "+++ %s signed off" +msgstr "وقف القفز" + +#: ../src/conversation.c:164 +msgid "Unable to send message: The message is too large." +msgstr "" + +#: ../src/conversation.c:167 +#: ../src/conversation.c:180 +#, fuzzy, c-format +msgid "Unable to send message to %s." +msgstr "فشل فى ارسال الامر" + +#: ../src/conversation.c:168 +msgid "The message is too large." +msgstr "الرسالة كبيرة للغاية" + +#: ../src/conversation.c:177 +msgid "Unable to send message." +msgstr "عاجز عن أرسال الرسالة" + +#: ../src/conversation.c:1528 +#, fuzzy, c-format +msgid "%s entered the room." +msgstr "غرفة الطعام" + +#: ../src/conversation.c:1531 +#, fuzzy, c-format +msgid "%s [<I>%s</I>] entered the room." +msgstr "غرفة الطعام" + +#: ../src/conversation.c:1636 +#, c-format +msgid "You are now known as %s" +msgstr "%s أنت الأن معروف كا" + +#: ../src/conversation.c:1656 +#, fuzzy, c-format +msgid "%s is now known as %s" +msgstr "اسم الكيان '%s' غير معروف" + +#: ../src/conversation.c:1729 +#, fuzzy, c-format +msgid "%s left the room." +msgstr "غرفة الطعام" + +#: ../src/conversation.c:1732 +#, fuzzy, c-format +msgid "%s left the room (%s)." +msgstr "غرفة الطعام" + +#: ../src/desktopitem.c:286 +#: ../src/desktopitem.c:877 +msgid "No name" +msgstr "بدون أسم" + +#: ../src/ft.c:189 +#: ../src/protocols/msn/msn.c:410 +#, fuzzy, c-format +msgid "" +"Error reading %s: \n" +"%s.\n" +msgstr "خطأ عند قراءة الملف '%s': %s" + +#: ../src/ft.c:193 +#, fuzzy, c-format +msgid "" +"Error writing %s: \n" +"%s.\n" +msgstr "فى الكتابة الى المقبس%dخطأ" + +#: ../src/ft.c:197 +#, fuzzy, c-format +msgid "" +"Error accessing %s: \n" +"%s.\n" +msgstr "خطأ خطير" + +#: ../src/ft.c:230 +#, fuzzy +msgid "Cannot send a file of 0 bytes." +msgstr "غير قادر على تحميل شريط المهام من ملف الموارد" + +#: ../src/ft.c:240 +#, fuzzy +msgid "Cannot send a directory." +msgstr "خطأ أثناء فتح الدليل '%s': %s" + +#: ../src/ft.c:249 +#, c-format +msgid "%s is not a regular file. Cowardly refusing to overwrite it.\n" +msgstr "" + +#: ../src/ft.c:307 +#, fuzzy, c-format +msgid "%s wants to send you %s (%s)" +msgstr "فشل فى ارسال الامر" + +#: ../src/ft.c:314 +#, c-format +msgid "%s wants to send you a file" +msgstr "" + +#: ../src/ft.c:355 +#, c-format +msgid "Accept file transfer request from %s?" +msgstr "" + +#: ../src/ft.c:359 +#, c-format +msgid "" +"A file is available for download from:\n" +"Remote host: %s\n" +"Remote port: %d" +msgstr "" + +#: ../src/ft.c:392 +#, c-format +msgid "%s is offering to send file %s" +msgstr "" + +#: ../src/ft.c:444 +#, fuzzy, c-format +msgid "%s is not a valid filename.\n" +msgstr "غير قابل للكتابة %s المجلد" + +#: ../src/ft.c:465 +#, fuzzy, c-format +msgid "Offering to send %s to %s" +msgstr "فشل فى ارسال الامر" + +#: ../src/ft.c:477 +#, fuzzy, c-format +msgid "Starting transfer of %s from %s" +msgstr "قطع الاتصال مع الخادم" + +#: ../src/ft.c:631 +#, fuzzy, c-format +msgid "Transfer of file %s complete" +msgstr "تم نقل الملف بنجاح" + +#: ../src/ft.c:634 +#, fuzzy +msgid "File transfer complete" +msgstr "تم نقل الملف بنجاح" + +#: ../src/ft.c:1023 +#, fuzzy, c-format +msgid "You canceled the transfer of %s" +msgstr "وضع النقل الافتراضى" + +#: ../src/ft.c:1028 +#, fuzzy +msgid "File transfer cancelled" +msgstr "تم نقل الملف بنجاح" + +#: ../src/ft.c:1086 +#, fuzzy, c-format +msgid "%s canceled the transfer of %s" +msgstr "&طريقة النقل" + +#: ../src/ft.c:1091 +#, fuzzy, c-format +msgid "%s canceled the file transfer" +msgstr "تم نقل الملف بنجاح" + +#: ../src/ft.c:1148 +#, fuzzy, c-format +msgid "File transfer to %s failed." +msgstr "فشل انشاء الملف '%s': %s" + +#: ../src/ft.c:1150 +#, fuzzy, c-format +msgid "File transfer from %s failed." +msgstr "فشلت القراءة من الملف '%s': %s" + +#: ../src/gtkaccount.c:372 +#, fuzzy, c-format +msgid "" +"<b>File:</b> %s\n" +"<b>File size:</b> %s\n" +"<b>Image size:</b> %dx%d" +msgstr "تهيئة ملف صورة لا بمكن تمييزها" + +#. Build the login options frame. +#: ../src/gtkaccount.c:758 +msgid "Login Options" +msgstr "خيارات الدخول" + +#: ../src/gtkaccount.c:775 +#: ../src/gtkft.c:642 +msgid "Protocol:" +msgstr "البروتوكول" + +#: ../src/gtkaccount.c:854 +msgid "Password:" +msgstr "كلمة المرور" + +#: ../src/gtkaccount.c:859 +#, fuzzy +msgid "Local alias:" +msgstr "مضادّ للاسم المستعار" + +#: ../src/gtkaccount.c:863 +#, fuzzy +msgid "Remember password" +msgstr "نص كلمة السر" + +#. Build the user options frame. +#: ../src/gtkaccount.c:915 +msgid "User Options" +msgstr "خيارات المستخدم" + +#: ../src/gtkaccount.c:928 +#, fuzzy +msgid "New mail notifications" +msgstr "ينسخ البريد إلى" + +#: ../src/gtkaccount.c:937 +#, fuzzy +msgid "Buddy icon:" +msgstr "أيقونة المكتب" + +#. Build the protocol options frame. +#: ../src/gtkaccount.c:1028 +#, c-format +msgid "%s Options" +msgstr "%s خيارات" + +#: ../src/gtkaccount.c:1229 +msgid "Use Global Proxy Settings" +msgstr "" + +#: ../src/gtkaccount.c:1235 +msgid "No Proxy" +msgstr "Proxy بدون" + +#: ../src/gtkaccount.c:1241 +msgid "HTTP" +msgstr "HTTP" + +#: ../src/gtkaccount.c:1247 +msgid "SOCKS 4" +msgstr "SOCKS 4" + +#: ../src/gtkaccount.c:1253 +msgid "SOCKS 5" +msgstr "SOCKS 5" + +#: ../src/gtkaccount.c:1259 +#: ../src/gtkprefs.c:1058 +#, fuzzy +msgid "Use Environmental Settings" +msgstr "أستخدام مجموعة &حروف من قبل المستخدم" + +#. This is an easter egg. +#. It means one of two things, both intended as humourus: +#. A) your network is really slow and you have nothing better to do than +#. look at butterflies. +#. B)You are looking really closely at something that shouldn't matter. +#: ../src/gtkaccount.c:1298 +msgid "If you look real closely" +msgstr "" + +#. This is an easter egg. See the comment on the previous line in the source. +#: ../src/gtkaccount.c:1301 +msgid "you can see the butterflies mating" +msgstr "" + +#: ../src/gtkaccount.c:1322 +msgid "Proxy Options" +msgstr "Proxy خيارات" + +#: ../src/gtkaccount.c:1336 +#: ../src/gtkprefs.c:1052 +msgid "Proxy _type:" +msgstr "Proxy _نوع" + +#: ../src/gtkaccount.c:1345 +#: ../src/gtkprefs.c:1073 +msgid "_Host:" +msgstr "_مضيف" + +#: ../src/gtkaccount.c:1349 +#: ../src/gtkprefs.c:1091 +msgid "_Port:" +msgstr "_منفذ" + +#: ../src/gtkaccount.c:1357 +msgid "_Username:" +msgstr "_أسم مستخدم" + +#: ../src/gtkaccount.c:1363 +#: ../src/gtkprefs.c:1128 +msgid "Pa_ssword:" +msgstr "كلمة _ مرور" + +#: ../src/gtkaccount.c:1738 +msgid "Add Account" +msgstr "أضف حساب" + +#: ../src/gtkaccount.c:1740 +#: ../src/gtkblist.c:3571 +msgid "Modify Account" +msgstr "عدل حساب" + +#: ../src/gtkaccount.c:1762 +msgid "_Basic" +msgstr "_مبدئى" + +#: ../src/gtkaccount.c:1773 +msgid "_Advanced" +msgstr "_متقدم" + +#. Register button +#: ../src/gtkaccount.c:1788 +#: ../src/protocols/jabber/jabber.c:838 +msgid "Register" +msgstr "سجل" + +#: ../src/gtkaccount.c:2167 +#: ../src/gtksavedstatuses.c:293 +#, fuzzy, c-format +msgid "Are you sure you want to delete %s?" +msgstr "هل أنت متأكد أنك تريد حفظ الملف كـ \"" + +#: ../src/gtkaccount.c:2172 +#: ../src/gtkpounce.c:1087 +#: ../src/gtkrequest.c:273 +#: ../src/gtksavedstatuses.c:295 +msgid "Delete" +msgstr "مسح" + +#: ../src/gtkaccount.c:2236 +#: ../src/gtksavedstatuses.c:893 +#: ../src/protocols/oscar/oscar.c:2781 +msgid "Screen Name" +msgstr "اسمك على الشاشة" + +#: ../src/gtkaccount.c:2267 +msgid "Protocol" +msgstr "البروتوكول" + +#: .... [truncated message content] |
From: <dat...@us...> - 2006-09-12 02:00:28
|
Revision: 17257 http://svn.sourceforge.net/gaim/?rev=17257&view=rev Author: datallah Date: 2006-09-11 19:00:10 -0700 (Mon, 11 Sep 2006) Log Message: ----------- Don't include config.h in the dist (I don't know if I can completely get rid of the gaiminclude_HEADERS variable in the root Makefile.am - someone more autotools savvy can do so if it is appropriate). Add missing wingaim Makefiles to the dist. Modified Paths: -------------- trunk/Makefile.am trunk/gtk/sounds/Makefile.am trunk/libgaim/protocols/Makefile.am Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2006-09-11 22:57:41 UTC (rev 17256) +++ trunk/Makefile.am 2006-09-12 02:00:10 UTC (rev 17257) @@ -30,7 +30,7 @@ po/Makefile.mingw gaimincludedir=$(includedir)/gaim -gaiminclude_HEADERS = config.h +nodist_gaiminclude_HEADERS = config.h pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gaim.pc Modified: trunk/gtk/sounds/Makefile.am =================================================================== --- trunk/gtk/sounds/Makefile.am 2006-09-11 22:57:41 UTC (rev 17256) +++ trunk/gtk/sounds/Makefile.am 2006-09-12 02:00:10 UTC (rev 17257) @@ -1,4 +1,5 @@ EXTRA_DIST = \ + Makefile.mingw \ alert.wav \ login.wav \ logout.wav \ Modified: trunk/libgaim/protocols/Makefile.am =================================================================== --- trunk/libgaim/protocols/Makefile.am 2006-09-11 22:57:41 UTC (rev 17256) +++ trunk/libgaim/protocols/Makefile.am 2006-09-12 02:00:10 UTC (rev 17257) @@ -1,3 +1,5 @@ +EXTRA_DIST = Makefile.mingw + DIST_SUBDIRS = bonjour gg irc jabber msn novell oscar qq sametime silc toc simple yahoo zephyr SUBDIRS = $(DYNAMIC_PRPLS) $(STATIC_PRPLS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-09-12 04:53:04
|
Revision: 17258 http://svn.sourceforge.net/gaim/?rev=17258&view=rev Author: datallah Date: 2006-09-11 21:52:55 -0700 (Mon, 11 Sep 2006) Log Message: ----------- Unless I'm missing something, VERSION.in isn't used at all anymore Modified Paths: -------------- trunk/Makefile.am trunk/configure.ac Removed Paths: ------------- trunk/VERSION.in Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2006-09-12 02:00:10 UTC (rev 17257) +++ trunk/Makefile.am 2006-09-12 04:52:55 UTC (rev 17258) @@ -10,7 +10,6 @@ README.SVN \ README.dbus \ README.mingw \ - VERSION.in \ gaim.pc.in \ gaim.spec.in \ gaim.apspec.in \ Deleted: trunk/VERSION.in =================================================================== --- trunk/VERSION.in 2006-09-12 02:00:10 UTC (rev 17257) +++ trunk/VERSION.in 2006-09-12 04:52:55 UTC (rev 17258) @@ -1 +0,0 @@ -@VERSION@ Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-09-12 02:00:10 UTC (rev 17257) +++ trunk/configure.ac 2006-09-12 04:52:55 UTC (rev 17258) @@ -1841,17 +1841,6 @@ AC_DEFINE(GAIM_FATAL_ASSERTS, 1, [Define to make assertions fatal (useful for debugging).]) fi -AC_CONFIG_COMMANDS_PRE([ - if test -e VERSION; then - cp -p VERSION VERSION.ac-save - fi -]) - -AC_CONFIG_COMMANDS_POST([ - cmp VERSION VERSION.ac-save || touch -r VERSION.ac-save VERSION - rm -f VERSION.ac-save -]) - AC_OUTPUT([Makefile Doxyfile gaim.apspec This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-09-18 01:13:43
|
Revision: 17300 http://svn.sourceforge.net/gaim/?rev=17300&view=rev Author: datallah Date: 2006-09-17 18:13:07 -0700 (Sun, 17 Sep 2006) Log Message: ----------- Fix mingw makefile .PHONY targets. Fix gtkwin32dep.h missing includes. Modified Paths: -------------- trunk/Makefile.mingw trunk/README.mingw trunk/gtk/Makefile.mingw trunk/gtk/pixmaps/Makefile.mingw trunk/gtk/pixmaps/smileys/Makefile.mingw trunk/gtk/pixmaps/smileys/default/Makefile.mingw trunk/gtk/pixmaps/smileys/none/Makefile.mingw trunk/gtk/plugins/Makefile.mingw trunk/gtk/plugins/docklet/Makefile.mingw trunk/gtk/plugins/perl/Makefile.mingw trunk/gtk/plugins/perl/common/Makefile.mingw trunk/gtk/plugins/ticker/Makefile.mingw trunk/gtk/plugins/win32/transparency/Makefile.mingw trunk/gtk/plugins/win32/winprefs/Makefile.mingw trunk/gtk/sounds/Makefile.mingw trunk/gtk/win32/IdleTracker/Makefile.mingw trunk/gtk/win32/gtkwin32dep.h trunk/libgaim/Makefile.mingw trunk/libgaim/plugins/Makefile.mingw trunk/libgaim/plugins/perl/Makefile.mingw trunk/libgaim/plugins/perl/common/Makefile.mingw trunk/libgaim/plugins/ssl/Makefile.mingw trunk/libgaim/plugins/tcl/Makefile.mingw trunk/libgaim/protocols/Makefile.mingw trunk/libgaim/protocols/bonjour/Makefile.mingw trunk/libgaim/protocols/gg/Makefile.mingw trunk/libgaim/protocols/irc/Makefile.mingw trunk/libgaim/protocols/jabber/Makefile.mingw trunk/libgaim/protocols/msn/Makefile.mingw trunk/libgaim/protocols/novell/Makefile.mingw trunk/libgaim/protocols/oscar/Makefile.mingw trunk/libgaim/protocols/qq/Makefile.mingw trunk/libgaim/protocols/sametime/Makefile.mingw trunk/libgaim/protocols/silc/Makefile.mingw trunk/libgaim/protocols/simple/Makefile.mingw trunk/libgaim/protocols/toc/Makefile.mingw trunk/libgaim/protocols/yahoo/Makefile.mingw trunk/libgaim/protocols/zephyr/Makefile.mingw trunk/po/Makefile.mingw Modified: trunk/Makefile.mingw =================================================================== --- trunk/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -31,6 +31,7 @@ exit; \ }' VERSION) +.PHONY: all install installer installer_nogtk installer_debug installers clean all: $(GAIM_CONFIG_H) $(MAKE) -C $(GAIM_LIB_TOP) -f $(GAIM_WIN32_MAKEFILE) @@ -57,8 +58,7 @@ $(MAKE) -C $(GAIM_PO_TOP) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GAIM_GTK_TOP) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GAIM_LIB_TOP) -f $(GAIM_WIN32_MAKEFILE) clean - rm -rf $(GAIM_CONFIG_H) - rm -rf gaim*.exe + rm -f $(GAIM_CONFIG_H) gaim*.exe rm -rf $(GAIM_INSTALL_PERLMOD_DIR) $(GAIM_INSTALL_PLUGINS_DIR) $(GAIM_INSTALL_PO_DIR) $(GAIM_INSTALL_DIR) include $(GAIM_COMMON_TARGETS) Modified: trunk/README.mingw =================================================================== --- trunk/README.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/README.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -1,10 +1,6 @@ -How to build Gaim using MinGw +How to build Gaim using MinGW ============================= -Since these instructions are constantly changing and in order for me to -avoid maintaining two versions of these instructions please refer to: +Since these instructions are constantly changing, please refer to: -http://gaim.sourceforge.net/win32 - -- Herman - +http://gaim.sourceforge.net/win32/build.php Modified: trunk/gtk/Makefile.mingw =================================================================== --- trunk/gtk/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -129,7 +129,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean clean_exe +.PHONY: all install clean clean_exe all: $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll $(MAKE) -C $(GAIM_GTK_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) Modified: trunk/gtk/pixmaps/Makefile.mingw =================================================================== --- trunk/gtk/pixmaps/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/pixmaps/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -10,6 +10,8 @@ datadir := $(GAIM_INSTALL_DIR) include ./Makefile.am +.PHONY: install + install: if test '$(SUBDIRS)'; then \ list='$(SUBDIRS)'; for subdir in $$list; do \ Modified: trunk/gtk/pixmaps/smileys/Makefile.mingw =================================================================== --- trunk/gtk/pixmaps/smileys/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/pixmaps/smileys/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -6,6 +6,8 @@ include ./Makefile.am +.PHONY: install + install: if test '$(SUBDIRS)'; then \ list='$(SUBDIRS)'; for subdir in $$list; do \ Modified: trunk/gtk/pixmaps/smileys/default/Makefile.mingw =================================================================== --- trunk/gtk/pixmaps/smileys/default/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/pixmaps/smileys/default/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -10,6 +10,8 @@ datadir = $(GAIM_INSTALL_DIR) include ./Makefile.am +.PHONY: install + install: if test '$(gaimsmileypix_DATA)'; then \ mkdir -p $(gaimsmileypixdir); \ Modified: trunk/gtk/pixmaps/smileys/none/Makefile.mingw =================================================================== --- trunk/gtk/pixmaps/smileys/none/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/pixmaps/smileys/none/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -10,6 +10,8 @@ datadir = $(GAIM_INSTALL_DIR) include ./Makefile.am +.PHONY: install + install: if test '$(gaimsmileypix_DATA)'; then \ mkdir -p $(gaimsmileypixdir); \ Modified: trunk/gtk/plugins/Makefile.mingw =================================================================== --- trunk/gtk/plugins/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -55,7 +55,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all clean plugins install all: plugins $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) @@ -64,7 +64,7 @@ $(MAKE) -C $(TRANSPARENCY_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(WINPREFS_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) -install: $(GAIM_INSTALL_PLUGINS_DIR) +install: all $(GAIM_INSTALL_PLUGINS_DIR) $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(GTKPERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(TICKER_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install @@ -91,8 +91,7 @@ ## CLEAN RULES ## clean: - rm -f *.o - rm -f *.dll + rm -f *.o *.dll $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GTKPERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(TICKER_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean Modified: trunk/gtk/plugins/docklet/Makefile.mingw =================================================================== --- trunk/gtk/plugins/docklet/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/docklet/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -55,7 +55,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/gtk/plugins/perl/Makefile.mingw =================================================================== --- trunk/gtk/plugins/perl/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/perl/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -10,7 +10,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(MAKE) -C ./common -f $(GAIM_WIN32_MAKEFILE) Modified: trunk/gtk/plugins/perl/common/Makefile.mingw =================================================================== --- trunk/gtk/plugins/perl/common/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/perl/common/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -82,7 +82,7 @@ ## ## TARGETS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/gtk/plugins/ticker/Makefile.mingw =================================================================== --- trunk/gtk/plugins/ticker/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/ticker/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -55,7 +55,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/gtk/plugins/win32/transparency/Makefile.mingw =================================================================== --- trunk/gtk/plugins/win32/transparency/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/win32/transparency/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -55,7 +55,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/gtk/plugins/win32/winprefs/Makefile.mingw =================================================================== --- trunk/gtk/plugins/win32/winprefs/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/plugins/win32/winprefs/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -57,7 +57,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/gtk/sounds/Makefile.mingw =================================================================== --- trunk/gtk/sounds/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/sounds/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -10,6 +10,8 @@ datadir := $(GAIM_INSTALL_DIR) include ./Makefile.am +.PHONY: install + install: if test '$(sounds_DATA)'; then \ mkdir -p $(soundsdir); \ Modified: trunk/gtk/win32/IdleTracker/Makefile.mingw =================================================================== --- trunk/gtk/win32/IdleTracker/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/win32/IdleTracker/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -23,7 +23,7 @@ ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll @@ -42,8 +42,6 @@ ## clean: - rm -rf $(OBJECTS) - rm -rf $(TARGET).dll - rm -rf $(TARGET).dll.a + rm -f $(OBJECTS) $(TARGET).dll $(TARGET).dll.a include $(GAIM_COMMON_TARGETS) Modified: trunk/gtk/win32/gtkwin32dep.h =================================================================== --- trunk/gtk/win32/gtkwin32dep.h 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/gtk/win32/gtkwin32dep.h 2006-09-18 01:13:07 UTC (rev 17300) @@ -22,6 +22,8 @@ */ #ifndef _GTKWIN32DEP_H_ #define _GTKWIN32DEP_H_ +#include <windows.h> +#include <gtk/gtk.h> HINSTANCE gtkwgaim_hinstance(void); Modified: trunk/libgaim/Makefile.mingw =================================================================== --- trunk/libgaim/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -98,7 +98,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll $(MAKE) -C $(GAIM_PROTOS_TOP) -f $(GAIM_WIN32_MAKEFILE) Modified: trunk/libgaim/plugins/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/plugins/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -42,7 +42,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all clean plugins install all: $(GAIM_LIBGAIM_DLL).a plugins $(MAKE) -C $(PERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) @@ -53,7 +53,7 @@ $(MAKE) -C $(PERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(TCL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(SSL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install - cp $(GAIM_LIB_PLUGINS_TOP)/*.dll $(GAIM_INSTALL_PLUGINS_DIR) + cp *.dll $(GAIM_INSTALL_PLUGINS_DIR) .c.dll: $(CC) $(CFLAGS) $(DEFINES) $(INCLUDE_PATHS) -o $@.o -c $< @@ -69,8 +69,7 @@ ## CLEAN RULES ## clean: - rm -rf $(GAIM_LIB_PLUGINS_TOP)/*.o - rm -rf $(GAIM_LIB_PLUGINS_TOP)/*.dll + rm -f *.o *.dll $(MAKE) -C $(PERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(TCL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(SSL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean Modified: trunk/libgaim/plugins/perl/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/perl/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/plugins/perl/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -54,7 +54,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll $(MAKE) -C ./common -f $(GAIM_WIN32_MAKEFILE) Modified: trunk/libgaim/plugins/perl/common/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/perl/common/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/plugins/perl/common/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -87,7 +87,7 @@ ## ## TARGETS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll $(AUTOSPLIT) Modified: trunk/libgaim/plugins/ssl/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/ssl/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/plugins/ssl/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -64,7 +64,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll $(TARGET_NSS).dll @@ -88,7 +88,6 @@ ## CLEAN RULES ## clean: - rm -rf $(OBJECTS) $(OBJECTS_NSS) - rm -rf $(TARGET).dll $(TARGET_NSS).dll + rm -f $(OBJECTS) $(OBJECTS_NSS) $(TARGET).dll $(TARGET_NSS).dll include $(GAIM_COMMON_TARGETS) Modified: trunk/libgaim/plugins/tcl/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/tcl/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/plugins/tcl/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -55,7 +55,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -37,6 +37,8 @@ TOC_TYPE = PLUGIN YAHOO_TYPE = PLUGIN +.PHONY: all install clean + all: $(MAKE) TYPE='$(GG_TYPE)' -C $(GG) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) TYPE='$(IRC_TYPE)' -C $(IRC) -f $(GAIM_WIN32_MAKEFILE) Modified: trunk/libgaim/protocols/bonjour/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/bonjour/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/bonjour/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -62,7 +62,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/gg/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/gg/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/gg/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -69,7 +69,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/irc/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/irc/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/irc/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -59,7 +59,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/jabber/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/jabber/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/jabber/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -73,7 +73,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/msn/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/msn/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/msn/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -83,7 +83,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/novell/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/novell/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/novell/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -66,7 +66,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/oscar/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/oscar/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/oscar/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -89,7 +89,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/qq/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/qq/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/qq/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -89,7 +89,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/sametime/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/sametime/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/sametime/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -59,7 +59,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/silc/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/silc/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/silc/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -68,7 +68,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/simple/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/simple/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/simple/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -56,7 +56,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/toc/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/toc/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/toc/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -56,7 +56,7 @@ ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/yahoo/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/yahoo/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/yahoo/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -67,7 +67,7 @@ ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/libgaim/protocols/zephyr/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/zephyr/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/libgaim/protocols/zephyr/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -127,7 +127,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all clean +.PHONY: all install clean all: $(TARGET).dll Modified: trunk/po/Makefile.mingw =================================================================== --- trunk/po/Makefile.mingw 2006-09-18 00:04:14 UTC (rev 17299) +++ trunk/po/Makefile.mingw 2006-09-18 01:13:07 UTC (rev 17300) @@ -1,5 +1,5 @@ # Makefile.mingw -# +# # Description: Makefile to generate mo files # @@ -28,6 +28,8 @@ ## TARGETS ## +.PHONY: all install clean + all: $(CATALOGS) install: all This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-09-18 02:54:01
|
Revision: 17301 http://svn.sourceforge.net/gaim/?rev=17301&view=rev Author: rlaager Date: 2006-09-17 19:53:54 -0700 (Sun, 17 Sep 2006) Log Message: ----------- SF Patch #1560154 from Patrick Cheung This changes two #include <foo.h> lines to #include "foo.h" for local headers. Modified Paths: -------------- trunk/COPYRIGHT trunk/libgaim/imgstore.c Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-09-18 01:13:07 UTC (rev 17300) +++ trunk/COPYRIGHT 2006-09-18 02:53:54 UTC (rev 17301) @@ -49,6 +49,7 @@ Cerulean Studios, LLC Jonathan Champ Christophe Chapuis +Patrick Cheung Ka-Hing Cheung Sadrul Habib Chowdhury Brian Chu Modified: trunk/libgaim/imgstore.c =================================================================== --- trunk/libgaim/imgstore.c 2006-09-18 01:13:07 UTC (rev 17300) +++ trunk/libgaim/imgstore.c 2006-09-18 02:53:54 UTC (rev 17301) @@ -25,8 +25,8 @@ */ #include <glib.h> -#include <debug.h> -#include <imgstore.h> +#include "debug.h" +#include "imgstore.h" static GSList *imgstore = NULL; static int nextid = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-09-18 04:35:18
|
Revision: 17307 http://svn.sourceforge.net/gaim/?rev=17307&view=rev Author: rlaager Date: 2006-09-17 21:35:10 -0700 (Sun, 17 Sep 2006) Log Message: ----------- SF Patch #1481843 from Sadrul It sounds like the GTK+ folks won't be fixing bug #355214: http://bugzilla.gnome.org/show_bug.cgi?id=355214 This fixes the bolding of buddies in chat rooms. Modified Paths: -------------- trunk/ChangeLog.API trunk/gtk/gtkconv.c trunk/gtk/gtkconv.h Modified: trunk/ChangeLog.API =================================================================== --- trunk/ChangeLog.API 2006-09-18 04:27:49 UTC (rev 17306) +++ trunk/ChangeLog.API 2006-09-18 04:35:10 UTC (rev 17307) @@ -132,6 +132,8 @@ clearing the search at the end. * gaim_gtkxfer_dialog_show: Can now take NULL to show (and possibly create) a default gtkxfer dialog. + * CHAT_USERS_BUDDY_COLUMN became CHAT_USERS_WEIGHT_COLUMN, along with + a change in the values stored in the column. Removed: * gaim_gtk_sound_{get,set}_mute() (replaced by the /gaim/gtk/sound/mute Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-09-18 04:27:49 UTC (rev 17306) +++ trunk/gtk/gtkconv.c 2006-09-18 04:35:10 UTC (rev 17307) @@ -3337,9 +3337,7 @@ gdk_color_parse(SEND_COLOR, &send_color); #if GTK_CHECK_VERSION(2,6,0) - gtk_list_store_insert_with_values - (ls, - &iter, + gtk_list_store_insert_with_values(ls, &iter, /* * The GTK docs are mute about the effects of the "row" value for performance. * X-Chat hardcodes their value to 0 (prepend) and -1 (append), so we will too. @@ -3347,55 +3345,52 @@ * but no one in #gtk+ seems to know anything about it either. * Inserting in the "wrong" location has no visible ill effects. - F.P. */ - -1, /* "row" */ - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, &send_color, - CHAT_USERS_BUDDY_COLUMN, is_buddy, - -1); - } - else { - gtk_list_store_insert_with_values - (ls, - &iter, - -1, /* "row" */ - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), - CHAT_USERS_BUDDY_COLUMN, is_buddy, - -1); - + -1, /* "row" */ + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, &send_color, + CHAT_USERS_WEIGHT_COLUMN ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, is_buddy, + -1); + } + else + { + gtk_list_store_insert_with_values(ls, &iter, + -1, /* "row" */ + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); #else gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, &send_color, - CHAT_USERS_BUDDY_COLUMN, is_buddy, - -1); + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, &send_color, + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); } - - else { - + else + { gtk_list_store_append(ls, &iter); gtk_list_store_set(ls, &iter, - CHAT_USERS_ICON_COLUMN, pixbuf, - CHAT_USERS_ALIAS_COLUMN, alias, - CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, - CHAT_USERS_NAME_COLUMN, name, - CHAT_USERS_FLAGS_COLUMN, flags, - CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), - CHAT_USERS_BUDDY_COLUMN, is_buddy, - -1); + CHAT_USERS_ICON_COLUMN, pixbuf, + CHAT_USERS_ALIAS_COLUMN, alias, + CHAT_USERS_ALIAS_KEY_COLUMN, alias_key, + CHAT_USERS_NAME_COLUMN, name, + CHAT_USERS_FLAGS_COLUMN, flags, + CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, name), + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, + -1); #endif } @@ -3655,15 +3650,15 @@ gint ret = 0; gtk_tree_model_get(model, a, - CHAT_USERS_ALIAS_KEY_COLUMN, &user1, - CHAT_USERS_FLAGS_COLUMN, &f1, - CHAT_USERS_BUDDY_COLUMN, &buddy1, - -1); + CHAT_USERS_ALIAS_KEY_COLUMN, &user1, + CHAT_USERS_FLAGS_COLUMN, &f1, + CHAT_USERS_WEIGHT_COLUMN, &buddy1, + -1); gtk_tree_model_get(model, b, - CHAT_USERS_ALIAS_KEY_COLUMN, &user2, - CHAT_USERS_FLAGS_COLUMN, &f2, - CHAT_USERS_BUDDY_COLUMN, &buddy2, - -1); + CHAT_USERS_ALIAS_KEY_COLUMN, &user2, + CHAT_USERS_FLAGS_COLUMN, &f2, + CHAT_USERS_WEIGHT_COLUMN, &buddy2, + -1); if (user1 == NULL || user2 == NULL) { if (!(user1 == NULL && user2 == NULL)) @@ -3672,7 +3667,7 @@ /* sort more important users first */ ret = (f1 > f2) ? -1 : 1; } else if (buddy1 != buddy2) { - ret = buddy1 ? -1 : 1; + ret = (buddy1 > buddy2) ? -1 : 1; } else { ret = strcasecmp(user1, user2); } @@ -3803,7 +3798,8 @@ gtk_tree_model_get(model, &iter, CHAT_USERS_NAME_COLUMN, &name, -1); if (!strcmp(normalized_name, gaim_normalize(conv->account, name))) { - gtk_list_store_set(GTK_LIST_STORE(model), &iter, CHAT_USERS_BUDDY_COLUMN, is_buddy, -1); + gtk_list_store_set(GTK_LIST_STORE(model), &iter, + CHAT_USERS_WEIGHT_COLUMN, is_buddy ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, -1); g_free(name); break; } @@ -3968,7 +3964,7 @@ ls = gtk_list_store_new(CHAT_USERS_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, - GDK_TYPE_COLOR, G_TYPE_BOOLEAN); + GDK_TYPE_COLOR, G_TYPE_INT); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(ls), CHAT_USERS_ALIAS_KEY_COLUMN, sort_chat_users, NULL, NULL); @@ -3990,13 +3986,13 @@ g_object_set(rend, "foreground-set", TRUE, - "weight", PANGO_WEIGHT_BOLD, + "weight-set", TRUE, NULL); col = gtk_tree_view_column_new_with_attributes(NULL, rend, - "text", CHAT_USERS_ALIAS_COLUMN, - "foreground-gdk", CHAT_USERS_COLOR_COLUMN, - "weight-set", CHAT_USERS_BUDDY_COLUMN, - NULL); + "text", CHAT_USERS_ALIAS_COLUMN, + "foreground-gdk", CHAT_USERS_COLOR_COLUMN, + "weight", CHAT_USERS_WEIGHT_COLUMN, + NULL); gaim_signal_connect(blist_handle, "buddy-added", gtkchat, GAIM_CALLBACK(buddy_added_cb), conv); Modified: trunk/gtk/gtkconv.h =================================================================== --- trunk/gtk/gtkconv.h 2006-09-18 04:27:49 UTC (rev 17306) +++ trunk/gtk/gtkconv.h 2006-09-18 04:35:10 UTC (rev 17307) @@ -48,7 +48,7 @@ CHAT_USERS_NAME_COLUMN, CHAT_USERS_FLAGS_COLUMN, CHAT_USERS_COLOR_COLUMN, - CHAT_USERS_BUDDY_COLUMN, + CHAT_USERS_WEIGHT_COLUMN, CHAT_USERS_COLUMNS }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-09-18 06:20:57
|
Revision: 17309 http://svn.sourceforge.net/gaim/?rev=17309&view=rev Author: thekingant Date: 2006-09-17 23:20:36 -0700 (Sun, 17 Sep 2006) Log Message: ----------- Rename the gntgaim executable to gaim-text I feel like this is much more clear to end users, who will probably have no idea what gnt is. Modified Paths: -------------- trunk/ChangeLog trunk/configure.ac trunk/console/Makefile.am trunk/console/gntgaim.c trunk/doc/Makefile.am Added Paths: ----------- trunk/doc/gaim-text.1.in Removed Paths: ------------- trunk/doc/gntgaim.1.in Property Changed: ---------------- trunk/console/ Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/ChangeLog 2006-09-18 06:20:36 UTC (rev 17309) @@ -5,7 +5,7 @@ * With the Core/UI split completed, it is now possible to build Gaim without any UIs, creating a libgaim library upon which other UIs may be constructed - * A new ncurses-based console UI called gntgaim is now available + * A new ncurses-based console UI called gaim-text is now available (Sadrul Habib Chowdhury, Google Summer of Code) * Reorganized the source tree to split apart the code for the UI changes and libgaim targets Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/configure.ac 2006-09-18 06:20:36 UTC (rev 17309) @@ -3,6 +3,7 @@ AC_CANONICAL_SYSTEM AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) +#AM_INIT_AUTOMAKE([foreign dist-bzip2]) AC_PREREQ([2.50]) @@ -1848,7 +1849,7 @@ gaim.service doc/Makefile doc/gaim.1 - doc/gntgaim.1 + doc/gaim-text.1 m4macros/Makefile gtk/Makefile gtk/pixmaps/Makefile Property changes on: trunk/console ___________________________________________________________________ Name: svn:ignore - Makefile.in gmon.out gntgaim .libs .deps Makefile .error *.o + Makefile.in gaim-text gmon.out .libs .deps Makefile .error *.o Modified: trunk/console/Makefile.am =================================================================== --- trunk/console/Makefile.am 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/console/Makefile.am 2006-09-18 06:20:36 UTC (rev 17309) @@ -2,9 +2,9 @@ SUBDIRS = libgnt plugins -bin_PROGRAMS = gntgaim +bin_PROGRAMS = gaim-text -gntgaim_SOURCES = \ +gaim_text_SOURCES = \ gntaccount.c \ gntblist.c \ gntconn.c \ @@ -18,7 +18,7 @@ gntstatus.c \ gntui.c -gntgaim_headers = \ +gaim_text_headers = \ gntaccount.h \ gntblist.h \ gntconn.h \ @@ -32,13 +32,13 @@ gntstatus.h \ gntui.h -gntgaimincludedir=$(includedir)/gaim/gnt -gntgaiminclude_HEADERS = \ - $(gntgaim_headers) +gaim_textincludedir=$(includedir)/gaim/gnt +gaim_textinclude_HEADERS = \ + $(gaim_text_headers) -gntgaim_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS) -gntgaim_LDFLAGS = -export-dynamic -gntgaim_LDADD = \ +gaim_text_DEPENDENCIES = @LIBOBJS@ $(STATIC_LINK_LIBS) +gaim_text_LDFLAGS = -export-dynamic +gaim_text_LDADD = \ @LIBOBJS@ \ $(DBUS_LIBS) \ $(STATIC_LINK_LIBS) \ Modified: trunk/console/gntgaim.c =================================================================== --- trunk/console/gntgaim.c 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/console/gntgaim.c 2006-09-18 06:20:36 UTC (rev 17309) @@ -245,7 +245,7 @@ } /* show version message */ if (opt_version) { - printf("gntgaim %s\n", VERSION); + printf("gaim-text %s\n", VERSION); return 0; } Modified: trunk/doc/Makefile.am =================================================================== --- trunk/doc/Makefile.am 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/doc/Makefile.am 2006-09-18 06:20:36 UTC (rev 17309) @@ -1,4 +1,4 @@ -man_MANS = gaim.1 gntgaim.1 +man_MANS = gaim.1 gaim-text.1 EXTRA_DIST = \ C-HOWTO.dox \ @@ -14,7 +14,7 @@ dbus-server-signals.dox \ gaim.1.in \ gaims_funniest_home_convos.txt \ - gntgaim.1.in \ + gaim-text.1.in \ gtkaccount-signals.dox \ gtkblist-signals.dox \ gtkconv-signals.dox \ Copied: trunk/doc/gaim-text.1.in (from rev 17300, trunk/doc/gntgaim.1.in) =================================================================== --- trunk/doc/gaim-text.1.in (rev 0) +++ trunk/doc/gaim-text.1.in 2006-09-18 06:20:36 UTC (rev 17309) @@ -0,0 +1,287 @@ +.\" Copyright (c) 2006, Sadrul Habib Chowdhury <sa...@us...> +.\" +.\" This is free documentation; 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. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual 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 manual; if not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, +.\" USA. +.TH gaim-text 1 +.SH NAME +GntGaim \- A Pimpin' Penguin console frontend for Instant Messaging client Gaim. +.SH SYNOPSIS +.TP 5 +\fBgaim-text \fI[options]\fR + +.SH DESCRIPTION +.PP +\fBgaim-text\fR is a console-based modular messaging client capable of using +AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, Novell GroupWise, Lotus Sametime, +Zephyr, Gadu-Gadu, and QQ all at once. It has many common features found in +other clients, as well as many unique features. Gaim is not endorsed by or +affiliated with America Online, ICQ, Microsoft, or Yahoo. + +.SH OPTIONS +The following options are provided by \fBgaim-text\fR using the standard GNU +command line syntax: +.TP +.B \-d, \-\-debug +Print debugging messages to stderr and start with the \fBDebug\fR window. The +messages shown in the \fBDebug\fR window are the same as the ones printed in +stderr. +.TP +.B \-c, \-\-config=\fIDIR\fB +Use \fIDIR\fR as the directory for config files instead of \fI~/.gaim\fR. +.TP +.B \-h, \-\-help +Print this help and exit. +.TP +.B \-n, \-\-nologin +Don't automatically login when \fBgaim-text\fR starts. Sets all accounts to +Offline. +.TP +.B \-v, \-\-version +Display the version information window. + +.SH GNT Shortcuts +You can use the following shortcuts: +.TP +.B Alt \+ n +Go to the next window. +.TP +.B Alt \+ p +Go to the previous window. +.TP +.B Alt \+ w +Show the list of windows. You can select and jump to any window from the list. +.TP +.B Alt \+ c +Close the current window. +.TP +.B Alt \+ q +Quit. +.TP +.B Alt \+ m +Start moving a window. Press the cursor keys to move the window. When you are +done, press \fBEnter\fR or \fBEscape\fR. +.TP +.B Alt \+ r +Start resizing a window. Press the cursor keys to resize the window. When you +are done, press \fBEnter\fR or \fBEscape\fR. +.TP +.B Alt \+ d +Dump the contents of the screen in HTML format in a file named "dump.html" in +working directory. +.TP +.B Alt \+ . +Move the position of the current window in the window list one place to the +right. +.TP +.B Alt \+ , +Move the position of the current window in the window list one place to the +left. +.TP +.B Alt \+ l +Refresh the windows. This is useful after resizing the terminal window. +.TP +.B Alt \+ 1 2 ... 0 +Jump to the 1st, 2nd ... 10th window. + +.SH FILES +\fI~/.gntrc\fR: configuration file for gnt applications. +.br +.TP +A sample file looks like: +.br +[general] +.br +shadow = 0 +.br +# There is experimental mouse support +.br +mouse = 1 +.br +# To use some custom window-manager +.br +wm = /usr/local/lib/gaim/s.so +.br + +.br +[colors] +.br +# The RGB values range in [0, 1000] +.br +black = 0; 0; 0 +.br +red = 1000; 0; 0 +.br +green = 0; 1000; 0 +.br +blue = 250; 250; 700 +.br +white = 1000; 1000; 1000 +.br +gray = 700; 700; 700 +.br +darkgray = 256; 256; 256 +.br + +.br +[colorpairs] +.br +normal = white; black +.br +highlight = white; blue +.br +highlightd = black; gray +.br +shadow = black; darkgray +.br +title = white; blue +.br +titled = white; gray +.br +text = white; blue +.br +disabled = gray; black +.br + +.br +# Remap some keys for GntEntry +.br +[GntEntry::remap] +.br +# Remap the up-arrow to the left-arrow +.br +^[[A = ^[[D +.br +# Remap the down-arrow to the right-arrow +.br +^[[B = ^[[C +.br +# Remap 'a' to 'bcd' +.br +a = bcd +.br +# Completely ignore the key 'q' +.br +q = +.br +# But the following will NOT work +.br +#abc = bcd +.br + +# Hitting 'space' will activate a button +.br +[GntButton::remap] +.br +\\ = \\r +.br + +.SH Mouse Support +There is experimental mouse support. You can focus windows, activate buttons, +select rows in a list, scroll using the wheel-scroll etc. Mouse support is +disabled by default, so you need to enable it in ~/.gntrc (see the sample +above). + +.SH Window Management +The default window management is very limited. But it is possible to write +custom window managers to suit your needs. There is a sample window-manager +included (named \fIs.so\fR) which adds a little 'close-button' for the windows, +removes the borders from the buddylist and pops up new windows in the middle of +the screen, instead of at the upper-left corder. It is provided as a sample +simple manager, but it should be possible to write more complex managers, and +it's very possible that the window-manager API will need to be enhanced. Look at +the sample ~/.gntrc file above to see how to select a window-manager. + + +.SH Conversation Commands +There are a few helpful commands in addition to the regular commands. You can +use these from any conversation to access other windows. + +.TP +.B accounts +for the accounts window. + +.TP +.B buddylist +for the buddylist. + +.TP +.B debugwin +for the debug window. + +.TP +.B plugins +for the plugins window. + +.TP +.B prefs +for the preferences window. + +.TP +.B status +for the status window. + +.SH BUGS +Known bugs are listed at +.br +\fIhttp://sourceforge.net/tracker/?group_id=235&atid=100235\fR + +.SH PATCHES +If you fix a bug in \fBgaim-text\fR (or otherwise enhance it), please submit a +patch (using \fIsvn diff > my.diff\fR against the latest SVN version) +at +.br +\fIhttp://sourceforge.net/tracker/?func=add&group_id=235&atid=300235\fR + +Before sending a bug report, please verify that you have the latest +version of \fBgaim-text\fR and \fBlibgaim\fR. Many bugs (major and minor) are +fixed at each release, and if yours is out of date, the problem may already have +been solved. + +You are also encouraged to drop by at \fB#gaim\fR on \fIirc.freenode.net\fR to +discuss about development. + +.SH SEE ALSO +\fIhttp://gaim.sourceforge.net/\fR +.br +\fIhttp://www.sourceforge.net/projects/gaim/\fR + +.SH LICENSE +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 +\fBWITHOUT ANY WARRANTY\fR; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +.SH AUTHORS +Sadrul Habib Chowdhury <\fIs...@us...\fR> +.br + +This manpage was written by Sadrul Habib Chowdhury +<\fIs...@us...\fR> and Dennis Ristuccia +<\fId...@de...\fR>. + Deleted: trunk/doc/gntgaim.1.in =================================================================== --- trunk/doc/gntgaim.1.in 2006-09-18 04:40:45 UTC (rev 17308) +++ trunk/doc/gntgaim.1.in 2006-09-18 06:20:36 UTC (rev 17309) @@ -1,287 +0,0 @@ -.\" Copyright (c) 2006, Sadrul Habib Chowdhury <sa...@us...> -.\" -.\" This is free documentation; 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. -.\" -.\" The GNU General Public License's references to "object code" -.\" and "executables" are to be interpreted as the output of any -.\" document formatting or typesetting system, including -.\" intermediate and printed output. -.\" -.\" This manual 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 manual; if not, write to the Free -.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, -.\" USA. -.TH gntgaim 1 -.SH NAME -GntGaim \- A Pimpin' Penguin console frontend for Instant Messaging client Gaim. -.SH SYNOPSIS -.TP 5 -\fBgntgaim \fI[options]\fR - -.SH DESCRIPTION -.PP -\fBgntgaim\fR is a console-based modular messaging client capable of using -AIM, MSN, Yahoo!, Jabber, ICQ, IRC, SILC, Novell GroupWise, Lotus Sametime, -Zephyr, Gadu-Gadu, and QQ all at once. It has many common features found in -other clients, as well as many unique features. Gaim is not endorsed by or -affiliated with America Online, ICQ, Microsoft, or Yahoo. - -.SH OPTIONS -The following options are provided by \fBgntgaim\fR using the standard GNU -command line syntax: -.TP -.B \-d, \-\-debug -Print debugging messages to stderr and start with the \fBDebug\fR window. The -messages shown in the \fBDebug\fR window are the same as the ones printed in -stderr. -.TP -.B \-c, \-\-config=\fIDIR\fB -Use \fIDIR\fR as the directory for config files instead of \fI~/.gaim\fR. -.TP -.B \-h, \-\-help -Print this help and exit. -.TP -.B \-n, \-\-nologin -Don't automatically login when \fBgntgaim\fR starts. Sets all accounts to -Offline. -.TP -.B \-v, \-\-version -Display the version information window. - -.SH GNT Shortcuts -You can use the following shortcuts: -.TP -.B Alt \+ n -Go to the next window. -.TP -.B Alt \+ p -Go to the previous window. -.TP -.B Alt \+ w -Show the list of windows. You can select and jump to any window from the list. -.TP -.B Alt \+ c -Close the current window. -.TP -.B Alt \+ q -Quit. -.TP -.B Alt \+ m -Start moving a window. Press the cursor keys to move the window. When you are -done, press \fBEnter\fR or \fBEscape\fR. -.TP -.B Alt \+ r -Start resizing a window. Press the cursor keys to resize the window. When you -are done, press \fBEnter\fR or \fBEscape\fR. -.TP -.B Alt \+ d -Dump the contents of the screen in HTML format in a file named "dump.html" in -working directory. -.TP -.B Alt \+ . -Move the position of the current window in the window list one place to the -right. -.TP -.B Alt \+ , -Move the position of the current window in the window list one place to the -left. -.TP -.B Alt \+ l -Refresh the windows. This is useful after resizing the terminal window. -.TP -.B Alt \+ 1 2 ... 0 -Jump to the 1st, 2nd ... 10th window. - -.SH FILES -\fI~/.gntrc\fR: configuration file for gnt applications. -.br -.TP -A sample file looks like: -.br -[general] -.br -shadow = 0 -.br -# There is experimental mouse support -.br -mouse = 1 -.br -# To use some custom window-manager -.br -wm = /usr/local/lib/gaim/s.so -.br - -.br -[colors] -.br -# The RGB values range in [0, 1000] -.br -black = 0; 0; 0 -.br -red = 1000; 0; 0 -.br -green = 0; 1000; 0 -.br -blue = 250; 250; 700 -.br -white = 1000; 1000; 1000 -.br -gray = 700; 700; 700 -.br -darkgray = 256; 256; 256 -.br - -.br -[colorpairs] -.br -normal = white; black -.br -highlight = white; blue -.br -highlightd = black; gray -.br -shadow = black; darkgray -.br -title = white; blue -.br -titled = white; gray -.br -text = white; blue -.br -disabled = gray; black -.br - -.br -# Remap some keys for GntEntry -.br -[GntEntry::remap] -.br -# Remap the up-arrow to the left-arrow -.br -^[[A = ^[[D -.br -# Remap the down-arrow to the right-arrow -.br -^[[B = ^[[C -.br -# Remap 'a' to 'bcd' -.br -a = bcd -.br -# Completely ignore the key 'q' -.br -q = -.br -# But the following will NOT work -.br -#abc = bcd -.br - -# Hitting 'space' will activate a button -.br -[GntButton::remap] -.br -\\ = \\r -.br - -.SH Mouse Support -There is experimental mouse support. You can focus windows, activate buttons, -select rows in a list, scroll using the wheel-scroll etc. Mouse support is -disabled by default, so you need to enable it in ~/.gntrc (see the sample -above). - -.SH Window Management -The default window management is very limited. But it is possible to write -custom window managers to suit your needs. There is a sample window-manager -included (named \fIs.so\fR) which adds a little 'close-button' for the windows, -removes the borders from the buddylist and pops up new windows in the middle of -the screen, instead of at the upper-left corder. It is provided as a sample -simple manager, but it should be possible to write more complex managers, and -it's very possible that the window-manager API will need to be enhanced. Look at -the sample ~/.gntrc file above to see how to select a window-manager. - - -.SH Conversation Commands -There are a few helpful commands in addition to the regular commands. You can -use these from any conversation to access other windows. - -.TP -.B accounts -for the accounts window. - -.TP -.B buddylist -for the buddylist. - -.TP -.B debugwin -for the debug window. - -.TP -.B plugins -for the plugins window. - -.TP -.B prefs -for the preferences window. - -.TP -.B status -for the status window. - -.SH BUGS -Known bugs are listed at -.br -\fIhttp://sourceforge.net/tracker/?group_id=235&atid=100235\fR - -.SH PATCHES -If you fix a bug in \fBgntgaim\fR (or otherwise enhance it), please submit a -patch (using \fIsvn diff > my.diff\fR against the latest SVN version) -at -.br -\fIhttp://sourceforge.net/tracker/?func=add&group_id=235&atid=300235\fR - -Before sending a bug report, please verify that you have the latest -version of \fBgntgaim\fR and \fBlibgaim\fR. Many bugs (major and minor) are -fixed at each release, and if yours is out of date, the problem may already have -been solved. - -You are also encouraged to drop by at \fB#gaim\fR on \fIirc.freenode.net\fR to -discuss about development. - -.SH SEE ALSO -\fIhttp://gaim.sourceforge.net/\fR -.br -\fIhttp://www.sourceforge.net/projects/gaim/\fR - -.SH LICENSE -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 -\fBWITHOUT ANY WARRANTY\fR; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -.SH AUTHORS -Sadrul Habib Chowdhury <\fIs...@us...\fR> -.br - -This manpage was written by Sadrul Habib Chowdhury -<\fIs...@us...\fR> and Dennis Ristuccia -<\fId...@de...\fR>. - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-09-18 18:16:15
|
Revision: 17311 http://svn.sourceforge.net/gaim/?rev=17311&view=rev Author: deryni9 Date: 2006-09-18 11:14:50 -0700 (Mon, 18 Sep 2006) Log Message: ----------- I couldn't see a reason why we needed all of gaim_gtk_roomlist_dialog_new, gaim_gtk_roomlist_dialog_new_with_account, gaim_gtk_roomlist_dialog_show, and gaim_gtk_roomlist_dialog_show_with_account especially considering the _show functions basically just called the _new functions. So I whittled us down to just _show and _show_with_account being visible. And since nothing outside GtkRoomlist.c was using the GaimGtkRoomlistDialog struct I made that private too. Modified Paths: -------------- trunk/ChangeLog.API trunk/gtk/gtkroomlist.c trunk/gtk/gtkroomlist.h trunk/gtk/plugins/perl/common/GtkRoomlist.xs trunk/gtk/plugins/perl/common/gtkmodule.h trunk/gtk/plugins/perl/common/typemap Modified: trunk/ChangeLog.API =================================================================== --- trunk/ChangeLog.API 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/ChangeLog.API 2006-09-18 18:14:50 UTC (rev 17311) @@ -199,6 +199,9 @@ * GaimGtkLogViewer hidden... You weren't using it anyway. * GaimGtkConversation: dialogs (dialogs.search moved to GaimGtkWindow) * gaim_show_xfer_dialog: Use gaim_gtk_xfer_dialog_show(NULL) instead. + * GaimGtkRoomlistDialog: Nothing used it outside of the file it was in. + * gaim_gtk_roomlist_dialog_new: use gaim_gtk_roomlist_show + * gaim_gtk_roomlist_dialog_new_with_account: use gaim_gtk_roomlist_show_with_account Added: * gaim_prefs_disconnect_by_handle() @@ -325,6 +328,7 @@ * gaim_buddy_get_server_alias() * gaim_conv_send_confirm() * GaimConversationUiOps.send_confirm + * gaim_gtk_roomlist_dialog_show_with_account Signals - Changed: (See the Doxygen docs for details on all signals.) * Signal propagation now stops after a handler returns a non-NULL value. Modified: trunk/gtk/gtkroomlist.c =================================================================== --- trunk/gtk/gtkroomlist.c 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/gtk/gtkroomlist.c 2006-09-18 18:14:50 UTC (rev 17311) @@ -34,15 +34,7 @@ #include "gtkroomlist.h" -typedef struct _GaimGtkRoomlist { - GaimGtkRoomlistDialog *dialog; - GtkTreeStore *model; - GtkWidget *tree; - GHashTable *cats; /**< Meow. */ - gint num_rooms, total_rooms; -} GaimGtkRoomlist; - -struct _GaimGtkRoomlistDialog { +typedef struct _GaimGtkRoomlistDialog { GtkWidget *window; GtkWidget *account_widget; GtkWidget *progress; @@ -60,8 +52,16 @@ gboolean pg_needs_pulse; gboolean pg_to_active; guint pg_update_to; -}; +} GaimGtkRoomlistDialog; +typedef struct _GaimGtkRoomlist { + GaimGtkRoomlistDialog *dialog; + GtkTreeStore *model; + GtkWidget *tree; + GHashTable *cats; /**< Meow. */ + gint num_rooms, total_rooms; +} GaimGtkRoomlist; + enum { NAME_COLUMN = 0, ROOM_COLUMN, @@ -335,7 +335,8 @@ return FALSE; } -GaimGtkRoomlistDialog *gaim_gtk_roomlist_dialog_new_with_account(GaimAccount *account) +static GaimGtkRoomlistDialog * +gaim_gtk_roomlist_dialog_new_with_account(GaimAccount *account) { GaimGtkRoomlistDialog *dialog; GtkWidget *window; @@ -459,13 +460,8 @@ return dialog; } -GaimGtkRoomlistDialog *gaim_gtk_roomlist_dialog_new(void) +void gaim_gtk_roomlist_dialog_show_with_account(GaimAccount *account) { - return gaim_gtk_roomlist_dialog_new_with_account(NULL); -} - -static void gaim_gtk_roomlist_dialog_show_with_account(GaimAccount *account) -{ GaimGtkRoomlistDialog *dialog; dialog = gaim_gtk_roomlist_dialog_new_with_account(account); @@ -477,7 +473,7 @@ void gaim_gtk_roomlist_dialog_show(void) { - gaim_gtk_roomlist_dialog_new(); + gaim_gtk_roomlist_dialog_new_with_account(NULL); } static void gaim_gtk_roomlist_new(GaimRoomlist *list) Modified: trunk/gtk/gtkroomlist.h =================================================================== --- trunk/gtk/gtkroomlist.h 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/gtk/gtkroomlist.h 2006-09-18 18:14:50 UTC (rev 17311) @@ -27,9 +27,6 @@ #include "roomlist.h" - -typedef struct _GaimGtkRoomlistDialog GaimGtkRoomlistDialog; - /** * Initializes the room list subsystem. */ @@ -44,24 +41,16 @@ gboolean gaim_gtk_roomlist_is_showable(void); /** - * Shows the roomlist dialog. + * Shows a new roomlist dialog. */ void gaim_gtk_roomlist_dialog_show(void); /** - * Creates a new room list dialog. + * Shows a new room list dialog and fetches the list for the specified account. * - * @return The new dialog. - */ -GaimGtkRoomlistDialog *gaim_gtk_roomlist_dialog_new(void); - -/** - * Creates a new room list dialog and fetch the list on - * the specified account. - * * @param account The account to force. * @return The new dialog. */ -GaimGtkRoomlistDialog *gaim_gtk_roomlist_dialog_new_with_account(GaimAccount *account); +void gaim_gtk_roomlist_dialog_show_with_account(GaimAccount *account); #endif /* _GAIM_GTKROOMLIST_H_ */ Modified: trunk/gtk/plugins/perl/common/GtkRoomlist.xs =================================================================== --- trunk/gtk/plugins/perl/common/GtkRoomlist.xs 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/gtk/plugins/perl/common/GtkRoomlist.xs 2006-09-18 18:14:50 UTC (rev 17311) @@ -10,15 +10,8 @@ PROTOTYPES: ENABLE void -gaim_gtk_roomlist_dialog_show(class) - C_ARGS: /* void */ +gaim_gtk_roomlist_dialog_show() -Gaim::GtkUI::Roomlist::Dialog -gaim_gtk_roomlist_dialog_new(class) - C_ARGS: /* void */ - -Gaim::GtkUI::Roomlist::Dialog -gaim_gtk_roomlist_dialog_new_with_account(class, account) +void +gaim_gtk_roomlist_dialog_show_with_account(account) Gaim::Account account - C_ARGS: - account Modified: trunk/gtk/plugins/perl/common/gtkmodule.h =================================================================== --- trunk/gtk/plugins/perl/common/gtkmodule.h 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/gtk/plugins/perl/common/gtkmodule.h 2006-09-18 18:14:50 UTC (rev 17311) @@ -72,8 +72,5 @@ /* gtkmenutray.h */ typedef GaimGtkMenuTray * Gaim__GtkUI__MenuTray; -/* gtkroomlist.h */ -typedef GaimGtkRoomlistDialog * Gaim__GtkUI__Roomlist__Dialog; - /* gtkstatusbox.h */ typedef GtkGaimStatusBox * Gaim__GtkUI__StatusBox; Modified: trunk/gtk/plugins/perl/common/typemap =================================================================== --- trunk/gtk/plugins/perl/common/typemap 2006-09-18 15:07:10 UTC (rev 17310) +++ trunk/gtk/plugins/perl/common/typemap 2006-09-18 18:14:50 UTC (rev 17311) @@ -17,5 +17,4 @@ Gaim::GtkUI::IMHtml::Options T_IV Gaim::GtkUI::IMHtmlToolbar T_GaimObj Gaim::GtkUI::MenuTray T_GaimObj -Gaim::GtkUI::Roomlist::Dialog T_GaimObj Gaim::GtkUI::StatusBox T_GaimObj This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-09-20 11:42:40
|
Revision: 17327 http://svn.sourceforge.net/gaim/?rev=17327&view=rev Author: nosnilmot Date: 2006-09-20 04:42:26 -0700 (Wed, 20 Sep 2006) Log Message: ----------- Fall back to using internal libgadu if an external one is not found Modified Paths: -------------- trunk/configure.ac trunk/libgaim/protocols/gg/Makefile.am Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-09-20 09:13:17 UTC (rev 17326) +++ trunk/configure.ac 2006-09-20 11:42:26 UTC (rev 17327) @@ -652,6 +652,8 @@ CPPFLAGS="$CPPFLAGS_save" fi +AM_CONDITIONAL(USE_INTERNAL_LIBGG, test "x$gadu_libs" != "xyes") + AC_SUBST(GADU_LIBS) AC_SUBST(GADU_CFLAGS) @@ -676,9 +678,6 @@ if test "x$silcincludes" != "xyes" -o "x$silcclient" != "xyes"; then STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/silc//'` fi -if test "x$gadu_libs" != "xyes"; then - STATIC_PRPLS=`echo $STATIC_PRPLS | $sedpath 's/gg//'` -fi AC_SUBST(STATIC_PRPLS) STATIC_LINK_LIBS= extern_init= @@ -741,9 +740,6 @@ if test "x$silcincludes" != "xyes" -o "x$silcclient" != "xyes"; then DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/silc//'` fi -if test "x$gadu_libs" != "xyes"; then - DYNAMIC_PRPLS=`echo $DYNAMIC_PRPLS | $sedpath 's/gg//'` -fi AC_SUBST(DYNAMIC_PRPLS) for i in $DYNAMIC_PRPLS ; do case $i in Modified: trunk/libgaim/protocols/gg/Makefile.am =================================================================== --- trunk/libgaim/protocols/gg/Makefile.am 2006-09-20 09:13:17 UTC (rev 17326) +++ trunk/libgaim/protocols/gg/Makefile.am 2006-09-20 11:42:26 UTC (rev 17327) @@ -27,6 +27,23 @@ gg.h \ gg.c +if USE_INTERNAL_LIBGG +GGSOURCES += \ + lib/common.c \ + lib/compat.h \ + lib/dcc.c \ + lib/events.c \ + lib/http.c \ + lib/libgadu.c \ + lib/libgadu-config.h \ + lib/libgadu.h \ + lib/obsolete.c \ + lib/pubdir50.c \ + lib/pubdir.c + +INTGG_CFLAGS = -I$(top_srcdir)/libgaim/protocols/gg/lib +endif + AM_CFLAGS = $(st) libgg_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) @@ -54,6 +71,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/libgaim \ + $(INTGG_CFLAGS) \ $(GLIB_CFLAGS) \ $(DEBUG_CFLAGS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-09-21 03:07:10
|
Revision: 17332 http://svn.sourceforge.net/gaim/?rev=17332&view=rev Author: rlaager Date: 2006-09-20 20:07:04 -0700 (Wed, 20 Sep 2006) Log Message: ----------- Update the Help dialog in the GTK+ UI to properly show that an internal libgadu is being used on !win32. Modified Paths: -------------- trunk/configure.ac trunk/gtk/Makefile.am trunk/gtk/gtkdialogs.c trunk/libgaim/protocols/gg/Makefile.am Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-09-20 20:32:43 UTC (rev 17331) +++ trunk/configure.ac 2006-09-21 03:07:04 UTC (rev 17332) @@ -652,7 +652,7 @@ CPPFLAGS="$CPPFLAGS_save" fi -AM_CONDITIONAL(USE_INTERNAL_LIBGG, test "x$gadu_libs" != "xyes") +AM_CONDITIONAL(USE_INTERNAL_LIBGADU, test "x$gadu_libs" != "xyes") AC_SUBST(GADU_LIBS) AC_SUBST(GADU_CFLAGS) Modified: trunk/gtk/Makefile.am =================================================================== --- trunk/gtk/Makefile.am 2006-09-20 20:32:43 UTC (rev 17331) +++ trunk/gtk/Makefile.am 2006-09-21 03:07:04 UTC (rev 17332) @@ -165,6 +165,10 @@ $(GTK_LIBS) \ $(top_builddir)/libgaim/libgaim.la +if USE_INTERNAL_LIBGADU +INTGG_CFLAGS = -DUSE_INTERNAL_LIBGADU +endif + AM_CPPFLAGS = \ -DBR_PTHREADS=0 \ -DDATADIR=\"$(datadir)\" \ @@ -179,5 +183,6 @@ $(DBUS_CFLAGS) \ $(GTKSPELL_CFLAGS) \ $(STARTUP_NOTIFICATION_CFLAGS) \ - $(LIBXML_CFLAGS) + $(LIBXML_CFLAGS) \ + $(INTGG_CFLAGS) endif # ENABLE_GTK Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-09-20 20:32:43 UTC (rev 17331) +++ trunk/gtk/gtkdialogs.c 2006-09-21 03:07:04 UTC (rev 17332) @@ -497,15 +497,15 @@ #endif #endif -#ifdef HAVE_LIBGADU -#ifdef _WIN32 +#if defined(_WIN32) || defined(USE_INTERNAL_LIBGADU) g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Internal<br/>"); #else +#ifdef HAVE_LIBGADU g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Enabled<br/>"); -#endif #else g_string_append(str, " <b>Gadu-Gadu library (libgadu):</b> Disabled<br/>"); #endif +#endif #ifdef USE_GTKSPELL g_string_append(str, " <b>GtkSpell:</b> Enabled<br/>"); Modified: trunk/libgaim/protocols/gg/Makefile.am =================================================================== --- trunk/libgaim/protocols/gg/Makefile.am 2006-09-20 20:32:43 UTC (rev 17331) +++ trunk/libgaim/protocols/gg/Makefile.am 2006-09-21 03:07:04 UTC (rev 17332) @@ -27,7 +27,7 @@ gg.h \ gg.c -if USE_INTERNAL_LIBGG +if USE_INTERNAL_LIBGADU GGSOURCES += \ lib/common.c \ lib/compat.h \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-09-24 16:35:35
|
Revision: 17343 http://svn.sourceforge.net/gaim/?rev=17343&view=rev Author: thekingant Date: 2006-09-24 09:35:31 -0700 (Sun, 24 Sep 2006) Log Message: ----------- Add the Seamonkey patch contributor to the copyright file and fix a bug that would have caused Epiphany not to show up in the list. Thanks to Will Thompson and Sadrul Habib Chowdhury Modified Paths: -------------- trunk/COPYRIGHT trunk/gtk/gtkprefs.c Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-09-24 08:11:28 UTC (rev 17342) +++ trunk/COPYRIGHT 2006-09-24 16:35:31 UTC (rev 17343) @@ -130,6 +130,7 @@ Mike Heffner Benjamin Herrenschmidt Fernando Herrera +hjheins Hil Casey Ho Iain Holmes Modified: trunk/gtk/gtkprefs.c =================================================================== --- trunk/gtk/gtkprefs.c 2006-09-24 08:11:28 UTC (rev 17342) +++ trunk/gtk/gtkprefs.c 2006-09-24 16:35:31 UTC (rev 17343) @@ -1184,7 +1184,7 @@ {N_("Firebird"), "mozilla-firebird"}, {N_("Epiphany"), "epiphany"} }; - static const int num_possible_browsers = 9; + static const int num_possible_browsers = G_N_ELEMENTS(possible_browsers); GList *browsers = NULL; int i = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-09-29 20:22:52
|
Revision: 17398 http://svn.sourceforge.net/gaim/?rev=17398&view=rev Author: nosnilmot Date: 2006-09-29 13:22:46 -0700 (Fri, 29 Sep 2006) Log Message: ----------- Don't install config.h, no-one out-of-tree should be using our config.h anyway. This resolves Fedora bug # 205206 Also make sure our public headers don't depend on it Modified Paths: -------------- trunk/Makefile.am trunk/gtk/gtkpluginpref.h Modified: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2006-09-29 13:04:01 UTC (rev 17397) +++ trunk/Makefile.am 2006-09-29 20:22:46 UTC (rev 17398) @@ -28,8 +28,7 @@ gtk/plugins/win32/winprefs/winprefs.c \ po/Makefile.mingw -gaimincludedir=$(includedir)/gaim -nodist_gaiminclude_HEADERS = config.h +noinst_HEADERS = config.h pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gaim.pc Modified: trunk/gtk/gtkpluginpref.h =================================================================== --- trunk/gtk/gtkpluginpref.h 2006-09-29 13:04:01 UTC (rev 17397) +++ trunk/gtk/gtkpluginpref.h 2006-09-29 20:22:46 UTC (rev 17398) @@ -26,10 +26,6 @@ #ifndef _GAIM_GTKPLUGINPREF_H_ #define _GAIM_GTKPLUGINPREF_H_ -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - #include "pluginpref.h" #include "gtkgaim.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-09-29 20:46:06
|
Revision: 17399 http://svn.sourceforge.net/gaim/?rev=17399&view=rev Author: nosnilmot Date: 2006-09-29 13:45:50 -0700 (Fri, 29 Sep 2006) Log Message: ----------- intltool support for translating the gaim.schemas file Modified Paths: -------------- trunk/libgaim/gconf/Makefile.am trunk/po/POTFILES.in Added Paths: ----------- trunk/libgaim/gconf/gaim.schemas.in Removed Paths: ------------- trunk/libgaim/gconf/gaim.schemas Property Changed: ---------------- trunk/libgaim/gconf/ Property changes on: trunk/libgaim/gconf ___________________________________________________________________ Name: svn:ignore - Makefile Makefile.in + Makefile Makefile.in gaim.schemas Modified: trunk/libgaim/gconf/Makefile.am =================================================================== --- trunk/libgaim/gconf/Makefile.am 2006-09-29 20:22:46 UTC (rev 17398) +++ trunk/libgaim/gconf/Makefile.am 2006-09-29 20:45:50 UTC (rev 17399) @@ -1,8 +1,11 @@ schemadir = @GCONF_SCHEMA_FILE_DIR@ -schema_DATA = gaim.schemas -EXTRA_DIST = gaim.schemas +EXTRA_DIST = gaim.schemas.in +schema_in_files = gaim.schemas.in +schema_DATA = $(schema_in_files:.schemas.in=.schemas) +@INTLTOOL_SCHEMAS_RULE@ + if GCONF_SCHEMAS_INSTALL install-data-local: GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$(schema_DATA) Deleted: trunk/libgaim/gconf/gaim.schemas =================================================================== --- trunk/libgaim/gconf/gaim.schemas 2006-09-29 20:22:46 UTC (rev 17398) +++ trunk/libgaim/gconf/gaim.schemas 2006-09-29 20:45:50 UTC (rev 17399) @@ -1,276 +0,0 @@ -<?xml version="1.0"?> -<gconfschemafile> - <schemalist> - <schema> - <key>/schemas/desktop/gnome/url-handlers/aim/enabled</key> - <applyto>/desktop/gnome/url-handlers/aim/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "aim" URLs</short> - <long>True if the command specified in the "command" key should handle "aim" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/aim/command</key> -im <applyto>/desktop/gnome/url-handlers/aim/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "aim" URLs</short> - <long>The command used to handle "aim" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/aim/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/aim/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/gg/enabled</key> - <applyto>/desktop/gnome/url-handlers/gg/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "gg" URLs</short> - <long>True if the command specified in the "command" key should handle "gg" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/gg/command</key> - <applyto>/desktop/gnome/url-handlers/gg/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "gg" URLs</short> - <long>The command used to handle "gg" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/gg/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/gg/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/icq/enabled</key> - <applyto>/desktop/gnome/url-handlers/icq/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "icq" URLs</short> - <long>True if the command specified in the "command" key should handle "icq" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/icq/command</key> - <applyto>/desktop/gnome/url-handlers/icq/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "icq" URLs</short> - <long>The command used to handle "icq" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/icq/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/icq/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/irc/enabled</key> - <applyto>/desktop/gnome/url-handlers/irc/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "irc" URLs</short> - <long>True if the command specified in the "command" key should handle "irc" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/irc/command</key> - <applyto>/desktop/gnome/url-handlers/irc/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "irc" URLs</short> - <long>The command used to handle "irc" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/irc/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/irc/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/msnim/enabled</key> - <applyto>/desktop/gnome/url-handlers/msnim/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "msnim" URLs</short> - <long>True if the command specified in the "command" key should handle "msnim" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/msnim/command</key> - <applyto>/desktop/gnome/url-handlers/msnim/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "msnim" URLs</short> - <long>The command used to handle "msnim" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/msnim/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/msnim/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/sip/enabled</key> - <applyto>/desktop/gnome/url-handlers/sip/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "sip" URLs</short> - <long>True if the command specified in the "command" key should handle "sip" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/sip/command</key> - <applyto>/desktop/gnome/url-handlers/sip/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "sip" URLs</short> - <long>The command used to handle "sip" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/sip/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/sip/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/xmpp/enabled</key> - <applyto>/desktop/gnome/url-handlers/xmpp/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "xmpp" URLs</short> - <long>True if the command specified in the "command" key should handle "xmpp" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/xmpp/command</key> - <applyto>/desktop/gnome/url-handlers/xmpp/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "xmpp" URLs</short> - <long>The command used to handle "xmpp" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/xmpp/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/xmpp/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - - <schema> - <key>/schemas/desktop/gnome/url-handlers/ymsgr/enabled</key> - <applyto>/desktop/gnome/url-handlers/ymsgr/enabled</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Whether the specified command should handle "ymsgr" URLs</short> - <long>True if the command specified in the "command" key should handle "ymsgr" URLs.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/ymsgr/command</key> - <applyto>/desktop/gnome/url-handlers/ymsgr/command</applyto> - <owner>gaim</owner> - <type>string</type> - <default>gaim-url-handler "%s"</default> - <locale name="C"> - <short>The handler for "ymsgr" URLs</short> - <long>The command used to handle "ymsgr" URLs, if enabled.</long> - </locale> - </schema> - <schema> - <key>/schemas/desktop/gnome/url-handlers/ymsgr/needs_terminal</key> - <applyto>/desktop/gnome/url-handlers/ymsgr/needs_terminal</applyto> - <owner>gaim</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Run the command in a terminal</short> - <long>True if the command used to handle this type of URL should be run in a terminal.</long> - </locale> - </schema> - </schemalist> -</gconfschemafile> Copied: trunk/libgaim/gconf/gaim.schemas.in (from rev 17398, trunk/libgaim/gconf/gaim.schemas) =================================================================== --- trunk/libgaim/gconf/gaim.schemas.in (rev 0) +++ trunk/libgaim/gconf/gaim.schemas.in 2006-09-29 20:45:50 UTC (rev 17399) @@ -0,0 +1,276 @@ +<?xml version="1.0"?> +<gconfschemafile> + <schemalist> + <schema> + <key>/schemas/desktop/gnome/url-handlers/aim/enabled</key> + <applyto>/desktop/gnome/url-handlers/aim/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "aim" URLs</short> + <long>True if the command specified in the "command" key should handle "aim" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/aim/command</key> + <applyto>/desktop/gnome/url-handlers/aim/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "aim" URLs</short> + <long>The command used to handle "aim" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/aim/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/aim/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/gg/enabled</key> + <applyto>/desktop/gnome/url-handlers/gg/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "gg" URLs</short> + <long>True if the command specified in the "command" key should handle "gg" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/gg/command</key> + <applyto>/desktop/gnome/url-handlers/gg/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "gg" URLs</short> + <long>The command used to handle "gg" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/gg/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/gg/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/icq/enabled</key> + <applyto>/desktop/gnome/url-handlers/icq/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "icq" URLs</short> + <long>True if the command specified in the "command" key should handle "icq" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/icq/command</key> + <applyto>/desktop/gnome/url-handlers/icq/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "icq" URLs</short> + <long>The command used to handle "icq" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/icq/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/icq/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/irc/enabled</key> + <applyto>/desktop/gnome/url-handlers/irc/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "irc" URLs</short> + <long>True if the command specified in the "command" key should handle "irc" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/irc/command</key> + <applyto>/desktop/gnome/url-handlers/irc/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "irc" URLs</short> + <long>The command used to handle "irc" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/irc/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/irc/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/msnim/enabled</key> + <applyto>/desktop/gnome/url-handlers/msnim/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "msnim" URLs</short> + <long>True if the command specified in the "command" key should handle "msnim" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/msnim/command</key> + <applyto>/desktop/gnome/url-handlers/msnim/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "msnim" URLs</short> + <long>The command used to handle "msnim" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/msnim/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/msnim/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/sip/enabled</key> + <applyto>/desktop/gnome/url-handlers/sip/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "sip" URLs</short> + <long>True if the command specified in the "command" key should handle "sip" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/sip/command</key> + <applyto>/desktop/gnome/url-handlers/sip/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "sip" URLs</short> + <long>The command used to handle "sip" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/sip/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/sip/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/xmpp/enabled</key> + <applyto>/desktop/gnome/url-handlers/xmpp/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "xmpp" URLs</short> + <long>True if the command specified in the "command" key should handle "xmpp" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/xmpp/command</key> + <applyto>/desktop/gnome/url-handlers/xmpp/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "xmpp" URLs</short> + <long>The command used to handle "xmpp" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/xmpp/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/xmpp/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + + <schema> + <key>/schemas/desktop/gnome/url-handlers/ymsgr/enabled</key> + <applyto>/desktop/gnome/url-handlers/ymsgr/enabled</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>true</default> + <locale name="C"> + <short>Whether the specified command should handle "ymsgr" URLs</short> + <long>True if the command specified in the "command" key should handle "ymsgr" URLs.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/ymsgr/command</key> + <applyto>/desktop/gnome/url-handlers/ymsgr/command</applyto> + <owner>gaim</owner> + <type>string</type> + <default>gaim-url-handler "%s"</default> + <locale name="C"> + <short>The handler for "ymsgr" URLs</short> + <long>The command used to handle "ymsgr" URLs, if enabled.</long> + </locale> + </schema> + <schema> + <key>/schemas/desktop/gnome/url-handlers/ymsgr/needs_terminal</key> + <applyto>/desktop/gnome/url-handlers/ymsgr/needs_terminal</applyto> + <owner>gaim</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Run the command in a terminal</short> + <long>True if the command used to handle this type of URL should be run in a terminal.</long> + </locale> + </schema> + </schemalist> +</gconfschemafile> Modified: trunk/po/POTFILES.in =================================================================== --- trunk/po/POTFILES.in 2006-09-29 20:22:46 UTC (rev 17398) +++ trunk/po/POTFILES.in 2006-09-29 20:45:50 UTC (rev 17399) @@ -93,6 +93,7 @@ libgaim/dbus-server.c libgaim/dnsquery.c libgaim/ft.c +libgaim/gconf/gaim.schemas.in libgaim/log.c libgaim/plugin.c libgaim/plugins/ciphertest.c This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-10-01 16:33:27
|
Revision: 17419 http://svn.sourceforge.net/gaim/?rev=17419&view=rev Author: nosnilmot Date: 2006-10-01 09:33:14 -0700 (Sun, 01 Oct 2006) Log Message: ----------- Link to external libraries where necessary to reduce the number of undefined symbols reported by ldd -r Modified Paths: -------------- trunk/console/libgnt/wms/Makefile.am trunk/console/plugins/Makefile.am trunk/libgaim/protocols/jabber/Makefile.am trunk/libgaim/protocols/qq/Makefile.am Modified: trunk/console/libgnt/wms/Makefile.am =================================================================== --- trunk/console/libgnt/wms/Makefile.am 2006-10-01 16:11:39 UTC (rev 17418) +++ trunk/console/libgnt/wms/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) @@ -1,4 +1,4 @@ -s_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +s_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(GNT_LIBS) plugin_LTLIBRARIES = \ s.la Modified: trunk/console/plugins/Makefile.am =================================================================== --- trunk/console/plugins/Makefile.am 2006-10-01 16:11:39 UTC (rev 17418) +++ trunk/console/plugins/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) @@ -1,5 +1,5 @@ -gntgf_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(X11_LIBS) -gnthistory_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +gntgf_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(X11_LIBS) $(GNT_LIBS) +gnthistory_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) if PLUGINS @@ -9,8 +9,8 @@ plugindir = $(libdir)/gaim -gntgf_la_SOURCES = gntgf.c -gnthistory_la_SOURCES = gnthistory.c +gntgf_la_SOURCES = gntgf.c +gnthistory_la_SOURCES = gnthistory.c endif # PLUGINS Modified: trunk/libgaim/protocols/jabber/Makefile.am =================================================================== --- trunk/libgaim/protocols/jabber/Makefile.am 2006-10-01 16:11:39 UTC (rev 17418) +++ trunk/libgaim/protocols/jabber/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) @@ -36,7 +36,7 @@ AM_CFLAGS = $(st) -libjabber_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(SASL_LIBS) +libjabber_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) if STATIC_JABBER Modified: trunk/libgaim/protocols/qq/Makefile.am =================================================================== --- trunk/libgaim/protocols/qq/Makefile.am 2006-10-01 16:11:39 UTC (rev 17418) +++ trunk/libgaim/protocols/qq/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) @@ -73,7 +73,7 @@ AM_CFLAGS = $(st) -libqq_la_LDFLAGS = -module -avoid-version +libqq_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) if STATIC_QQ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-10-01 18:18:24
|
Revision: 17420 http://svn.sourceforge.net/gaim/?rev=17420&view=rev Author: nosnilmot Date: 2006-10-01 11:17:49 -0700 (Sun, 01 Oct 2006) Log Message: ----------- It is more correct to use foo_la_LIBADD to specify libs to link to instead of foo_la_LDFLAGS Modified Paths: -------------- trunk/console/libgnt/wms/Makefile.am trunk/console/plugins/Makefile.am trunk/gtk/plugins/Makefile.am trunk/gtk/plugins/cap/Makefile.am trunk/gtk/plugins/docklet/Makefile.am trunk/gtk/plugins/gestures/Makefile.am trunk/gtk/plugins/gevolution/Makefile.am trunk/gtk/plugins/musicmessaging/Makefile.am trunk/gtk/plugins/ticker/Makefile.am trunk/libgaim/plugins/Makefile.am trunk/libgaim/plugins/perl/Makefile.am trunk/libgaim/plugins/ssl/Makefile.am trunk/libgaim/plugins/tcl/Makefile.am trunk/libgaim/protocols/bonjour/Makefile.am trunk/libgaim/protocols/gg/Makefile.am trunk/libgaim/protocols/irc/Makefile.am trunk/libgaim/protocols/jabber/Makefile.am trunk/libgaim/protocols/msn/Makefile.am trunk/libgaim/protocols/novell/Makefile.am trunk/libgaim/protocols/oscar/Makefile.am trunk/libgaim/protocols/qq/Makefile.am trunk/libgaim/protocols/silc/Makefile.am trunk/libgaim/protocols/simple/Makefile.am trunk/libgaim/protocols/yahoo/Makefile.am trunk/libgaim/protocols/zephyr/Makefile.am Modified: trunk/console/libgnt/wms/Makefile.am =================================================================== --- trunk/console/libgnt/wms/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/console/libgnt/wms/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,11 +1,12 @@ -s_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(GNT_LIBS) +s_la_LDFLAGS = -module -avoid-version plugin_LTLIBRARIES = \ s.la plugindir = $(libdir)/gaim -s_la_SOURCES = s.c +s_la_SOURCES = s.c +s_la_LIBADD = $(GLIB_LIBS) $(top_builddir)/console/libgnt/libgnt.la EXTRA_DIST = Modified: trunk/console/plugins/Makefile.am =================================================================== --- trunk/console/plugins/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/console/plugins/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,5 +1,5 @@ -gntgf_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(X11_LIBS) $(GNT_LIBS) -gnthistory_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +gntgf_la_LDFLAGS = -module -avoid-version +gnthistory_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -12,6 +12,9 @@ gntgf_la_SOURCES = gntgf.c gnthistory_la_SOURCES = gnthistory.c +gntgf_la_LIBADD = $(GLIB_LIBS) $(X11_LIBS) $(top_builddir)/console/libgnt/libgnt.la +gnthistory_la_LIBADD = $(GLIB_LIBS) + endif # PLUGINS EXTRA_DIST = Modified: trunk/gtk/plugins/Makefile.am =================================================================== --- trunk/gtk/plugins/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -27,15 +27,15 @@ plugindir = $(libdir)/gaim -extplacement_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -gaimrc_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -history_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -iconaway_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -notify_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -relnot_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -spellchk_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -timestamp_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) -timestamp_format_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) +extplacement_la_LDFLAGS = -module -avoid-version +gaimrc_la_LDFLAGS = -module -avoid-version +history_la_LDFLAGS = -module -avoid-version +iconaway_la_LDFLAGS = -module -avoid-version +notify_la_LDFLAGS = -module -avoid-version +relnot_la_LDFLAGS = -module -avoid-version +spellchk_la_LDFLAGS = -module -avoid-version +timestamp_la_LDFLAGS = -module -avoid-version +timestamp_format_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -61,6 +61,16 @@ timestamp_la_SOURCES = timestamp.c timestamp_format_la_SOURCES = timestamp_format.c +extplacement_la_LIBADD = $(GTK_LIBS) +gaimrc_la_LIBADD = $(GTK_LIBS) +history_la_LIBADD = $(GTK_LIBS) +iconaway_la_LIBADD = $(GTK_LIBS) +notify_la_LIBADD = $(GTK_LIBS) +relnot_la_LIBADD = $(GLIB_LIBS) +spellchk_la_LIBADD = $(GTK_LIBS) +timestamp_la_LIBADD = $(GTK_LIBS) +timestamp_format_la_LIBADD = $(GTK_LIBS) + endif # PLUGINS EXTRA_DIST = \ Modified: trunk/gtk/plugins/cap/Makefile.am =================================================================== --- trunk/gtk/plugins/cap/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/cap/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,6 +1,6 @@ capdir = $(libdir)/gaim -cap_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) +cap_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -15,7 +15,7 @@ endif -cap_la_LIBADD = $(SQLITE3_LIBS) +cap_la_LIBADD = $(GTK_LIBS) $(SQLITE3_LIBS) AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ Modified: trunk/gtk/plugins/docklet/Makefile.am =================================================================== --- trunk/gtk/plugins/docklet/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/docklet/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -6,7 +6,7 @@ plugindir = $(libdir)/gaim -docklet_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) +docklet_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -19,6 +19,8 @@ docklet.c \ docklet-x11.c +docklet_la_LIBADD = $(GTK_LIBS) + endif AM_CPPFLAGS = \ Modified: trunk/gtk/plugins/gestures/Makefile.am =================================================================== --- trunk/gtk/plugins/gestures/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/gestures/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,6 +1,6 @@ plugindir = $(libdir)/gaim -gestures_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) +gestures_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -13,6 +13,8 @@ stroke.c \ stroke-draw.c +gestures_la_LIBADD = $(GTK_LIBS) + endif AM_CPPFLAGS = \ Modified: trunk/gtk/plugins/gevolution/Makefile.am =================================================================== --- trunk/gtk/plugins/gevolution/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/gevolution/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,9 +1,6 @@ plugindir = $(libdir)/gaim -gevolution_la_LDFLAGS = \ - -module -avoid-version \ - $(EVOLUTION_ADDRESSBOOK_LIBS) \ - $(GTK_LIBS) +gevolution_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -18,10 +15,10 @@ new_person_dialog.c \ eds-utils.c +gevolution_la_LIBADD = $(EVOLUTION_ADDRESSBOOK_LIBS) $(GTK_LIBS) + endif -gevolution_la_LIBADD = - AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ -DVERSION=\"$(VERSION)\" \ Modified: trunk/gtk/plugins/musicmessaging/Makefile.am =================================================================== --- trunk/gtk/plugins/musicmessaging/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/musicmessaging/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -3,7 +3,7 @@ musicmessagingdir = $(libdir)/gaim -musicmessaging_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) $(DBUS_LIBS) +musicmessaging_la_LDFLAGS = -module -avoid-version if PLUGINS if ENABLE_DBUS @@ -16,8 +16,8 @@ musicmessaging_la_SOURCES = \ musicmessaging.c +musicmessaging_la_LIBADD = $(GTK_LIBS) $(DBUS_LIBS) - CLEANFILES = music-messaging-bindings.c .PHONY: always Modified: trunk/gtk/plugins/ticker/Makefile.am =================================================================== --- trunk/gtk/plugins/ticker/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/gtk/plugins/ticker/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -3,7 +3,7 @@ plugindir = $(libdir)/gaim -ticker_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) +ticker_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -14,6 +14,8 @@ gtkticker.h \ ticker.c +ticker_la_LIBADD = $(GTK_LIBS) + endif AM_CPPFLAGS = \ Modified: trunk/libgaim/plugins/Makefile.am =================================================================== --- trunk/libgaim/plugins/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/plugins/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -24,13 +24,13 @@ plugindir = $(libdir)/gaim -idle_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -log_reader_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -psychic_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -statenotify_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +idle_la_LDFLAGS = -module -avoid-version +log_reader_la_LDFLAGS = -module -avoid-version +psychic_la_LDFLAGS = -module -avoid-version +statenotify_la_LDFLAGS = -module -avoid-version # this can't be in a conditional otherwise automake 1.4 yells -dbus_example_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(DBUS_LIBS) +dbus_example_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -47,11 +47,18 @@ psychic_la_SOURCES = psychic.c statenotify_la_SOURCES = statenotify.c +idle_la_LIBADD = $(GLIB_LIBS) +log_reader_la_LIBADD = $(GLIB_LIBS) +psychic_la_LIBADD = $(GLIB_LIBS) +statenotify_la_LIBADD = $(GLIB_LIBS) + if ENABLE_DBUS CLEANFILES = dbus-example-bindings.c dbus_example_la_SOURCES = dbus-example.c +dbus_example_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) + .PHONY: always $(top_builddir)/libgaim/dbus-types.h: always Modified: trunk/libgaim/plugins/perl/Makefile.am =================================================================== --- trunk/libgaim/plugins/perl/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/plugins/perl/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,11 +1,13 @@ plugindir = $(libdir)/gaim +hackdir = $(plugindir)/private perl_dirs = common -plugin_LTLIBRARIES = perl.la libgaimperl.la +plugin_LTLIBRARIES = perl.la +hack_LTLIBRARIES = libgaimperl.la -perl_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(PERL_LIBS) -perl_la_LIBADD = $(PERL_LIBS) -L. -L.libs -lgaimperl +perl_la_LDFLAGS = -module -avoid-version +perl_la_LIBADD = $(GLIB_LIBS) $(PERL_LIBS) libgaimperl.la perl_la_SOURCES = \ perl.c \ perl-common.c \ @@ -18,7 +20,8 @@ .libs/DynaLoader.a \ libgaimperl.la -libgaimperl_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libgaimperl_la_LDFLAGS = -module -avoid-version +libgaimperl_la_LIBADD = $(GLIB_LIBS) libgaimperl_la_SOURCES = libgaimperl.c .libs/libperl_orig.a: Modified: trunk/libgaim/plugins/ssl/Makefile.am =================================================================== --- trunk/libgaim/plugins/ssl/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/plugins/ssl/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -3,9 +3,9 @@ plugindir = $(libdir)/gaim -ssl_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -ssl_gnutls_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) -ssl_nss_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +ssl_la_LDFLAGS = -module -avoid-version +ssl_gnutls_la_LDFLAGS = -module -avoid-version +ssl_nss_la_LDFLAGS = -module -avoid-version if PLUGINS @@ -18,8 +18,9 @@ ssl_gnutls_la_SOURCES = ssl-gnutls.c ssl_nss_la_SOURCES = ssl-nss.c -ssl_gnutls_la_LIBADD = $(GNUTLS_LIBS) -ssl_nss_la_LIBADD = $(NSS_LIBS) +ssl_la_LIBADD = $(GLIB_LIBS) +ssl_gnutls_la_LIBADD = $(GLIB_LIBS) $(GNUTLS_LIBS) +ssl_nss_la_LIBADD = $(GLIB_LIBS) $(NSS_LIBS) endif # PLUGINS Modified: trunk/libgaim/plugins/tcl/Makefile.am =================================================================== --- trunk/libgaim/plugins/tcl/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/plugins/tcl/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -1,12 +1,14 @@ plugindir = $(libdir)/gaim -tcl_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS) +tcl_la_LDFLAGS = -module -avoid-version plugin_LTLIBRARIES = tcl.la tcl_la_SOURCES = tcl.c tcl_glib.c tcl_glib.h tcl_cmds.c tcl_signals.c tcl_gaim.h \ tcl_ref.c tcl_cmd.c +tcl_la_LIBADD = $(GLIB_LIBS) $(TCL_LIBS) $(TK_LIBS) + EXTRA_DIST = signal-test.tcl Makefile.mingw AM_CPPFLAGS = \ Modified: trunk/libgaim/protocols/bonjour/Makefile.am =================================================================== --- trunk/libgaim/protocols/bonjour/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/bonjour/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -15,7 +15,7 @@ AM_CFLAGS = $(st) -libbonjour_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(HOWL_LIBS) +libbonjour_la_LDFLAGS = -module -avoid-version if STATIC_BONJOUR @@ -30,6 +30,7 @@ st = pkg_LTLIBRARIES = libbonjour.la libbonjour_la_SOURCES = $(BONJOURSOURCES) +libbonjour_la_LIBADD = $(GLIB_LIBS) $(HOWL_LIBS) endif Modified: trunk/libgaim/protocols/gg/Makefile.am =================================================================== --- trunk/libgaim/protocols/gg/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/gg/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -47,7 +47,7 @@ AM_CFLAGS = $(st) -libgg_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libgg_la_LDFLAGS = -module -avoid-version if STATIC_GG @@ -66,7 +66,7 @@ noinst_LIBRARIES = libgg_la_SOURCES = $(GGSOURCES) -libgg_la_LIBADD = $(GADU_LIBS) +libgg_la_LIBADD = $(GLIB_LIBS) $(GADU_LIBS) endif Modified: trunk/libgaim/protocols/irc/Makefile.am =================================================================== --- trunk/libgaim/protocols/irc/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/irc/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -6,7 +6,7 @@ AM_CFLAGS = $(st) -libirc_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libirc_la_LDFLAGS = -module -avoid-version if STATIC_IRC @@ -24,6 +24,7 @@ noinst_LIBRARIES = libirc_la_SOURCES = $(IRCSOURCES) +libirc_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/jabber/Makefile.am =================================================================== --- trunk/libgaim/protocols/jabber/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/jabber/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -36,7 +36,7 @@ AM_CFLAGS = $(st) -libjabber_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) +libjabber_la_LDFLAGS = -module -avoid-version if STATIC_JABBER @@ -54,6 +54,7 @@ noinst_LIBRARIES = libjabber_la_SOURCES = $(JABBERSOURCES) +libjabber_la_LIBADD = $(GLIB_LIBS) $(SASL_LIBS) $(LIBXML_LIBS) endif Modified: trunk/libgaim/protocols/msn/Makefile.am =================================================================== --- trunk/libgaim/protocols/msn/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/msn/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -65,7 +65,7 @@ AM_CFLAGS = $(st) -libmsn_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libmsn_la_LDFLAGS = -module -avoid-version if STATIC_MSN @@ -79,6 +79,7 @@ st = pkg_LTLIBRARIES = libmsn.la libmsn_la_SOURCES = $(MSNSOURCES) +libmsn_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/novell/Makefile.am =================================================================== --- trunk/libgaim/protocols/novell/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/novell/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -28,7 +28,7 @@ AM_CFLAGS = $(st) -libnovell_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libnovell_la_LDFLAGS = -module -avoid-version if STATIC_NOVELL @@ -46,6 +46,7 @@ noinst_LIBRARIES = libnovell_la_SOURCES = $(NOVELLSOURCES) +libnovell_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/oscar/Makefile.am =================================================================== --- trunk/libgaim/protocols/oscar/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/oscar/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -46,7 +46,7 @@ AM_CFLAGS = $(st) -liboscar_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +liboscar_la_LDFLAGS = -module -avoid-version if STATIC_OSCAR @@ -60,6 +60,7 @@ st = pkg_LTLIBRARIES = liboscar.la liboscar_la_SOURCES = $(OSCARSOURCES) +liboscar_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/qq/Makefile.am =================================================================== --- trunk/libgaim/protocols/qq/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/qq/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -73,7 +73,7 @@ AM_CFLAGS = $(st) -libqq_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libqq_la_LDFLAGS = -module -avoid-version if STATIC_QQ @@ -87,6 +87,7 @@ st = pkg_LTLIBRARIES = libqq.la libqq_la_SOURCES = $(QQSOURCES) +libqq_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/silc/Makefile.am =================================================================== --- trunk/libgaim/protocols/silc/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/silc/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -6,7 +6,7 @@ AM_CFLAGS = $(st) -libsilcgaim_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libsilcgaim_la_LDFLAGS = -module -avoid-version if STATIC_SILC @@ -25,7 +25,7 @@ noinst_LIBRARIES = libsilcgaim_la_SOURCES = $(SILCSOURCES) -libsilcgaim_la_LIBADD = $(SILC_LIBS) +libsilcgaim_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) endif Modified: trunk/libgaim/protocols/simple/Makefile.am =================================================================== --- trunk/libgaim/protocols/simple/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/simple/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -11,7 +11,7 @@ AM_CFLAGS = $(st) -libsimple_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libsimple_la_LDFLAGS = -module -avoid-version if STATIC_MSN @@ -25,6 +25,7 @@ st = pkg_LTLIBRARIES = libsimple.la libsimple_la_SOURCES = $(SIMPLESOURCES) +libsimple_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/yahoo/Makefile.am =================================================================== --- trunk/libgaim/protocols/yahoo/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/yahoo/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -29,7 +29,7 @@ AM_CFLAGS = $(st) -libyahoo_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libyahoo_la_LDFLAGS = -module -avoid-version if STATIC_YAHOO @@ -43,6 +43,7 @@ st = pkg_LTLIBRARIES = libyahoo.la libyahoo_la_SOURCES = $(YAHOOSOURCES) +libyahoo_la_LIBADD = $(GLIB_LIBS) endif Modified: trunk/libgaim/protocols/zephyr/Makefile.am =================================================================== --- trunk/libgaim/protocols/zephyr/Makefile.am 2006-10-01 16:33:14 UTC (rev 17419) +++ trunk/libgaim/protocols/zephyr/Makefile.am 2006-10-01 18:17:49 UTC (rev 17420) @@ -73,7 +73,7 @@ ZEPHYRLIBSEXT = $(ZEPHYR_LDFLAGS) $(ZEPHYR_LIBS) -libzephyr_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS) +libzephyr_la_LDFLAGS = -module -avoid-version if STATIC_ZEPHYR @@ -90,10 +90,10 @@ if EXTERNAL_LIBZEPHYR libzephyr_la_SOURCES = $(ZEPHYRSOURCESEXT) -libzephyr_la_LIBADD = $(ZEPHYRLIBSEXT) +libzephyr_la_LIBADD = $(GLIB_LIBS) $(ZEPHYRLIBSEXT) else libzephyr_la_SOURCES = $(ZEPHYRSOURCES) -libzephyr_la_LIBADD = $(ZEPHYRLIBS) +libzephyr_la_LIBADD = $(GLIB_LIBS) $(ZEPHYRLIBS) endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-10-04 02:53:57
|
Revision: 17409 http://svn.sourceforge.net/gaim/?rev=17409&view=rev Author: datallah Date: 2006-09-30 13:09:28 -0700 (Sat, 30 Sep 2006) Log Message: ----------- Finish up making the status box work nicely when you have accounts with identical statuses enabled. This adds some (further) complexity to the status box, but I actually eliminated some unnecessary regenerations and refreshes and stuff. Modified Paths: -------------- trunk/gtk/gtkstatusbox.c trunk/gtk/gtkstatusbox.h trunk/libgaim/savedstatuses.c Modified: trunk/gtk/gtkstatusbox.c =================================================================== --- trunk/gtk/gtkstatusbox.c 2006-09-30 08:24:17 UTC (rev 17408) +++ trunk/gtk/gtkstatusbox.c 2006-09-30 20:09:28 UTC (rev 17409) @@ -500,7 +500,10 @@ char *primary, *secondary, *text; GdkPixbuf *pixbuf; GtkTreePath *path; + gboolean account_status = FALSE; + GaimAccount *acct = (status_box->token_status_account) ? status_box->token_status_account : status_box->account; + show_buddy_icons = gaim_prefs_get_bool("/gaim/gtk/blist/show_buddy_icons"); if (show_buddy_icons) icon_size = gtk_icon_size_from_name(GAIM_ICON_SIZE_STATUS); @@ -515,6 +518,10 @@ saved_status = gaim_savedstatus_get_current(); + if (status_box->account || (status_box->token_status_account + && gaim_savedstatus_is_transient(saved_status))) + account_status = TRUE; + /* Primary */ if (status_box->typing != 0) { @@ -534,10 +541,8 @@ /* This should never happen, but just in case... */ primary = g_strdup("New status"); } - else if (status_box->account != NULL) - { - primary = g_strdup(gaim_status_get_name(gaim_account_get_active_status(status_box->account))); - } + else if (account_status) + primary = g_strdup(gaim_status_get_name(gaim_account_get_active_status(acct))); else if (gaim_savedstatus_is_transient(saved_status)) primary = g_strdup(gaim_primitive_get_name_from_type(gaim_savedstatus_get_type(saved_status))); else @@ -573,9 +578,9 @@ pixbuf = status_box->connecting_pixbufs[status_box->connecting_index]; else { - if (status_box->account != NULL) - pixbuf = gaim_gtk_create_prpl_icon_with_status(status_box->account, - gaim_status_get_type(gaim_account_get_active_status(status_box->account)), + if (account_status) + pixbuf = gaim_gtk_create_prpl_icon_with_status(acct, + gaim_status_get_type(gaim_account_get_active_status(acct)), show_buddy_icons ? 1.0 : 0.5); else pixbuf = gaim_gtk_create_gaim_icon_with_status( @@ -638,6 +643,25 @@ update_size(status_box); } +static GaimStatusType * +find_status_type_by_index(const GaimAccount *account, gint active) +{ + const GList *l = gaim_account_get_status_types(account); + gint i; + + for (i = 0; l; l = l->next) { + GaimStatusType *status_type = l->data; + if (!gaim_status_type_is_user_settable(status_type)) + continue; + + if (active == i) + return status_type; + i++; + } + + return NULL; +} + /** * This updates the GtkTreeView so that it correctly shows the state * we are currently using. It is used when the current state is @@ -675,7 +699,7 @@ * popular status in the dropdown menu. */ primitive = gaim_savedstatus_get_type(saved_status); - if (gaim_savedstatus_is_transient(saved_status) && + if (!status_box->token_status_account && gaim_savedstatus_is_transient(saved_status) && ((primitive == GAIM_STATUS_AVAILABLE) || (primitive == GAIM_STATUS_AWAY) || (primitive == GAIM_STATUS_INVISIBLE) || (primitive == GAIM_STATUS_OFFLINE)) && (!gaim_savedstatus_has_substatuses(saved_status))) @@ -688,6 +712,7 @@ GtkTreeIter iter; GtkGaimStatusBoxItemType type; gpointer data; + const char *name; /* Unset the active item */ gtk_combo_box_set_active(GTK_COMBO_BOX(status_box), -1); @@ -699,11 +724,25 @@ { gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter, TYPE_COLUMN, &type, + TEXT_COLUMN, &name, DATA_COLUMN, &data, -1); - if ((type == GTK_GAIM_STATUS_BOX_TYPE_POPULAR) && - (GPOINTER_TO_INT(data) == gaim_savedstatus_get_creation_time(saved_status))) + if (status_box->token_status_account && gaim_savedstatus_is_transient(saved_status) + && type == GTK_GAIM_STATUS_BOX_TYPE_PRIMITIVE && primitive == GPOINTER_TO_INT(data)) { + const char *acct_status_name = gaim_status_get_name( + gaim_account_get_active_status(status_box->token_status_account)); + if (!gaim_savedstatus_has_substatuses(saved_status) + || !strcmp(name, acct_status_name)) + { + /* Found! */ + gtk_combo_box_set_active_iter(GTK_COMBO_BOX(status_box), &iter); + break; + } + } + else if ((type == GTK_GAIM_STATUS_BOX_TYPE_POPULAR) && + (GPOINTER_TO_INT(data) == gaim_savedstatus_get_creation_time(saved_status))) + { /* Found! */ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(status_box), &iter); break; @@ -898,7 +937,6 @@ gtk_gaim_status_box_regenerate(GtkGaimStatusBox *status_box) { gboolean show_buddy_icons; - GaimAccount *account; GdkPixbuf *pixbuf, *pixbuf2, *pixbuf3, *pixbuf4; GtkIconSize icon_size; @@ -916,17 +954,16 @@ * if we do this here. */ /* gtk_combo_box_set_model(GTK_COMBO_BOX(status_box), GTK_TREE_MODEL(status_box->dropdown_store)); */ - account = GTK_GAIM_STATUS_BOX(status_box)->account; - if (account == NULL) + if (status_box->account == NULL) { pixbuf = gtk_widget_render_icon (GTK_WIDGET(status_box->vbox), GAIM_STOCK_STATUS_ONLINE, icon_size, "GtkGaimStatusBox"); /* Do all the currently enabled accounts have the same statuses? * If so, display them instead of our global list. */ - if ((account = check_active_accounts_for_identical_statuses())) - add_account_statuses(status_box, account, show_buddy_icons); - else { + if (status_box->token_status_account) { + add_account_statuses(status_box, status_box->token_status_account, show_buddy_icons); + } else { /* Global */ pixbuf2 = gtk_widget_render_icon (GTK_WIDGET(status_box->vbox), GAIM_STOCK_STATUS_AWAY, icon_size, "GtkGaimStatusBox"); @@ -951,8 +988,9 @@ status_menu_refresh_iter(status_box); } else { - add_account_statuses(status_box, account, show_buddy_icons); - update_to_reflect_account_status(status_box, account, gaim_account_get_active_status(account)); + add_account_statuses(status_box, status_box->account, show_buddy_icons); + update_to_reflect_account_status(status_box, status_box->account, + gaim_account_get_active_status(status_box->account)); } } @@ -1075,16 +1113,14 @@ } static void account_enabled_cb(GaimAccount *acct, GtkGaimStatusBox *status_box) { - /* Make sure our current status is added to the list of popular statuses */ - gtk_gaim_status_box_regenerate(status_box); + GaimAccount *initial_token_acct = status_box->token_status_account; - if (status_box->account != NULL) - update_to_reflect_account_status(status_box, status_box->account, - gaim_account_get_active_status(status_box->account)); - else - status_menu_refresh_iter(status_box); + status_box->token_status_account = check_active_accounts_for_identical_statuses(); - gtk_gaim_status_box_refresh(status_box); + /* Regenerate the list if it has changed */ + if (initial_token_acct != status_box->token_status_account) { + gtk_gaim_status_box_regenerate(status_box); + } } @@ -1093,14 +1129,6 @@ { /* Make sure our current status is added to the list of popular statuses */ gtk_gaim_status_box_regenerate(status_box); - - if (status_box->account != NULL) - update_to_reflect_account_status(status_box, status_box->account, - gaim_account_get_active_status(status_box->account)); - else - status_menu_refresh_iter(status_box); - - gtk_gaim_status_box_refresh(status_box); } static void @@ -1111,7 +1139,6 @@ cache_pixbufs(status_box); gtk_gaim_status_box_regenerate(status_box); - gtk_gaim_status_box_refresh(status_box); } static void @@ -1315,9 +1342,10 @@ gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(status_box), dropdown_store_row_separator_func, NULL, NULL); #endif + status_box->token_status_account = check_active_accounts_for_identical_statuses(); + cache_pixbufs(status_box); gtk_gaim_status_box_regenerate(status_box); - gtk_gaim_status_box_refresh(status_box); gaim_signal_connect(gaim_savedstatuses_get_handle(), "savedstatus-changed", status_box, @@ -1658,25 +1686,6 @@ gtk_gaim_status_box_refresh(status_box); } -static GaimStatusType * -find_status_type_by_index(const GaimAccount *account, gint active) -{ - const GList *l = gaim_account_get_status_types(account); - gint i; - - for (i = 0; l; l = l->next) { - GaimStatusType *status_type = l->data; - if (!gaim_status_type_is_user_settable(status_type)) - continue; - - if (active == i) - return status_type; - i++; - } - - return NULL; -} - static gboolean message_changed(const char *one, const char *two) { @@ -1697,7 +1706,7 @@ gchar *title; GtkTreeIter iter; char *message; - GaimSavedStatus *saved_status; + GaimSavedStatus *saved_status = NULL; gboolean changed = TRUE; if (!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(status_box), &iter)) @@ -1735,29 +1744,93 @@ } if (status_box->account == NULL) { + GaimStatusType *acct_status_type = NULL; + GaimStatusPrimitive primitive = GPOINTER_TO_INT(data); /* Global */ /* Save the newly selected status to prefs.xml and status.xml */ /* Has the status really been changed? */ - saved_status = gaim_savedstatus_get_current(); - if (gaim_savedstatus_get_type(saved_status) == GPOINTER_TO_INT(data) && - !gaim_savedstatus_has_substatuses(saved_status)) - { - if (!message_changed(gaim_savedstatus_get_message(saved_status), message)) - changed = FALSE; + if (status_box->token_status_account) { + gint active; + GaimStatus *status; + const char *id = NULL; + + status = gaim_account_get_active_status(status_box->token_status_account); + g_object_get(G_OBJECT(status_box), "active", &active, NULL); + + acct_status_type = find_status_type_by_index(status_box->token_status_account, active); + id = gaim_status_type_get_id(acct_status_type); + + if (strncmp(id, gaim_status_get_id(status), strlen(id)) == 0) + { + /* Selected status and previous status is the same */ + if (!message_changed(message, gaim_status_get_attr_string(status, "message"))) + changed = FALSE; + } + } else { + saved_status = gaim_savedstatus_get_current(); + if (gaim_savedstatus_get_type(saved_status) == primitive && + !gaim_savedstatus_has_substatuses(saved_status)) + { + if (!message_changed(gaim_savedstatus_get_message(saved_status), message)) + changed = FALSE; + } } if (changed) { - /* If we've used this type+message before, lookup the transient status */ - saved_status = gaim_savedstatus_find_transient_by_type_and_message( - GPOINTER_TO_INT(data), message); + /* Manually find the appropriate transient acct */ + if (status_box->token_status_account) { + const GList *iter = gaim_savedstatuses_get_all(); + GList *tmp, *active_accts = gaim_accounts_get_all_active(); + for (; iter != NULL; iter = iter->next) { + GaimSavedStatus *ss= iter->data; + const char *ss_msg = gaim_savedstatus_get_message(ss); + if ((gaim_savedstatus_get_type(ss) == primitive) && gaim_savedstatus_is_transient(ss) && + gaim_savedstatus_has_substatuses(ss) && /* Must have substatuses */ + (((ss_msg == NULL) && (message == NULL)) || + ((ss_msg != NULL) && (message != NULL) && !strcmp(ss_msg, message)))) + { + gboolean found = FALSE; + /* The currently enabled accounts must have substatuses for all the active accts */ + for(tmp = active_accts; tmp != NULL; tmp = tmp->next) { + GaimAccount *acct = tmp->data; + GaimSavedStatusSub *sub = gaim_savedstatus_get_substatus(ss, acct); + if (sub) { + const GaimStatusType *sub_type = gaim_savedstatus_substatus_get_type(sub); + if (!strcmp(gaim_status_type_get_id(sub_type), + gaim_status_type_get_id(acct_status_type))) + found = TRUE; + } + } + if (!found) + continue; + saved_status = ss; + break; + } + } + + g_list_free(active_accts); + + } else { + /* If we've used this type+message before, lookup the transient status */ + saved_status = gaim_savedstatus_find_transient_by_type_and_message(primitive, message); + } + /* If this type+message is unique then create a new transient saved status */ if (saved_status == NULL) { - saved_status = gaim_savedstatus_new(NULL, GPOINTER_TO_INT(data)); + saved_status = gaim_savedstatus_new(NULL, primitive); gaim_savedstatus_set_message(saved_status, message); + if (status_box->token_status_account) { + GList *tmp, *active_accts = gaim_accounts_get_all_active(); + for (tmp = active_accts; tmp != NULL; tmp = tmp->next) { + gaim_savedstatus_set_substatus(saved_status, + (GaimAccount*) tmp->data, acct_status_type, message); + } + g_list_free(active_accts); + } } /* Set the status for each account */ @@ -1939,17 +2012,15 @@ if (status_box->imhtml_visible) { gtk_widget_show_all(status_box->vbox); - if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET(status_box))) { - status_box->typing = g_timeout_add(TYPING_TIMEOUT, (GSourceFunc)remove_typing_cb, status_box); - } + status_box->typing = g_timeout_add(TYPING_TIMEOUT, (GSourceFunc)remove_typing_cb, status_box); gtk_widget_grab_focus(status_box->imhtml); gtk_imhtml_clear(GTK_IMHTML(status_box->imhtml)); } else { gtk_widget_hide_all(status_box->vbox); - if (GTK_WIDGET_IS_SENSITIVE(GTK_WIDGET(status_box))) - activate_currently_selected_status(status_box); /* This is where we actually set the status */ + activate_currently_selected_status(status_box); /* This is where we actually set the status */ + return; } } gtk_gaim_status_box_refresh(status_box); Modified: trunk/gtk/gtkstatusbox.h =================================================================== --- trunk/gtk/gtkstatusbox.h 2006-09-30 08:24:17 UTC (rev 17408) +++ trunk/gtk/gtkstatusbox.h 2006-09-30 20:09:28 UTC (rev 17409) @@ -81,6 +81,10 @@ GaimAccount *account; + /* This will be non-NULL and contain a sample account + * when all enabled accounts use the same statuses */ + GaimAccount *token_status_account; + GtkWidget *vbox, *sw; GtkWidget *imhtml; Modified: trunk/libgaim/savedstatuses.c =================================================================== --- trunk/libgaim/savedstatuses.c 2006-09-30 08:24:17 UTC (rev 17408) +++ trunk/libgaim/savedstatuses.c 2006-09-30 20:09:28 UTC (rev 17409) @@ -910,6 +910,7 @@ { status = (GaimSavedStatus *)iter->data; if ((status->type == type) && gaim_savedstatus_is_transient(status) && + !gaim_savedstatus_has_substatuses(status) && (((status->message == NULL) && (message == NULL)) || ((status->message != NULL) && (message != NULL) && !strcmp(status->message, message)))) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-10-05 23:24:10
|
Revision: 17433 http://svn.sourceforge.net/gaim/?rev=17433&view=rev Author: seanegan Date: 2006-10-05 16:24:00 -0700 (Thu, 05 Oct 2006) Log Message: ----------- Depluginize the docklet. Modified Paths: -------------- trunk/gtk/Makefile.am trunk/gtk/gtkmain.c trunk/gtk/plugins/docklet/Makefile.am trunk/gtk/plugins/docklet/docklet.c trunk/libgaim/util.c Added Paths: ----------- trunk/gtk/docklet-x11.c trunk/gtk/docklet.h trunk/gtk/eggtrayicon.c trunk/gtk/eggtrayicon.h trunk/gtk/gtkdocklet-win32.c trunk/gtk/gtkdocklet-x11.c trunk/gtk/gtkdocklet.c trunk/gtk/gtkdocklet.h trunk/gtk/win32/MinimizeToTray.c trunk/gtk/win32/MinimizeToTray.h Removed Paths: ------------- trunk/gtk/plugins/docklet/docklet-win32.c trunk/gtk/plugins/docklet/docklet-x11.c trunk/gtk/plugins/docklet/docklet.h trunk/gtk/plugins/docklet/eggtrayicon.c trunk/gtk/plugins/docklet/eggtrayicon.h Modified: trunk/gtk/Makefile.am =================================================================== --- trunk/gtk/Makefile.am 2006-10-04 20:31:44 UTC (rev 17432) +++ trunk/gtk/Makefile.am 2006-10-05 23:24:00 UTC (rev 17433) @@ -59,6 +59,7 @@ bin_PROGRAMS = gaim gaim_SOURCES = \ + eggtrayicon.c \ gaimcombobox.c \ gaimstock.c \ gtkaccount.c \ @@ -73,6 +74,8 @@ gtkdebug.c \ gtkdialogs.c \ gtkdnd-hints.c \ + gtkdocklet.c \ + gtkdocklet-x11.c \ gtkeventloop.c \ gtkexpander.c \ gtkft.c \ @@ -100,6 +103,7 @@ gtkwhiteboard.c gaim_headers = \ + eggtrayicon.h \ gtkaccount.h \ gtkblist.h \ gtkcelllayout.h \ @@ -116,6 +120,7 @@ gtkdebug.h \ gtkdialogs.h \ gtkdnd-hints.h \ + gtkdocklet.h \ gtkeventloop.h \ gtkexpander.h \ gtkft.h \ Copied: trunk/gtk/docklet-x11.c (from rev 17432, trunk/gtk/plugins/docklet/docklet-x11.c) =================================================================== --- trunk/gtk/docklet-x11.c (rev 0) +++ trunk/gtk/docklet-x11.c 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,305 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include "internal.h" +#include "gtkgaim.h" +#include "debug.h" +#include "gaimstock.h" + +#include "gaim.h" +#include "gtkdialogs.h" + +#include "eggtrayicon.h" +#include "docklet.h" + +#define EMBED_TIMEOUT 5000 + +/* globals */ +static EggTrayIcon *docklet = NULL; +static GtkWidget *image = NULL; +static GtkTooltips *tooltips = NULL; +static GdkPixbuf *blank_icon = NULL; +static int embed_timeout = 0; + +/* protos */ +static void docklet_x11_create(void); + +static gboolean +docklet_x11_create_cb() +{ + docklet_x11_create(); + + return FALSE; /* for when we're called by the glib idle handler */ +} + +static void +docklet_x11_embedded_cb(GtkWidget *widget, void *data) +{ + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "embedded\n"); + + g_source_remove(embed_timeout); + embed_timeout = 0; + docklet_embedded(); +} + +static void +docklet_x11_destroyed_cb(GtkWidget *widget, void *data) +{ + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "destroyed\n"); + + docklet_remove(); + + g_object_unref(G_OBJECT(docklet)); + docklet = NULL; + + g_idle_add(docklet_x11_create_cb, &handle); +} + +static void +docklet_x11_clicked_cb(GtkWidget *button, GdkEventButton *event, void *data) +{ + if (event->type != GDK_BUTTON_PRESS) + return; + + docklet_clicked(event->button); +} + +static void +docklet_x11_update_icon(DockletStatus icon) +{ + const gchar *icon_name = NULL; + + g_return_if_fail(image != NULL); + + switch (icon) { + case DOCKLET_STATUS_OFFLINE: + icon_name = GAIM_STOCK_ICON_OFFLINE; + break; + case DOCKLET_STATUS_CONNECTING: + icon_name = GAIM_STOCK_ICON_CONNECT; + break; + case DOCKLET_STATUS_ONLINE: + icon_name = GAIM_STOCK_ICON_ONLINE; + break; + case DOCKLET_STATUS_ONLINE_PENDING: + icon_name = GAIM_STOCK_ICON_ONLINE_MSG; + break; + case DOCKLET_STATUS_AWAY: + icon_name = GAIM_STOCK_ICON_AWAY; + break; + case DOCKLET_STATUS_AWAY_PENDING: + icon_name = GAIM_STOCK_ICON_AWAY_MSG; + break; + } + + if(icon_name) + gtk_image_set_from_stock(GTK_IMAGE(image), icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); + +#if 0 + GdkPixbuf *p; + GdkBitmap *mask = NULL; + + p = gtk_widget_render_icon(GTK_WIDGET(image), icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + + if (p && (gdk_pixbuf_get_colorspace(p) == GDK_COLORSPACE_RGB) && (gdk_pixbuf_get_bits_per_sample(p) == 8) + && (gdk_pixbuf_get_has_alpha(p)) && (gdk_pixbuf_get_n_channels(p) == 4)) { + int len = gdk_pixbuf_get_width(p) * gdk_pixbuf_get_height(p); + guchar *data = gdk_pixbuf_get_pixels(p); + guchar *bitmap = g_malloc((len / 8) + 1); + int i; + + for (i = 0; i < len; i++) + if (data[i*4 + 3] > 55) + bitmap[i/8] |= 1 << i % 8; + else + bitmap[i/8] &= ~(1 << i % 8); + + mask = gdk_bitmap_create_from_data(GDK_DRAWABLE(GTK_WIDGET(image)->window), bitmap, gdk_pixbuf_get_width(p), gdk_pixbuf_get_height(p)); + g_free(bitmap); + } + + if (mask) + gdk_window_shape_combine_mask(image->window, mask, 0, 0); + + g_object_unref(G_OBJECT(p)); +#endif +} + +static void +docklet_x11_blank_icon() +{ + if (!blank_icon) { + gint width, height; + + gtk_icon_size_lookup(GTK_ICON_SIZE_LARGE_TOOLBAR, &width, &height); + blank_icon = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, width, height); + gdk_pixbuf_fill(blank_icon, 0); + } + + gtk_image_set_from_pixbuf(GTK_IMAGE(image), blank_icon); +} + +static void +docklet_x11_set_tooltip(gchar *tooltip) +{ + if (!tooltips) + tooltips = gtk_tooltips_new(); + + /* image->parent is a GtkEventBox */ + if (tooltip) { + gtk_tooltips_enable(tooltips); + gtk_tooltips_set_tip(tooltips, image->parent, tooltip, NULL); + } else { + gtk_tooltips_set_tip(tooltips, image->parent, "", NULL); + gtk_tooltips_disable(tooltips); + } +} + +#if GTK_CHECK_VERSION(2,2,0) +static void +docklet_x11_position_menu(GtkMenu *menu, int *x, int *y, gboolean *push_in, + gpointer user_data) +{ + GtkWidget *widget = GTK_WIDGET(docklet); + GtkRequisition req; + gint menu_xpos, menu_ypos; + + gtk_widget_size_request(GTK_WIDGET(menu), &req); + gdk_window_get_origin(widget->window, &menu_xpos, &menu_ypos); + + menu_xpos += widget->allocation.x; + menu_ypos += widget->allocation.y; + + if (menu_ypos > gdk_screen_get_height(gtk_widget_get_screen(widget)) / 2) + menu_ypos -= req.height; + else + menu_ypos += widget->allocation.height; + + *x = menu_xpos; + *y = menu_ypos; + + *push_in = TRUE; +} +#endif + +static void +docklet_x11_destroy() +{ + g_return_if_fail(docklet != NULL); + + docklet_remove(); + + g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_x11_destroyed_cb), NULL); + gtk_widget_destroy(GTK_WIDGET(docklet)); + + g_object_unref(G_OBJECT(docklet)); + docklet = NULL; + + if (blank_icon) + g_object_unref(G_OBJECT(blank_icon)); + blank_icon = NULL; + + image = NULL; + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "destroyed\n"); +} + +static gboolean +docklet_x11_embed_timeout_cb() +{ + /* The docklet was not embedded within the timeout. + * Remove it as a visibility manager, but leave the plugin + * loaded so that it can embed automatically if/when a notification + * area becomes available. + */ + gaim_debug_info("tray icon", "failed to embed within timeout\n"); + docklet_remove(); + + return FALSE; +} + +static void +docklet_x11_create() +{ + GtkWidget *box; + + if (docklet) { + /* if this is being called when a tray icon exists, it's because + something messed up. try destroying it before we proceed, + although docklet_refcount may be all hosed. hopefully won't happen. */ + gaim_debug(GAIM_DEBUG_WARNING, "tray icon", "trying to create icon but it already exists?\n"); + docklet_x11_destroy(); + } + + docklet = egg_tray_icon_new("Gaim"); + box = gtk_event_box_new(); + image = gtk_image_new(); + + g_signal_connect(G_OBJECT(docklet), "embedded", G_CALLBACK(docklet_x11_embedded_cb), NULL); + g_signal_connect(G_OBJECT(docklet), "destroy", G_CALLBACK(docklet_x11_destroyed_cb), NULL); + g_signal_connect(G_OBJECT(box), "button-press-event", G_CALLBACK(docklet_x11_clicked_cb), NULL); + + gtk_container_add(GTK_CONTAINER(box), image); + gtk_container_add(GTK_CONTAINER(docklet), box); + + if (!gtk_check_version(2,4,0)) + g_object_set(G_OBJECT(box), "visible-window", FALSE, NULL); + + gtk_widget_show_all(GTK_WIDGET(docklet)); + + /* ref the docklet before we bandy it about the place */ + g_object_ref(G_OBJECT(docklet)); + + /* This is a hack to avoid a race condition between the docklet getting + * embedded in the notification area and the gtkblist restoring its + * previous visibility state. If the docklet does not get embedded within + * the timeout, it will be removed as a visibility manager until it does + * get embedded. Ideally, we would only call docklet_embedded() when the + * icon was actually embedded. + */ + docklet_embedded(); + embed_timeout = g_timeout_add(EMBED_TIMEOUT, docklet_x11_embed_timeout_cb, NULL); + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); +} + +static struct docklet_ui_ops ui_ops = +{ + docklet_x11_create, + docklet_x11_destroy, + docklet_x11_update_icon, + docklet_x11_blank_icon, + docklet_x11_set_tooltip, +#if GTK_CHECK_VERSION(2,2,0) + docklet_x11_position_menu +#else + NULL +#endif +}; + +void +docklet_ui_init() +{ + docklet_set_ui_ops(&ui_ops); +} Copied: trunk/gtk/docklet.h (from rev 17432, trunk/gtk/plugins/docklet/docklet.h) =================================================================== --- trunk/gtk/docklet.h (rev 0) +++ trunk/gtk/docklet.h 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,61 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#ifndef _DOCKLET_H_ +#define _DOCKLET_H_ + +typedef enum +{ + DOCKLET_STATUS_OFFLINE, + DOCKLET_STATUS_ONLINE, + DOCKLET_STATUS_ONLINE_PENDING, + DOCKLET_STATUS_AWAY, + DOCKLET_STATUS_AWAY_PENDING, + DOCKLET_STATUS_CONNECTING +} DockletStatus; + +struct docklet_ui_ops +{ + void (*create)(void); + void (*destroy)(void); + void (*update_icon)(DockletStatus); + void (*blank_icon)(void); + void (*set_tooltip)(gchar *); + GtkMenuPositionFunc position_menu; +}; + +/* useful for setting idle callbacks that will be cleaned up */ +extern GaimPlugin *handle; + +/* functions in docklet.c */ +void docklet_clicked(int); +void docklet_embedded(void); +void docklet_remove(void); +void docklet_set_ui_ops(struct docklet_ui_ops *); +void docklet_unload(void); + +/* function in docklet-{x11,win32}.c */ +void docklet_ui_init(void); + +#endif /* _DOCKLET_H_ */ Copied: trunk/gtk/eggtrayicon.c (from rev 17432, trunk/gtk/plugins/docklet/eggtrayicon.c) =================================================================== --- trunk/gtk/eggtrayicon.c (rev 0) +++ trunk/gtk/eggtrayicon.c 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,572 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* eggtrayicon.c + * Copyright (C) 2002 Anders Carlsson <and...@gn...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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 "eggtrayicon.h" + +#include <gdk/gdkx.h> +#include <X11/Xatom.h> + +#define _(x) x +#define N_(x) x + +#define SYSTEM_TRAY_REQUEST_DOCK 0 +#define SYSTEM_TRAY_BEGIN_MESSAGE 1 +#define SYSTEM_TRAY_CANCEL_MESSAGE 2 + +#define SYSTEM_TRAY_ORIENTATION_HORZ 0 +#define SYSTEM_TRAY_ORIENTATION_VERT 1 + +enum { + PROP_0, + PROP_ORIENTATION +}; + +static GtkPlugClass *parent_class = NULL; + +static void egg_tray_icon_init (EggTrayIcon *icon); +static void egg_tray_icon_class_init (EggTrayIconClass *klass); + +static void egg_tray_icon_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +static void egg_tray_icon_realize (GtkWidget *widget); +static void egg_tray_icon_unrealize (GtkWidget *widget); + +static void egg_tray_icon_add (GtkContainer *container, + GtkWidget *widget); + +static void egg_tray_icon_update_manager_window (EggTrayIcon *icon, + gboolean dock_if_realized); +static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon); + +GType +egg_tray_icon_get_type (void) +{ + static GType our_type = 0; + + if (our_type == 0) + { + our_type = g_type_from_name("EggTrayIcon"); + + if (our_type == 0) + { + static const GTypeInfo our_info = + { + sizeof (EggTrayIconClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) egg_tray_icon_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (EggTrayIcon), + 0, /* n_preallocs */ + (GInstanceInitFunc) egg_tray_icon_init, + NULL /* value_table */ + }; + + our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0); + } + else if (parent_class == NULL) + { + /* we're reheating the old class from a previous instance - engage ugly hack =( */ + egg_tray_icon_class_init((EggTrayIconClass *)g_type_class_peek(our_type)); + } + } + + return our_type; +} + +static void +egg_tray_icon_init (EggTrayIcon *icon) +{ + icon->stamp = 1; + icon->orientation = GTK_ORIENTATION_HORIZONTAL; + + gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK); +} + +static void +egg_tray_icon_class_init (EggTrayIconClass *klass) +{ + GObjectClass *gobject_class = (GObjectClass *)klass; + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + GtkContainerClass *container_class = (GtkContainerClass *)klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->get_property = egg_tray_icon_get_property; + + widget_class->realize = egg_tray_icon_realize; + widget_class->unrealize = egg_tray_icon_unrealize; + + container_class->add = egg_tray_icon_add; + + g_object_class_install_property (gobject_class, + PROP_ORIENTATION, + g_param_spec_enum ("orientation", + _("Orientation"), + _("The orientation of the tray."), + GTK_TYPE_ORIENTATION, + GTK_ORIENTATION_HORIZONTAL, + G_PARAM_READABLE)); +} + +static void +egg_tray_icon_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + EggTrayIcon *icon = EGG_TRAY_ICON (object); + + switch (prop_id) + { + case PROP_ORIENTATION: + g_value_set_enum (value, icon->orientation); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +egg_tray_icon_get_orientation_property (EggTrayIcon *icon) +{ + Display *xdisplay; + Atom type; + int format; + union { + gulong *prop; + guchar *prop_ch; + } prop = { NULL }; + gulong nitems; + gulong bytes_after; + int error, result; + + g_return_if_fail(icon->manager_window != None); + +#if GTK_CHECK_VERSION(2,1,0) + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + xdisplay = gdk_display; +#endif + + gdk_error_trap_push (); + type = None; + result = XGetWindowProperty (xdisplay, + icon->manager_window, + icon->orientation_atom, + 0, G_MAXLONG, FALSE, + XA_CARDINAL, + &type, &format, &nitems, + &bytes_after, &(prop.prop_ch)); + error = gdk_error_trap_pop (); + + if (error || result != Success) + return; + + if (type == XA_CARDINAL) + { + GtkOrientation orientation; + + orientation = (prop.prop [0] == SYSTEM_TRAY_ORIENTATION_HORZ) ? + GTK_ORIENTATION_HORIZONTAL : + GTK_ORIENTATION_VERTICAL; + + if (icon->orientation != orientation) + { + icon->orientation = orientation; + + g_object_notify (G_OBJECT (icon), "orientation"); + } + } + + if (prop.prop) + XFree (prop.prop); +} + +static GdkFilterReturn +egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data) +{ + EggTrayIcon *icon = user_data; + XEvent *xev = (XEvent *)xevent; + + if (xev->xany.type == ClientMessage && + xev->xclient.message_type == icon->manager_atom && + xev->xclient.data.l[1] == icon->selection_atom) + { + egg_tray_icon_update_manager_window (icon, TRUE); + } + else if (xev->xany.window == icon->manager_window) + { + if (xev->xany.type == PropertyNotify && + xev->xproperty.atom == icon->orientation_atom) + { + egg_tray_icon_get_orientation_property (icon); + } + if (xev->xany.type == DestroyNotify) + { + egg_tray_icon_manager_window_destroyed (icon); + } + } + + return GDK_FILTER_CONTINUE; +} + +static void +egg_tray_icon_unrealize (GtkWidget *widget) +{ + EggTrayIcon *icon = EGG_TRAY_ICON (widget); + GdkWindow *root_window; + + if (icon->manager_window != None) + { + GdkWindow *gdkwin; + +#if GTK_CHECK_VERSION(2,1,0) + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); + } + +#if GTK_CHECK_VERSION(2,1,0) + root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget)); +#else + root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +#endif + + gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon); + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); +} + +static void +egg_tray_icon_send_manager_message (EggTrayIcon *icon, + long message, + Window window, + long data1, + long data2, + long data3) +{ + XClientMessageEvent ev; + Display *display; + + ev.type = ClientMessage; + ev.window = window; + ev.message_type = icon->system_tray_opcode_atom; + ev.format = 32; + ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window); + ev.data.l[1] = message; + ev.data.l[2] = data1; + ev.data.l[3] = data2; + ev.data.l[4] = data3; + +#if GTK_CHECK_VERSION(2,1,0) + display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + display = gdk_display; +#endif + + gdk_error_trap_push (); + XSendEvent (display, + icon->manager_window, False, NoEventMask, (XEvent *)&ev); + XSync (display, False); + gdk_error_trap_pop (); +} + +static void +egg_tray_icon_send_dock_request (EggTrayIcon *icon) +{ + egg_tray_icon_send_manager_message (icon, + SYSTEM_TRAY_REQUEST_DOCK, + icon->manager_window, + gtk_plug_get_id (GTK_PLUG (icon)), + 0, 0); +} + +static void +egg_tray_icon_update_manager_window (EggTrayIcon *icon, + gboolean dock_if_realized) +{ + Display *xdisplay; + + if (icon->manager_window != None) + return; + +#if GTK_CHECK_VERSION(2,1,0) + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + xdisplay = gdk_display; +#endif + + XGrabServer (xdisplay); + + icon->manager_window = XGetSelectionOwner (xdisplay, + icon->selection_atom); + + if (icon->manager_window != None) + XSelectInput (xdisplay, + icon->manager_window, StructureNotifyMask|PropertyChangeMask); + + XUngrabServer (xdisplay); + XFlush (xdisplay); + + if (icon->manager_window != None) + { + GdkWindow *gdkwin; + +#if GTK_CHECK_VERSION(2,1,0) + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon); + + if (dock_if_realized && GTK_WIDGET_REALIZED (icon)) + egg_tray_icon_send_dock_request (icon); + + egg_tray_icon_get_orientation_property (icon); + } +} + +static void +egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon) +{ + GdkWindow *gdkwin; + + g_return_if_fail (icon->manager_window != None); + +#if GTK_CHECK_VERSION(2,1,0) + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), + icon->manager_window); +#else + gdkwin = gdk_window_lookup (icon->manager_window); +#endif + + gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); + + icon->manager_window = None; + + egg_tray_icon_update_manager_window (icon, TRUE); +} + +static gboolean +transparent_expose_event (GtkWidget *widget, GdkEventExpose *event, gpointer user_data) +{ + gdk_window_clear_area (widget->window, event->area.x, event->area.y, + event->area.width, event->area.height); + return FALSE; +} + +static void +make_transparent_again (GtkWidget *widget, GtkStyle *previous_style, + gpointer user_data) +{ + gdk_window_set_back_pixmap(widget->window, NULL, TRUE); +} + +static void +make_transparent (GtkWidget *widget, gpointer user_data) +{ + if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget)) + return; + + gtk_widget_set_app_paintable (widget, TRUE); + gtk_widget_set_double_buffered (widget, FALSE); + gdk_window_set_back_pixmap (widget->window, NULL, TRUE); + g_signal_connect (widget, "expose_event", + G_CALLBACK (transparent_expose_event), NULL); + g_signal_connect_after (widget, "style_set", + G_CALLBACK (make_transparent_again), NULL); +} + +static void +egg_tray_icon_realize (GtkWidget *widget) +{ + EggTrayIcon *icon = EGG_TRAY_ICON (widget); + gint screen; + Display *xdisplay; + char buffer[256]; + GdkWindow *root_window; + + if (GTK_WIDGET_CLASS (parent_class)->realize) + GTK_WIDGET_CLASS (parent_class)->realize (widget); + + make_transparent (widget, NULL); + +#if GTK_CHECK_VERSION(2,1,0) + screen = gdk_screen_get_number (gtk_widget_get_screen (widget)); + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (widget)); +#else + screen = XScreenNumberOfScreen (DefaultScreenOfDisplay (gdk_display)); + xdisplay = gdk_display; +#endif + + /* Now see if there's a manager window around */ + g_snprintf (buffer, sizeof (buffer), + "_NET_SYSTEM_TRAY_S%d", + screen); + + icon->selection_atom = XInternAtom (xdisplay, buffer, False); + + icon->manager_atom = XInternAtom (xdisplay, "MANAGER", False); + + icon->system_tray_opcode_atom = XInternAtom (xdisplay, + "_NET_SYSTEM_TRAY_OPCODE", + False); + + icon->orientation_atom = XInternAtom (xdisplay, + "_NET_SYSTEM_TRAY_ORIENTATION", + False); + + egg_tray_icon_update_manager_window (icon, FALSE); + egg_tray_icon_send_dock_request (icon); + +#if GTK_CHECK_VERSION(2,1,0) + root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget)); +#else + root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +#endif + + /* Add a root window filter so that we get changes on MANAGER */ + gdk_window_add_filter (root_window, + egg_tray_icon_manager_filter, icon); +} + +static void +egg_tray_icon_add (GtkContainer *container, GtkWidget *widget) +{ + g_signal_connect (widget, "realize", + G_CALLBACK (make_transparent), NULL); + GTK_CONTAINER_CLASS (parent_class)->add (container, widget); +} + +#if GTK_CHECK_VERSION(2,1,0) +EggTrayIcon * +egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name) +{ + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return g_object_new (EGG_TYPE_TRAY_ICON, "screen", screen, "title", name, NULL); +} +#endif + +EggTrayIcon* +egg_tray_icon_new (const gchar *name) +{ + return g_object_new (EGG_TYPE_TRAY_ICON, "title", name, NULL); +} + +guint +egg_tray_icon_send_message (EggTrayIcon *icon, + gint timeout, + const gchar *message, + gint len) +{ + guint stamp; + + g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0); + g_return_val_if_fail (timeout >= 0, 0); + g_return_val_if_fail (message != NULL, 0); + + if (icon->manager_window == None) + return 0; + + if (len < 0) + len = strlen (message); + + stamp = icon->stamp++; + + /* Get ready to send the message */ + egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE, + (Window)gtk_plug_get_id (GTK_PLUG (icon)), + timeout, len, stamp); + + /* Now to send the actual message */ + gdk_error_trap_push (); + while (len > 0) + { + XClientMessageEvent ev; + Display *xdisplay; + +#if GTK_CHECK_VERSION(2,1,0) + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +#else + xdisplay = gdk_display; +#endif + + ev.type = ClientMessage; + ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon)); + ev.format = 8; + ev.message_type = XInternAtom (xdisplay, + "_NET_SYSTEM_TRAY_MESSAGE_DATA", False); + if (len > 20) + { + memcpy (&ev.data, message, 20); + len -= 20; + message += 20; + } + else + { + memcpy (&ev.data, message, len); + len = 0; + } + + XSendEvent (xdisplay, + icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev); + XSync (xdisplay, False); + } + gdk_error_trap_pop (); + + return stamp; +} + +void +egg_tray_icon_cancel_message (EggTrayIcon *icon, + guint id) +{ + g_return_if_fail (EGG_IS_TRAY_ICON (icon)); + g_return_if_fail (id > 0); + + egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE, + (Window)gtk_plug_get_id (GTK_PLUG (icon)), + id, 0, 0); +} + +GtkOrientation +egg_tray_icon_get_orientation (EggTrayIcon *icon) +{ + g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), GTK_ORIENTATION_HORIZONTAL); + + return icon->orientation; +} Copied: trunk/gtk/eggtrayicon.h (from rev 17432, trunk/gtk/plugins/docklet/eggtrayicon.h) =================================================================== --- trunk/gtk/eggtrayicon.h (rev 0) +++ trunk/gtk/eggtrayicon.h 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,80 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* eggtrayicon.h + * Copyright (C) 2002 Anders Carlsson <and...@gn...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser 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 __EGG_TRAY_ICON_H__ +#define __EGG_TRAY_ICON_H__ + +#include <gtk/gtkplug.h> +#include <gtk/gtkversion.h> +#include <gdk/gdkx.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_TRAY_ICON (egg_tray_icon_get_type ()) +#define EGG_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TRAY_ICON, EggTrayIcon)) +#define EGG_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) +#define EGG_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON)) +#define EGG_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON)) +#define EGG_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) + +typedef struct _EggTrayIcon EggTrayIcon; +typedef struct _EggTrayIconClass EggTrayIconClass; + +struct _EggTrayIcon +{ + GtkPlug parent_instance; + + guint stamp; + + Atom selection_atom; + Atom manager_atom; + Atom system_tray_opcode_atom; + Atom orientation_atom; + Window manager_window; + + GtkOrientation orientation; +}; + +struct _EggTrayIconClass +{ + GtkPlugClass parent_class; +}; + +GType egg_tray_icon_get_type (void); + +#if GTK_CHECK_VERSION(2,1,0) +EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen, + const gchar *name); +#endif + +EggTrayIcon *egg_tray_icon_new (const gchar *name); + +guint egg_tray_icon_send_message (EggTrayIcon *icon, + gint timeout, + const char *message, + gint len); +void egg_tray_icon_cancel_message (EggTrayIcon *icon, + guint id); + +GtkOrientation egg_tray_icon_get_orientation (EggTrayIcon *icon); + +G_END_DECLS + +#endif /* __EGG_TRAY_ICON_H__ */ Copied: trunk/gtk/gtkdocklet-win32.c (from rev 17432, trunk/gtk/plugins/docklet/docklet-win32.c) =================================================================== --- trunk/gtk/gtkdocklet-win32.c (rev 0) +++ trunk/gtk/gtkdocklet-win32.c 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,263 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include <windows.h> +#include <gdk/gdkwin32.h> +#include <gdk/gdk.h> + +#include "internal.h" +#include "gtkblist.h" +#include "gtkprefs.h" +#include "debug.h" + +#include "gaim.h" +#include "gtkdialogs.h" + +#include "resource.h" +#include "MinimizeToTray.h" +#include "gtkwin32dep.h" +#include "docklet.h" + +/* + * DEFINES, MACROS & DATA TYPES + */ +#define WM_TRAYMESSAGE WM_USER /* User defined WM Message */ + +/* + * LOCALS + */ +static HWND systray_hwnd=0; +static HICON sysicon_disconn=0; +static HICON sysicon_conn=0; +static HICON sysicon_away=0; +static HICON sysicon_pend=0; +static HICON sysicon_awypend=0; +static HICON sysicon_blank=0; +static NOTIFYICONDATA wgaim_nid; + + +static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { + static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ + + switch(msg) { + case WM_CREATE: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_CREATE\n"); + taskbarRestartMsg = RegisterWindowMessage("TaskbarCreated"); + break; + + case WM_TIMER: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_TIMER\n"); + break; + + case WM_DESTROY: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_DESTROY\n"); + break; + + case WM_TRAYMESSAGE: + { + int type = 0; + + /* We'll use Double Click - Single click over on linux */ + if( lparam == WM_LBUTTONDBLCLK ) + type = 1; + else if( lparam == WM_MBUTTONUP ) + type = 2; + else if( lparam == WM_RBUTTONUP ) + type = 3; + else + break; + + docklet_clicked(type); + break; + } + default: + if (msg == taskbarRestartMsg) { + /* explorer crashed and left us hanging... + This will put the systray icon back in it's place, when it restarts */ + Shell_NotifyIcon(NIM_ADD,&wgaim_nid); + } + break; + }/* end switch */ + + return DefWindowProc(hwnd, msg, wparam, lparam); +} + +/* Create hidden window to process systray messages */ +static HWND systray_create_hiddenwin() { + WNDCLASSEX wcex; + TCHAR wname[32]; + + strcpy(wname, "GaimWin"); + + wcex.cbSize = sizeof(WNDCLASSEX); + + wcex.style = 0; + wcex.lpfnWndProc = (WNDPROC)systray_mainmsg_handler; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = gtkwgaim_hinstance(); + wcex.hIcon = NULL; + wcex.hCursor = NULL, + wcex.hbrBackground = NULL; + wcex.lpszMenuName = NULL; + wcex.lpszClassName = wname; + wcex.hIconSm = NULL; + + RegisterClassEx(&wcex); + + /* Create the window */ + return (CreateWindow(wname, "", 0, 0, 0, 0, 0, GetDesktopWindow(), NULL, gtkwgaim_hinstance(), 0)); +} + +static void systray_init_icon(HWND hWnd, HICON icon) { + ZeroMemory(&wgaim_nid,sizeof(wgaim_nid)); + wgaim_nid.cbSize=sizeof(NOTIFYICONDATA); + wgaim_nid.hWnd=hWnd; + wgaim_nid.uID=0; + wgaim_nid.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP; + wgaim_nid.uCallbackMessage=WM_TRAYMESSAGE; + wgaim_nid.hIcon=icon; + lstrcpy(wgaim_nid.szTip, "Gaim"); + Shell_NotifyIcon(NIM_ADD,&wgaim_nid); + docklet_embedded(); +} + +static void systray_change_icon(HICON icon) { + wgaim_nid.hIcon = icon; + Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); +} + +static void systray_remove_nid(void) { + Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); +} + +static void wgaim_tray_update_icon(DockletStatus icon) { + switch (icon) { + case DOCKLET_STATUS_OFFLINE: + systray_change_icon(sysicon_disconn); + break; + case DOCKLET_STATUS_CONNECTING: + break; + case DOCKLET_STATUS_ONLINE: + systray_change_icon(sysicon_conn); + break; + case DOCKLET_STATUS_ONLINE_PENDING: + systray_change_icon(sysicon_pend); + break; + case DOCKLET_STATUS_AWAY: + systray_change_icon(sysicon_away); + break; + case DOCKLET_STATUS_AWAY_PENDING: + systray_change_icon(sysicon_awypend); + break; + } +} + +static void wgaim_tray_blank_icon() { + systray_change_icon(sysicon_blank); +} + +static void wgaim_tray_set_tooltip(gchar *tooltip) { + if (tooltip) { + char *locenc = NULL; + locenc = g_locale_from_utf8(tooltip, -1, NULL, NULL, NULL); + lstrcpyn(wgaim_nid.szTip, locenc, sizeof(wgaim_nid.szTip)/sizeof(TCHAR)); + g_free(locenc); + } else { + lstrcpy(wgaim_nid.szTip, "Gaim"); + } + Shell_NotifyIcon(NIM_MODIFY, &wgaim_nid); +} + +void wgaim_tray_minimize(GaimGtkBuddyList *gtkblist) { + MinimizeWndToTray(GDK_WINDOW_HWND(gtkblist->window->window)); +} + +void wgaim_tray_maximize(GaimGtkBuddyList *gtkblist) { + RestoreWndFromTray(GDK_WINDOW_HWND(gtkblist->window->window)); +} + + +static void wgaim_tray_create() { + OSVERSIONINFO osinfo; + /* dummy window to process systray messages */ + systray_hwnd = systray_create_hiddenwin(); + + osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osinfo); + + /* Load icons, and init systray notify icon + * NOTE: Windows < XP only supports displaying 4-bit images in the Systray, + * 2K and ME will use the highest color depth that the desktop will support, + * but will scale it back to 4-bits for display. + * That is why we use custom 4-bit icons for pre XP Windowses */ + if ((osinfo.dwMajorVersion == 5 && osinfo.dwMinorVersion > 0) || + (osinfo.dwMajorVersion >= 6)) + { + sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + } else { + sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + } + sysicon_blank = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + + /* Create icon in systray */ + systray_init_icon(systray_hwnd, sysicon_disconn); + + gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-hiding", + &handle, GAIM_CALLBACK(wgaim_tray_minimize), NULL); + gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-unhiding", + &handle, GAIM_CALLBACK(wgaim_tray_maximize), NULL); + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); +} + +static void wgaim_tray_destroy() { + gaim_signals_disconnect_by_handle(&handle); + systray_remove_nid(); + DestroyWindow(systray_hwnd); + docklet_remove(); +} + +static struct docklet_ui_ops wgaim_tray_ops = +{ + wgaim_tray_create, + wgaim_tray_destroy, + wgaim_tray_update_icon, + wgaim_tray_blank_icon, + wgaim_tray_set_tooltip, + NULL +}; + +/* Used by docklet's plugin load func */ +void docklet_ui_init() { + docklet_set_ui_ops(&wgaim_tray_ops); +} Copied: trunk/gtk/gtkdocklet-x11.c (from rev 17432, trunk/gtk/plugins/docklet/docklet-x11.c) =================================================================== --- trunk/gtk/gtkdocklet-x11.c (rev 0) +++ trunk/gtk/gtkdocklet-x11.c 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,305 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include "internal.h" +#include "gtkgaim.h" +#include "debug.h" +#include "gaimstock.h" + +#include "gaim.h" +#include "gtkdialogs.h" + +#include "eggtrayicon.h" +#include "gtkdocklet.h" + +#define EMBED_TIMEOUT 5000 + +/* globals */ +static EggTrayIcon *docklet = NULL; +static GtkWidget *image = NULL; +static GtkTooltips *tooltips = NULL; +static GdkPixbuf *blank_icon = NULL; +static int embed_timeout = 0; + +/* protos */ +static void docklet_x11_create(void); + +static gboolean +docklet_x11_create_cb() +{ + docklet_x11_create(); + + return FALSE; /* for when we're called by the glib idle handler */ +} + +static void +docklet_x11_embedded_cb(GtkWidget *widget, void *data) +{ + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "embedded\n"); + + g_source_remove(embed_timeout); + embed_timeout = 0; + gaim_gtk_docklet_embedded(); +} + +static void +docklet_x11_destroyed_cb(GtkWidget *widget, void *data) +{ + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "destroyed\n"); + + gaim_gtk_docklet_remove(); + + g_object_unref(G_OBJECT(docklet)); + docklet = NULL; + + g_idle_add(docklet_x11_create_cb, NULL); +} + +static void +docklet_x11_clicked_cb(GtkWidget *button, GdkEventButton *event, void *data) +{ + if (event->type != GDK_BUTTON_PRESS) + return; + + gaim_gtk_docklet_clicked(event->button); +} + +static void +docklet_x11_update_icon(DockletStatus icon) +{ + const gchar *icon_name = NULL; + + g_return_if_fail(image != NULL); + + switch (icon) { + case DOCKLET_STATUS_OFFLINE: + icon_name = GAIM_STOCK_ICON_OFFLINE; + break; + case DOCKLET_STATUS_CONNECTING: + icon_name = GAIM_STOCK_ICON_CONNECT; + break; + case DOCKLET_STATUS_ONLINE: + icon_name = GAIM_STOCK_ICON_ONLINE; + break; + case DOCKLET_STATUS_ONLINE_PENDING: + icon_name = GAIM_STOCK_ICON_ONLINE_MSG; + break; + case DOCKLET_STATUS_AWAY: + icon_name = GAIM_STOCK_ICON_AWAY; + break; + case DOCKLET_STATUS_AWAY_PENDING: + icon_name = GAIM_STOCK_ICON_AWAY_MSG; + break; + } + + if(icon_name) + gtk_image_set_from_stock(GTK_IMAGE(image), icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR); + +#if 0 + GdkPixbuf *p; + GdkBitmap *mask = NULL; + + p = gtk_widget_render_icon(GTK_WIDGET(image), icon_name, GTK_ICON_SIZE_LARGE_TOOLBAR, NULL); + + if (p && (gdk_pixbuf_get_colorspace(p) == GDK_COLORSPACE_RGB) && (gdk_pixbuf_get_bits_per_sample(p) == 8) + && (gdk_pixbuf_get_has_alpha(p)) && (gdk_pixbuf_get_n_channels(p) == 4)) { + int len = gdk_pixbuf_get_width(p) * gdk_pixbuf_get_height(p); + guchar *data = gdk_pixbuf_get_pixels(p); + guchar *bitmap = g_malloc((len / 8) + 1); + int i; + + for (i = 0; i < len; i++) + if (data[i*4 + 3] > 55) + bitmap[i/8] |= 1 << i % 8; + else + bitmap[i/8] &= ~(1 << i % 8); + + mask = gdk_bitmap_create_from_data(GDK_DRAWABLE(GTK_WIDGET(image)->window), bitmap, gdk_pixbuf_get_width(p), gdk_pixbuf_get_height(p)); + g_free(bitmap); + } + + if (mask) + gdk_window_shape_combine_mask(image->window, mask, 0, 0); + + g_object_unref(G_OBJECT(p)); +#endif +} + +static void +docklet_x11_blank_icon() +{ + if (!blank_icon) { + gint width, height; + + gtk_icon_size_lookup(GTK_ICON_SIZE_LARGE_TOOLBAR, &width, &height); + blank_icon = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, width, height); + gdk_pixbuf_fill(blank_icon, 0); + } + + gtk_image_set_from_pixbuf(GTK_IMAGE(image), blank_icon); +} + +static void +docklet_x11_set_tooltip(gchar *tooltip) +{ + if (!tooltips) + tooltips = gtk_tooltips_new(); + + /* image->parent is a GtkEventBox */ + if (tooltip) { + gtk_tooltips_enable(tooltips); + gtk_tooltips_set_tip(tooltips, image->parent, tooltip, NULL); + } else { + gtk_tooltips_set_tip(tooltips, image->parent, "", NULL); + gtk_tooltips_disable(tooltips); + } +} + +#if GTK_CHECK_VERSION(2,2,0) +static void +docklet_x11_position_menu(GtkMenu *menu, int *x, int *y, gboolean *push_in, + gpointer user_data) +{ + GtkWidget *widget = GTK_WIDGET(docklet); + GtkRequisition req; + gint menu_xpos, menu_ypos; + + gtk_widget_size_request(GTK_WIDGET(menu), &req); + gdk_window_get_origin(widget->window, &menu_xpos, &menu_ypos); + + menu_xpos += widget->allocation.x; + menu_ypos += widget->allocation.y; + + if (menu_ypos > gdk_screen_get_height(gtk_widget_get_screen(widget)) / 2) + menu_ypos -= req.height; + else + menu_ypos += widget->allocation.height; + + *x = menu_xpos; + *y = menu_ypos; + + *push_in = TRUE; +} +#endif + +static void +docklet_x11_destroy() +{ + g_return_if_fail(docklet != NULL); + + gaim_gtk_docklet_remove(); + + g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_x11_destroyed_cb), NULL); + gtk_widget_destroy(GTK_WIDGET(docklet)); + + g_object_unref(G_OBJECT(docklet)); + docklet = NULL; + + if (blank_icon) + g_object_unref(G_OBJECT(blank_icon)); + blank_icon = NULL; + + image = NULL; + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "destroyed\n"); +} + +static gboolean +docklet_x11_embed_timeout_cb() +{ + /* The docklet was not embedded within the timeout. + * Remove it as a visibility manager, but leave the plugin + * loaded so that it can embed automatically if/when a notification + * area becomes available. + */ + gaim_debug_info("tray icon", "failed to embed within timeout\n"); + gaim_gtk_docklet_remove(); + + return FALSE; +} + +static void +docklet_x11_create() +{ + GtkWidget *box; + + if (docklet) { + /* if this is being called when a tray icon exists, it's because + something messed up. try destroying it before we proceed, + although docklet_refcount may be all hosed. hopefully won't happen. */ + gaim_debug(GAIM_DEBUG_WARNING, "tray icon", "trying to create icon but it already exists?\n"); + docklet_x11_destroy(); + } + + docklet = egg_tray_icon_new("Gaim"); + box = gtk_event_box_new(); + image = gtk_image_new(); + + g_signal_connect(G_OBJECT(docklet), "embedded", G_CALLBACK(docklet_x11_embedded_cb), NULL); + g_signal_connect(G_OBJECT(docklet), "destroy", G_CALLBACK(docklet_x11_destroyed_cb), NULL); + g_signal_connect(G_OBJECT(box), "button-press-event", G_CALLBACK(docklet_x11_clicked_cb), NULL); + + gtk_container_add(GTK_CONTAINER(box), image); + gtk_container_add(GTK_CONTAINER(docklet), box); + + if (!gtk_check_version(2,4,0)) + g_object_set(G_OBJECT(box), "visible-window", FALSE, NULL); + + gtk_widget_show_all(GTK_WIDGET(docklet)); + + /* ref the docklet before we bandy it about the place */ + g_object_ref(G_OBJECT(docklet)); + + /* This is a hack to avoid a race condition between the docklet getting + * embedded in the notification area and the gtkblist restoring its + * previous visibility state. If the docklet does not get embedded within + * the timeout, it will be removed as a visibility manager until it does + * get embedded. Ideally, we would only call docklet_embedded() when the + * icon was actually embedded. + */ + gaim_gtk_docklet_embedded(); + embed_timeout = g_timeout_add(EMBED_TIMEOUT, docklet_x11_embed_timeout_cb, NULL); + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); +} + +static struct docklet_ui_ops ui_ops = +{ + docklet_x11_create, + docklet_x11_destroy, + docklet_x11_update_icon, + docklet_x11_blank_icon, + docklet_x11_set_tooltip, +#if GTK_CHECK_VERSION(2,2,0) + docklet_x11_position_menu +#else + NULL +#endif +}; + +void +docklet_ui_init() +{ + gaim_gtk_docklet_set_ui_ops(&ui_ops); +} Copied: trunk/gtk/gtkdocklet.c (from rev 17432, trunk/gtk/plugins/docklet/docklet.c) =================================================================== --- trunk/gtk/gtkdocklet.c (rev 0) +++ trunk/gtk/gtkdocklet.c 2006-10-05 23:24:00 UTC (rev 17433) @@ -0,0 +1,694 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ +#include "internal.h" +#include "gtkgaim.h" + +#include "core.h" +#include "conversation.h" +#include "debug.h" +#include "prefs.h" +#include "signals.h" +#include "sound.h" +#include "version.h" + +#include "gtkaccount.h" +#include "gtkblist.h" +#include "gtkconv.h" +#include "gtkft.h" +#include "gtkplugin.h" +#include "gtkprefs.h" +#include "gtksavedstatuses.h" +#include "gtksound.h" +#include "gtkutils.h" +#include "gaimstock.h" +#include "gtkdocklet.h" + +#include "gaim.h" +#include "gtkdialogs.h" + +#ifndef DOCKLET_TOOLTIP_LINE_LIMIT +#define DOCKLET_TOOLTIP_LINE_LIMIT 5 +#endif + +/* globals */ +static struct docklet_ui_ops *ui_ops = NULL; +static DockletStatus status = DOCKLET_STATUS_OFFLINE; +static gboolean enable_join_chat = FALSE; +static guint docklet_blinking_timer = 0; +static gboolean visibility_manager = FALSE; + +/************************************************************************** + * docklet status and utility functions + **************************************************************************/ +static gboolean +docklet_blink_icon() +{ + static gboolean blinked = FALSE; + gboolean ret = FALSE; /* by default, don't keep blinking */ + + blinked = !blinked; + + switch (status) { + case DOCKLET_STATUS_ONLINE_PENDING: + case DOCKLET_STATUS_AWAY_PENDING: + if (blinked) { + if (ui_ops && ui_ops->blank_icon) + ui_ops->blank_icon(); + } else { + if (ui_ops && ui_ops->update_icon) + ui_ops->update_icon(status); + } + ret = TRUE; /* keep blinking */ + break; + default: + docklet_blinking_timer = 0; + blinked = FALSE; + break; + } + + return ret; +} + +static GList * +get_pending_list(guint max) +{ + const char *im = gaim_prefs_get_string("/plugins/gtk/docklet/blink_im"); + const char *chat = gaim_prefs_get_string("/plugins/gtk/docklet/blink_chat"); + GList *l_im = NULL; + GList *l_chat = NULL; + + if (im != NULL && strcmp(im, "always") == 0) { + l_im = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_IM, + GAIM_UNSEEN_TEXT, + FALSE, max); + } else if (im != NULL && strcmp(im, "hidden") == 0) { + l_im = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_IM, + GAIM_UNSEEN_TEXT, + TRUE, max); + } + + if (chat != NULL && strcmp(chat, "always") == 0) { + l_chat = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_CHAT, + GAIM_UNSEEN_TEXT, + FALSE, max); + } else if (chat != NULL && strcmp(chat, "nick") == 0) { + l_chat = gaim_gtk_conversations_find_unseen_list(GAIM_CONV_TYPE_CHAT, + GAIM_UNSEEN_NICK, + FALSE, max); + } + + if (l_im != NULL && l_chat != NULL) + return g_list_concat(l_im, l_chat); + else if (l_im != NULL) + return l_im; + else + return l_chat; +} + +static gboolean +docklet_update_status() +{ + GList *convs; + GList *l; + int count; + DockletStatus newstatus = DOCKLET_STATUS_OFFLINE; + gboolean pending = FALSE; + + /* determine if any ims have unseen messages */ + convs = get_pending_list(DOCKLET_TOOLTIP_LINE_LIMIT); + + if (convs != NULL) { + pending = TRUE; + + /* set tooltip if messages are pending */ + if (ui_ops->set_tooltip) { + GString *tooltip_text = g_string_new(""); + for (l = convs, count = 0 ; l != NULL ; l = l->next, count++) { + if (GAIM_IS_GTK_CONVERSATION(l->data)) { + GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION((GaimConversation *)l->data); + if (count == DOCKLET_TOOLTIP_LINE_LIMIT - 1) + g_string_append(tooltip_text, _("Right-click for more unread messages...\n")); + else + g_string_append_printf(tooltip_text, + ngettext("%d unread message from %s\n", "%d unread messages from %s\n", gtkconv->unseen_count), + gtkconv->unseen_count, + gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))); + } + } + + /* get rid of the last newline */ + if (tooltip_text->len > 0) + tooltip_text = g_string_truncate(tooltip_text, tooltip_text->len - 1); + + ui_ops->set_tooltip(tooltip_text->str); + + g_string_free(tooltip_text, TRUE); + } + + g_list_free(convs); + + } else if (ui_ops->set_tooltip) { + ui_ops->set_tooltip(NULL); + } + + /* iterate through all accounts and determine which + * status to show in the tray icon based on the following + * ranks (highest encountered rank will be used): + * + * 1) OFFLINE + * 2) ONLINE + * 3) ONLINE_PENDING + * 4) AWAY + * 5) AWAY_PENDING + * 6) CONNECTING + */ + for(l = gaim_accounts_get_all(); l != NULL; l = l->next) { + DockletStatus tmpstatus = DOCKLET_STATUS_OFFLINE; + + GaimAccount *account = (GaimAccount*)l->data; + GaimStatus *account_status; + + if (!gaim_account_get_enabled(account, GAIM_GTK_UI)) + continue; + + if (gaim_account_is_disconnected(account)) + continue; + + account_status = gaim_account_get_active_status(account); + + if (gaim_account_is_connecting(account)) { + tmpstatus = DOCKLET_STATUS_CONNECTING; + } else if (gaim_status_is_online(account_status)) { + if (!gaim_status_is_available(account_status)) { + if (pending) + tmpstatus = DOCKLET_STATUS_AWAY_PENDING; + else + tmpstatus = DOCKLET_STATUS_AWAY; + } + else { + if (pending) + tmpstatus = DOCKLET_STATUS_ONLINE_PENDING; + else + tmpstatus = DOCKLET_STATUS_ONLINE; + } + } + + if (tmpstatus > newstatus) + newstatus = tmpstatus; + } + + /* update the icon if we changed status */ + if (status != newstatus) { + status = newstatus; + + if (ui_ops && ui_ops->update_icon) + ui_ops->update_icon(status); + + /* and schedule the blinker function if messages are pending */ + if ((status == DOCKLET_STATUS_ONLINE_PENDING + || status == DOCKLET_STATUS_AWAY_PENDING) + && docklet_blinking_timer == 0) { + docklet_blinking_timer = g_timeout_add(500, docklet_blink_icon, NULL); + } + } + + return FALSE; /* for when we're called by the glib idle handler */ +} + +static gboolean +online_account_supports_chat() +{ + GList *c = NULL; + c = gaim_connections_get_all(); + + while(c != NULL) { + GaimConnection *gc = c->data; + GaimPluginProtocolInfo *prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); + if (prpl_info != NULL && prpl_info->chat_info != NULL) + return TRUE; + c = c->next; + } + + return FALSE; +} + +/************************************************************************** + * callbacks and signal handlers + **************************************************************************/ +static void +gaim_quit_cb() +{ + /* TODO: confirm quit while pending */ +} + +static void +docklet_update_status_cb(void *data) +{ + docklet_update_status(); +} + +static void +docklet_prefs_cb(const char *name, GaimPrefType type, + gconstpointer val, gpointer data) +{ + docklet_update_status(); +} + +static void +docklet_conv_updated_cb(GaimConversation *conv, GaimConvUpdateType type) +{ + if (type == GAIM_CONV_UPDATE_UNSEEN) + docklet_update_status(); +} + +static void +docklet_signed_on_cb(GaimConnection *gc) +{ + if (!enable_join_chat) { + if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL) + enable_join_chat = TRUE; + } + docklet_update_status(); +} + +static void +docklet_signed_off_cb(GaimConnection *gc) +{ + if (enable_join_chat) { + if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info != NULL) + enable_join_chat = online_account_supports_chat(); + } + docklet_update_status(); +} + +/************************************************************************** + * docklet pop-up menu + **************************************************************************/ +static void +docklet_toggle_mute(GtkWidget *toggle, void *data) +{ + gaim_prefs_set_bool("/gaim/gtk/sound/mute", GTK_CHECK_MENU_ITEM(toggle)->active); +} + +static void +docklet_toggle_blist(GtkWidget *toggle, void *data) +{ + gaim_blist_set_visible(GTK_CHECK_MENU_ITEM(toggle)->active); +} + +#ifdef _WIN32 +/* This is a workaround for a bug in windows GTK+. Clicking outside of the + menu does not get rid of it, so instead we get rid of it as soon as the + pointer leaves the menu. */ +static gboolean +hide_docklet_menu(gpointer data) +{ + if (data != NULL) { + gtk_menu_popdown(GTK_MENU(data)); + } + return FALSE; +} + +static gboolean +docklet_menu_leave_enter(GtkWidget *menu, GdkEventCrossing *event, void *data) +{ + static guint hide_docklet_timer = 0; + if (event->type == GDK_LEAVE_NOTIFY && event->detail == GDK_NOTIFY_ANCESTOR) { + gaim_debug(GAIM_DEBUG_INFO, "docklet", "menu leave-notify-event\n"); + /* Add some slop so that the menu doesn't annoyingly disappear when mousing around */ + if (hide_docklet_timer == 0) { + hide_docklet_timer = gaim_timeout_add(500, + hide_docklet_menu, menu); + } + } else if (event->type == GDK_ENTER_NOTIFY && event->detail == GDK_NOTIFY_ANCESTOR) { + gaim_debug(GAIM_DEBUG_INFO, "docklet", "menu enter-notify-event\n"); + if (hide_docklet_timer != 0) { + /* Cancel the hiding if we reenter */ + + gaim_timeout_remove(hide_docklet_timer); + hide_docklet_timer = 0; + } + } + return FALSE; +} +#endif + +static void +show_custom_status_editor_cb(GtkMenuItem *menuitem, gpointer user_data) +{ + GaimSavedStatus *saved_status; + saved_status = gaim_savedstatus_get_current(); + gaim_gtk_status_editor_show(FALSE, + gaim_savedstatus_is_transient(saved_status) ? saved_status : NULL); +} + +static void +activate_status_primitive_cb(GtkMenuItem *menuitem, gpointer user_data) +{ + GaimStatusPrimitive primitive; + GaimSavedStatus *saved_status; + + primitive = GPOINTER_TO_INT(user_data); + + /* Try to lookup an already existing transient saved status */ + saved_status = gaim_savedstatus_find_transient_by_type_and_message(primitive, NULL); + + /* Create a new transient saved status if we weren't able to find one */ + if (saved_status == NULL) + saved_status = gaim_savedstatus_new(NULL, primitive); + + /* Set the status for each account */ + gaim_savedstatus_activate(saved_status); +} + +static void +activate_saved_status_cb(GtkMenuItem *menuitem, gpointer user_data) +{ + time_t creation_time; + GaimSavedStatus *saved_status; + + creation_time = GPOINTER_TO_INT(user_data); + saved_status = gaim_savedstatus_find_by_creation_time(creation_time); + if (saved_status != NULL) + gaim_savedstatus_activate(saved_status); +} + +static GtkWidget * +new_menu_item_with_gaim_icon(GtkWidget *menu, const char *str, GaimStatusPrimitive primitive, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod) +{ + GtkWidget *menuitem; + GdkPixbuf *pixbuf; + GtkWidget *image; + + menuitem = gtk_image_menu_item_new_with_mnemonic(str); + + if (menu) + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + + if (sf) + g_signal_connect(G_OBJECT(menuitem), "activate", sf, data); + + pixbuf = gaim_gtk_create... [truncated message content] |
From: <dat...@us...> - 2006-10-06 05:03:49
|
Revision: 17435 http://svn.sourceforge.net/gaim/?rev=17435&view=rev Author: datallah Date: 2006-10-05 22:03:28 -0700 (Thu, 05 Oct 2006) Log Message: ----------- Fix the docklet on wingaim. What is the plan for the docklet prefs? Modified Paths: -------------- trunk/gaim-installer.nsi trunk/gtk/Makefile.am trunk/gtk/Makefile.mingw trunk/gtk/gtkdocklet.c trunk/gtk/gtkdocklet.h trunk/gtk/plugins/Makefile.mingw Added Paths: ----------- trunk/gtk/win32/gtkdocklet-win32.c Removed Paths: ------------- trunk/gtk/gtkdocklet-win32.c trunk/gtk/plugins/docklet/MinimizeToTray.c trunk/gtk/plugins/docklet/MinimizeToTray.h Modified: trunk/gaim-installer.nsi =================================================================== --- trunk/gaim-installer.nsi 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gaim-installer.nsi 2006-10-06 05:03:28 UTC (rev 17435) @@ -698,7 +698,6 @@ RMDir /r "$INSTDIR\locale" RMDir /r "$INSTDIR\pixmaps" RMDir /r "$INSTDIR\perlmod" - Delete "$INSTDIR\plugins\docklet.dll" Delete "$INSTDIR\plugins\extplacement.dll" Delete "$INSTDIR\plugins\gaimrc.dll" Delete "$INSTDIR\plugins\history.dll" Modified: trunk/gtk/Makefile.am =================================================================== --- trunk/gtk/Makefile.am 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/Makefile.am 2006-10-06 05:03:28 UTC (rev 17435) @@ -6,7 +6,10 @@ win32/IdleTracker/Makefile.mingw \ win32/IdleTracker/idletrack.c \ win32/IdleTracker/idletrack.h \ + win32/MinimizeToTray.h \ + win32/MinimizeToTray.c \ win32/gaimrc.rc.in \ + win32/gtkdocklet-win32.c \ win32/gtkgaimrc.rc.in \ win32/gtkwin32dep.c \ win32/gtkwin32dep.h \ Modified: trunk/gtk/Makefile.mingw =================================================================== --- trunk/gtk/Makefile.mingw 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/Makefile.mingw 2006-10-06 05:03:28 UTC (rev 17435) @@ -65,6 +65,7 @@ gtkdebug.c \ gtkdialogs.c \ gtkdnd-hints.c \ + gtkdocklet.c \ gtkeventloop.c \ gtkexpander.c \ gtkft.c \ @@ -89,6 +90,8 @@ gtkthemes.c \ gtkutils.c \ gtkwhiteboard.c \ + win32/MinimizeToTray.c \ + win32/gtkdocklet-win32.c \ win32/gtkwin32dep.c \ win32/untar.c \ win32/wspell.c @@ -129,7 +132,7 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all install clean clean_exe +.PHONY: all install install_shallow clean clean_exe all: $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll $(MAKE) -C $(GAIM_GTK_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) @@ -139,13 +142,15 @@ -e 's/@ORIGINAL_FILENAME@/$(EXE_NAME)/' \ $@.in > $@ -install: all $(GAIM_INSTALL_DIR) +install_shallow: $(GAIM_INSTALL_DIR) $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll + cp $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll $(GAIM_INSTALL_DIR) + cp $(NEEDED_DLLS) $(GAIM_INSTALL_DIR) + +install: install_shallow all $(MAKE) -C $(GAIM_GTK_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(GAIM_GTK_PIXMAPS_TOP) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(GAIM_GTK_SOUNDS_TOP) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(GAIM_GTK_IDLETRACK_TOP) -f $(GAIM_WIN32_MAKEFILE) install - cp $(EXE_TARGET).exe $(GTKGAIM_TARGET).dll $(GAIM_INSTALL_DIR) - cp $(NEEDED_DLLS) $(GAIM_INSTALL_DIR) ./win32/gtkgaimrc.rc: ./win32/gtkgaimrc.rc.in $(GAIM_TOP)/VERSION sed -e 's/@GAIM_VERSION@/$(GAIM_VERSION)/g' \ Deleted: trunk/gtk/gtkdocklet-win32.c =================================================================== --- trunk/gtk/gtkdocklet-win32.c 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/gtkdocklet-win32.c 2006-10-06 05:03:28 UTC (rev 17435) @@ -1,263 +0,0 @@ -/* - * System tray icon (aka docklet) plugin for Gaim - * - * Copyright (C) 2002-3 Robert McQueen <rob...@de...> - * Copyright (C) 2003 Herman Bloggs <her...@ya...> - * Inspired by a similar plugin by: - * John (J5) Palmieri <jo...@ma...> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - * 02111-1307, USA. - */ - -#include <windows.h> -#include <gdk/gdkwin32.h> -#include <gdk/gdk.h> - -#include "internal.h" -#include "gtkblist.h" -#include "gtkprefs.h" -#include "debug.h" - -#include "gaim.h" -#include "gtkdialogs.h" - -#include "resource.h" -#include "MinimizeToTray.h" -#include "gtkwin32dep.h" -#include "docklet.h" - -/* - * DEFINES, MACROS & DATA TYPES - */ -#define WM_TRAYMESSAGE WM_USER /* User defined WM Message */ - -/* - * LOCALS - */ -static HWND systray_hwnd=0; -static HICON sysicon_disconn=0; -static HICON sysicon_conn=0; -static HICON sysicon_away=0; -static HICON sysicon_pend=0; -static HICON sysicon_awypend=0; -static HICON sysicon_blank=0; -static NOTIFYICONDATA wgaim_nid; - - -static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { - static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ - - switch(msg) { - case WM_CREATE: - gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_CREATE\n"); - taskbarRestartMsg = RegisterWindowMessage("TaskbarCreated"); - break; - - case WM_TIMER: - gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_TIMER\n"); - break; - - case WM_DESTROY: - gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_DESTROY\n"); - break; - - case WM_TRAYMESSAGE: - { - int type = 0; - - /* We'll use Double Click - Single click over on linux */ - if( lparam == WM_LBUTTONDBLCLK ) - type = 1; - else if( lparam == WM_MBUTTONUP ) - type = 2; - else if( lparam == WM_RBUTTONUP ) - type = 3; - else - break; - - docklet_clicked(type); - break; - } - default: - if (msg == taskbarRestartMsg) { - /* explorer crashed and left us hanging... - This will put the systray icon back in it's place, when it restarts */ - Shell_NotifyIcon(NIM_ADD,&wgaim_nid); - } - break; - }/* end switch */ - - return DefWindowProc(hwnd, msg, wparam, lparam); -} - -/* Create hidden window to process systray messages */ -static HWND systray_create_hiddenwin() { - WNDCLASSEX wcex; - TCHAR wname[32]; - - strcpy(wname, "GaimWin"); - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = 0; - wcex.lpfnWndProc = (WNDPROC)systray_mainmsg_handler; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = gtkwgaim_hinstance(); - wcex.hIcon = NULL; - wcex.hCursor = NULL, - wcex.hbrBackground = NULL; - wcex.lpszMenuName = NULL; - wcex.lpszClassName = wname; - wcex.hIconSm = NULL; - - RegisterClassEx(&wcex); - - /* Create the window */ - return (CreateWindow(wname, "", 0, 0, 0, 0, 0, GetDesktopWindow(), NULL, gtkwgaim_hinstance(), 0)); -} - -static void systray_init_icon(HWND hWnd, HICON icon) { - ZeroMemory(&wgaim_nid,sizeof(wgaim_nid)); - wgaim_nid.cbSize=sizeof(NOTIFYICONDATA); - wgaim_nid.hWnd=hWnd; - wgaim_nid.uID=0; - wgaim_nid.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP; - wgaim_nid.uCallbackMessage=WM_TRAYMESSAGE; - wgaim_nid.hIcon=icon; - lstrcpy(wgaim_nid.szTip, "Gaim"); - Shell_NotifyIcon(NIM_ADD,&wgaim_nid); - docklet_embedded(); -} - -static void systray_change_icon(HICON icon) { - wgaim_nid.hIcon = icon; - Shell_NotifyIcon(NIM_MODIFY,&wgaim_nid); -} - -static void systray_remove_nid(void) { - Shell_NotifyIcon(NIM_DELETE,&wgaim_nid); -} - -static void wgaim_tray_update_icon(DockletStatus icon) { - switch (icon) { - case DOCKLET_STATUS_OFFLINE: - systray_change_icon(sysicon_disconn); - break; - case DOCKLET_STATUS_CONNECTING: - break; - case DOCKLET_STATUS_ONLINE: - systray_change_icon(sysicon_conn); - break; - case DOCKLET_STATUS_ONLINE_PENDING: - systray_change_icon(sysicon_pend); - break; - case DOCKLET_STATUS_AWAY: - systray_change_icon(sysicon_away); - break; - case DOCKLET_STATUS_AWAY_PENDING: - systray_change_icon(sysicon_awypend); - break; - } -} - -static void wgaim_tray_blank_icon() { - systray_change_icon(sysicon_blank); -} - -static void wgaim_tray_set_tooltip(gchar *tooltip) { - if (tooltip) { - char *locenc = NULL; - locenc = g_locale_from_utf8(tooltip, -1, NULL, NULL, NULL); - lstrcpyn(wgaim_nid.szTip, locenc, sizeof(wgaim_nid.szTip)/sizeof(TCHAR)); - g_free(locenc); - } else { - lstrcpy(wgaim_nid.szTip, "Gaim"); - } - Shell_NotifyIcon(NIM_MODIFY, &wgaim_nid); -} - -void wgaim_tray_minimize(GaimGtkBuddyList *gtkblist) { - MinimizeWndToTray(GDK_WINDOW_HWND(gtkblist->window->window)); -} - -void wgaim_tray_maximize(GaimGtkBuddyList *gtkblist) { - RestoreWndFromTray(GDK_WINDOW_HWND(gtkblist->window->window)); -} - - -static void wgaim_tray_create() { - OSVERSIONINFO osinfo; - /* dummy window to process systray messages */ - systray_hwnd = systray_create_hiddenwin(); - - osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osinfo); - - /* Load icons, and init systray notify icon - * NOTE: Windows < XP only supports displaying 4-bit images in the Systray, - * 2K and ME will use the highest color depth that the desktop will support, - * but will scale it back to 4-bits for display. - * That is why we use custom 4-bit icons for pre XP Windowses */ - if ((osinfo.dwMajorVersion == 5 && osinfo.dwMinorVersion > 0) || - (osinfo.dwMajorVersion >= 6)) - { - sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - } else { - sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); - sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); - sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); - sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); - sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); - } - sysicon_blank = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); - - /* Create icon in systray */ - systray_init_icon(systray_hwnd, sysicon_disconn); - - gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-hiding", - &handle, GAIM_CALLBACK(wgaim_tray_minimize), NULL); - gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-unhiding", - &handle, GAIM_CALLBACK(wgaim_tray_maximize), NULL); - - gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); -} - -static void wgaim_tray_destroy() { - gaim_signals_disconnect_by_handle(&handle); - systray_remove_nid(); - DestroyWindow(systray_hwnd); - docklet_remove(); -} - -static struct docklet_ui_ops wgaim_tray_ops = -{ - wgaim_tray_create, - wgaim_tray_destroy, - wgaim_tray_update_icon, - wgaim_tray_blank_icon, - wgaim_tray_set_tooltip, - NULL -}; - -/* Used by docklet's plugin load func */ -void docklet_ui_init() { - docklet_set_ui_ops(&wgaim_tray_ops); -} Modified: trunk/gtk/gtkdocklet.c =================================================================== --- trunk/gtk/gtkdocklet.c 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/gtkdocklet.c 2006-10-06 05:03:28 UTC (rev 17435) @@ -30,12 +30,10 @@ #include "prefs.h" #include "signals.h" #include "sound.h" -#include "version.h" #include "gtkaccount.h" #include "gtkblist.h" #include "gtkconv.h" -#include "gtkft.h" #include "gtkplugin.h" #include "gtkprefs.h" #include "gtksavedstatuses.h" @@ -43,8 +41,6 @@ #include "gtkutils.h" #include "gaimstock.h" #include "gtkdocklet.h" - -#include "gaim.h" #include "gtkdialogs.h" #ifndef DOCKLET_TOOLTIP_LINE_LIMIT @@ -256,11 +252,13 @@ /************************************************************************** * callbacks and signal handlers **************************************************************************/ +#if 0 static void gaim_quit_cb() { /* TODO: confirm quit while pending */ } +#endif static void docklet_update_status_cb(void *data) @@ -269,13 +267,6 @@ } static void -docklet_prefs_cb(const char *name, GaimPrefType type, - gconstpointer val, gpointer data) -{ - docklet_update_status(); -} - -static void docklet_conv_updated_cb(GaimConversation *conv, GaimConvUpdateType type) { if (type == GAIM_CONV_UPDATE_UNSEEN) @@ -602,26 +593,23 @@ return &i; } -void +void gaim_gtk_docklet_init() { void *conn_handle = gaim_connections_get_handle(); void *conv_handle = gaim_conversations_get_handle(); void *accounts_handle = gaim_accounts_get_handle(); - void *core_handle = gaim_get_core(); void *docklet_handle = gaim_gtk_docklet_get_handle(); - - gaim_debug(GAIM_DEBUG_INFO, "docklet", "plugin loaded\n"); - gaim_prefs_add_none("/plugins/gtk/docklet"); - gaim_prefs_add_string("/plugins/gtk/docklet/blink_im", "hidden"); - gaim_prefs_add_string("/plugins/gtk/docklet/blink_chat", "never"); - + gaim_prefs_add_none("/plugins/gtk/docklet"); + gaim_prefs_add_string("/plugins/gtk/docklet/blink_im", "hidden"); + gaim_prefs_add_string("/plugins/gtk/docklet/blink_chat", "never"); + docklet_ui_init(); if (ui_ops && ui_ops->create) ui_ops->create(); gaim_signal_connect(conn_handle, "signed-on", - docklet_handle, GAIM_CALLBACK(docklet_signed_on_cb), NULL); + docklet_handle, GAIM_CALLBACK(docklet_signed_on_cb), NULL); gaim_signal_connect(conn_handle, "signed-off", docklet_handle, GAIM_CALLBACK(docklet_signed_off_cb), NULL); gaim_signal_connect(accounts_handle, "account-status-changed", @@ -634,10 +622,11 @@ docklet_handle, GAIM_CALLBACK(docklet_update_status_cb), NULL); gaim_signal_connect(conv_handle, "conversation-updated", docklet_handle, GAIM_CALLBACK(docklet_conv_updated_cb), NULL); +#if 0 + gaim_signal_connect(gaim_get_core(), "quitting", + docklet_handle, GAIM_CALLBACK(gaim_quit_cb), NULL); +#endif - gaim_signal_connect(core_handle, "quitting", - NULL, GAIM_CALLBACK(gaim_quit_cb), NULL); - /* gaim_prefs_connect_callback(plugin, "/plugins/gtk/docklet/blink_im", docklet_prefs_cb, NULL); gaim_prefs_connect_callback(plugin, "/plugins/gtk/docklet/blink_chat", @@ -653,6 +642,7 @@ ui_ops->destroy(); } +#if 0 static GtkWidget * plugin_config_frame(GaimPlugin *plugin) { @@ -686,9 +676,5 @@ gtk_widget_show_all(frame); return frame; } +#endif -static GaimGtkPluginUiInfo ui_info = -{ - plugin_config_frame, - 0 /* page_num (Reserved) */ -}; Modified: trunk/gtk/gtkdocklet.h =================================================================== --- trunk/gtk/gtkdocklet.h 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/gtkdocklet.h 2006-10-06 05:03:28 UTC (rev 17435) @@ -46,17 +46,17 @@ }; -/* functions in docklet.c */ +/* functions in gtkdocklet.c */ void gaim_gtk_docklet_clicked(int); void gaim_gtk_docklet_embedded(void); void gaim_gtk_docklet_remove(void); void gaim_gtk_docklet_set_ui_ops(struct docklet_ui_ops *); void gaim_gtk_docklet_unload(void); -void gaim_gtk_docklet_init(); -void gaim_gtk_docklet_uninit(); -void*gaim_gtk_docklet_get_handle(); +void gaim_gtk_docklet_init(void); +void gaim_gtk_docklet_uninit(void); +void*gaim_gtk_docklet_get_handle(void); -/* function in docklet-{x11,win32}.c */ +/* function in gtkdocklet-{x11,win32}.c */ void docklet_ui_init(void); #endif /* _GTKDOCKLET_H_ */ Modified: trunk/gtk/plugins/Makefile.mingw =================================================================== --- trunk/gtk/plugins/Makefile.mingw 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/plugins/Makefile.mingw 2006-10-06 05:03:28 UTC (rev 17435) @@ -7,7 +7,6 @@ GAIM_TOP := ../.. include $(GAIM_TOP)/libgaim/win32/global.mak -DOCKLET_PLUGIN := ./docklet GTKPERL_PLUGIN := ./perl TICKER_PLUGIN := ./ticker TRANSPARENCY_PLUGIN := ./win32/transparency @@ -58,14 +57,12 @@ .PHONY: all clean plugins install all: plugins - $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(GTKPERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(TICKER_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(TRANSPARENCY_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(WINPREFS_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install: all $(GAIM_INSTALL_PLUGINS_DIR) - $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(GTKPERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(TICKER_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install $(MAKE) -C $(TRANSPARENCY_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) install @@ -92,7 +89,6 @@ ## clean: rm -f *.o *.dll - $(MAKE) -C $(DOCKLET_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GTKPERL_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(TICKER_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(TRANSPARENCY_PLUGIN) -f $(GAIM_WIN32_MAKEFILE) clean Deleted: trunk/gtk/plugins/docklet/MinimizeToTray.c =================================================================== --- trunk/gtk/plugins/docklet/MinimizeToTray.c 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/plugins/docklet/MinimizeToTray.c 2006-10-06 05:03:28 UTC (rev 17435) @@ -1,119 +0,0 @@ -/* MinimizeToTray - * - * A couple of routines to show how to make it produce a custom caption - * animation to make it look like we are minimizing to and maximizing - * from the system tray - * - * These routines are public domain, but it would be nice if you dropped - * me a line if you use them! - * - * 1.0 29.06.2000 Initial version - * 1.1 01.07.2000 The window retains it's place in the Z-order of windows - * when minimized/hidden. This means that when restored/shown, it doesn't - * always appear as the foreground window unless we call SetForegroundWindow - * - * Copyright 2000 Matthew Ellis <m.t...@bi...> - */ -#define _WIN32_WINNT 0x0500 -#include <windows.h> -#include "MinimizeToTray.h" - -#define DEFAULT_RECT_WIDTH 150 -#define DEFAULT_RECT_HEIGHT 30 - -static void GetTrayWndRect(LPRECT lpTrayRect) { - APPBARDATA appBarData; - HWND hShellTrayWnd = FindWindowEx(NULL, NULL, TEXT("Shell_TrayWnd"), - NULL); - - if(hShellTrayWnd) { - HWND hTrayNotifyWnd = FindWindowEx(hShellTrayWnd, NULL, - TEXT("TrayNotifyWnd"), NULL); - - if(hTrayNotifyWnd) { - GetWindowRect(hTrayNotifyWnd,lpTrayRect); - return; - } - } - - appBarData.cbSize = sizeof(appBarData); - if(SHAppBarMessage(ABM_GETTASKBARPOS, &appBarData)) { - switch(appBarData.uEdge) { - case ABE_LEFT: - case ABE_RIGHT: - lpTrayRect->top = appBarData.rc.bottom - 100; - lpTrayRect->bottom = appBarData.rc.bottom - 16; - lpTrayRect->left = appBarData.rc.left; - lpTrayRect->right = appBarData.rc.right; - break; - case ABE_TOP: - case ABE_BOTTOM: - lpTrayRect->top = appBarData.rc.top; - lpTrayRect->bottom = appBarData.rc.bottom; - lpTrayRect->left = appBarData.rc.right - 100; - lpTrayRect->right = appBarData.rc.right - 16; - break; - } - return; - } - - hShellTrayWnd = FindWindowEx(NULL, NULL, TEXT("Shell_TrayWnd"), NULL); - if(hShellTrayWnd) { - GetWindowRect(hShellTrayWnd, lpTrayRect); - if(lpTrayRect->right-lpTrayRect->left > DEFAULT_RECT_WIDTH) - lpTrayRect->left = lpTrayRect->right - DEFAULT_RECT_WIDTH; - if(lpTrayRect->bottom-lpTrayRect->top > DEFAULT_RECT_HEIGHT) - lpTrayRect->top=lpTrayRect->bottom - DEFAULT_RECT_HEIGHT; - - return; - } - - SystemParametersInfo(SPI_GETWORKAREA, 0, lpTrayRect, 0); - lpTrayRect->left = lpTrayRect->right - DEFAULT_RECT_WIDTH; - lpTrayRect->top = lpTrayRect->bottom - DEFAULT_RECT_HEIGHT; -} - -static BOOL GetDoAnimateMinimize(void) { - ANIMATIONINFO ai; - - ai.cbSize = sizeof(ai); - SystemParametersInfo(SPI_GETANIMATION, sizeof(ai), &ai, 0); - - return ai.iMinAnimate ? TRUE : FALSE; -} - -void MinimizeWndToTray(HWND hWnd) { - - if(!IsWindowVisible(hWnd)) - return; - - if(GetDoAnimateMinimize()) { - RECT rcFrom, rcTo; - - GetWindowRect(hWnd, &rcFrom); - GetTrayWndRect(&rcTo); - - DrawAnimatedRects(hWnd, IDANI_CAPTION, &rcFrom, &rcTo); - } - - ShowWindow(hWnd, SW_HIDE); -} - -void RestoreWndFromTray(HWND hWnd) { - - if(IsWindowVisible(hWnd)) - return; - - if(GetDoAnimateMinimize()) { - RECT rcFrom, rcTo; - GetTrayWndRect(&rcFrom); - GetWindowRect(hWnd, &rcTo); - - DrawAnimatedRects(hWnd, IDANI_CAPTION, &rcFrom, &rcTo); - } - - ShowWindow(hWnd, SW_SHOW); - SetActiveWindow(hWnd); - SetForegroundWindow(hWnd); -} - Deleted: trunk/gtk/plugins/docklet/MinimizeToTray.h =================================================================== --- trunk/gtk/plugins/docklet/MinimizeToTray.h 2006-10-06 00:10:34 UTC (rev 17434) +++ trunk/gtk/plugins/docklet/MinimizeToTray.h 2006-10-06 05:03:28 UTC (rev 17435) @@ -1,7 +0,0 @@ -#ifndef _MINIMIZE_TO_TRAY_H_ -#define _MINIMIZE_TO_TRAY_H_ - -void MinimizeWndToTray(HWND hWnd); -void RestoreWndFromTray(HWND hWnd); - -#endif /* _MINIMIZE_TO_TRAY_H_ */ Copied: trunk/gtk/win32/gtkdocklet-win32.c (from rev 17434, trunk/gtk/gtkdocklet-win32.c) =================================================================== --- trunk/gtk/win32/gtkdocklet-win32.c (rev 0) +++ trunk/gtk/win32/gtkdocklet-win32.c 2006-10-06 05:03:28 UTC (rev 17435) @@ -0,0 +1,258 @@ +/* + * System tray icon (aka docklet) plugin for Gaim + * + * Copyright (C) 2002-3 Robert McQueen <rob...@de...> + * Copyright (C) 2003 Herman Bloggs <her...@ya...> + * Inspired by a similar plugin by: + * John (J5) Palmieri <jo...@ma...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + +#include <windows.h> +#include <gdk/gdkwin32.h> +#include <gdk/gdk.h> + +#include "internal.h" +#include "gtkblist.h" +#include "debug.h" + +#include "resource.h" +#include "MinimizeToTray.h" +#include "gtkwin32dep.h" +#include "gtkdocklet.h" + +/* + * DEFINES, MACROS & DATA TYPES + */ +#define WM_TRAYMESSAGE WM_USER /* User defined WM Message */ + +/* + * LOCALS + */ +static HWND systray_hwnd = 0; +static HICON sysicon_disconn = 0; +static HICON sysicon_conn = 0; +static HICON sysicon_away = 0; +static HICON sysicon_pend = 0; +static HICON sysicon_awypend = 0; +static HICON sysicon_blank = 0; +static NOTIFYICONDATA wgaim_nid; + + +static LRESULT CALLBACK systray_mainmsg_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { + static UINT taskbarRestartMsg; /* static here means value is kept across multiple calls to this func */ + + switch(msg) { + case WM_CREATE: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_CREATE\n"); + taskbarRestartMsg = RegisterWindowMessage("TaskbarCreated"); + break; + + case WM_TIMER: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_TIMER\n"); + break; + + case WM_DESTROY: + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "WM_DESTROY\n"); + break; + + case WM_TRAYMESSAGE: + { + int type = 0; + + /* We'll use Double Click - Single click over on linux */ + if(lparam == WM_LBUTTONDBLCLK) + type = 1; + else if(lparam == WM_MBUTTONUP) + type = 2; + else if(lparam == WM_RBUTTONUP) + type = 3; + else + break; + + gaim_gtk_docklet_clicked(type); + break; + } + default: + if (msg == taskbarRestartMsg) { + /* explorer crashed and left us hanging... + This will put the systray icon back in it's place, when it restarts */ + Shell_NotifyIcon(NIM_ADD, &wgaim_nid); + } + break; + }/* end switch */ + + return DefWindowProc(hwnd, msg, wparam, lparam); +} + +/* Create hidden window to process systray messages */ +static HWND systray_create_hiddenwin() { + WNDCLASSEX wcex; + LPCTSTR wname; + + wname = TEXT("WingaimSystrayWinCls"); + + + wcex.cbSize = sizeof(wcex); + wcex.style = 0; + wcex.lpfnWndProc = systray_mainmsg_handler; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = gtkwgaim_hinstance(); + wcex.hIcon = NULL; + wcex.hCursor = NULL, + wcex.hbrBackground = NULL; + wcex.lpszMenuName = NULL; + wcex.lpszClassName = wname; + wcex.hIconSm = NULL; + + RegisterClassEx(&wcex); + + /* Create the window */ + return (CreateWindow(wname, "", 0, 0, 0, 0, 0, GetDesktopWindow(), NULL, gtkwgaim_hinstance(), 0)); +} + +static void systray_init_icon(HWND hWnd, HICON icon) { + ZeroMemory(&wgaim_nid, sizeof(wgaim_nid)); + wgaim_nid.cbSize = sizeof(NOTIFYICONDATA); + wgaim_nid.hWnd = hWnd; + wgaim_nid.uID = 0; + wgaim_nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; + wgaim_nid.uCallbackMessage = WM_TRAYMESSAGE; + wgaim_nid.hIcon = icon; + lstrcpy(wgaim_nid.szTip, "Gaim"); + Shell_NotifyIcon(NIM_ADD, &wgaim_nid); + gaim_gtk_docklet_embedded(); +} + +static void systray_change_icon(HICON icon) { + wgaim_nid.hIcon = icon; + Shell_NotifyIcon(NIM_MODIFY, &wgaim_nid); +} + +static void systray_remove_nid(void) { + Shell_NotifyIcon(NIM_DELETE, &wgaim_nid); +} + +static void wgaim_tray_update_icon(DockletStatus icon) { + switch (icon) { + case DOCKLET_STATUS_OFFLINE: + systray_change_icon(sysicon_disconn); + break; + case DOCKLET_STATUS_CONNECTING: + break; + case DOCKLET_STATUS_ONLINE: + systray_change_icon(sysicon_conn); + break; + case DOCKLET_STATUS_ONLINE_PENDING: + systray_change_icon(sysicon_pend); + break; + case DOCKLET_STATUS_AWAY: + systray_change_icon(sysicon_away); + break; + case DOCKLET_STATUS_AWAY_PENDING: + systray_change_icon(sysicon_awypend); + break; + } +} + +static void wgaim_tray_blank_icon() { + systray_change_icon(sysicon_blank); +} + +static void wgaim_tray_set_tooltip(gchar *tooltip) { + if (tooltip) { + char *locenc = NULL; + locenc = g_locale_from_utf8(tooltip, -1, NULL, NULL, NULL); + lstrcpyn(wgaim_nid.szTip, locenc, sizeof(wgaim_nid.szTip) / sizeof(TCHAR)); + g_free(locenc); + } else { + lstrcpy(wgaim_nid.szTip, "Gaim"); + } + Shell_NotifyIcon(NIM_MODIFY, &wgaim_nid); +} + +static void wgaim_tray_minimize(GaimGtkBuddyList *gtkblist) { + MinimizeWndToTray(GDK_WINDOW_HWND(gtkblist->window->window)); +} + +static void wgaim_tray_maximize(GaimGtkBuddyList *gtkblist) { + RestoreWndFromTray(GDK_WINDOW_HWND(gtkblist->window->window)); +} + + +static void wgaim_tray_create() { + OSVERSIONINFO osinfo; + /* dummy window to process systray messages */ + systray_hwnd = systray_create_hiddenwin(); + + osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osinfo); + + /* Load icons, and init systray notify icon + * NOTE: Windows < XP only supports displaying 4-bit images in the Systray, + * 2K and ME will use the highest color depth that the desktop will support, + * but will scale it back to 4-bits for display. + * That is why we use custom 4-bit icons for pre XP Windowses */ + if ((osinfo.dwMajorVersion == 5 && osinfo.dwMinorVersion > 0) || + (osinfo.dwMajorVersion >= 6)) + { + sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + } else { + sysicon_disconn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_OFFLINE_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_conn = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_away = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAY_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_pend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_PEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + sysicon_awypend = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_AWAYPEND_TRAY_ICON_4BIT), IMAGE_ICON, 16, 16, 0); + } + sysicon_blank = (HICON)LoadImage(gtkwgaim_hinstance(), MAKEINTRESOURCE(GAIM_BLANK_TRAY_ICON), IMAGE_ICON, 16, 16, 0); + + /* Create icon in systray */ + systray_init_icon(systray_hwnd, sysicon_disconn); + + gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-hiding", + gaim_gtk_docklet_get_handle(), GAIM_CALLBACK(wgaim_tray_minimize), NULL); + gaim_signal_connect(gaim_gtk_blist_get_handle(), "gtkblist-unhiding", + gaim_gtk_docklet_get_handle(), GAIM_CALLBACK(wgaim_tray_maximize), NULL); + + gaim_debug(GAIM_DEBUG_INFO, "tray icon", "created\n"); +} + +static void wgaim_tray_destroy() { + systray_remove_nid(); + DestroyWindow(systray_hwnd); + gaim_gtk_docklet_remove(); +} + +static struct docklet_ui_ops wgaim_tray_ops = +{ + wgaim_tray_create, + wgaim_tray_destroy, + wgaim_tray_update_icon, + wgaim_tray_blank_icon, + wgaim_tray_set_tooltip, + NULL +}; + +/* Used by docklet's plugin load func */ +void docklet_ui_init() { + gaim_gtk_docklet_set_ui_ops(&wgaim_tray_ops); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-10-07 18:19:24
|
Revision: 17444 http://svn.sourceforge.net/gaim/?rev=17444&view=rev Author: thekingant Date: 2006-10-07 11:19:17 -0700 (Sat, 07 Oct 2006) Log Message: ----------- Patch from launchpad bug #64445, from Paul Schulz Fix some typos Modified Paths: -------------- trunk/doc/PERL-HOWTO.dox trunk/gtk/plugins/musicmessaging/musicmessaging.c trunk/libgaim/protocols/gg/gg.c trunk/libgaim/protocols/sametime/sametime.c Modified: trunk/doc/PERL-HOWTO.dox =================================================================== --- trunk/doc/PERL-HOWTO.dox 2006-10-07 17:25:21 UTC (rev 17443) +++ trunk/doc/PERL-HOWTO.dox 2006-10-07 18:19:17 UTC (rev 17444) @@ -518,7 +518,7 @@ @code sub timeout_cb { my $plugin = shift; - print "Timeout occured."; + print "Timeout occurred."; # Reschedule timeout Gaim::timeout_add($plugin, 10, \&timeout_cb, $plugin); Modified: trunk/gtk/plugins/musicmessaging/musicmessaging.c =================================================================== --- trunk/gtk/plugins/musicmessaging/musicmessaging.c 2006-10-07 17:25:21 UTC (rev 17443) +++ trunk/gtk/plugins/musicmessaging/musicmessaging.c 2006-10-07 18:19:17 UTC (rev 17444) @@ -523,7 +523,7 @@ if (!(g_spawn_async (".", args, NULL, 4, NULL, NULL, &(mmconv->pid), &spawn_error))) { gaim_notify_error(plugin_pointer, _("Error Running Editor"), - _("The following error has occured:"), spawn_error->message); + _("The following error has occurred:"), spawn_error->message); mmconv->started = FALSE; } else Modified: trunk/libgaim/protocols/gg/gg.c =================================================================== --- trunk/libgaim/protocols/gg/gg.c 2006-10-07 17:25:21 UTC (rev 17443) +++ trunk/libgaim/protocols/gg/gg.c 2006-10-07 18:19:17 UTC (rev 17444) @@ -713,7 +713,7 @@ if (h == NULL) { gaim_notify_error(account, NULL, - _("Unable to change password. Error occured.\n"), + _("Unable to change password. Error occurred.\n"), NULL); goto exit_err; } Modified: trunk/libgaim/protocols/sametime/sametime.c =================================================================== --- trunk/libgaim/protocols/sametime/sametime.c 2006-10-07 17:25:21 UTC (rev 17443) +++ trunk/libgaim/protocols/sametime/sametime.c 2006-10-07 18:19:17 UTC (rev 17444) @@ -1638,7 +1638,7 @@ /* fetch the global error value */ err = errno; - /* read problem occured if we're here, so we'll need to take care of + /* read problem occurred if we're here, so we'll need to take care of it and clean up internal state */ if(pd->socket) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2006-10-08 08:40:20
|
Revision: 17448 http://svn.sourceforge.net/gaim/?rev=17448&view=rev Author: seanegan Date: 2006-10-08 01:40:09 -0700 (Sun, 08 Oct 2006) Log Message: ----------- >From Paul Betts, NetworkManager integration. This will smartly disconnect and reconnect accounts according to network availability. Probably needs some more tweaking. Modified Paths: -------------- trunk/COPYRIGHT trunk/configure.ac trunk/gtk/gtkconn.c trunk/libgaim/Makefile.am trunk/libgaim/account.c trunk/libgaim/connection.h trunk/libgaim/network.c trunk/libgaim/network.h Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/COPYRIGHT 2006-10-08 08:40:09 UTC (rev 17448) @@ -22,6 +22,7 @@ Curtis Beattie Dave Bell Igor Belyi +Paul Betts Brian Bernas Jonas Birmé Eric Blade Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/configure.ac 2006-10-08 08:40:09 UTC (rev 17448) @@ -887,6 +887,14 @@ AC_MSG_RESULT(no) enable_dbus=no ]) + +dnl Check for libnm_glib; if we don't have it, oh well + PKG_CHECK_MODULES(LIBNM, libnm_glib, + [ + AC_DEFINE(HAVE_LIBNM, 1, [Check to see if we have NetworkManager]) + ]) + AC_SUBST(LIBNM_CFLAGS) + AC_SUBST(LIBNM_LIBS) fi dnl ####################################################################### Modified: trunk/gtk/gtkconn.c =================================================================== --- trunk/gtk/gtkconn.c 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/gtk/gtkconn.c 2006-10-08 08:40:09 UTC (rev 17448) @@ -101,13 +101,6 @@ } static void -gaim_gtk_connection_notice(GaimConnection *gc, - const char *text) -{ -} - - -static void free_auto_recon(gpointer data) { GaimAutoRecon *info = data; @@ -201,6 +194,32 @@ } } +static void gaim_gtk_connection_network_connected () +{ + GList *list = gaim_accounts_get_all_active(); + while (list) { + GaimAccount *account = (GaimAccount*)list->data; + GaimAutoRecon *info = g_hash_table_lookup(hash, account); + if (info) + free_auto_recon(info); + do_signon(account); + list = list->next; + } +} + +static void gaim_gtk_connection_network_disconnected () +{ + GList *l = gaim_accounts_get_all_active(); + while (l) { + GaimAccount *a = (GaimAccount*)l->data; + gaim_account_disconnect(a); + l = l->next; + } +} + +static void gaim_gtk_connection_notice(GaimConnection *gc, const char *text) +{ } + static GaimConnectionUiOps conn_ui_ops = { gaim_gtk_connection_connect_progress, @@ -208,6 +227,8 @@ gaim_gtk_connection_disconnected, gaim_gtk_connection_notice, gaim_gtk_connection_report_disconnect, + gaim_gtk_connection_network_connected, + gaim_gtk_connection_network_disconnected }; GaimConnectionUiOps * Modified: trunk/libgaim/Makefile.am =================================================================== --- trunk/libgaim/Makefile.am 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/libgaim/Makefile.am 2006-10-08 08:40:09 UTC (rev 17448) @@ -218,6 +218,7 @@ $(DBUS_LIBS) \ $(GLIB_LIBS) \ $(LIBXML_LIBS) \ + $(LIBNM_LIBS) \ $(STATIC_LINK_LIBS) \ $(INTLLIBS) \ -lm @@ -231,4 +232,5 @@ $(GLIB_CFLAGS) \ $(DEBUG_CFLAGS) \ $(DBUS_CFLAGS) \ - $(LIBXML_CFLAGS) + $(LIBXML_CFLAGS) \ + $(LIBNM_CFLAGS) Modified: trunk/libgaim/account.c =================================================================== --- trunk/libgaim/account.c 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/libgaim/account.c 2006-10-08 08:40:09 UTC (rev 17448) @@ -27,6 +27,7 @@ #include "core.h" #include "dbus-maybe.h" #include "debug.h" +#include "network.h" #include "notify.h" #include "pounce.h" #include "prefs.h" @@ -2242,6 +2243,13 @@ GList *l; GaimAccount *account; + /* If we're not connected to the Internet right now, we bail on this */ + if (!gaim_network_is_available()) + { + fprintf(stderr, "Network not connected; skipping reconnect\n"); + return; + } + for (l = gaim_accounts_get_all(); l != NULL; l = l->next) { account = (GaimAccount *)l->data; Modified: trunk/libgaim/connection.h =================================================================== --- trunk/libgaim/connection.h 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/libgaim/connection.h 2006-10-08 08:40:09 UTC (rev 17448) @@ -68,6 +68,8 @@ void (*disconnected)(GaimConnection *gc); void (*notice)(GaimConnection *gc, const char *text); void (*report_disconnect)(GaimConnection *gc, const char *text); + void (*network_connected)(); + void (*network_disconnected)(); } GaimConnectionUiOps; Modified: trunk/libgaim/network.c =================================================================== --- trunk/libgaim/network.c 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/libgaim/network.c 2006-10-08 08:40:09 UTC (rev 17448) @@ -42,6 +42,14 @@ #include "stun.h" #include "upnp.h" +#ifdef HAVE_LIBNM +#include <libnm_glib.h> + +libnm_glib_ctx *nm_context = NULL; +guint nm_callback_idx = 0; + +#endif + struct _GaimNetworkListenData { int listenfd; int socket_type; @@ -51,6 +59,10 @@ gpointer cb_data; }; +#ifdef HAVE_LIBNM +void nm_callback_func(libnm_glib_ctx* ctx, gpointer user_data); +#endif + const unsigned char * gaim_network_ip_atoi(const char *ip) { @@ -360,7 +372,61 @@ return ntohs(addr.sin_port); } +gboolean +gaim_network_is_available(void) +{ +#ifdef HAVE_LIBNM + /* Try NetworkManager first, maybe we'll get lucky */ + int libnm_retval = -1; + + if (nm_context) + { + if ((libnm_retval = libnm_glib_get_network_state(nm_context)) == LIBNM_NO_NETWORK_CONNECTION) + { + gaim_debug_warning("network", "NetworkManager not active or reports no connection (retval = %i)\n", libnm_retval); + return FALSE; + } + if (libnm_retval == LIBNM_ACTIVE_NETWORK_CONNECTION) return TRUE; + } +#endif + return TRUE; +} + +#ifdef HAVE_LIBNM void +nm_callback_func(libnm_glib_ctx* ctx, gpointer user_data) +{ + GList *l; + GaimAccount *account; + static libnm_glib_state prev = LIBNM_NO_DBUS; + libnm_glib_state current; + GaimConnectionUiOps *ui_ops = gaim_connections_get_ui_ops(); + + current = libnm_glib_get_network_state(ctx); + gaim_debug_info("network","Entering nm_callback_func!\n"); + + switch(current) + { + case LIBNM_ACTIVE_NETWORK_CONNECTION: + ui_ops->network_connected(); + prev = current; + break; + case LIBNM_NO_NETWORK_CONNECTION: + if (prev != LIBNM_ACTIVE_NETWORK_CONNECTION) + break; + ui_ops->network_disconnected(); + prev = current; + break; + case LIBNM_NO_DBUS: + case LIBNM_NO_NETWORKMANAGER: + case LIBNM_INVALID_CONTEXT: + default: + break; + } +} +#endif + +void gaim_network_init(void) { gaim_prefs_add_none ("/core/network"); @@ -371,4 +437,24 @@ gaim_prefs_add_int ("/core/network/ports_range_end", 2048); gaim_upnp_discover(NULL, NULL); + +#ifdef HAVE_LIBNM + nm_context = libnm_glib_init(); + if(nm_context) + nm_callback_idx = libnm_glib_register_callback(nm_context, nm_callback_func, NULL, g_main_context_default()); +#endif } + +void +gaim_network_uninit(void) +{ +#ifdef HAVE_LIBNM + /* FIXME: If anyone can think of a more clever way to shut down libnm without + * using a global variable + this function, please do. */ + if(nm_context && nm_callback_idx) + libnm_glib_unregister_callback(nm_context, nm_callback_idx); + + if(nm_context) + libnm_glib_shutdown(nm_context); +#endif +} Modified: trunk/libgaim/network.h =================================================================== --- trunk/libgaim/network.h 2006-10-08 04:31:39 UTC (rev 17447) +++ trunk/libgaim/network.h 2006-10-08 08:40:09 UTC (rev 17448) @@ -188,10 +188,24 @@ unsigned short gaim_network_get_port_from_fd(int fd); /** + * Detects if there is an available Internet connection. Note that this call + * could block for the amount of time specified in inet_detect_timeout, so + * using it in a UI thread may cause uncomfortableness + * + * @return TRUE if the Internet is available + */ +gboolean gaim_network_is_available(void); + +/** * Initializes the network subsystem. */ void gaim_network_init(void); +/** + * Shuts down the network subsystem. + */ +void gaim_network_uninit(void); + /*@}*/ #ifdef __cplusplus This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-10-08 17:44:20
|
Revision: 17450 http://svn.sourceforge.net/gaim/?rev=17450&view=rev Author: datallah Date: 2006-10-08 10:44:10 -0700 (Sun, 08 Oct 2006) Log Message: ----------- We're not using libiberty, so don't link to it. We don't need to define socklen_t in config.h (it is in ws2tcpip.h) (thanks nosnilmot) Modified Paths: -------------- trunk/config.h.mingw trunk/gtk/Makefile.mingw trunk/libgaim/Makefile.mingw Modified: trunk/config.h.mingw =================================================================== --- trunk/config.h.mingw 2006-10-08 09:47:23 UTC (rev 17449) +++ trunk/config.h.mingw 2006-10-08 17:44:10 UTC (rev 17450) @@ -629,7 +629,7 @@ /* #undef size_t */ /* socklen_t size */ -#define socklen_t int +/* #define socklen_t int */ /* Define to unsigned long or unsigned long long if <stdint.h> and <inttypes.h> don't define. */ Modified: trunk/gtk/Makefile.mingw =================================================================== --- trunk/gtk/Makefile.mingw 2006-10-08 09:47:23 UTC (rev 17449) +++ trunk/gtk/Makefile.mingw 2006-10-08 17:44:10 UTC (rev 17450) @@ -17,8 +17,6 @@ EXE_NAME := $(EXE_TARGET).exe WINAPP := -mwindows -# The Debug version of gaim is a console app, always having a console -CONSOLEAPP := -mconsole LDFLAGS := $(WINAPP) @@ -115,8 +113,7 @@ -lintl \ -lws2_32 \ -lwinmm \ - -lz \ - -liberty + -lz GTKGAIM_LIBS = \ $(LIBGAIM_LIBS) \ Modified: trunk/libgaim/Makefile.mingw =================================================================== --- trunk/libgaim/Makefile.mingw 2006-10-08 09:47:23 UTC (rev 17449) +++ trunk/libgaim/Makefile.mingw 2006-10-08 17:44:10 UTC (rev 17450) @@ -90,7 +90,6 @@ -lgmodule-2.0 \ -lintl \ -lws2_32 \ - -liberty \ -lxml2 include $(GAIM_COMMON_RULES) @@ -98,18 +97,20 @@ ## ## TARGET DEFINITIONS ## -.PHONY: all install clean +.PHONY: all install install_shallow clean all: $(TARGET).dll $(MAKE) -C $(GAIM_PROTOS_TOP) -f $(GAIM_WIN32_MAKEFILE) $(MAKE) -C $(GAIM_LIB_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) -install: all $(GAIM_INSTALL_DIR) - $(MAKE) -C $(GAIM_PROTOS_TOP) -f $(GAIM_WIN32_MAKEFILE) install - $(MAKE) -C $(GAIM_LIB_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) install +install_shallow: $(GAIM_INSTALL_DIR) $(TARGET).dll cp $(TARGET).dll $(GAIM_INSTALL_DIR) cp $(NEEDED_DLLS) $(GAIM_INSTALL_DIR) +install: install_shallow all + $(MAKE) -C $(GAIM_PROTOS_TOP) -f $(GAIM_WIN32_MAKEFILE) install + $(MAKE) -C $(GAIM_LIB_PLUGINS_TOP) -f $(GAIM_WIN32_MAKEFILE) install + ./win32/libgaimrc.rc: ./win32/libgaimrc.rc.in $(GAIM_TOP)/VERSION sed -e 's/@GAIM_VERSION@/$(GAIM_VERSION)/g' \ $@.in > $@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-10-08 19:17:39
|
Revision: 17451 http://svn.sourceforge.net/gaim/?rev=17451&view=rev Author: datallah Date: 2006-10-08 12:17:32 -0700 (Sun, 08 Oct 2006) Log Message: ----------- A couple Makefile.mingw tweaks from Lee Roach. `make -f Makefile.mingw clean` will no longer delete win32-install-dir, a new "uninstall" target has been added for that purpose. The perl Makefiles "clean" target will now delete .c files generated from the .xs files. Modified Paths: -------------- trunk/Makefile.mingw trunk/gtk/plugins/perl/common/Makefile.mingw trunk/libgaim/plugins/perl/common/Makefile.mingw Modified: trunk/Makefile.mingw =================================================================== --- trunk/Makefile.mingw 2006-10-08 17:44:10 UTC (rev 17450) +++ trunk/Makefile.mingw 2006-10-08 19:17:32 UTC (rev 17451) @@ -31,7 +31,7 @@ exit; \ }' VERSION) -.PHONY: all install installer installer_nogtk installer_debug installers clean +.PHONY: all install installer installer_nogtk installer_debug installers clean uninstall all: $(GAIM_CONFIG_H) $(MAKE) -C $(GAIM_LIB_TOP) -f $(GAIM_WIN32_MAKEFILE) @@ -59,6 +59,8 @@ $(MAKE) -C $(GAIM_GTK_TOP) -f $(GAIM_WIN32_MAKEFILE) clean $(MAKE) -C $(GAIM_LIB_TOP) -f $(GAIM_WIN32_MAKEFILE) clean rm -f $(GAIM_CONFIG_H) gaim*.exe + +uninstall: rm -rf $(GAIM_INSTALL_PERLMOD_DIR) $(GAIM_INSTALL_PLUGINS_DIR) $(GAIM_INSTALL_PO_DIR) $(GAIM_INSTALL_DIR) include $(GAIM_COMMON_TARGETS) Modified: trunk/gtk/plugins/perl/common/Makefile.mingw =================================================================== --- trunk/gtk/plugins/perl/common/Makefile.mingw 2006-10-08 17:44:10 UTC (rev 17450) +++ trunk/gtk/plugins/perl/common/Makefile.mingw 2006-10-08 19:17:32 UTC (rev 17451) @@ -104,6 +104,6 @@ ## CLEAN ## clean: - rm -f *.o $(TARGET).dll + rm -f *.o $(C_FILES) $(TARGET).dll include $(GAIM_COMMON_TARGETS) Modified: trunk/libgaim/plugins/perl/common/Makefile.mingw =================================================================== --- trunk/libgaim/plugins/perl/common/Makefile.mingw 2006-10-08 17:44:10 UTC (rev 17450) +++ trunk/libgaim/plugins/perl/common/Makefile.mingw 2006-10-08 19:17:32 UTC (rev 17451) @@ -110,6 +110,7 @@ ## CLEAN ## clean: - rm -rf *.o $(TARGET).dll $(FALLBACKS) lib + rm -rf $(TARGET).dll $(FALLBACKS) lib + rm -f *.o $(C_FILES) include $(GAIM_COMMON_TARGETS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-10-09 03:02:44
|
Revision: 17452 http://svn.sourceforge.net/gaim/?rev=17452&view=rev Author: datallah Date: 2006-10-08 20:02:32 -0700 (Sun, 08 Oct 2006) Log Message: ----------- Depluginize the wingaim conv. flashing. IM window flashing is now always on, chat window flashing is a pref in the wingaim options plugin. Fix some callbacks where 'int' was used instead of 'GaimMessageFlags' Modified Paths: -------------- trunk/gtk/gtkconv.c trunk/gtk/gtkmain.c trunk/gtk/gtksound.c trunk/gtk/plugins/win32/winprefs/winprefs.c trunk/gtk/win32/gtkwin32dep.c trunk/gtk/win32/gtkwin32dep.h trunk/libgaim/plugins/signals-test.c Modified: trunk/gtk/gtkconv.c =================================================================== --- trunk/gtk/gtkconv.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/gtkconv.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -215,7 +215,7 @@ if (gtkconv->auto_resize) { return FALSE; } - + /* I find that I resize the window when it has a bunch of conversations in it, mostly so that the * tab bar will fit, but then I don't want new windows taking up the entire screen. I check to see * if there is only one conversation in the window. This way we'll be setting new windows to the @@ -2263,7 +2263,7 @@ } } -/* This gets added as an idle handler when doing something that +/* This gets added as an idle handler when doing something that * redraws the icon. It sets the auto_resize gboolean to TRUE. * This way, when the size_allocate callback gets triggered, it notices * that this is an autoresize, and after the main loop iterates, it @@ -2296,7 +2296,7 @@ gtkconv->auto_resize = TRUE; g_idle_add(reset_auto_resize_cb, gtkconv); - + gdk_pixbuf_animation_iter_advance(gtkconv->u.im->iter, NULL); buf = gdk_pixbuf_animation_iter_get_pixbuf(gtkconv->u.im->iter); @@ -3329,7 +3329,7 @@ gboolean is_buddy; gchar *alias_key, *name, *alias; int flags; - + alias = cb->alias; name = cb->name; flags = GPOINTER_TO_INT(cb->flags); @@ -3357,10 +3357,10 @@ { GdkColor send_color; gdk_color_parse(SEND_COLOR, &send_color); - -#if GTK_CHECK_VERSION(2,6,0) + +#if GTK_CHECK_VERSION(2,6,0) gtk_list_store_insert_with_values(ls, &iter, -/* +/* * The GTK docs are mute about the effects of the "row" value for performance. * X-Chat hardcodes their value to 0 (prepend) and -1 (append), so we will too. * It *might* be faster to search the gtk_list_store and set row accurately, @@ -3985,7 +3985,7 @@ gtk_widget_show(sw); ls = gtk_list_store_new(CHAT_USERS_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, + G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, GDK_TYPE_COLOR, G_TYPE_INT); gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(ls), CHAT_USERS_ALIAS_KEY_COLUMN, sort_chat_users, NULL, NULL); @@ -3998,7 +3998,7 @@ "pixbuf", CHAT_USERS_ICON_COLUMN, NULL); gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_append_column(GTK_TREE_VIEW(list), col); - gtk_widget_set_size_request(lbox, + gtk_widget_set_size_request(lbox, gaim_prefs_get_int("/gaim/gtk/conversations/chat/userlist_width"), -1); g_signal_connect(G_OBJECT(list), "button_press_event", @@ -4006,8 +4006,8 @@ g_signal_connect(G_OBJECT(list), "popup-menu", G_CALLBACK(gtkconv_chat_popup_menu_cb), gtkconv); g_signal_connect(G_OBJECT(list), "size-allocate", G_CALLBACK(size_allocate_cb), gtkconv); - - + + rend = gtk_cell_renderer_text_new(); g_object_set(rend, @@ -4478,7 +4478,7 @@ static void received_im_msg_cb(GaimAccount *account, char *sender, char *message, - GaimConversation *conv, int flags) + GaimConversation *conv, GaimMessageFlags flags) { GaimConversationUiOps *ui_ops = gaim_gtk_conversations_get_conv_ui_ops(); if (conv != NULL) @@ -5029,7 +5029,7 @@ #if GTK_CHECK_VERSION(2,6,0) gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, - GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID); + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID); #endif l = cbuddies; @@ -5038,7 +5038,7 @@ l = l->next; } - /* Currently GTK+ maintains our sorted list after it's in the tree. + /* Currently GTK+ maintains our sorted list after it's in the tree. * This may change if it turns out we can manage it faster ourselves. */ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), CHAT_USERS_ALIAS_KEY_COLUMN, @@ -5321,10 +5321,10 @@ g_signal_connect(smiley->loader, "closed", G_CALLBACK(gaim_gtkconv_custom_smiley_closed), smiley); gtk_imhtml_associate_smiley(imhtml, sml, smiley); - + return TRUE; } - + static gboolean gaim_gtkconv_custom_smiley_add(GaimConversation *conv, const char *smile, gboolean remote) { @@ -5335,26 +5335,26 @@ if (!conv || !smile || !*smile) { return FALSE; } - + /* If smileys are off, return false */ if (gaim_gtkthemes_smileys_disabled()) return FALSE; - + /* If possible add this smiley to the current theme. * The addition is only temporary: custom smilies aren't saved to disk. */ conv_sml = gaim_account_get_protocol_name(conv->account); gtkconv = GAIM_GTK_CONVERSATION(conv); - + for (list = (struct smiley_list *)current_smiley_theme->list; list; list = list->next) { if (!strcmp(list->sml, conv_sml)) { sml = list->sml; break; } } - + if (!add_custom_smiley_for_imhtml(GTK_IMHTML(gtkconv->imhtml), sml, smile)) return FALSE; - + if (!remote) /* If it's a local custom smiley, then add it for the entry */ if (!add_custom_smiley_for_imhtml(GTK_IMHTML(gtkconv->entry), sml, smile)) return FALSE; @@ -6229,7 +6229,7 @@ } static void -account_status_changed_cb(GaimAccount *account, GaimStatus *oldstatus, +account_status_changed_cb(GaimAccount *account, GaimStatus *oldstatus, GaimStatus *newstatus) { GList *l; @@ -6404,7 +6404,7 @@ if (conv) gaim_gtkconv_update_fields(conv, GAIM_GTKCONV_TAB_ICON); } - + static void update_buddy_icon(GaimBuddy *buddy) { @@ -6660,7 +6660,7 @@ gaim_signal_connect(gaim_connections_get_handle(), "signed-off", handle, G_CALLBACK(account_signed_off_cb), GINT_TO_POINTER(GAIM_CONV_ACCOUNT_OFFLINE)); - + gaim_signal_connect(gaim_conversations_get_handle(), "received-im-msg", handle, G_CALLBACK(received_im_msg_cb), NULL); Modified: trunk/gtk/gtkmain.c =================================================================== --- trunk/gtk/gtkmain.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/gtkmain.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -793,6 +793,11 @@ #ifdef HAVE_STARTUP_NOTIFICATION startup_notification_complete(); #endif + +#ifdef _WIN32 + gtkwgaim_post_init(); +#endif + gtk_main(); #ifdef HAVE_SIGNAL_H Modified: trunk/gtk/gtksound.c =================================================================== --- trunk/gtk/gtksound.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/gtksound.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -144,7 +144,7 @@ static void im_msg_received_cb(GaimAccount *account, char *sender, char *message, GaimConversation *conv, - int flags, GaimSoundEventID event) + GaimMessageFlags flags, GaimSoundEventID event) { if (flags & GAIM_MESSAGE_DELAYED) return; Modified: trunk/gtk/plugins/win32/winprefs/winprefs.c =================================================================== --- trunk/gtk/plugins/win32/winprefs/winprefs.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/plugins/win32/winprefs/winprefs.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -55,7 +55,6 @@ static const char *PREF_DBLIST_HEIGHT = "/plugins/gtk/win32/winprefs/dblist_height"; static const char *PREF_DBLIST_SIDE = "/plugins/gtk/win32/winprefs/dblist_side"; static const char *PREF_BLIST_ON_TOP = "/plugins/gtk/win32/winprefs/blist_on_top"; -static const char *PREF_IM_BLINK = "/plugins/gtk/win32/winprefs/im_blink"; static const char *PREF_CHAT_BLINK = "/plugins/gtk/win32/winprefs/chat_blink"; /* Deprecated */ @@ -66,25 +65,12 @@ static GtkWidget *blist = NULL; static guint blist_visible_cb_id = 0; -/* flash info */ - -struct _WGAIM_FLASH_INFO { - guint t_handle; - guint sig_handler; -}; - enum { BLIST_TOP_NEVER = 0, BLIST_TOP_ALWAYS, BLIST_TOP_DOCKED, }; -typedef struct _WGAIM_FLASH_INFO WGAIM_FLASH_INFO; - -typedef BOOL (CALLBACK* LPFNFLASHWINDOWEX)(PFLASHWINFO); - -static LPFNFLASHWINDOWEX MyFlashWindowEx = NULL; - /* * CODE */ @@ -247,128 +233,22 @@ blist_set_ontop(FALSE); } -static void load_winver_specific_procs(void) { - /* Used for Win98+ and WinNT5+ */ - MyFlashWindowEx = (LPFNFLASHWINDOWEX) wgaim_find_and_loadproc("user32.dll", "FlashWindowEx"); -} - -/* Window flasher */ -static gboolean flash_window_cb(gpointer data) { - FlashWindow((HWND) data, TRUE); - return TRUE; -} - -static int -halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, gpointer data) -{ - if(MyFlashWindowEx) { - HWND hWnd = data; - FLASHWINFO info; - - if(!IsWindow(hWnd)) - return 0; - - memset(&info, 0, sizeof(FLASHWINFO)); - info.cbSize = sizeof(FLASHWINFO); - info.hwnd = hWnd; - info.dwFlags = FLASHW_STOP; - info.dwTimeout = 0; - MyFlashWindowEx(&info); - - } else { - WGAIM_FLASH_INFO *finfo = data; - /* Stop flashing and remove filter */ - gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Removing timeout\n"); - gaim_timeout_remove(finfo->t_handle); - gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Disconnecting signal handler\n"); - g_signal_handler_disconnect(G_OBJECT(widget), - finfo->sig_handler); - gaim_debug(GAIM_DEBUG_INFO, "wgaim", "done\n"); - g_free(finfo); - } - return 0; -} - -/* FlashWindowEx is only supported by Win98+ and WinNT5+. If it's - not supported we do it our own way */ static gboolean -wgaim_conv_blink(GaimConversation *conv, int flags) +gtkwgaim_conv_chat_blink(GaimAccount *account, const char *who, char **message, + GaimConversation *conv, GaimMessageFlags flags, void *data) { - GaimGtkWindow *win; - GtkWidget *window; + if(!gaim_prefs_get_bool(PREF_CHAT_BLINK)) + gtkwgaim_conv_blink(conv, flags); - /* Don't flash for our own messages or system messages */ - if(flags & GAIM_MESSAGE_SEND || flags & GAIM_MESSAGE_SYSTEM) - return FALSE; - - if(conv == NULL) { - gaim_debug_info("winprefs", "gar!\n"); - return FALSE; - } - win = gaim_gtkconv_get_window(GAIM_GTK_CONVERSATION(conv)); - if(win == NULL) { - gaim_debug_info("winprefs", "gar2!\n"); - return FALSE; - } - window = win->window; - - if(MyFlashWindowEx) { - FLASHWINFO info; - if(GetForegroundWindow() == GDK_WINDOW_HWND(window->window)) - return FALSE; - - memset(&info, 0, sizeof(FLASHWINFO)); - info.cbSize = sizeof(FLASHWINFO); - info.hwnd = GDK_WINDOW_HWND(window->window); - info.dwFlags = FLASHW_ALL | FLASHW_TIMER; - info.dwTimeout = 0; - MyFlashWindowEx(&info); - /* Stop flashing when window receives focus */ - g_signal_connect(G_OBJECT(window), "focus-in-event", - G_CALLBACK(halt_flash_filter), info.hwnd); - } else { - WGAIM_FLASH_INFO *finfo = g_new0(WGAIM_FLASH_INFO, 1); - - /* Start Flashing window */ - finfo->t_handle = gaim_timeout_add(1000, flash_window_cb, - GDK_WINDOW_HWND(window->window)); - finfo->sig_handler = g_signal_connect(G_OBJECT(window), - "focus-in-event", G_CALLBACK(halt_flash_filter), finfo); - } - return FALSE; } -static gboolean -wgaim_conv_im_blink(GaimAccount *account, const char *who, char **message, - GaimConversation *conv, int flags, void *data) -{ - if(!gaim_prefs_get_bool(PREF_IM_BLINK)) - return FALSE; - return wgaim_conv_blink(conv, flags); - -} - -static gboolean -wgaim_conv_chat_blink(GaimAccount *account, const char *who, char **message, - GaimConversation *conv, int flags, void *data) -{ - if(!gaim_prefs_get_bool(PREF_CHAT_BLINK)) - return FALSE; - - return wgaim_conv_blink(conv, flags); -} - - /* * EXPORTED FUNCTIONS */ static gboolean plugin_load(GaimPlugin *plugin) { - /* Find out how to go blinky */ - load_winver_specific_procs(); - handle = plugin; /* blist docking init */ @@ -383,13 +263,9 @@ plugin, GAIM_CALLBACK(blist_create_cb), NULL); gaim_signal_connect(gaim_gtk_conversations_get_handle(), - "displaying-im-msg", plugin, GAIM_CALLBACK(wgaim_conv_im_blink), + "displaying-chat-msg", plugin, GAIM_CALLBACK(gtkwgaim_conv_chat_blink), NULL); - gaim_signal_connect(gaim_gtk_conversations_get_handle(), - "displaying-chat-msg", plugin, GAIM_CALLBACK(wgaim_conv_chat_blink), - NULL); - gaim_signal_connect((void*)gaim_get_core(), "quitting", plugin, GAIM_CALLBACK(gaim_quit_cb), NULL); @@ -463,8 +339,6 @@ /* Conversations */ vbox = gaim_gtk_make_frame(ret, _("Conversations")); - gaim_gtk_prefs_checkbox(_("_Flash window when IMs are received"), - PREF_IM_BLINK, vbox); gaim_gtk_prefs_checkbox(_("_Flash window when chat messages are received"), PREF_CHAT_BLINK, vbox); @@ -492,7 +366,7 @@ N_("WinGaim Options"), VERSION, N_("Options specific to Windows Gaim."), - N_("Provides options specific to Windows Gaim, such as buddy list docking and conversation flashing."), + N_("Provides options specific to Windows Gaim, such as buddy list docking."), "Herman Bloggs <her...@ya...>", GAIM_WEBSITE, plugin_load, @@ -514,7 +388,6 @@ gaim_prefs_add_bool(PREF_DBLIST_DOCKED, FALSE); gaim_prefs_add_int(PREF_DBLIST_HEIGHT, 0); gaim_prefs_add_int(PREF_DBLIST_SIDE, 0); - gaim_prefs_add_bool(PREF_IM_BLINK, TRUE); gaim_prefs_add_bool(PREF_CHAT_BLINK, FALSE); /* Convert old preferences */ Modified: trunk/gtk/win32/gtkwin32dep.c =================================================================== --- trunk/gtk/win32/gtkwin32dep.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/win32/gtkwin32dep.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -49,9 +49,8 @@ #include <libintl.h> #include "gtkwin32dep.h" - #include "win32dep.h" - +#include "gtkconv.h" #include "wspell.h" /* @@ -60,7 +59,12 @@ HINSTANCE gaimexe_hInstance = 0; HINSTANCE gtkgaimdll_hInstance = 0; HWND messagewin_hwnd; +static int gtkwin32_handle; +typedef BOOL (CALLBACK* LPFNFLASHWINDOWEX)(PFLASHWINFO); +static LPFNFLASHWINDOWEX MyFlashWindowEx = NULL; + + /* * PUBLIC CODE */ @@ -221,15 +225,82 @@ return win_hwnd; } +static int +halt_flash_filter(GtkWidget *widget, GdkEventFocus *event, gpointer data) { + if(MyFlashWindowEx) { + HWND hWnd = data; + FLASHWINFO info; + if(!IsWindow(hWnd)) + return 0; + + memset(&info, 0, sizeof(FLASHWINFO)); + info.cbSize = sizeof(FLASHWINFO); + info.hwnd = hWnd; + info.dwFlags = FLASHW_STOP; + info.dwTimeout = 0; + MyFlashWindowEx(&info); + } + return 0; +} + +void +gtkwgaim_conv_blink(GaimConversation *conv, GaimMessageFlags flags) { + GaimGtkWindow *win; + GtkWidget *window; + + /* Don't flash for our own messages or system messages */ + if(flags & GAIM_MESSAGE_SEND || flags & GAIM_MESSAGE_SYSTEM) + return; + + if(conv == NULL) { + gaim_debug_info("gtkwgaim", "No conversation found to blink.\n"); + return; + } + + win = gaim_gtkconv_get_window(GAIM_GTK_CONVERSATION(conv)); + if(win == NULL) { + gaim_debug_info("gtkwgaim", "No conversation windows found to blink.\n"); + return; + } + + window = win->window; + + if(MyFlashWindowEx) { + FLASHWINFO info; + /* Don't flash if we have the window focused */ + if(GetForegroundWindow() == GDK_WINDOW_HWND(window->window)) + return; + + memset(&info, 0, sizeof(FLASHWINFO)); + info.cbSize = sizeof(FLASHWINFO); + info.hwnd = GDK_WINDOW_HWND(window->window); + info.dwFlags = FLASHW_ALL | FLASHW_TIMER; + info.dwTimeout = 0; + MyFlashWindowEx(&info); + /* Stop flashing when window receives focus */ + g_signal_connect(G_OBJECT(window), "focus-in-event", + G_CALLBACK(halt_flash_filter), info.hwnd); + } +} + +static gboolean +gtkwgaim_conv_im_blink(GaimAccount *account, const char *who, char **message, + GaimConversation *conv, GaimMessageFlags flags, void *data) +{ + gtkwgaim_conv_blink(conv, flags); + return FALSE; +} + void gtkwgaim_init(HINSTANCE hint) { + gaim_debug_info("gtkwgaim", "gtkwgaim_init start\n"); gaimexe_hInstance = hint; /* IdleTracker Initialization */ if(!wgaim_set_idlehooks()) - gaim_debug_error("gtkwgaim", "Failed to initialize idle tracker\n"); + gaim_debug_error("gtkwgaim", "Failed to initialize idle tracker\n"); wgaim_gtkspell_init(); gaim_debug_info("gtkwgaim", "GTK+ :%u.%u.%u\n", @@ -237,9 +308,19 @@ messagewin_hwnd = wgaim_message_window_init(); + MyFlashWindowEx = (LPFNFLASHWINDOWEX) wgaim_find_and_loadproc("user32.dll", "FlashWindowEx"); + gaim_debug_info("gtkwgaim", "gtkwgaim_init end\n"); } +void gtkwgaim_post_init(void) { + + gaim_signal_connect(gaim_gtk_conversations_get_handle(), + "displaying-im-msg", >kwin32_handle, GAIM_CALLBACK(gtkwgaim_conv_im_blink), + NULL); + +} + /* Windows Cleanup */ void gtkwgaim_cleanup(void) { Modified: trunk/gtk/win32/gtkwin32dep.h =================================================================== --- trunk/gtk/win32/gtkwin32dep.h 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/gtk/win32/gtkwin32dep.h 2006-10-09 03:02:32 UTC (rev 17452) @@ -24,20 +24,23 @@ #define _GTKWIN32DEP_H_ #include <windows.h> #include <gtk/gtk.h> +#include "conversation.h" HINSTANCE gtkwgaim_hinstance(void); /* Utility */ -int gtkwgaim_gz_decompress(const char* in, const char* out); -int gtkwgaim_gz_untar(const char* filename, const char* destdir); -void gtkwgaim_ensure_onscreen(GtkWidget *win); +int gtkwgaim_gz_decompress(const char* in, const char* out); +int gtkwgaim_gz_untar(const char* filename, const char* destdir); /* Misc */ -void gtkwgaim_notify_uri(const char *uri); +void gtkwgaim_notify_uri(const char *uri); +void gtkwgaim_ensure_onscreen(GtkWidget *win); +void gtkwgaim_conv_blink(GaimConversation *conv, GaimMessageFlags flags); /* init / cleanup */ -void gtkwgaim_init(HINSTANCE); -void gtkwgaim_cleanup(void); +void gtkwgaim_init(HINSTANCE); +void gtkwgaim_post_init(void); +void gtkwgaim_cleanup(void); #endif /* _WIN32DEP_H_ */ Modified: trunk/libgaim/plugins/signals-test.c =================================================================== --- trunk/libgaim/plugins/signals-test.c 2006-10-08 19:17:32 UTC (rev 17451) +++ trunk/libgaim/plugins/signals-test.c 2006-10-09 03:02:32 UTC (rev 17452) @@ -243,7 +243,7 @@ static gboolean receiving_im_msg_cb(GaimAccount *account, char **sender, char **buffer, - GaimConversation *conv, int *flags, void *data) + GaimConversation *conv, GaimMessageFlags *flags, void *data) { gaim_debug_misc("signals test", "receiving-im-msg (%s, %s, %s, %s, %d)\n", gaim_account_get_username(account), *sender, *buffer, @@ -254,7 +254,7 @@ static void received_im_msg_cb(GaimAccount *account, char *sender, char *buffer, - GaimConversation *conv, int flags, void *data) + GaimConversation *conv, GaimMessageFlags flags, void *data) { gaim_debug_misc("signals test", "received-im-msg (%s, %s, %s, %s, %d)\n", gaim_account_get_username(account), sender, buffer, @@ -297,7 +297,7 @@ static gboolean receiving_chat_msg_cb(GaimAccount *account, char **sender, char **buffer, - GaimConversation *chat, int *flags, void *data) + GaimConversation *chat, GaimMessageFlags *flags, void *data) { gaim_debug_misc("signals test", "receiving-chat-msg (%s, %s, %s, %s, %d)\n", @@ -309,7 +309,7 @@ static void received_chat_msg_cb(GaimAccount *account, char *sender, char *buffer, - GaimConversation *chat, int flags, void *data) + GaimConversation *chat, GaimMessageFlags flags, void *data) { gaim_debug_misc("signals test", "received-chat-msg (%s, %s, %s, %s, %d)\n", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fac...@us...> - 2006-10-11 03:14:20
|
Revision: 17458 http://svn.sourceforge.net/gaim/?rev=17458&view=rev Author: faceprint Date: 2006-10-10 20:13:33 -0700 (Tue, 10 Oct 2006) Log Message: ----------- I think we should let people know why we're not connecting... If someone can think of better (shorter) wording, feel free to change it Modified Paths: -------------- trunk/gtk/gtkconn.c trunk/gtk/gtkstatusbox.c trunk/gtk/gtkstatusbox.h trunk/libgaim/account.c Modified: trunk/gtk/gtkconn.c =================================================================== --- trunk/gtk/gtkconn.c 2006-10-11 01:13:59 UTC (rev 17457) +++ trunk/gtk/gtkconn.c 2006-10-11 03:13:33 UTC (rev 17458) @@ -194,9 +194,14 @@ } } -static void gaim_gtk_connection_network_connected () +static void gaim_gtk_connection_network_connected () { GList *list = gaim_accounts_get_all_active(); + GaimGtkBuddyList *gtkblist = gaim_gtk_blist_get_default_gtk_blist(); + + if(gtkblist) + gtk_gaim_status_box_set_network_available(GTK_GAIM_STATUS_BOX(gtkblist->statusbox), TRUE); + while (list) { GaimAccount *account = (GaimAccount*)list->data; GaimAutoRecon *info = g_hash_table_lookup(hash, account); @@ -204,12 +209,17 @@ free_auto_recon(info); do_signon(account); list = list->next; - } + } } -static void gaim_gtk_connection_network_disconnected () +static void gaim_gtk_connection_network_disconnected () { GList *l = gaim_accounts_get_all_active(); + GaimGtkBuddyList *gtkblist = gaim_gtk_blist_get_default_gtk_blist(); + + if(gtkblist) + gtk_gaim_status_box_set_network_available(GTK_GAIM_STATUS_BOX(gtkblist->statusbox), FALSE); + while (l) { GaimAccount *a = (GaimAccount*)l->data; gaim_account_disconnect(a); Modified: trunk/gtk/gtkstatusbox.c =================================================================== --- trunk/gtk/gtkstatusbox.c 2006-10-11 01:13:59 UTC (rev 17457) +++ trunk/gtk/gtkstatusbox.c 2006-10-11 03:13:33 UTC (rev 17458) @@ -43,6 +43,7 @@ #include "account.h" #include "internal.h" +#include "network.h" #include "savedstatuses.h" #include "status.h" #include "debug.h" @@ -553,6 +554,8 @@ secondary = g_strdup(_("Typing")); else if (status_box->connecting) secondary = g_strdup(_("Connecting")); + else if (!status_box->network_available) + secondary = g_strdup(_("Waiting for network connection")); else if (gaim_savedstatus_is_transient(saved_status)) secondary = NULL; else @@ -1265,6 +1268,7 @@ GtkTextBuffer *buffer; status_box->imhtml_visible = FALSE; + status_box->network_available = gaim_network_is_available(); status_box->connecting = FALSE; status_box->typing = 0; status_box->toggle_button = gtk_toggle_button_new(); @@ -1609,6 +1613,15 @@ } void +gtk_gaim_status_box_set_network_available(GtkGaimStatusBox *status_box, gboolean available) +{ + if (!status_box) + return; + status_box->network_available = available; + gtk_gaim_status_box_refresh(status_box); +} + +void gtk_gaim_status_box_set_connecting(GtkGaimStatusBox *status_box, gboolean connecting) { if (!status_box) Modified: trunk/gtk/gtkstatusbox.h =================================================================== --- trunk/gtk/gtkstatusbox.h 2006-10-11 01:13:59 UTC (rev 17457) +++ trunk/gtk/gtkstatusbox.h 2006-10-11 03:13:33 UTC (rev 17458) @@ -110,6 +110,7 @@ int typing_index; GdkPixbuf *typing_pixbufs[4]; + gboolean network_available; gboolean connecting; guint typing; @@ -156,6 +157,9 @@ gtk_gaim_status_box_add_separator(GtkGaimStatusBox *status_box); void +gtk_gaim_status_box_set_network_available(GtkGaimStatusBox *status_box, gboolean available); + +void gtk_gaim_status_box_set_connecting(GtkGaimStatusBox *status_box, gboolean connecting); void Modified: trunk/libgaim/account.c =================================================================== --- trunk/libgaim/account.c 2006-10-11 01:13:59 UTC (rev 17457) +++ trunk/libgaim/account.c 2006-10-11 03:13:33 UTC (rev 17458) @@ -2246,7 +2246,7 @@ /* If we're not connected to the Internet right now, we bail on this */ if (!gaim_network_is_available()) { - fprintf(stderr, "Network not connected; skipping reconnect\n"); + gaim_debug_info("account", "Network not connected; skipping reconnect\n"); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-10-11 08:59:03
|
Revision: 17460 http://svn.sourceforge.net/gaim/?rev=17460&view=rev Author: thekingant Date: 2006-10-11 01:58:59 -0700 (Wed, 11 Oct 2006) Log Message: ----------- Sadrul is officially a developer now. Let me know if I missed any places. Also, anyone listed here should feel free to add or remove their email address, IM screen names, description, etc. as they see fit. Modified Paths: -------------- trunk/AUTHORS trunk/gtk/gtkdialogs.c Modified: trunk/AUTHORS =================================================================== --- trunk/AUTHORS 2006-10-11 04:27:17 UTC (rev 17459) +++ trunk/AUTHORS 2006-10-11 08:58:59 UTC (rev 17460) @@ -20,6 +20,7 @@ Daniel 'datallah' Atallah Ethan 'Paco-Paco' Blanton - Developer Thomas Butter - Developer +Sadrul Habib Chowdhury - Developer Mark 'KingAnt' Doliner - Developer Christian 'ChipX86' Hammond - Developer & Webmaster Gary 'grim' Kramlich - Developer @@ -36,7 +37,6 @@ Crazy Patch Writers: ------------------- Ka-Hing 'javabsp' Cheung -Sadrul Habib Chowdhury Felipe 'shx' Contreras Decklin Foster Peter 'Bleeter' Lawler Modified: trunk/gtk/gtkdialogs.c =================================================================== --- trunk/gtk/gtkdialogs.c 2006-10-11 04:27:17 UTC (rev 17459) +++ trunk/gtk/gtkdialogs.c 2006-10-11 08:58:59 UTC (rev 17460) @@ -64,9 +64,10 @@ /* Order: Lead Developer, then Alphabetical by Last Name */ static struct developer developers[] = { {"Sean Egan", N_("lead developer"), "sea...@gm..."}, - {"Daniel 'datallah' Atallah", N_("developer"), NULL}, + {"Daniel 'datallah' Atallah", N_("developer"), NULL}, {"Ethan 'Paco-Paco' Blanton", N_("developer"), NULL}, - {"Thomas Butter", N_("developer"), NULL}, + {"Thomas Butter", N_("developer"), NULL}, + {"Sadrul Habib Chowdhury", N_("developer"), NULL}, {"Mark 'KingAnt' Doliner", N_("developer"), NULL}, {"Christian 'ChipX86' Hammond", N_("developer & webmaster"), NULL}, {"Gary 'grim' Kramlich", N_("developer"), NULL}, @@ -85,7 +86,6 @@ /* Order: Alphabetical by Last Name */ static struct developer patch_writers[] = { {"Ka-Hing 'javabsp' Cheung", NULL, NULL}, - {"Sadrul Habib Chowdhury", NULL, NULL}, {"Felipe 'shx' Contreras", NULL, NULL}, {"Decklin Foster", NULL, NULL}, {"Casey Harkins", NULL, NULL}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |