diff --git a/data/gui/chat_control.ui b/data/gui/chat_control.ui index 8ab302dad1d07cb9c341a46538d7d8e06d88c9a3..6a4fcd9b8bc7bc2db5467f732ccd3a6c3090c664 100644 --- a/data/gui/chat_control.ui +++ b/data/gui/chat_control.ui @@ -5,170 +5,114 @@ <object class="GtkVBox" id="chat_control_vbox"> <property name="can_focus">True</property> <property name="border_width">3</property> + <property name="orientation">vertical</property> <property name="spacing">1</property> <child> - <object class="GtkHBox" id="hbox3"> + <object class="GtkVBox" id="vbox2"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <object class="GtkVBox" id="vbox2"> + <object class="GtkAlignment" id="alignment"> <property name="visible">True</property> + <property name="left_padding">3</property> + <property name="right_padding">3</property> <child> - <object class="GtkAlignment" id="alignment"> + <object class="GtkEventBox" id="banner_eventbox"> <property name="visible">True</property> - <property name="left_padding">3</property> - <property name="right_padding">3</property> <child> - <object class="GtkEventBox" id="banner_eventbox"> + <object class="GtkHBox" id="hbox3004"> <property name="visible">True</property> <child> - <object class="GtkHBox" id="hbox3004"> + <object class="GtkImage" id="banner_status_image"> <property name="visible">True</property> + <property name="ypad">5</property> + <property name="stock">gtk-missing-image</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="banner_vbox"> + <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="border_width">5</property> + <property name="orientation">vertical</property> <child> - <object class="GtkImage" id="banner_status_image"> + <object class="GtkLabel" id="banner_name_label"> <property name="visible">True</property> - <property name="ypad">5</property> - <property name="stock">gtk-missing-image</property> + <property name="xalign">0</property> + <property name="label"><span weight="heavy" size="large">Contact name</span></property> + <property name="use_markup">True</property> </object> <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="padding">5</property> <property name="position">0</property> </packing> </child> <child> - <object class="GtkVBox" id="banner_vbox"> + <object class="GtkLabel" id="banner_label"> <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="border_width">5</property> - <child> - <object class="GtkLabel" id="banner_name_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label"><span weight="heavy" size="large">Contact name</span></property> - <property name="use_markup">True</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="banner_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">label</property> - <property name="use_markup">True</property> - <property name="selectable">True</property> - <signal name="populate_popup" handler="on_banner_label_populate_popup"/> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> + <property name="xalign">0</property> + <property name="label" translatable="yes">label</property> + <property name="use_markup">True</property> + <property name="selectable">True</property> + <signal name="populate_popup" handler="on_banner_label_populate_popup"/> </object> <packing> <property name="position">1</property> </packing> </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <property name="spacing">4</property> <child> - <object class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="spacing">4</property> - <child> - <object class="GtkImage" id="mood_image"> - <property name="no_show_all">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkImage" id="activity_image"> - <property name="no_show_all">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkImage" id="tune_image"> - <property name="no_show_all">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - <packing> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkEventBox" id="location_eventbox"> - <property name="visible">True</property> - <property name="visible_window">False</property> - <child> - <object class="GtkImage" id="location_image"> - <property name="no_show_all">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkImage" id="audio_banner_image"> - <property name="visible">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - <packing> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkImage" id="video_banner_image"> - <property name="visible">True</property> - <property name="stock">None</property> - <property name="icon-size">1</property> - </object> - <packing> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment3"> - <property name="width_request">11</property> - <property name="visible">True</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="position">6</property> - </packing> - </child> + <object class="GtkImage" id="mood_image"> + <property name="no_show_all">True</property> + <property name="stock">None</property> + <property name="icon-size">1</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkImage" id="activity_image"> + <property name="no_show_all">True</property> + <property name="stock">None</property> + <property name="icon-size">1</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkImage" id="tune_image"> + <property name="no_show_all">True</property> + <property name="stock">None</property> + <property name="icon-size">1</property> </object> <packing> - <property name="expand">False</property> - <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> - <object class="GtkEventBox" id="avatar_eventbox"> + <object class="GtkEventBox" id="location_eventbox"> <property name="visible">True</property> <property name="visible_window">False</property> <child> - <object class="GtkImage" id="avatar_image"> - <property name="visible">True</property> + <object class="GtkImage" id="location_image"> + <property name="no_show_all">True</property> <property name="stock">None</property> + <property name="icon-size">1</property> </object> </child> </object> @@ -178,104 +122,109 @@ <property name="position">3</property> </packing> </child> - </object> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="vbox106"> - <property name="visible">True</property> - <child> - <object class="GtkScrolledWindow" id="conversation_scrolledwindow"> - <property name="height_request">60</property> - <property name="can_focus">True</property> - <property name="border_width">3</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <property name="shadow_type">in</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox"> - <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> - <child> - <object class="GtkButton" id="authentication_button"> - <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="no_show_all">True</property> - <property name="relief">none</property> - <property name="focus_on_click">False</property> <child> - <object class="GtkImage" id="lock_image"> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="stock">gtk-dialog-authentication</property> + <object class="GtkImage" id="audio_banner_image"> + <property name="visible">True</property> + <property name="stock">None</property> + <property name="icon-size">1</property> + </object> + <packing> + <property name="position">4</property> + </packing> + </child> + <child> + <object class="GtkImage" id="video_banner_image"> + <property name="visible">True</property> + <property name="stock">None</property> <property name="icon-size">1</property> </object> + <packing> + <property name="position">5</property> + </packing> + </child> + <child> + <object class="GtkAlignment" id="alignment3"> + <property name="width_request">11</property> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="position">6</property> + </packing> </child> </object> <packing> <property name="expand">False</property> - <property name="position">0</property> + <property name="fill">False</property> + <property name="position">2</property> </packing> </child> <child> - <object class="GtkScrolledWindow" id="message_scrolledwindow"> + <object class="GtkEventBox" id="avatar_eventbox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="border_width">3</property> - <property name="hscrollbar_policy">never</property> - <property name="vscrollbar_policy">never</property> - <property name="shadow_type">in</property> + <property name="visible_window">False</property> <child> - <placeholder/> + <object class="GtkImage" id="avatar_image"> + <property name="visible">True</property> + <property name="stock">None</property> + </object> </child> </object> <packing> - <property name="position">1</property> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> </packing> </child> </object> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox106"> + <property name="visible">True</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkScrolledWindow" id="conversation_scrolledwindow"> + <property name="height_request">60</property> + <property name="can_focus">True</property> + <property name="border_width">3</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> + <property name="shadow_type">in</property> + <child> + <placeholder/> </child> </object> <packing> - <property name="position">1</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkHBox" id="actions_hbox"> + <object class="GtkHBox" id="hbox"> <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> <child> - <object class="GtkButton" id="emoticons_button"> - <property name="visible">True</property> + <object class="GtkButton" id="authentication_button"> <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="no_show_all">True</property> <property name="relief">none</property> <property name="focus_on_click">False</property> <child> - <object class="GtkImage" id="emoticons_button_image"> - <property name="visible">True</property> + <object class="GtkImage" id="lock_image"> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="stock">gtk-missing-image</property> + <property name="stock">gtk-dialog-authentication</property> <property name="icon-size">1</property> </object> </child> @@ -286,529 +235,412 @@ </packing> </child> <child> - <object class="GtkButton" id="formattings_button"> + <object class="GtkScrolledWindow" id="message_scrolledwindow"> <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="relief">none</property> - <property name="focus_on_click">False</property> + <property name="border_width">3</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">never</property> + <property name="shadow_type">in</property> <child> - <object class="GtkImage" id="image10"> - <property name="visible">True</property> - <property name="stock">gtk-bold</property> - <property name="icon-size">1</property> - </object> + <placeholder/> </child> </object> <packing> - <property name="expand">False</property> <property name="position">1</property> </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="actions_hbox"> + <property name="visible">True</property> + <child> + <object class="GtkButton" id="emoticons_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkVSeparator" id="vseparator1"> - <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> - </object> - <packing> - <property name="expand">False</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="add_to_roster_button"> - <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="no_show_all">True</property> - <property name="relief">none</property> - <child> - <object class="GtkImage" id="image9"> - <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="stock">gtk-add</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="send_file_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="relief">none</property> - <property name="focus_on_click">False</property> - <child> - <object class="GtkImage" id="image3"> - <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="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkToggleButton" id="audio_togglebutton"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="relief">none</property> - <child> - <object class="GtkImage" id="audio_image"> - <property name="visible">True</property> - <property name="stock">gtk-missing-image</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkToggleButton" id="video_togglebutton"> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="relief">none</property> - <child> - <object class="GtkImage" id="video_image"> - <property name="visible">True</property> - <property name="stock">gtk-missing-image</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">6</property> - </packing> - </child> - <child> - <object class="GtkButton" id="convert_to_gc_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="relief">none</property> - <property name="focus_on_click">False</property> - <child> - <object class="GtkImage" id="convert_to_gc_button_image"> - <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="stock">gtk-missing-image</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">7</property> - </packing> - </child> - <child> - <object class="GtkButton" id="contact_information_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="relief">none</property> - <property name="focus_on_click">False</property> - <child> - <object class="GtkImage" id="image2"> - <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="stock">gtk-info</property> - <property name="icon-size">2</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">8</property> - </packing> - </child> - <child> - <object class="GtkButton" id="history_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="relief">none</property> - <property name="focus_on_click">False</property> - <child> - <object class="GtkImage" id="image5"> - <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="stock">gtk-justify-fill</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">9</property> - </packing> - </child> - <child> - <object class="GtkVSeparator" id="vseparator3"> - <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> - </object> - <packing> - <property name="expand">False</property> - <property name="position">10</property> - </packing> - </child> - <child> - <object class="GtkButton" id="message_window_actions_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="relief">none</property> - <property name="focus_on_click">False</property> - <child> - <object class="GtkImage" id="image1"> - <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="stock">gtk-execute</property> - <property name="icon-size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">11</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="label_selector"> - <property name="visible">True</property> - </object> - <packing> - <property name="position">12</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment1"> + <object class="GtkImage" id="emoticons_button_image"> <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> - <child> - <placeholder/> - </child> + <property name="stock">gtk-missing-image</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="position">13</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="formattings_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="send_button"> + <object class="GtkImage" id="image10"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <child> - <object class="GtkAlignment" id="alignment102"> - <property name="visible">True</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - <child> - <object class="GtkHBox" id="hbox3010"> - <property name="visible">True</property> - <property name="spacing">2</property> - <child> - <object class="GtkImage" id="image1339"> - <property name="visible">True</property> - <property name="stock">gtk-jump-to</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label373"> - <property name="visible">True</property> - <property name="label" translatable="yes" comments="Make sure the character after "_" is not M/m (conflicts with Alt+M that is supposed to show the Emoticon Selector)">_Send</property> - <property name="use_underline">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - </child> + <property name="stock">gtk-bold</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="expand">False</property> - <property name="position">14</property> - </packing> </child> </object> <packing> <property name="expand">False</property> - <property name="position">2</property> + <property name="position">1</property> </packing> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="audio_vbox"> - <property name="no_show_all">True</property> - <property name="spacing">6</property> + </child> <child> - <object class="GtkLabel" id="label3"> + <object class="GtkVSeparator" id="vseparator1"> <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="orientation">vertical</property> </object> <packing> - <property name="position">0</property> + <property name="expand">False</property> + <property name="position">2</property> </packing> </child> <child> - <object class="GtkTable" id="table1"> - <property name="visible">True</property> - <property name="n_rows">4</property> - <property name="n_columns">3</property> - <property name="column_spacing">6</property> - <property name="row_spacing">6</property> + <object class="GtkButton" id="add_to_roster_button"> + <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="no_show_all">True</property> + <property name="relief">none</property> <child> - <object class="GtkButton" id="1_button"> - <property name="label" translatable="yes">1</property> + <object class="GtkImage" id="image9"> <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="stock">gtk-add</property> + <property name="icon-size">1</property> </object> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkButton" id="send_file_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="2_button"> - <property name="label" translatable="yes">2</property> + <object class="GtkImage" id="image3"> <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="icon-size">1</property> </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">4</property> + </packing> + </child> + <child> + <object class="GtkToggleButton" id="audio_togglebutton"> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> <child> - <object class="GtkButton" id="3_button"> - <property name="label" translatable="yes">3</property> + <object class="GtkImage" id="audio_image"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="stock">gtk-missing-image</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">5</property> + </packing> + </child> + <child> + <object class="GtkToggleButton" id="video_togglebutton"> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> <child> - <object class="GtkButton" id="4_button"> - <property name="label" translatable="yes">4</property> + <object class="GtkImage" id="video_image"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="stock">gtk-missing-image</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">6</property> + </packing> + </child> + <child> + <object class="GtkButton" id="convert_to_gc_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="5_button"> - <property name="label" translatable="yes">5</property> + <object class="GtkImage" id="convert_to_gc_button_image"> <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="stock">gtk-missing-image</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">7</property> + </packing> + </child> + <child> + <object class="GtkButton" id="contact_information_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="6_button"> - <property name="label" translatable="yes">6</property> + <object class="GtkImage" id="image2"> <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="stock">gtk-info</property> + <property name="icon-size">2</property> </object> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">8</property> + </packing> + </child> + <child> + <object class="GtkButton" id="history_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="7_button"> - <property name="label" translatable="yes">7</property> + <object class="GtkImage" id="image5"> <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="stock">gtk-justify-fill</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">9</property> + </packing> + </child> + <child> + <object class="GtkVSeparator" id="vseparator3"> + <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="orientation">vertical</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">10</property> + </packing> + </child> + <child> + <object class="GtkButton" id="message_window_actions_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="relief">none</property> + <property name="focus_on_click">False</property> <child> - <object class="GtkButton" id="8_button"> - <property name="label" translatable="yes">8</property> + <object class="GtkImage" id="image1"> <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="stock">gtk-execute</property> + <property name="icon-size">1</property> </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">11</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="audio_buttons_hbox"> + <property name="no_show_all">True</property> <child> - <object class="GtkButton" id="9_button"> - <property name="label" translatable="yes">9</property> + <object class="GtkVSeparator" id="vseparator2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="orientation">vertical</property> </object> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <property name="expand">False</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkButton" id="*_button"> - <property name="label" translatable="yes">*</property> + <object class="GtkVolumeButton" id="sound_hscale"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <property name="use_action_appearance">True</property> + <property name="relief">none</property> + <property name="focus_on_click">False</property> + <property name="orientation">vertical</property> + <property name="size">menu</property> + <property name="adjustment">adjustment1</property> + <property name="icons">audio-volume-muted +audio-volume-high +audio-volume-low +audio-volume-medium</property> </object> <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="expand">False</property> + <property name="position">1</property> </packing> </child> <child> - <object class="GtkButton" id="0_button"> - <property name="label" translatable="yes">0</property> + <object class="GtkVolumeButton" id="mic_hscale"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <property name="use_action_appearance">True</property> + <property name="relief">none</property> + <property name="focus_on_click">False</property> + <property name="yalign">0.4699999988079071</property> + <property name="orientation">vertical</property> + <property name="size">menu</property> + <property name="adjustment">adjustment2</property> + <property name="icons">audio-mic-volume-muted +audio-mic-volume-high +audio-mic-volume-medium +audio-mic-volume-low</property> </object> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="expand">False</property> + <property name="position">2</property> </packing> </child> <child> - <object class="GtkButton" id="#_button"> + <object class="GtkButton" id="dtmf_button"> <property name="label" translatable="yes">#</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <property name="relief">none</property> </object> <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="position">3</property> </packing> </child> </object> <packing> <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Sound volume:</property> - </object> - <packing> - <property name="expand">False</property> - <property name="position">2</property> + <property name="position">12</property> </packing> </child> <child> - <object class="GtkHScale" id="sound_hscale"> - <property name="width_request">110</property> + <object class="GtkComboBox" id="label_selector"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="adjustment">adjustment2</property> - <property name="digits">0</property> - <property name="value_pos">bottom</property> </object> <packing> - <property name="expand">False</property> - <property name="position">3</property> + <property name="position">13</property> </packing> </child> <child> - <object class="GtkLabel" id="label2"> + <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Mic volume:</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <child> + <placeholder/> + </child> </object> <packing> - <property name="expand">False</property> - <property name="position">4</property> + <property name="position">14</property> </packing> </child> <child> - <object class="GtkHScale" id="mic_hscale"> + <object class="GtkButton" id="send_button"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="adjustment">adjustment1</property> - <property name="digits">0</property> - <property name="value_pos">bottom</property> + <property name="receives_default">True</property> + <child> + <object class="GtkAlignment" id="alignment102"> + <property name="visible">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <object class="GtkHBox" id="hbox3010"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkImage" id="image1339"> + <property name="visible">True</property> + <property name="stock">gtk-jump-to</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label373"> + <property name="visible">True</property> + <property name="label" translatable="yes" comments="Make sure the character after "_" is not M/m (conflicts with Alt+M that is supposed to show the Emoticon Selector)">_Send</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> </object> <packing> <property name="expand">False</property> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label4"> - <property name="visible">True</property> - </object> - <packing> - <property name="position">6</property> + <property name="position">15</property> </packing> </child> </object> <packing> <property name="expand">False</property> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> </object> @@ -829,4 +661,212 @@ <property name="page_increment">10</property> <property name="page_size">10</property> </object> + <object class="GtkWindow" id="dtmf_window"> + <property name="resizable">False</property> + <property name="modal">True</property> + <property name="window_position">mouse</property> + <property name="type_hint">menu</property> + <property name="skip_taskbar_hint">True</property> + <property name="skip_pager_hint">True</property> + <property name="decorated">False</property> + <property name="deletable">False</property> + <child> + <object class="GtkTable" id="table2"> + <property name="visible">True</property> + <property name="n_rows">4</property> + <property name="n_columns">3</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkButton" id="1_button"> + <property name="label" translatable="yes">1</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="2_button"> + <property name="label" translatable="yes">2</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="3_button"> + <property name="label" translatable="yes">3</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="4_button"> + <property name="label" translatable="yes">4</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="5_button"> + <property name="label" translatable="yes">5</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="6_button"> + <property name="label" translatable="yes">6</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="7_button"> + <property name="label" translatable="yes">7</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="8_button"> + <property name="label" translatable="yes">8</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="9_button"> + <property name="label" translatable="yes">9</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="*_button"> + <property name="label" translatable="yes">*</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="0_button"> + <property name="label" translatable="yes">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkButton" id="#_button"> + <property name="label" translatable="yes">#</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + </object> + </child> + </object> </interface> diff --git a/src/chat_control.py b/src/chat_control.py index d0028745e83202f4b6f1be2611b7b5846db46746..90340e8659562fde9c664239e7ad298740a103bc 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -1449,6 +1449,15 @@ class ChatControl(ChatControlBase): id_ = widget.connect('released', self.on_num_button_released) self.handlers[id_] = widget + self.dtmf_window = self.xml.get_object('dtmf_window') + id_ = self.dtmf_window.connect('focus-out-event', + self.on_dtmf_window_focus_out_event) + self.handlers[id_] = self.dtmf_window + + widget = self.xml.get_object('dtmf_button') + id_ = widget.connect('clicked', self.on_dtmf_button_clicked) + self.handlers[id_] = widget + widget = self.xml.get_object('mic_hscale') id_ = widget.connect('value_changed', self.on_mic_hscale_value_changed) self.handlers[id_] = widget @@ -1595,7 +1604,7 @@ class ChatControl(ChatControlBase): def update_audio(self): self._update_jingle('audio') - vbox = self.xml.get_object('audio_vbox') + hbox = self.xml.get_object('audio_buttons_hbox') if self.audio_state == self.JINGLE_STATE_CONNECTED: # Set volume from config input_vol = gajim.config.get('audio_input_volume') @@ -1605,11 +1614,11 @@ class ChatControl(ChatControlBase): self.xml.get_object('mic_hscale').set_value(input_vol) self.xml.get_object('sound_hscale').set_value(output_vol) # Show vbox - vbox.set_no_show_all(False) - vbox.show_all() + hbox.set_no_show_all(False) + hbox.show_all() elif not self.audio_sid: - vbox.set_no_show_all(True) - vbox.hide() + hbox.set_no_show_all(True) + hbox.hide() def update_video(self): self._update_jingle('video') @@ -1683,19 +1692,21 @@ class ChatControl(ChatControlBase): def on_num_button_released(self, released): self._get_audio_content()._stop_dtmf() - def on_mic_hscale_value_changed(self, widget): - value = widget.get_value() + def on_dtmf_button_clicked(self, widget): + self.dtmf_window.show_all() + + def on_dtmf_window_focus_out_event(self, widget, event): + self.dtmf_window.hide() + + def on_mic_hscale_value_changed(self, widget, value): self._get_audio_content().set_mic_volume(value / 100) # Save volume to config - # FIXME: Putting it here is maybe not the right thing to do? gajim.config.set('audio_input_volume', value) - def on_sound_hscale_value_changed(self, widget): - value = widget.get_value() + def on_sound_hscale_value_changed(self, widget, value): self._get_audio_content().set_out_volume(value / 100) # Save volume to config - # FIXME: Putting it here is maybe not the right thing to do? gajim.config.set('audio_output_volume', value) def on_avatar_eventbox_enter_notify_event(self, widget, event):