diff --git a/data/glade/features_window.glade b/data/glade/features_window.glade new file mode 100644 index 0000000000000000000000000000000000000000..0e06e2717747d23d6d9357a2f60c6142f7e1ea1d --- /dev/null +++ b/data/glade/features_window.glade @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<!--Generated with glade3 3.2.0 on Tue Jun 26 23:59:52 2007 by asterix@obelix--> +<glade-interface> + <widget class="GtkWindow" id="features_window"> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="border_width">12</property> + <property name="title" translatable="yes">Features</property> + <property name="default_width">200</property> + <property name="default_height">350</property> + <child> + <widget class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="spacing">6</property> + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">List of possible features in Gajim:</property> + </widget> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <child> + <widget class="GtkTreeView" id="features_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="headers_clickable">True</property> + <signal name="row_activated" handler="on_features_treeview_row_activated"/> + </widget> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkHButtonBox" id="hbuttonbox1"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <child> + <widget class="GtkButton" id="close_button"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">gtk-close</property> + <property name="use_stock">True</property> + <signal name="clicked" handler="on_close_button_clicked"/> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </widget> + </child> + </widget> +</glade-interface> diff --git a/data/glade/roster_window.glade b/data/glade/roster_window.glade index 5e393ae45e56bdb7da0feedcb45ae49e8cf03ef8..21265b3d6e4ec7d3edea56814f7f1b799aa20e5f 100644 --- a/data/glade/roster_window.glade +++ b/data/glade/roster_window.glade @@ -1,444 +1,344 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<!--*- mode: xml -*--> <glade-interface> - -<widget class="GtkWindow" id="roster_window"> - <property name="width_request">85</property> - <property name="height_request">200</property> - <property name="title" translatable="yes">Gajim</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="default_width">200</property> - <property name="default_height">400</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="role">roster</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - <signal name="delete_event" handler="on_roster_window_delete_event" last_modification_time="Mon, 21 Mar 2005 12:34:59 GMT"/> - <signal name="focus_in_event" handler="on_roster_window_focus_in_event" last_modification_time="Sun, 04 Sep 2005 16:33:35 GMT"/> - <signal name="key_press_event" handler="on_roster_window_key_press_event" last_modification_time="Tue, 20 Sep 2005 19:26:27 GMT"/> - <signal name="focus_out_event" handler="on_roster_window_focus_out_event" last_modification_time="Tue, 08 Nov 2005 14:01:01 GMT"/> - <signal name="popup_menu" handler="on_roster_window_popup_menu" last_modification_time="Sat, 18 Nov 2006 21:12:06 GMT"/> - - <child> - <widget class="GtkVBox" id="roster_vbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkMenuBar" id="menubar"> - <property name="visible">True</property> - <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property> - <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property> - - <child> - <widget class="GtkMenuItem" id="actions_menu"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Actions</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_actions_menuitem_activate" last_modification_time="Sun, 19 Feb 2006 17:10:56 GMT"/> - - <child> - <widget class="GtkMenu" id="actions_menu_menu"> - - <child> - <widget class="GtkImageMenuItem" id="new_chat_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Start Chat</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1605"> - <property name="visible">True</property> - <property name="stock">gtk-jump-to</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="join_gc_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Group Chat</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1606"> - <property name="visible">True</property> - <property name="stock">gtk-connect</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separatormenuitem1"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="add_new_contact_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">Add _Contact</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1607"> - <property name="visible">True</property> - <property name="stock">gtk-add</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="service_disco_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Discover Services</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1608"> - <property name="visible">True</property> - <property name="stock">gtk-find</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="advanced_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Advanced</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separator1"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="quit_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Quit</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_quit_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 23:37:49 GMT"/> - <accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/> - - <child internal-child="image"> - <widget class="GtkImage" id="image1609"> - <property name="visible">True</property> - <property name="stock">gtk-quit</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="edit_menu"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Edit</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_edit_menuitem_activate" last_modification_time="Fri, 07 Apr 2006 22:46:56 GMT"/> - - <child> - <widget class="GtkMenu" id="edit_menu_menu"> - - <child> - <widget class="GtkImageMenuItem" id="accounts_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">A_ccounts</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_accounts_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 23:23:19 GMT"/> - <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/> - - <child internal-child="image"> - <widget class="GtkImage" id="image1610"> - <property name="visible">True</property> - <property name="stock">gtk-network</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="profile_avatar_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">Profile, A_vatar</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1611"> - <property name="visible">True</property> - <property name="stock">gtk-properties</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separator2"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="preferences_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Preferences</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_preferences_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 22:58:18 GMT"/> - <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/> - - <child internal-child="image"> - <widget class="GtkImage" id="image1612"> - <property name="visible">True</property> - <property name="stock">gtk-preferences</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="view_menu"> - <property name="visible">True</property> - <property name="label" translatable="yes">_View</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_view_menu_activate" last_modification_time="Fri, 29 Sep 2006 14:56:42 GMT"/> - - <child> - <widget class="GtkMenu" id="view_menu_menu"> - - <child> - <widget class="GtkCheckMenuItem" id="show_offline_contacts_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">Show _Offline Contacts</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="activate" handler="on_show_offline_contacts_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 23:29:52 GMT"/> - <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="show_transports_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">Show Trans_ports</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="activate" handler="on_show_transports_menuitem_activate" last_modification_time="Fri, 29 Sep 2006 15:35:28 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separator3"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="file_transfers_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">File _Transfers</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_file_transfers_menuitem_activate" last_modification_time="Wed, 03 Aug 2005 15:44:28 GMT"/> - <accelerator key="T" modifiers="GDK_CONTROL_MASK" signal="activate"/> - - <child internal-child="image"> - <widget class="GtkImage" id="image1613"> - <property name="visible">True</property> - <property name="stock">gtk-file</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="help_menu"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Help</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="help_menu_menu"> - - <child> - <widget class="GtkImageMenuItem" id="contents_menuitem"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Help online</property> - <property name="label" translatable="yes">_Contents</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_contents_menuitem_activate" last_modification_time="Thu, 06 Oct 2005 23:29:10 GMT"/> - - <child internal-child="image"> - <widget class="GtkImage" id="image1614"> - <property name="visible">True</property> - <property name="stock">gtk-help</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="faq_menuitem"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Frequently Asked Questions (online)</property> - <property name="label" translatable="yes">_FAQ</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_faq_menuitem_activate" last_modification_time="Thu, 06 Oct 2005 23:29:10 GMT"/> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="about_menuitem"> - <property name="visible">True</property> - <property name="label">gtk-about</property> - <property name="use_stock">True</property> - <signal name="activate" handler="on_about_menuitem_activate" last_modification_time="Tue, 01 Mar 2005 22:56:45 GMT"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTreeView" id="roster_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - <property name="rules_hint">False</property> - <property name="reorderable">True</property> - <property name="enable_search">True</property> - <property name="fixed_height_mode">False</property> - <property name="hover_selection">False</property> - <property name="hover_expand">False</property> - <signal name="button_press_event" handler="on_roster_treeview_button_press_event" last_modification_time="Mon, 28 Feb 2005 14:16:44 GMT"/> - <signal name="row_activated" handler="on_roster_treeview_row_activated" last_modification_time="Mon, 28 Feb 2005 14:18:06 GMT"/> - <signal name="row_expanded" handler="on_roster_treeview_row_expanded" last_modification_time="Mon, 28 Feb 2005 14:18:14 GMT"/> - <signal name="row_collapsed" handler="on_roster_treeview_row_collapsed" last_modification_time="Mon, 28 Feb 2005 14:18:33 GMT"/> - <signal name="key_press_event" handler="on_roster_treeview_key_press_event" last_modification_time="Sat, 26 Mar 2005 20:39:36 GMT"/> - <signal name="motion_notify_event" handler="on_roster_treeview_motion_notify_event" last_modification_time="Wed, 06 Jul 2005 14:38:58 GMT"/> - <signal name="leave_notify_event" handler="on_roster_treeview_leave_notify_event" last_modification_time="Wed, 06 Jul 2005 14:39:06 GMT"/> - <signal name="scroll_event" handler="on_roster_treeview_scroll_event" last_modification_time="Fri, 08 Jul 2005 22:09:03 GMT"/> - <signal name="style_set" handler="on_roster_treeview_style_set" last_modification_time="Tue, 08 Nov 2005 14:03:30 GMT"/> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkComboBox" id="status_combobox"> - <property name="visible">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <signal name="changed" handler="on_status_combobox_changed" last_modification_time="Sat, 05 Nov 2005 18:07:49 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - + <widget class="GtkWindow" id="roster_window"> + <property name="width_request">85</property> + <property name="height_request">200</property> + <property name="title" translatable="yes">Gajim</property> + <property name="role">roster</property> + <property name="default_width">200</property> + <property name="default_height">400</property> + <signal name="popup_menu" handler="on_roster_window_popup_menu"/> + <signal name="focus_out_event" handler="on_roster_window_focus_out_event"/> + <signal name="focus_in_event" handler="on_roster_window_focus_in_event"/> + <signal name="key_press_event" handler="on_roster_window_key_press_event"/> + <signal name="delete_event" handler="on_roster_window_delete_event"/> + <child> + <widget class="GtkVBox" id="roster_vbox"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuBar" id="menubar"> + <property name="visible">True</property> + <child> + <widget class="GtkMenuItem" id="actions_menu"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Actions</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_actions_menuitem_activate"/> + <child> + <widget class="GtkMenu" id="actions_menu_menu"> + <child> + <widget class="GtkImageMenuItem" id="new_chat_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Start Chat</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1605"> + <property name="visible">True</property> + <property name="stock">gtk-jump-to</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="join_gc_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Group Chat</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1606"> + <property name="visible">True</property> + <property name="stock">gtk-connect</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem1"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="add_new_contact_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">Add _Contact</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1607"> + <property name="visible">True</property> + <property name="stock">gtk-add</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="service_disco_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Discover Services</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1608"> + <property name="visible">True</property> + <property name="stock">gtk-find</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="advanced_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Advanced</property> + <property name="use_underline">True</property> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separator1"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="quit_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_quit_menuitem_activate"/> + <accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="activate"/> + <child internal-child="image"> + <widget class="GtkImage" id="image1609"> + <property name="visible">True</property> + <property name="stock">gtk-quit</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="edit_menu"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_edit_menuitem_activate"/> + <child> + <widget class="GtkMenu" id="edit_menu_menu"> + <child> + <widget class="GtkImageMenuItem" id="accounts_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">A_ccounts</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_accounts_menuitem_activate"/> + <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/> + <child internal-child="image"> + <widget class="GtkImage" id="image1610"> + <property name="visible">True</property> + <property name="stock">gtk-network</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="profile_avatar_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">Profile, A_vatar</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1611"> + <property name="visible">True</property> + <property name="stock">gtk-properties</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separator2"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="preferences_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Preferences</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_preferences_menuitem_activate"/> + <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/> + <child internal-child="image"> + <widget class="GtkImage" id="image1612"> + <property name="visible">True</property> + <property name="stock">gtk-preferences</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="view_menu"> + <property name="visible">True</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_view_menu_activate"/> + <child> + <widget class="GtkMenu" id="view_menu_menu"> + <child> + <widget class="GtkCheckMenuItem" id="show_offline_contacts_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">Show _Offline Contacts</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_show_offline_contacts_menuitem_activate"/> + <accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/> + </widget> + </child> + <child> + <widget class="GtkCheckMenuItem" id="show_transports_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">Show Trans_ports</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_show_transports_menuitem_activate"/> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separator3"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="file_transfers_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">File _Transfers</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_file_transfers_menuitem_activate"/> + <accelerator key="T" modifiers="GDK_CONTROL_MASK" signal="activate"/> + <child internal-child="image"> + <widget class="GtkImage" id="image1613"> + <property name="visible">True</property> + <property name="stock">gtk-missing-image</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="help_menu"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="help_menu_menu"> + <child> + <widget class="GtkImageMenuItem" id="contents_menuitem"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Help online</property> + <property name="label" translatable="yes">_Contents</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_contents_menuitem_activate"/> + <child internal-child="image"> + <widget class="GtkImage" id="image1614"> + <property name="visible">True</property> + <property name="stock">gtk-help</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="faq_menuitem"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Frequently Asked Questions (online)</property> + <property name="label" translatable="yes">_FAQ</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_faq_menuitem_activate"/> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="menuitem1"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="features_menuitem"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">Fea_tures</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_features_menuitem_activate"/> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="about_menuitem"> + <property name="visible">True</property> + <property name="label">gtk-about</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + <signal name="activate" handler="on_about_menuitem_activate"/> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <widget class="GtkScrolledWindow" id="scrolledwindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="border_width">2</property> + <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <child> + <widget class="GtkTreeView" id="roster_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + <property name="reorderable">True</property> + <signal name="leave_notify_event" handler="on_roster_treeview_leave_notify_event"/> + <signal name="button_press_event" handler="on_roster_treeview_button_press_event"/> + <signal name="motion_notify_event" handler="on_roster_treeview_motion_notify_event"/> + <signal name="row_collapsed" handler="on_roster_treeview_row_collapsed"/> + <signal name="row_expanded" handler="on_roster_treeview_row_expanded"/> + <signal name="key_press_event" handler="on_roster_treeview_key_press_event"/> + <signal name="row_activated" handler="on_roster_treeview_row_activated"/> + <signal name="scroll_event" handler="on_roster_treeview_scroll_event"/> + <signal name="style_set" handler="on_roster_treeview_style_set"/> + </widget> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkComboBox" id="status_combobox"> + <property name="visible">True</property> + <signal name="changed" handler="on_status_combobox_changed"/> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </widget> + </child> + </widget> </glade-interface> diff --git a/src/features_window.py b/src/features_window.py new file mode 100644 index 0000000000000000000000000000000000000000..171043c72bdf8f911d0db494a4d24fba6c9c0e6a --- /dev/null +++ b/src/features_window.py @@ -0,0 +1,200 @@ +## features_window.py +## +## Copyright (C) 2007 Yann Le Boulanger <asterix@lagaule.org> +## +## 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; version 2 only. +## +## 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. +## + +import os +import gtk +import gobject +import gtkgui_helpers + +import dialogs + +from common import gajim +from common import helpers + +class FeaturesWindow: + '''Class for features window''' + + def __init__(self): + self.xml = gtkgui_helpers.get_glade('features_window.glade') + self.window = self.xml.get_widget('features_window') + treeview = self.xml.get_widget('features_treeview') + + # {name: (available_function, unix_text, windows_text)} + self.features = { + _('PyOpenSSL'): (self.pyopenssl_available, + _('You need to install python-pyopenssl to have a more secure connection.'), + _('You need to install python-pyopenssl to have a more secure connection.')), + _('Bonjour / Zeroconf'): (self.zeroconf_available, + _('You need to install python-avahai to use Zeroconf network.'), + _('This feature is not available under Windows.')), + _('Gajim-remote'): (self.dbus_available, + _('You need to install python-dbus to control gajim from a script.'), + _('This feature is not available under Windows.')), + _('OpenGPG'): (self.gpg_available, + _('You need to install gpg and python-GnuPGIntergace to use OpenGPG.'), + _('This feature is not available under Windows.')), + _('Network Manager'): (self.network_manager_available, + _('You need to install network-manager and python-dbus to use Network Manager.'), + _('This feature is not available under Windows.')), + _('Session Management'): (self.session_management_available, + _('You need to install python-gnome2 to use Session Management.'), + _('This feature is not available under Windows.')), + _('Gnome-Keyring'): (self.gnome_keyring_available, + _('You need to install python-gnome2-desktop to use Gnome Keyring.'), + _('This feature is not available under Windows.')), + _('SRV'): (self.srv_available, + _('You need to install dnsutils to have nslookup to use SRV records.'), + _('You need to have nslookup to use SRV records.')), + _('Spell Checker'): (self.speller_available, + _('You need to install python-gnome2-extras or compile gtkspell module from Gajim sources to use spell checker.'), + _('This feature is not available under Windows.')), + _('Notification-daemon'): (self.notification_available, + _('You need to have dbus available and to install notification-daemon. Another solution is to install python-notify.'), + _('This feature is not available under Windows.')), + _('Trayicon'): (self.trayicon_available, + _('You need to install python-gnome2-extras or compile trayicon module from Gajim sources to use the trayicon.'), + _('You need PyGTK > 2.10 to use the trayicon.')), + _('Idle'): (self.idle_available, + _('You need to compile idle module from Gajim sources to use it.'), + _('You need to compile idle module from Gajim sources to use it.')), + } + + # name, supported + self.model = gtk.ListStore(str, bool) + treeview.set_model(self.model) + + col = gtk.TreeViewColumn(_('Feature')) + treeview.append_column(col) + cell = gtk.CellRendererText() + col.pack_start(cell, expand = True) + col.add_attribute(cell, 'text', 0) + + col = gtk.TreeViewColumn(_('Available')) + treeview.append_column(col) + cell = gtk.CellRendererToggle() + col.pack_start(cell) + col.set_attributes(cell, active = 1) + + # Fill model + for feature in self.features: + func = self.features[feature][0] + rep = func() + self.model.append([feature, rep]) + self.xml.signal_autoconnect(self) + self.window.show_all() + self.xml.get_widget('close_button').grab_focus() + + def on_close_button_clicked(self, widget): + self.window.destroy() + + def on_features_treeview_row_activated(self, widget, path, col): + available = self.model[path][1] + if available: + return + feature = self.model[path][0] + if os.name == 'nt': + text = self.features[feature][2] + else: + text = self.features[feature][1] + dialogs.InformationDialog(_('Feature not available'), text) + + def pyopenssl_available(self): + try: + import OpenSSL.SSL + import OpenSSL.crypto + except: + return False + return True + + def zeroconf_available(self): + if os.name == 'nt': + return False + try: + import avahi + except: + return False + return True + + def dbus_available(self): + if os.name == 'nt': + return False + from common import dbus_support + return dbus_support.supported + + def gpg_available(self): + if os.name == 'nt': + return False + from common import GnuPG + return GnuPG.USE_GPG + + def network_manager_available(self): + if os.name == 'nt': + return False + import network_manager_listener + return network_manager_listener.supported + + def session_management_available(self): + if os.name == 'nt': + return False + try: + import gnome.ui + except: + return False + return True + + def gnome_keyring_available(self): + if os.name == 'nt': + return False + try: + import gnomekeyring + except: + return False + return True + + def srv_available(self): + return helpers.is_in_path('nslookup') + + def speller_available(self): + if os.name == 'nt': + return False + try: + import gtkspell + except: + return False + return True + + def notification_available(self): + if os.name == 'nt': + return False + if self.dbus_available() and dbus_support.get_notifications_interface(): + return True + try: + import pynotify + except: + return False + return True + + def trayicon_available(self): + if os.name == 'nt' and gtk.pygtk_version >= (2, 10, 0) and \ + gtk.gtk_version >= (2, 10, 0): + return True + try: + import systray + except: + return False + return True + + def idle_available(self): + from common import sleepy + return sleepy.SUPPORTED diff --git a/src/roster_window.py b/src/roster_window.py index b15dea360dbc37a18f2029ebc28e7be78654a0a7..46e6fbe4a828acaaf54599dc7a4891d27423be2c 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -34,6 +34,7 @@ import tooltips import message_control import adhoc_commands import notify +import features_window from common import gajim from common import helpers @@ -3832,6 +3833,9 @@ class RosterWindow: helpers.launch_browser_mailer('url', 'http://trac.gajim.org/wiki/GajimFaq') + def on_features_menuitem_activate(self, widget): + features_window.FeaturesWindow() + def on_about_menuitem_activate(self, widget): dialogs.AboutDialog()