[gok] Remove deprecated GTK+ symbols - Fixes bgo#572686
- From: Gerd Kohlberger <gerdk src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gok] Remove deprecated GTK+ symbols - Fixes bgo#572686
- Date: Sat, 26 Sep 2009 14:40:50 +0000 (UTC)
commit 214a1a8fd50292a435b57e2be9387d78e7d1df84
Author: Gerd Kohlberger <gerdk src gnome org>
Date: Sat Sep 26 16:38:33 2009 +0200
Remove deprecated GTK+ symbols - Fixes bgo#572686
Replace all GtkCombo widgets with GtkComboBox.
automatic-scanning.xml.in | 2 +-
direct-selection.xml.in | 2 +-
directed.xml.in | 2 +-
dwell-selection.xml.in | 2 +-
gok.glade2 | 964 +++++------------------------------
gok/callbacks.c | 51 +--
gok/callbacks.h | 92 ++--
gok/gok-page-accessmethod.c | 107 ++---
gok/gok-page-accessmethod.h | 3 +-
gok/gok-page-actions.c | 139 +++---
gok/gok-page-actions.h | 5 +-
gok/gok-page-feedbacks.c | 418 ++++++---------
gok/gok-page-feedbacks.h | 24 +-
gok/gok-settings-dialog.c | 162 ++++++-
gok/gok-settings-dialog.h | 11 +-
inverse-scanning.xml.in | 2 +-
singlekey-automatic-scanning.xml.in | 2 +-
singlekey-inverse-scanning.xml.in | 2 +-
18 files changed, 652 insertions(+), 1338 deletions(-)
---
diff --git a/automatic-scanning.xml.in b/automatic-scanning.xml.in
index 37c8173..2654e61 100644
--- a/automatic-scanning.xml.in
+++ b/automatic-scanning.xml.in
@@ -85,7 +85,7 @@
<!-- Rates for this access method. -->
<GOK:rate name="movehighlighter" stringvalue="switch1" />
<GOK:rate name="select" stringvalue="switch3" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
diff --git a/direct-selection.xml.in b/direct-selection.xml.in
index 6d3f1ff..331c576 100644
--- a/direct-selection.xml.in
+++ b/direct-selection.xml.in
@@ -52,7 +52,7 @@
<GOK:rate name="outputselected" stringvalue="mousebutton1" />
<GOK:rate name="keyenter" stringvalue="mousepointer" />
<GOK:rate name="keyleave" stringvalue="mousepointer" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
diff --git a/directed.xml.in b/directed.xml.in
index 5f765c6..01dfe87 100644
--- a/directed.xml.in
+++ b/directed.xml.in
@@ -66,7 +66,7 @@
<GOK:rate name="moveup" stringvalue="switch3" />
<GOK:rate name="movedown" stringvalue="switch4" />
<GOK:rate name="select" stringvalue="switch5" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="scanspeed" value="100" />
<GOK:rate name="wrap" value="1" />
diff --git a/dwell-selection.xml.in b/dwell-selection.xml.in
index fb67a52..eca2401 100644
--- a/dwell-selection.xml.in
+++ b/dwell-selection.xml.in
@@ -52,7 +52,7 @@
<GOK:rate name="outputselected" stringvalue="dwell" />
<GOK:rate name="keyenter" stringvalue="mousepointer" />
<GOK:rate name="keyleave" stringvalue="mousepointer" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
diff --git a/gok.glade2 b/gok.glade2
index 6edd21f..919484d 100644
--- a/gok.glade2
+++ b/gok.glade2
@@ -1053,14 +1053,10 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">entryActionName</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
- <accessibility>
- <atkrelation target="comboActionNames" type="label-for"/>
- </accessibility>
</widget>
<packing>
<property name="padding">0</property>
@@ -1070,39 +1066,11 @@
</child>
<child>
- <widget class="GtkCombo" id="comboActionNames">
+ <widget class="GtkComboBox" id="comboActionNames">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">False</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Action Names List</atkproperty>
- <atkrelation target="labelActionName" type="labelled-by"/>
- </accessibility>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entryActionName">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- <signal name="changed" handler="on_entryActionName_changed" last_modification_time="Sat, 20 Mar 2004 03:55:50 GMT"/>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="list6">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="on_comboActionNames_changed" last_modification_time="Wed, 05 Aug 2009 17:23:25 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -1129,73 +1097,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonNewAction_clicked" last_modification_time="Mon, 12 May 2003 22:52:11 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox83">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-add</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label101">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Add</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
@@ -1204,73 +1110,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label">gtk-delete</property>
+ <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonDeleteAction_clicked" last_modification_time="Mon, 12 May 2003 22:52:21 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox84">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image2">
- <property name="visible">True</property>
- <property name="stock">gtk-remove</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label102">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Delete</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
@@ -1279,73 +1123,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Rename</property>
+ <property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonChangeName_clicked" last_modification_time="Mon, 12 May 2003 22:35:21 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox85">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image3">
- <property name="visible">True</property>
- <property name="stock">gtk-refresh</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label103">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Rename</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
</widget>
@@ -1424,8 +1206,8 @@
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
- <atkrelation target="radiobuttonTypeValuator" type="label-for"/>
<atkrelation target="radiobuttonTypeSwitch" type="label-for"/>
+ <atkrelation target="radiobuttonTypeValuator" type="label-for"/>
</accessibility>
</widget>
<packing>
@@ -2496,7 +2278,7 @@
<widget class="GtkHBox" id="hbox76">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">8</property>
<child>
<widget class="GtkRadioButton" id="xinput_device_button">
@@ -2520,38 +2302,11 @@
</child>
<child>
- <widget class="GtkCombo" id="comboInputDevice">
+ <widget class="GtkComboBox" id="comboInputDevice">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
- <accessibility>
- <atkrelation target="xinput_device_button" type="labelled-by"/>
- </accessibility>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="inputDeviceEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- <signal name="changed" handler="on_entry_input_device_changed" last_modification_time="Tue, 10 Dec 2002 13:42:37 GMT"/>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="list5">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="on_comboInputDevice_changed" last_modification_time="Wed, 05 Aug 2009 17:22:01 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -2689,14 +2444,10 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">entryFeedback</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
- <accessibility>
- <atkrelation target="comboFeedback" type="label-for"/>
- </accessibility>
</widget>
<packing>
<property name="padding">0</property>
@@ -2706,38 +2457,11 @@
</child>
<child>
- <widget class="GtkCombo" id="comboFeedback">
+ <widget class="GtkComboBox" id="comboFeedback">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
- <accessibility>
- <atkrelation target="feedback_name_label" type="labelled-by"/>
- </accessibility>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entryFeedback">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- <signal name="changed" handler="on_entryFeedback_changed" last_modification_time="Wed, 16 Oct 2002 14:24:29 GMT"/>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="list7">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="on_comboFeedback_changed" last_modification_time="Wed, 05 Aug 2009 17:24:07 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -2764,73 +2488,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label">gtk-add</property>
+ <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonAddFeedback_clicked" last_modification_time="Mon, 17 Feb 2003 23:04:28 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox86">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image4">
- <property name="visible">True</property>
- <property name="stock">gtk-add</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label104">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Add</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
@@ -2839,73 +2501,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label">gtk-delete</property>
+ <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonDeleteFeedback_clicked" last_modification_time="Mon, 17 Feb 2003 23:04:39 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox87">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image5">
- <property name="visible">True</property>
- <property name="stock">gtk-remove</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label105">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Delete</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
@@ -2914,73 +2514,11 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Rename</property>
+ <property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_buttonChangeFeedbackName_clicked" last_modification_time="Mon, 17 Feb 2003 23:04:50 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox88">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image6">
- <property name="visible">True</property>
- <property name="stock">gtk-refresh</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label106">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Rename</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
</child>
</widget>
@@ -3011,8 +2549,8 @@
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<accessibility>
- <atkrelation target="label100" type="labelled-by"/>
<atkrelation target="comboFeedback" type="label-for"/>
+ <atkrelation target="label100" type="labelled-by"/>
</accessibility>
</widget>
<packing>
@@ -3036,7 +2574,7 @@
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
- <widget class="GtkVBox" id="vbox38">
+ <widget class="GtkVBox" id="boxKeyFlashing">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
@@ -3053,7 +2591,7 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
- <signal name="clicked" handler="on_checkKeyFlashing_clicked" last_modification_time="Wed, 02 Oct 2002 17:59:41 GMT"/>
+ <signal name="toggled" handler="on_checkKeyFlashing_toggled" last_modification_time="Tue, 15 Sep 2009 21:15:07 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -3063,19 +2601,19 @@
</child>
<child>
- <widget class="GtkAlignment" id="alignment8">
+ <widget class="GtkAlignment" id="alignment32">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
- <property name="xscale">0.829999983311</property>
+ <property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
+ <property name="left_padding">24</property>
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox20">
+ <widget class="GtkHBox" id="boxKeyFlashingDetails">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
@@ -3117,6 +2655,7 @@
<property name="snap_to_ticks">False</property>
<property name="wrap">False</property>
<property name="adjustment">4 1 15 1 3 0</property>
+ <signal name="changed" handler="on_spinKeyFlashing_changed" last_modification_time="Tue, 15 Sep 2009 21:19:36 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -3175,7 +2714,7 @@
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
- <widget class="GtkVBox" id="vbox8">
+ <widget class="GtkVBox" id="boxSound">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
@@ -3192,6 +2731,7 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkSoundOn_toggled" last_modification_time="Tue, 15 Sep 2009 21:18:27 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -3205,18 +2745,18 @@
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
- <property name="xscale">0.660000026226</property>
+ <property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
+ <property name="left_padding">24</property>
<property name="right_padding">0</property>
<child>
- <widget class="GtkHBox" id="hbox21">
+ <widget class="GtkHBox" id="boxSoundFile">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">8</property>
<child>
<widget class="GtkLabel" id="label30">
@@ -3231,14 +2771,10 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">entrySoundName</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
- <accessibility>
- <atkrelation target="comboSoundName" type="label-for"/>
- </accessibility>
</widget>
<packing>
<property name="padding">0</property>
@@ -3248,38 +2784,11 @@
</child>
<child>
- <widget class="GtkCombo" id="comboSoundName">
+ <widget class="GtkComboBox" id="comboSoundName">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
- <accessibility>
- <atkrelation target="label30" type="labelled-by"/>
- </accessibility>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entrySoundName">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- <signal name="changed" handler="on_entrySoundName_changed" last_modification_time="Wed, 02 Oct 2002 18:07:52 GMT"/>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list3">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="on_comboSoundName_changed" last_modification_time="Sat, 08 Aug 2009 16:23:14 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -3355,7 +2864,7 @@
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
- <widget class="GtkVBox" id="vbox42">
+ <widget class="GtkVBox" id="boxSpeech">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
@@ -3474,7 +2983,6 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
- <property name="mnemonic_widget">entryAccessMethodName</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
@@ -3488,36 +2996,11 @@
</child>
<child>
- <widget class="GtkCombo" id="comboAccessMethods">
+ <widget class="GtkComboBox" id="comboAccessMethods">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entryAccessMethodName">
- <property name="visible">True</property>
- <property name="tooltip" translatable="yes">access method name</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- <signal name="changed" handler="on_entryName_changed" last_modification_time="Mon, 07 Oct 2002 18:07:07 GMT"/>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list4">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="changed" handler="on_comboAccessMethods_changed" last_modification_time="Wed, 05 Aug 2009 17:20:56 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -3743,10 +3226,6 @@
</child>
<child>
- <placeholder/>
- </child>
-
- <child>
<widget class="GtkHSeparator" id="hseparator8">
<property name="visible">True</property>
</widget>
@@ -3778,60 +3257,43 @@
</child>
<child>
- <widget class="GtkTable" id="table3">
+ <widget class="GtkHBox" id="hbox101">
<property name="visible">True</property>
- <property name="n_rows">1</property>
- <property name="n_columns">1</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">0</property>
- <property name="column_spacing">0</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkHBox" id="hbox101">
+ <widget class="GtkEntry" id="DictionaryPathEntry">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkEntry" id="DictionaryPathEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkButton" id="BrowseDictionaryFileButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Browse</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkButton" id="BrowseDictionaryFileButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Browse...</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
@@ -4751,34 +4213,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo1">
+ <widget class="GtkComboBoxEntry" id="comboModifier">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list5">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -4890,34 +4329,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo2">
+ <widget class="GtkComboBoxEntry" id="comboStyle">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list6">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -5258,33 +4674,48 @@
<property name="spacing">6</property>
<child>
- <widget class="GtkCombo" id="combo3">
+ <widget class="GtkVBox" id="vbox47">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry3">
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkComboBoxEntry" id="comboType">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
+ <property name="add_tearoffs">False</property>
<property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
+ <property name="focus_on_click">True</property>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
</child>
- <child internal-child="list">
- <widget class="GtkList" id="combo-list7">
+ <child>
+ <widget class="GtkLabel" id="spacer2">
<property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
+ <property name="label"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
</child>
</widget>
<packing>
@@ -5346,34 +4777,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo4">
+ <widget class="GtkComboBoxEntry" id="comboModifierName">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list8">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -5532,34 +4940,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo5">
+ <widget class="GtkComboBoxEntry" id="comboBranch">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list9">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -6094,34 +5479,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo6">
+ <widget class="GtkComboBoxEntry" id="comboKeysym">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="combo-entry6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="combo-list10">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -6266,34 +5628,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo7">
+ <widget class="GtkComboBoxEntry" id="comboKeycode">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entry3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="list1">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -6491,34 +5830,11 @@
</child>
<child>
- <widget class="GtkCombo" id="combo8">
+ <widget class="GtkComboBoxEntry" id="comboGOK">
<property name="visible">True</property>
- <property name="value_in_list">False</property>
- <property name="allow_empty">True</property>
- <property name="case_sensitive">False</property>
- <property name="enable_arrow_keys">True</property>
- <property name="enable_arrows_always">False</property>
-
- <child internal-child="entry">
- <widget class="GtkEntry" id="entry4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">False</property>
- </widget>
- </child>
-
- <child internal-child="list">
- <widget class="GtkList" id="list2">
- <property name="visible">True</property>
- <property name="selection_mode">GTK_SELECTION_BROWSE</property>
- </widget>
- </child>
+ <property name="add_tearoffs">False</property>
+ <property name="has_frame">True</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/gok/callbacks.c b/gok/callbacks.c
index 34a1fe3..407db60 100644
--- a/gok/callbacks.c
+++ b/gok/callbacks.c
@@ -2,6 +2,7 @@
*
* Copyright 2002-2009 Sun Microsystems, Inc.,
* Copyright 2002-2009 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -214,15 +215,12 @@ on_window1_configure_event (GtkWidget *widget,
}
-
void
-on_entryName_changed (GtkEditable *editable,
- gpointer user_data)
+on_comboAccessMethods_changed (GtkComboBox *combo, gpointer data)
{
- gok_page_accessmethod_method_changed ((GtkEditable*)editable);
+ gok_page_accessmethod_method_changed (combo);
}
-
gboolean
on_dialogSettings_delete_event (GtkWidget *widget,
GdkEvent *event,
@@ -316,7 +314,6 @@ on_radiobuttonTypeSwitch_toggled (GtkToggleButton *togglebutton,
gok_page_actions_toggle_type_switch (gtk_toggle_button_get_active (togglebutton));
}
-
void
on_radiobuttonTypeValuator_toggled (GtkToggleButton *togglebutton,
gpointer user_data)
@@ -324,19 +321,16 @@ on_radiobuttonTypeValuator_toggled (GtkToggleButton *togglebutton,
gok_page_actions_toggle_type_valuator (gtk_toggle_button_get_active (togglebutton));
}
-
void
-on_entryActionName_changed (GtkEditable *editable,
- gpointer user_data)
+on_comboActionNames_changed (GtkComboBox *combo, gpointer data)
{
- gok_page_actions_action_changed ((GtkEditable*)editable);
+ gok_page_actions_action_changed (combo);
}
void
-on_entry_input_device_changed (GtkEditable *editable,
- gpointer user_data)
+on_comboInputDevice_changed (GtkComboBox *combo, gpointer data)
{
- gok_page_actions_input_device_changed ((GtkEditable*)editable);
+ gok_page_actions_input_device_changed (combo);
}
void
@@ -727,7 +721,6 @@ on_buttonChangeFeedbackName_clicked (GtkButton *button,
gok_page_feedbacks_button_clicked_change_name();
}
-
void
on_buttonFeedbackSoundFile_clicked (GtkButton *button,
gpointer user_data)
@@ -736,45 +729,37 @@ on_buttonFeedbackSoundFile_clicked (GtkButton *button,
}
void
-on_entryFeedback_changed (GtkEditable *editable,
- gpointer user_data)
+on_comboFeedback_changed (GtkComboBox *combo, gpointer data)
{
- gok_page_feedbacks_feedback_changed (editable);
+ gok_page_feedbacks_feedback_changed (combo);
}
-
void
-on_checkKeyFlashing_clicked (GtkButton *button,
- gpointer user_data)
+on_checkKeyFlashing_toggled (GtkToggleButton *button, gpointer data)
{
- gok_page_feedbacks_check_keyflashing_clicked();
+ gok_page_feedbacks_check_keyflashing_toggled (button);
}
-
void
-on_spinKeyFlashing_changed (GtkEditable *editable,
- gpointer user_data)
+on_spinKeyFlashing_changed (GtkEditable *editable, gpointer data)
{
- gok_page_feedbacks_spin_keyflashing_changed();
+ gok_page_feedbacks_spin_keyflashing_changed ();
}
-
void
-on_checkSoundOn_clicked (GtkButton *button,
- gpointer user_data)
+on_checkSoundOn_toggled (GtkToggleButton *button, gpointer data)
{
- gok_page_feedbacks_check_sound_clicked();
+ gok_page_feedbacks_check_sound_toggled (button);
}
void
-on_entrySoundName_changed (GtkEditable *editable,
- gpointer user_data)
+on_comboSoundName_changed (GtkComboBox *combo, gpointer data)
{
- gok_page_feedbacks_entry_soundname_changed();
+ gok_page_feedbacks_soundname_changed (combo);
}
void
-on_SpeakLabelCheckButton_toggled (GtkToggleButton *button)
+on_SpeakLabelCheckButton_toggled (GtkToggleButton *button, gpointer data)
{
gok_page_feedbacks_check_speech_toggled (button);
}
diff --git a/gok/callbacks.h b/gok/callbacks.h
index ed02ee0..ad3d1cf 100644
--- a/gok/callbacks.h
+++ b/gok/callbacks.h
@@ -1,4 +1,25 @@
-
+/*
+ * callbacks.h
+ *
+ * Copyright 2002-2009 Sun Microsystems, Inc.,
+ * Copyright 2002-2009 University Of Toronto
+ * Copyright 2009 Gerd Kohlberger <gerdko gmail com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
void
on_window1_realize (GtkWidget *widget,
@@ -85,11 +106,8 @@ on_window1_leave_notify_event (GtkWidget *widget,
gpointer user_data);
void
-on_entryName_changed (GtkEditable *editable,
- gpointer user_data);
-void
-on_entry_input_device_changed (GtkEditable *editable,
- gpointer user_data);
+on_comboInputDevice_changed (GtkComboBox *combo,
+ gpointer data);
gboolean
on_dialogSettings_delete_event (GtkWidget *widget,
@@ -151,8 +169,8 @@ on_radiobuttonTypeMousePointer_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
void
-on_entryActionName_changed (GtkEditable *editable,
- gpointer user_data);
+on_comboActionNames_changed (GtkComboBox *combo,
+ gpointer data);
void
on_buttonNewAction_clicked (GtkButton *button,
@@ -162,7 +180,6 @@ void
on_checkWordCompletion_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
-
void
on_buttonNewAction_clicked (GtkButton *button,
gpointer user_data);
@@ -183,31 +200,6 @@ void
on_buttonAccessMethodWizard_clicked (GtkButton *button,
gpointer user_data);
-gboolean
-on_comboActionNames_focus_out_event (GtkWidget *widget,
- GdkEventFocus *event,
- gpointer user_data);
-
-gboolean
-on_entryActionName_focus_out_event (GtkWidget *widget,
- GdkEventFocus *event,
- gpointer user_data);
-
-gboolean
-on_spinSwitchDelay_focus_in_event (GtkWidget *widget,
- GdkEventFocus *event,
- gpointer user_data);
-
-gboolean
-on_comboActionNames_focus_out_event (GtkWidget *widget,
- GdkEventFocus *event,
- gpointer user_data);
-
-gboolean
-on_entryActionName_leave_notify_event (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data);
-
void
on_buttonChangeName_clicked (GtkButton *button,
gpointer user_data);
@@ -421,28 +413,24 @@ on_buttonFeedbackSoundFile_clicked (GtkButton *button,
gpointer user_data);
void
-on_entry63_changed (GtkEditable *editable,
- gpointer user_data);
+on_comboFeedback_changed (GtkComboBox *combo,
+ gpointer data);
void
-on_entryFeedback_changed (GtkEditable *editable,
- gpointer user_data);
-
-void
-on_checkKeyFlashing_clicked (GtkButton *button,
- gpointer user_data);
+on_checkKeyFlashing_toggled (GtkToggleButton *button,
+ gpointer data);
void
on_spinKeyFlashing_changed (GtkEditable *editable,
gpointer user_data);
void
-on_checkSoundOn_clicked (GtkButton *button,
- gpointer user_data);
+on_checkSoundOn_toggled (GtkToggleButton *button,
+ gpointer data);
void
-on_entrySoundName_changed (GtkEditable *editable,
- gpointer user_data);
+on_comboSoundName_changed (GtkComboBox *combo,
+ gpointer data);
void
on_notebook2_switch_page (GtkNotebook *notebook,
@@ -473,10 +461,6 @@ on_spinSpacing_changed (GtkEditable *editable,
gpointer user_data);
void
-on_entryActionName_changed (GtkEditable *editable,
- gpointer user_data);
-
-void
on_buttonNewAction_clicked (GtkButton *button,
gpointer user_data);
@@ -593,10 +577,6 @@ on_checkKeyFlashing_clicked (GtkButton *button,
gpointer user_data);
void
-on_entrySoundName_changed (GtkEditable *editable,
- gpointer user_data);
-
-void
on_buttonFeedbackSoundFile_clicked (GtkButton *button,
gpointer user_data);
@@ -649,8 +629,8 @@ on_checkKeyAverage_toggled (GtkToggleButton *togglebutton,
gpointer user_data);
void
-on_entryName_changed (GtkEditable *editable,
- gpointer user_data);
+on_comboAccessMethods_changed (GtkComboBox *combo,
+ gpointer data);
void
on_new1_activate (GtkMenuItem *menuitem,
diff --git a/gok/gok-page-accessmethod.c b/gok/gok-page-accessmethod.c
index 2f2d125..c164752 100644
--- a/gok/gok-page-accessmethod.c
+++ b/gok/gok-page-accessmethod.c
@@ -2,6 +2,7 @@
*
* Copyright 2002-2009 Sun Microsystems, Inc.,
* Copyright 2002-2009 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -68,10 +69,8 @@ static GokFilledCombo* m_pGokFilledComboFirst;
gboolean gok_page_accessmethod_initialize (GladeXML* xml)
{
GokAccessMethod* pAccessMethod;
- GtkWidget* pComboBox;
- GtkWidget* pEntryAccessMethodName;
- GList* items = NULL;
-
+ GtkComboBox *combo;
+
g_assert (xml != NULL);
/* initialize this data */
@@ -87,30 +86,23 @@ gboolean gok_page_accessmethod_initialize (GladeXML* xml)
pAccessMethod = gok_scanner_get_first_access_method();
g_assert (pAccessMethod != NULL);
- pComboBox = glade_xml_get_widget (xml, "comboAccessMethods");
- g_assert (pComboBox != NULL);
-
+ combo = GTK_COMBO_BOX (glade_xml_get_widget (xml, "comboAccessMethods"));
+ g_assert (combo != NULL);
+
+ gok_settingsdialog_combobox_init (combo, TRUE);
while (pAccessMethod != NULL)
{
- items = g_list_append (items, pAccessMethod->DisplayName);
+ gtk_combo_box_prepend_text (combo, pAccessMethod->DisplayName);
pAccessMethod = pAccessMethod->pAccessMethodNext;
}
- /* sort the names */
- items = g_list_sort (items, gok_settingsdialog_sort);
-
m_bUsChangingName = TRUE;
- gtk_combo_set_popdown_strings (GTK_COMBO (pComboBox), items);
- g_list_free (items);
-
- /* display the current access method */
- pEntryAccessMethodName = glade_xml_get_widget (xml, "entryAccessMethodName");
- g_assert (pEntryAccessMethodName != NULL);
- gtk_entry_set_text (GTK_ENTRY (pEntryAccessMethodName), gok_page_accessmethod_get_displayname (m_NameAccessMethod));
+ gok_settingsdialog_combobox_set_active (combo,
+ gok_page_accessmethod_get_displayname (m_NameAccessMethod));
m_bUsChangingName = FALSE;
/* update the accessmethod controls */
- gok_page_accessmethod_method_changed (GTK_EDITABLE (pEntryAccessMethodName));
+ gok_page_accessmethod_method_changed (combo);
return TRUE;
}
@@ -255,7 +247,7 @@ gboolean gok_page_accessmethod_apply_controls (GokControl* pControl, gchar* Name
{
const gchar* pText;
const gchar* pType;
- GtkWidget* pEntry;
+ gchar *entry;
gint valueNew;
gboolean bTrueFalse;
GSList* pRadioList;
@@ -274,20 +266,20 @@ gboolean gok_page_accessmethod_apply_controls (GokControl* pControl, gchar* Name
switch (pControl->Type)
{
case CONTROL_TYPE_COMBOBOX:
- pEntry = GTK_COMBO(pControl->pWidget)->entry;
- pText = gtk_entry_get_text (GTK_ENTRY(pEntry));
+ entry = gtk_combo_box_get_active_text (GTK_COMBO_BOX (pControl->pWidget));
/* convert the display name to the static (gconf) name */
pType = g_object_get_data (G_OBJECT(pControl->pWidget), "type");
if (pType != NULL)
{
+ pText = NULL;
if (strcmp (pType, "actions") == 0)
{
- pText = gok_action_get_name ((gchar*)pText);
+ pText = gok_action_get_name (entry);
}
else if (strcmp (pType, "feedbacks") == 0)
{
- pText = gok_feedback_get_name ((gchar*)pText);
+ pText = gok_feedback_get_name (entry);
}
else if (strcmp (pType, "sounds") == 0)
{
@@ -307,6 +299,7 @@ gboolean gok_page_accessmethod_apply_controls (GokControl* pControl, gchar* Name
codeReturned = TRUE;
}
}
+ g_free (entry);
break;
case CONTROL_TYPE_CHECKBUTTON:
@@ -422,14 +415,14 @@ void gok_page_accessmethod_backup ()
* The user has selected a new access method so display all the controls
* associated with that access method.
**/
-void gok_page_accessmethod_method_changed (GtkEditable* pEditControl)
+void gok_page_accessmethod_method_changed (GtkComboBox *combo)
{
gchar* pStringMethodName;
gchar* pAccessMethodName;
/* first, get the name of the access method */
- pStringMethodName = gtk_editable_get_chars (pEditControl, 0, -1);
- if (strlen (pStringMethodName) != 0)
+ pStringMethodName = gtk_combo_box_get_active_text (combo);
+ if (pStringMethodName && strlen (pStringMethodName) != 0)
{
/* did the user change the name or did we? */
if (m_bUsChangingName == FALSE)
@@ -487,9 +480,9 @@ void gok_page_accessmethod_update_controls (gchar* NameAccessMethod, GokControl*
if (pControl->pWidget != NULL)
{
- pEntry = GTK_COMBO(pControl->pWidget)->entry;
- g_assert (pEntry != NULL);
- gtk_entry_set_text (GTK_ENTRY (pEntry), settingString);
+ gok_settingsdialog_combobox_set_active (
+ GTK_COMBO_BOX (pControl->pWidget),
+ settingString);
}
}
}
@@ -638,7 +631,8 @@ void gok_page_accessmethod_draw_controls (gchar* NameAccessMethod, GokControl* p
case CONTROL_TYPE_COMBOBOX:
pControlName = (pControl->Name != NULL) ? pControl->Name : "combobox";
- pWidget = gtk_combo_new ();
+ pWidget = gtk_combo_box_new ();
+ gok_settingsdialog_combobox_init (GTK_COMBO_BOX (pWidget), TRUE);
g_object_ref (pWidget);
g_object_set_data_full (G_OBJECT (gok_settingsdialog_get_window ()),
pControlName, pWidget,
@@ -648,10 +642,6 @@ void gok_page_accessmethod_draw_controls (gchar* NameAccessMethod, GokControl* p
gtk_widget_show (pWidget);
gtk_box_pack_start (GTK_BOX (pControlParent->pWidget), pWidget, FALSE, FALSE, 0);
- /* make the combo's entry field NOT editable */
- pEntry = GTK_COMBO (pWidget)->entry;
- gtk_editable_set_editable (GTK_EDITABLE (pEntry), FALSE);
-
/* create a new object to hold info about the filled combo */
/* the combo gets filled in gok_page_accessmethod_fill_combos */
pFilledComboNew = (GokFilledCombo*)g_malloc (sizeof (GokFilledCombo));
@@ -908,7 +898,7 @@ void gok_page_accessmethod_change_controls (gchar* pNameAccessMethod)
{
GokAccessMethod* pAccessMethod;
GtkWidget* pLabelDescription;
- GtkWidget* pEntryAccessMethodName;
+ GtkWidget* pComboAccessMethod;
GokControl ControlParent;
GtkWidget* pFrame;
@@ -940,9 +930,10 @@ void gok_page_accessmethod_change_controls (gchar* pNameAccessMethod)
/* display the name in the combo box */
m_bUsChangingName = TRUE;
- pEntryAccessMethodName = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entryAccessMethodName");
- g_assert (pEntryAccessMethodName != NULL);
- gtk_entry_set_text (GTK_ENTRY (pEntryAccessMethodName), gok_page_accessmethod_get_displayname (pNameAccessMethod));
+ pComboAccessMethod = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboAccessMethods");
+ g_assert (pComboAccessMethod != NULL);
+ gok_settingsdialog_combobox_set_active (GTK_COMBO_BOX (pComboAccessMethod),
+ gok_page_accessmethod_get_displayname (pNameAccessMethod));
m_bUsChangingName = FALSE;
/* change the access method description text */
@@ -994,9 +985,9 @@ void gok_page_accessmethod_page_active()
void gok_page_accessmethod_fill_combos (gboolean bRefill)
{
GokFilledCombo* pGokFilledCombo;
+ GtkComboBox *combo;
GokAction* pAction;
GokFeedback* pFeedback;
- GList* items;
int settingInt;
gchar* settingString;
GtkWidget* pEntry;
@@ -1008,9 +999,8 @@ void gok_page_accessmethod_fill_combos (gboolean bRefill)
(pGokFilledCombo->bFilled == FALSE))
{
pGokFilledCombo->bFilled = TRUE;
+ combo = GTK_COMBO_BOX (pGokFilledCombo->pCombo);
- items = NULL;
-
/* get the current setting string */
if (gok_data_get_setting (pGokFilledCombo->pNameAccessMethod, pGokFilledCombo->pNameControl, &settingInt, &settingString) == FALSE)
{
@@ -1028,8 +1018,7 @@ void gok_page_accessmethod_fill_combos (gboolean bRefill)
/* use only the actions specified by the 'qualifier' */
if (pAction->Type & pGokFilledCombo->Qualifier)
{
- items = g_list_append (items, pAction->pDisplayName);
-
+ gtk_combo_box_prepend_text (combo, pAction->pDisplayName);
/* get the display name from the setting name */
if (strcmp (pAction->pName, settingString) == 0)
{
@@ -1046,8 +1035,7 @@ void gok_page_accessmethod_fill_combos (gboolean bRefill)
pFeedback = gok_feedback_get_first_feedback();
while (pFeedback != NULL)
{
- items = g_list_append (items, pFeedback->pDisplayName);
-
+ gtk_combo_box_prepend_text (combo, pFeedback->pDisplayName);
/* get the display name from the setting name */
if (strcmp (pFeedback->pName, settingString) == 0)
{
@@ -1060,36 +1048,25 @@ void gok_page_accessmethod_fill_combos (gboolean bRefill)
case CONTROL_FILLWITH_SOUNDS:
g_object_set_data (G_OBJECT(pGokFilledCombo->pCombo), "type", "sounds");
- items = g_list_append (items, "beep");
- items = g_list_append (items, "boop");
- items = g_list_append (items, "shreik");
- items = g_list_append (items, "bang");
+ gtk_combo_box_prepend_text (combo, "beep");
+ gtk_combo_box_prepend_text (combo, "boop");
+ gtk_combo_box_prepend_text (combo, "shreik");
+ gtk_combo_box_prepend_text (combo, "bang");
break;
case CONTROL_FILLWITH_OPTIONS:
g_object_set_data (G_OBJECT(pGokFilledCombo->pCombo), "type", "options");
- items = g_list_append (items, "restart scanning");
- items = g_list_append (items, "stop scanning");
- items = g_list_append (items, "output character");
+ gtk_combo_box_prepend_text (combo, "restart scanning");
+ gtk_combo_box_prepend_text (combo, "stop scanning");
+ gtk_combo_box_prepend_text (combo, "output character");
break;
default:
break;
}
- if (items != NULL)
- {
- /* sort the names */
- items = g_list_sort (items, gok_settingsdialog_sort);
-
- gtk_combo_set_popdown_strings (GTK_COMBO (pGokFilledCombo->pCombo), items);
- g_list_free (items);
- }
-
/* display the current setting */
- pEntry = GTK_COMBO(pGokFilledCombo->pCombo)->entry;
- g_assert (pEntry != NULL);
- gtk_entry_set_text (GTK_ENTRY (pEntry), settingString);
+ gok_settingsdialog_combobox_set_active (combo, settingString);
}
pGokFilledCombo = pGokFilledCombo->pGokFilledComboNext;
diff --git a/gok/gok-page-accessmethod.h b/gok/gok-page-accessmethod.h
index 3b045ed..112240d 100644
--- a/gok/gok-page-accessmethod.h
+++ b/gok/gok-page-accessmethod.h
@@ -2,6 +2,7 @@
*
* Copyright 2002 Sun Microsystems, Inc.,
* Copyright 2002 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -43,7 +44,7 @@ gchar* gok_page_accessmethod_get_name (gchar* DisplayNameAccessMethod);
void gok_page_accessmethod_page_active (void);
void gok_page_accessmethod_fill_combos (gboolean bRefill);
void gok_page_accessmethod_update_effects (void);
-void gok_page_accessmethod_method_changed (GtkEditable* pEditControl);
+void gok_page_accessmethod_method_changed (GtkComboBox *combo);
void gok_page_accessmethod_checkbox_changed (GtkButton* pButton, gpointer data);
void gok_page_accessmethod_update_associated (GokAccessMethod* pAccessMethod);
void gok_page_accessmethod_update_associated_loop (GokControl* pControl);
diff --git a/gok/gok-page-actions.c b/gok/gok-page-actions.c
index c535f73..d0b47fb 100644
--- a/gok/gok-page-actions.c
+++ b/gok/gok-page-actions.c
@@ -2,6 +2,7 @@
*
* Copyright 2002-2009 Sun Microsystems, Inc.,
* Copyright 2002-2009 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -58,59 +59,55 @@ static gboolean m_bChanged;
**/
gboolean gok_page_actions_initialize (GladeXML* xml)
{
- GtkWidget* pComboBox, *range;
+ GtkComboBox *pComboBox;
+ GtkWidget *range;
GokAction* pAction;
- GList* items = NULL;
- GSList* pDevice = NULL;
- GSList* slist;
- gboolean bReturnCode = TRUE; /* unused? */
-
+ GSList* pDevice;
+
g_assert (xml != NULL);
+
m_pActionCurrent = gok_action_get_first_action ();
m_bIgnoreChangeName = FALSE;
m_bChanged = TRUE;
/* add all the actions to the combo box */
- pComboBox = glade_xml_get_widget (xml, "comboActionNames");
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (xml, "comboActionNames"));
g_assert (pComboBox != NULL);
+ gok_settingsdialog_combobox_init (pComboBox, TRUE);
gok_page_actions_fill_combo_action_names();
-
gok_page_actions_update_controls (gok_action_get_first_action ());
/* initialize the XInput device combobox */
- pComboBox = glade_xml_get_widget (xml, "comboInputDevice");
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (xml, "comboInputDevice"));
g_assert (pComboBox != NULL);
+ gok_settingsdialog_combobox_init (pComboBox, FALSE);
pDevice = gok_input_get_device_list ();
- if (pDevice)
+ while (pDevice)
{
- items = NULL;
- slist = pDevice;
- while ((slist != NULL) && (slist->data != NULL))
- {
- GokInput *input;
- input = (GokInput *) slist->data;
- /* small hack so that the gconf stored extension device will
- be at the top of the list, and therefore not overridden
- TODO: store this as part of an action */
- if (strcmp(input->name, gok_input_get_extension_device_name()) == 0) {
- items = g_list_prepend (items, input->name );
- }
- else {
- items = g_list_append (items, input->name);
- }
- /* TODO: persist this list so we can query it later */
- slist = slist->next;
+ GokInput *input = pDevice->data;
+
+ /* small hack so that the gconf stored extension device will
+ be at the top of the list, and therefore not overridden
+ TODO: store this as part of an action */
+ if (strcmp(input->name, gok_input_get_extension_device_name()) == 0) {
+ gtk_combo_box_prepend_text (pComboBox, input->name );
}
- if (!gok_input_get_extension_device_name() ||
- !strlen(gok_input_get_extension_device_name())) {
- items = g_list_prepend (items, "");
+ else {
+ gtk_combo_box_append_text (pComboBox, input->name);
}
- gtk_combo_set_popdown_strings (GTK_COMBO (pComboBox), items);
- g_list_free (items);
+ /* TODO: persist this list so we can query it later */
+ pDevice = pDevice->next;
+ }
+ if (!gok_input_get_extension_device_name() ||
+ !strlen(gok_input_get_extension_device_name())) {
+ gtk_combo_box_prepend_text (pComboBox, "");
}
+ /* select first entry */
+ gok_settingsdialog_combobox_set_active (pComboBox, "");
+
gok_page_actions_enable_radios_type (FALSE);
/* init the (now-global) valuator sensitivity slider */
@@ -119,7 +116,7 @@ gboolean gok_page_actions_initialize (GladeXML* xml)
gtk_range_set_value (GTK_RANGE (range),
gok_data_get_valuator_sensitivity ());
- return bReturnCode;
+ return TRUE;
}
/**
@@ -536,26 +533,26 @@ void gok_page_actions_button_clicked_new ()
void gok_page_actions_button_clicked_delete ()
{
GtkWidget* pDialog;
- GtkWidget* pComboEntry;
+ GtkComboBox *combo;
const gchar* pNameAction;
- gchar buffer[200];
+ gchar *buffer;
gint result;
GokAction* pAction;
GokAction* pActionDisplayed;
- pComboEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entryActionName");
- g_assert (pComboEntry != NULL);
- pNameAction = gtk_entry_get_text (GTK_ENTRY(pComboEntry));
+ combo = GTK_COMBO_BOX (glade_xml_get_widget (gok_settingsdialog_get_xml (),
+ "comboActionNames"));
+ g_assert (combo != NULL);
+ pNameAction = gtk_combo_box_get_active_text (combo);
- sprintf (buffer, _("Do you wish to delete this action (%s)?"), pNameAction);
+ buffer = g_strdup_printf (_("Do you wish to delete this action (%s)?"), pNameAction);
- /*** TODO: code duplication ***/
pDialog = gtk_message_dialog_new ((GtkWindow*)gok_settingsdialog_get_window(),
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO,
"%s", buffer);
-
+ g_free (buffer);
gtk_window_set_title (GTK_WINDOW (pDialog), _("GOK Delete Action"));
result = gtk_dialog_run (GTK_DIALOG (pDialog));
gtk_widget_destroy (pDialog);
@@ -606,65 +603,47 @@ void gok_page_actions_button_clicked_delete ()
**/
void gok_page_actions_fill_combo_action_names ()
{
- GtkWidget* pComboBox;
- GtkWidget* pEntry;
+ GtkComboBox* pComboBox;
GokAction* pAction;
- GList* items = NULL;
- gchar* pActionName;
- /* ignore the 'entry text changed' message generated by this routine */
+ /* ignore combo box 'changed' signals */
m_bIgnoreChangeName = TRUE;
/* find the combo box */
- pComboBox = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboActionNames");
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (gok_settingsdialog_get_xml (),
+ "comboActionNames"));
g_assert (pComboBox != NULL);
- /* create a list of action display names */
+ /* clear the combo box model, we might be refilling */
+ gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (pComboBox)));
+
+ /* fill combo box with action display names */
pAction = gok_action_get_first_action();
while (pAction != NULL)
{
- items = g_list_append (items, pAction->pDisplayName);
+ gtk_combo_box_prepend_text (pComboBox, pAction->pDisplayName);
pAction = pAction->pActionNext;
}
-
- /* are there any action names? */
- if (items == NULL)
- {
- /* no, so empty the combo box */
- items = g_list_append (items, "");
- }
- /* sort the action names */
- items = g_list_sort (items, gok_settingsdialog_sort);
-
- gtk_combo_set_popdown_strings (GTK_COMBO (pComboBox), items);
- g_list_free (items);
-
- /* display the current action name in the entry control of the combo */
+ /* display the current action name */
if (m_pActionCurrent != NULL)
{
- pActionName = m_pActionCurrent->pDisplayName;
- }
- else
- {
- pActionName = "";
+ gok_settingsdialog_combobox_set_active (pComboBox,
+ m_pActionCurrent->pDisplayName);
}
- pEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entryActionName");
- g_assert (pEntry != NULL);
- gtk_entry_set_text (GTK_ENTRY(pEntry), pActionName);
-
+
m_bIgnoreChangeName = FALSE;
}
/**
* gok_page_actions_action_changed
-* @pEditControl: Pointer to the edit control that contains the names of
+* @combo: Pointer to the combo box that contains the names of
* the actions.
*
* The user has selected a new action from the combo box so update the
* page's controls with the new action data.
**/
-void gok_page_actions_action_changed (GtkEditable* pEditControl)
+void gok_page_actions_action_changed (GtkComboBox *combo)
{
GokAction* pAction;
gchar* pStrComboActionName;
@@ -678,7 +657,7 @@ void gok_page_actions_action_changed (GtkEditable* pEditControl)
}
/* get the name of the action from the combo box */
- pStrComboActionName = gtk_editable_get_chars (pEditControl, 0, -1);
+ pStrComboActionName = gtk_combo_box_get_active_text (combo);
if (strlen (pStrComboActionName) == 0)
{
g_free (pStrComboActionName);
@@ -698,7 +677,6 @@ void gok_page_actions_action_changed (GtkEditable* pEditControl)
m_pActionCurrent = pAction;
/* update the controls to reflect this action */
-
gok_page_actions_update_controls (pAction);
}
@@ -710,24 +688,23 @@ void gok_page_actions_action_changed (GtkEditable* pEditControl)
* The user has selected a new input device from the combo box so update the
* page's controls with the new input device data.
**/
-void gok_page_actions_input_device_changed (GtkEditable* pEditControl)
+void gok_page_actions_input_device_changed (GtkComboBox *combo)
{
gchar* pStrComboInputDeviceName;
GokInput *pInput;
/* get the name of the input device from the combo box */
- pStrComboInputDeviceName = gtk_editable_get_chars (pEditControl, 0, -1);
+ pStrComboInputDeviceName = gtk_combo_box_get_active_text (combo);
if (pStrComboInputDeviceName && strlen (pStrComboInputDeviceName) == 0) {
g_free (pStrComboInputDeviceName);
}
else if (pStrComboInputDeviceName)
{
/* find the device in our list of input devices */
-
pInput = gok_input_find_by_name (pStrComboInputDeviceName, TRUE);
if (!pInput) {
gok_log_x ("Input Device name (%s) from combo not found in device list!", pStrComboInputDeviceName);
- gtk_editable_delete_text (pEditControl, 0, -1);
+ gok_settingsdialog_combobox_set_active (combo, "");
}
else {
gok_page_actions_set_changed ( TRUE );
@@ -977,7 +954,7 @@ void gok_page_actions_enable_radios_type (gboolean bTrueFalse)
{
GtkWidget* pWidget;
- pWidget = glade_xml_get_widget (gok_settingsdialog_get_xml(), "labelActionName");
+ pWidget = glade_xml_get_widget (gok_settingsdialog_get_xml(), "labelActionType");
g_assert (pWidget != NULL);
gtk_widget_set_sensitive (pWidget, bTrueFalse);
diff --git a/gok/gok-page-actions.h b/gok/gok-page-actions.h
index 185b988..1f3fed0 100644
--- a/gok/gok-page-actions.h
+++ b/gok/gok-page-actions.h
@@ -2,6 +2,7 @@
*
* Copyright 2002 Sun Microsystems, Inc.,
* Copyright 2002 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -34,13 +35,13 @@ void gok_page_actions_toggle_type_valuator (gboolean Pressed);
void gok_page_actions_button_clicked_new (void);
void gok_page_actions_button_clicked_delete (void);
void gok_page_actions_button_clicked_change_name (void);
-void gok_page_actions_action_changed (GtkEditable* pEditControl);
+void gok_page_actions_action_changed (GtkComboBox *combo);
void gok_page_actions_enable_switch_controls (gboolean bTrueFalse);
void gok_page_actions_enable_valuator_controls (gboolean bTrueFalse);
void gok_page_actions_enable_radios_type (gboolean bTrueFalse);
void gok_page_actions_fill_combo_action_names (void);
gint gok_page_actions_get_radio_number (GtkRadioButton* pRadioButtonGiven);
-void gok_page_actions_input_device_changed (GtkEditable* pEditable);
+void gok_page_actions_input_device_changed (GtkComboBox *combo);
void gok_page_actions_update_controls (GokAction* pAction);
void gok_page_actions_set_number (gint NumberSwitch);
void gok_page_actions_set_state (gint State);
diff --git a/gok/gok-page-feedbacks.c b/gok/gok-page-feedbacks.c
index 5e526f2..8eee5e3 100644
--- a/gok/gok-page-feedbacks.c
+++ b/gok/gok-page-feedbacks.c
@@ -2,6 +2,7 @@
*
* Copyright 2002-2009 Sun Microsystems, Inc.,
* Copyright 2002-2009 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -41,7 +42,7 @@ static gboolean m_bIgnoreChangeName;
/* this is not changed if an existing feedback is just modified */
static gboolean m_bChanged;
-/* this should be set TRUE when we change the name in the sound name entry field */
+/* this should be set TRUE when we change the name in the sound name combo box */
static gboolean m_bIgnoreSoundNameChange;
/**
@@ -55,46 +56,42 @@ static gboolean m_bIgnoreSoundNameChange;
**/
gboolean gok_page_feedbacks_initialize (GladeXML* xml)
{
- GtkWidget* pComboBox;
+ GtkComboBox* pComboBox;
GokFeedback* pFeedback;
- GList* items = NULL;
-
+
g_assert (xml != NULL);
+
m_pFeedbackCurrent = NULL;
- m_bIgnoreChangeName = FALSE;
m_bChanged = TRUE;
- m_bIgnoreSoundNameChange = FALSE;
+
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (xml, "comboSoundName"));
+ g_assert (pComboBox != NULL);
+ gok_settingsdialog_combobox_init (pComboBox, TRUE);
/* add all sounds to the 'sounds' combo box */
- gok_feedbacks_update_sound_combo();
-
- /* add all the feedbacks to the combo box */
- pComboBox = glade_xml_get_widget (xml , "comboFeedback");
+ gok_feedbacks_update_sound_combo ();
+
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (xml, "comboFeedback"));
g_assert (pComboBox != NULL);
+ gok_settingsdialog_combobox_init (pComboBox, TRUE);
+ m_bIgnoreChangeName = TRUE;
+
+ /* add all the feedbacks to the combo box */
pFeedback = gok_feedback_get_first_feedback();
while (pFeedback != NULL)
{
- items = g_list_append (items, pFeedback->pDisplayName);
+ gtk_combo_box_prepend_text (pComboBox, pFeedback->pDisplayName);
pFeedback = pFeedback->pFeedbackNext;
}
- if (items != NULL)
- {
- /* sort the names */
- items = g_list_sort (items, gok_settingsdialog_sort);
+ m_pFeedbackCurrent = gok_feedback_find_feedback ("None", TRUE);
+ gok_settingsdialog_combobox_set_active (pComboBox, "None");
+
+ m_bIgnoreChangeName = FALSE;
+
+ gok_page_feedbacks_update_controls (m_pFeedbackCurrent);
- m_bIgnoreChangeName = TRUE;
- gtk_combo_set_popdown_strings (GTK_COMBO (pComboBox), items);
- m_bIgnoreChangeName = FALSE;
- g_list_free (items);
- }
-
- if (m_pFeedbackCurrent == NULL)
- {
- gok_page_feedbacks_update_controls (NULL);
- }
-
return TRUE;
}
@@ -214,13 +211,13 @@ void gok_page_feedbacks_backup ()
/**
* gok_page_feedbacks_feedback_changed
-* @pEditControl: Pointer to the edit control that contains the names of
+* @combo: Pointer to the combo box that contains the names of
* the feedbacks.
*
-* The feedback name in the entry control has changed. Update the
+* The feedback name in the combo box has changed. Update the
* page's controls with the new feedback data.
**/
-void gok_page_feedbacks_feedback_changed (GtkEditable* pEditControl)
+void gok_page_feedbacks_feedback_changed (GtkComboBox *combo)
{
GokFeedback* pFeedback;
gchar* pStrComboFeedbackName;
@@ -233,7 +230,7 @@ void gok_page_feedbacks_feedback_changed (GtkEditable* pEditControl)
return;
}
/* get the name of the feedback from the combo box */
- pStrComboFeedbackName = gtk_editable_get_chars (pEditControl, 0, -1);
+ pStrComboFeedbackName = gtk_combo_box_get_active_text (combo);
if (strlen (pStrComboFeedbackName) == 0)
{
@@ -257,6 +254,11 @@ void gok_page_feedbacks_feedback_changed (GtkEditable* pEditControl)
gok_page_feedbacks_update_controls (pFeedback);
}
+/*
+ * use something like this everywhere when we migrate to gtkbuilder
+ */
+#define WID(n) (glade_xml_get_widget (gok_settingsdialog_get_xml (), (n)))
+
/**
* gok_page_feedbacks_update_controls
* @pFeedback: Controls are changed to display this feedback.
@@ -265,133 +267,67 @@ void gok_page_feedbacks_feedback_changed (GtkEditable* pEditControl)
**/
void gok_page_feedbacks_update_controls (GokFeedback* pFeedback)
{
- GtkWidget* pButton;
-
- /* if no feedback then disable all controls */
+ GtkWidget *widget;
+ gboolean enable_all;
+
+ /*
+ * disable all controls if there's no feedback selected,
+ * or the current feedback is "None"
+ */
+ enable_all = (pFeedback != NULL && !g_str_equal (pFeedback->pDisplayName, "None"));
+ gtk_widget_set_sensitive (WID ("boxKeyFlashing"), enable_all);
+ gtk_widget_set_sensitive (WID ("boxSound"), enable_all);
+ gtk_widget_set_sensitive (WID ("boxSpeech"), enable_all);
+ gtk_widget_set_sensitive (WID ("buttonChangeFeedbackName"), enable_all);
+ gtk_widget_set_sensitive (WID ("buttonDeleteFeedback"), enable_all);
+
if (pFeedback == NULL)
{
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonChangeFeedbackName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
-
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonDeleteFeedback");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ return;
+ }
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkKeyFlashing");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /*
+ * disable some controls if this is a permanent feedback
+ */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "spinKeyFlashing");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /* edit & delete button */
+ gtk_widget_set_sensitive (WID ("buttonChangeFeedbackName"), !pFeedback->bPermanent);
+ gtk_widget_set_sensitive (WID ("buttonDeleteFeedback"), !pFeedback->bPermanent);
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkSoundOn");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /* change key flashing */
+ widget = WID ("checkKeyFlashing");
+ gtk_widget_set_sensitive (widget, !pFeedback->bPermanent);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), pFeedback->bFlashOn);
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboSoundName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /* change sound */
+ widget = WID ("checkSoundOn");
+ gtk_widget_set_sensitive (widget, !pFeedback->bPermanent);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), pFeedback->bSoundOn);
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonFeedbackSoundFile");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /* change speech */
+ widget = WID ("SpeakLabelCheckButton");
+ gtk_widget_set_sensitive (widget, !pFeedback->bPermanent);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), pFeedback->bSpeechOn);
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "SpeakLabelCheckButton");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
+ /*
+ * update details
+ */
- return;
- }
+ /* key flashing rate */
+ gtk_widget_set_sensitive (WID ("boxKeyFlashing"), pFeedback->bFlashOn);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (WID ("spinKeyFlashing")),
+ pFeedback->NumberFlashes);
- /* is this a permanent feedback? */
- if (pFeedback->bPermanent == TRUE)
- {
- /* don't allow user to edit the feedback name */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonChangeFeedbackName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
-
- /* don't allow user to delete the feedback */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonDeleteFeedback");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
-
- /* don't allow user to change the flashing on/off */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkKeyFlashing");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(pButton), pFeedback->bFlashOn);
-
- /* don't allow user to change the sound on/off */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkSoundOn");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, FALSE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(pButton), pFeedback->bSoundOn);
- }
- else
- {
- /* not permanent */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonDeleteFeedback");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
-
- /* allow user to edit the feedback name */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonChangeFeedbackName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
-
- /* allow user to change the flashing on/off */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkKeyFlashing");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(pButton), pFeedback->bFlashOn);
-
- /* allow user to change the sound on/off */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkSoundOn");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(pButton), pFeedback->bSoundOn);
-
- /* allow user to turn the speech on/off */
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "SpeakLabelCheckButton");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(pButton), pFeedback->bSpeechOn);
- }
-
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "spinKeyFlashing");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON(pButton), pFeedback->NumberFlashes);
-
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboSoundName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
-
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entrySoundName");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
+ /* sound file */
+ gtk_widget_set_sensitive (WID ("boxSoundFile"), pFeedback->bSoundOn);
m_bIgnoreSoundNameChange = TRUE;
-
- if (pFeedback->pNameSound != NULL)
- {
- gtk_entry_set_text (GTK_ENTRY(pButton), pFeedback->pNameSound);
- }
- else
- {
- gtk_entry_set_text (GTK_ENTRY(pButton), "");
- }
+ gok_settingsdialog_combobox_set_active (GTK_COMBO_BOX (WID ("comboSoundName")),
+ pFeedback->pNameSound ? pFeedback->pNameSound : "none");
m_bIgnoreSoundNameChange = FALSE;
-
- pButton = glade_xml_get_widget (gok_settingsdialog_get_xml(), "buttonFeedbackSoundFile");
- g_assert (pButton != NULL);
- gtk_widget_set_sensitive (pButton, TRUE);
}
/**
-* gok_page_feedbacks_button_clicked_change_name
+ * gok_page_feedbacks_button_clicked_change_name
*
* The button "change name" has been clicked so allow the user to change the
* name of the feedback.
@@ -541,7 +477,7 @@ void gok_page_feedbacks_button_clicked_new()
pFeedbackNew->bSoundOn = m_pFeedbackCurrent->bSoundOn;
if (m_pFeedbackCurrent->pNameSound != NULL)
{
- pFeedbackNew->pNameSound = g_strdup (m_pFeedbackCurrent->pNameSound);
+ pFeedbackNew->pNameSound = g_strdup (m_pFeedbackCurrent->pNameSound);
}
}
@@ -564,58 +500,39 @@ void gok_page_feedbacks_button_clicked_new()
* gok_page_feedbacks_fill_combo_feedback_names
*
* Fills the combo box that displays the feedback names.
-* This also displays the name of the current feedback in the entry control.
+* This also displays the name of the current feedback in the combo box.
**/
void gok_page_feedbacks_fill_combo_feedback_names ()
{
- GtkWidget* pComboBox;
- GtkWidget* pEntry;
+ GtkComboBox* pComboBox;
GokFeedback* pFeedback;
- GList* items = NULL;
- gchar* pFeedbackName;
- /* ignore the 'entry text changed' message generated by this routine */
+ /* ignore the combo box 'changed' signals */
m_bIgnoreChangeName = TRUE;
/* find the combo box */
- pComboBox = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboFeedback");
+ pComboBox = GTK_COMBO_BOX (glade_xml_get_widget (gok_settingsdialog_get_xml (),
+ "comboFeedback"));
g_assert (pComboBox != NULL);
+ /* clear the combo box model. we might be refilling */
+ gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (pComboBox)));
+
/* create a list of feedback display names */
pFeedback = gok_feedback_get_first_feedback();
while (pFeedback != NULL)
{
- items = g_list_append (items, pFeedback->pDisplayName);
+ gtk_combo_box_prepend_text (pComboBox, pFeedback->pDisplayName);
pFeedback = pFeedback->pFeedbackNext;
}
-
- /* are there any feedback names? */
- if (items == NULL)
- {
- /* no, so empty the combo box */
- items = g_list_append (items, "");
- }
- /* sort the names */
- items = g_list_sort (items, gok_settingsdialog_sort);
- gtk_combo_set_popdown_strings (GTK_COMBO (pComboBox), items);
- g_list_free (items);
+ /* display the current feedback name in the combo box */
+ gok_settingsdialog_combobox_set_active (pComboBox,
+ m_pFeedbackCurrent ?
+ m_pFeedbackCurrent->pDisplayName : "");
- /* display the current feedback name in the entry control of the combo */
- if (m_pFeedbackCurrent != NULL)
- {
- pFeedbackName = m_pFeedbackCurrent->pDisplayName;
- }
- else
- {
- pFeedbackName = "";
- }
- pEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entryFeedback");
- g_assert (pEntry != NULL);
- gtk_entry_set_text (GTK_ENTRY(pEntry), pFeedbackName);
-
m_bIgnoreChangeName = FALSE;
-}
+}
/**
* gok_page_feedbacks_button_clicked_delete
@@ -625,16 +542,18 @@ void gok_page_feedbacks_fill_combo_feedback_names ()
void gok_page_feedbacks_button_clicked_delete ()
{
GtkWidget* pDialog;
- GtkWidget* pComboEntry;
- const gchar* pNameFeedback;
+ GtkWidget* pComboBox;
+ gchar* pNameFeedback;
gchar buffer[200];
gint result;
GokFeedback* pFeedback;
GokFeedback* pFeedbackDisplayed;
- pComboEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entryFeedback");
- g_assert (pComboEntry != NULL);
- pNameFeedback = gtk_entry_get_text (GTK_ENTRY(pComboEntry));
+ pComboBox = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboFeedback");
+ g_assert (pComboBox != NULL);
+
+ pNameFeedback = gtk_combo_box_get_active_text (GTK_COMBO_BOX (pComboBox));
+ g_assert (pNameFeedback != NULL);
sprintf (buffer, _("Do you wish to delete this feedback (%s)?"), pNameFeedback);
@@ -677,6 +596,7 @@ void gok_page_feedbacks_button_clicked_delete ()
pFeedbackDisplayed = pFeedback;
pFeedback = pFeedback->pFeedbackNext;
}
+ g_free (pNameFeedback);
m_pFeedbackCurrent = pFeedbackDisplayed;
@@ -689,22 +609,20 @@ void gok_page_feedbacks_button_clicked_delete ()
}
/**
-* gok_page_feedbacks_check_keyflashing_clicked
-*
-* The checkbox has been clicked. Update the current feedback with the change.
-**/
-void gok_page_feedbacks_check_keyflashing_clicked ()
+ * gok_page_feedbacks_check_keyflashing_toggled:
+ * @button: A #GtkToggleButton
+ *
+ * The checkbox has been clicked. Update the current feedback with the change.
+ **/
+void
+gok_page_feedbacks_check_keyflashing_toggled (GtkToggleButton *button)
{
- GtkWidget* pCheckbox;
-
- if (m_pFeedbackCurrent == NULL)
+ if (m_pFeedbackCurrent)
{
- return;
+ m_pFeedbackCurrent->bFlashOn = gtk_toggle_button_get_active (button);
+ gtk_widget_set_sensitive (WID ("boxKeyFlashingDetails"),
+ m_pFeedbackCurrent->bFlashOn);
}
-
- pCheckbox = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkKeyFlashing");
- g_assert (pCheckbox != NULL);
- m_pFeedbackCurrent->bFlashOn = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(pCheckbox));
}
/**
@@ -712,7 +630,8 @@ void gok_page_feedbacks_check_keyflashing_clicked ()
*
* The spin control has changed. Update the current feedback with the change.
**/
-void gok_page_feedbacks_spin_keyflashing_changed ()
+void
+gok_page_feedbacks_spin_keyflashing_changed (void)
{
GtkWidget* pSpinControl;
@@ -727,48 +646,47 @@ void gok_page_feedbacks_spin_keyflashing_changed ()
}
/**
-* gok_page_feedbacks_check_sound_clicked
-*
-* The checkbox has been clicked. Update the current feedback with the change.
-**/
-void gok_page_feedbacks_check_sound_clicked ()
+ * gok_page_feedbacks_check_sound_toggled:
+ * @button: A #GtkToggleButton
+ *
+ * The checkbox has been clicked. Update the current feedback with the change.
+ **/
+void
+gok_page_feedbacks_check_sound_toggled (GtkToggleButton *button)
{
- GtkWidget* pCheckbox;
-
- if (m_pFeedbackCurrent == NULL)
+ if (m_pFeedbackCurrent)
{
- return;
+ m_pFeedbackCurrent->bSoundOn = gtk_toggle_button_get_active (button);
+ gtk_widget_set_sensitive (WID ("boxSoundFile"),
+ m_pFeedbackCurrent->bSoundOn);
}
-
- pCheckbox = glade_xml_get_widget (gok_settingsdialog_get_xml(), "checkSoundOn");
- g_assert (pCheckbox != NULL);
- m_pFeedbackCurrent->bSoundOn = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(pCheckbox));
}
/**
-* gok_page_feedbacks_check_speech_toggled
-*
-* The checkbox has been toggled. Update the current feedback with the change.
-**/
-void gok_page_feedbacks_check_speech_toggled (GtkToggleButton *button)
+ * gok_page_feedbacks_check_speech_toggled:
+ * @button: A #GtkToggleButton
+ *
+ * The checkbox has been toggled. Update the current feedback with the change.
+ **/
+void
+gok_page_feedbacks_check_speech_toggled (GtkToggleButton *button)
{
- if (m_pFeedbackCurrent == NULL)
+ if (m_pFeedbackCurrent)
{
- return;
+ m_pFeedbackCurrent->bSpeechOn = gtk_toggle_button_get_active (button);
}
-
- m_pFeedbackCurrent->bSpeechOn = gtk_toggle_button_get_active (button);
}
/**
-* gok_page_feedbacks_entry_soundname_changed
-*
-* The sound file name has changed. Update the current feedback with the change.
-**/
-void gok_page_feedbacks_entry_soundname_changed ()
+ * gok_page_feedbacks_soundname_changed:
+ * @combo: A #GtkComboBox
+ *
+ * The sound file has changed. Update the current feedback with the change.
+ **/
+void gok_page_feedbacks_soundname_changed (GtkComboBox *combo)
{
- GtkWidget* pEntry;
-
+ gchar *soundfile;
+
if (m_bIgnoreSoundNameChange == TRUE)
{
return;
@@ -779,28 +697,26 @@ void gok_page_feedbacks_entry_soundname_changed ()
return;
}
- pEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entrySoundName");
- g_assert (pEntry != NULL);
-
+ soundfile = gtk_combo_box_get_active_text (combo);
/* is there a sound file selected? */
- if (strlen (gtk_entry_get_text (GTK_ENTRY(pEntry))) > 0)
+ if (soundfile && strlen (soundfile) > 0)
{
/* yes, there is a sound file selected */
/* does the feedback already have a sound file name? */
if (m_pFeedbackCurrent->pNameSound != NULL)
{
/* yes, is the feedback name the same as the name in the entry? */
- if (strcmp (m_pFeedbackCurrent->pNameSound, gtk_entry_get_text (GTK_ENTRY(pEntry))) != 0)
+ if (strcmp (m_pFeedbackCurrent->pNameSound, soundfile) != 0)
{
/* no, names are different */
/* free the existing name and store the new name */
g_free (m_pFeedbackCurrent->pNameSound);
- m_pFeedbackCurrent->pNameSound = g_strdup (gtk_entry_get_text (GTK_ENTRY(pEntry)));
+ m_pFeedbackCurrent->pNameSound = g_strdup (soundfile);
}
}
else /* feedback does not have a sound file name */
{
- m_pFeedbackCurrent->pNameSound = g_strdup (gtk_entry_get_text (GTK_ENTRY(pEntry)));
+ m_pFeedbackCurrent->pNameSound = g_strdup (soundfile);
}
}
else /* no sound file selected */
@@ -811,6 +727,7 @@ void gok_page_feedbacks_entry_soundname_changed ()
m_pFeedbackCurrent->pNameSound = NULL;
}
}
+ g_free (soundfile);
}
/**
@@ -818,35 +735,32 @@ void gok_page_feedbacks_entry_soundname_changed ()
*
* Adds all the sounds from the feedbacks to the 'sounds' combo box list.
**/
-void gok_feedbacks_update_sound_combo()
+void gok_feedbacks_update_sound_combo (void)
{
- GtkWidget* pCombo;
- GList* items = NULL;
+ GtkComboBox* pCombo;
GokFeedback* pFeedback;
+ GtkTreeIter iter;
+
+ m_bIgnoreSoundNameChange = TRUE;
- pCombo = glade_xml_get_widget (gok_settingsdialog_get_xml(), "comboSoundName");
+ pCombo = GTK_COMBO_BOX (glade_xml_get_widget (gok_settingsdialog_get_xml (),
+ "comboSoundName"));
g_assert (pCombo != NULL);
+ gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (pCombo)));
pFeedback = gok_feedback_get_first_feedback();
while (pFeedback != NULL)
{
- if (pFeedback->pNameSound != NULL)
+ /* don't allow duplicate sound file entries */
+ if (pFeedback->pNameSound != NULL &&
+ !gok_settingsdialog_combobox_search (pCombo, pFeedback->pNameSound, &iter))
{
- items = g_list_append (items, pFeedback->pNameSound);
+ gtk_combo_box_prepend_text (pCombo, pFeedback->pNameSound);
}
pFeedback = pFeedback->pFeedbackNext;
}
- if (items != NULL)
- {
- /* sort the names */
- items = g_list_sort (items, gok_settingsdialog_sort);
-
- m_bIgnoreSoundNameChange = TRUE;
- gtk_combo_set_popdown_strings (GTK_COMBO (pCombo), items);
- g_list_free (items);
- m_bIgnoreSoundNameChange = FALSE;
- }
+ m_bIgnoreSoundNameChange = FALSE;
}
/**
@@ -859,7 +773,7 @@ void gok_page_feedbacks_get_sound_file ()
GtkWidget* pDialogFilename;
gint response;
gchar* filename;
- GtkWidget* pEntry;
+ GtkWidget* pCombo;
/* make sure the current feedback is not NULL */
if (m_pFeedbackCurrent == NULL)
@@ -901,11 +815,11 @@ void gok_page_feedbacks_get_sound_file ()
/* update the combo box list */
gok_feedbacks_update_sound_combo();
- /* display it in the entry of the combo box */
- pEntry = glade_xml_get_widget (gok_settingsdialog_get_xml(), "entrySoundName");
- g_assert (pEntry != NULL);
+ /* display it in the combo box */
+ pCombo = glade_xml_get_widget (gok_settingsdialog_get_xml (), "comboSoundName");
+ g_assert (pCombo != NULL);
m_bIgnoreSoundNameChange = TRUE;
- gtk_entry_set_text (GTK_ENTRY(pEntry), filename);
+ gok_settingsdialog_combobox_set_active (GTK_COMBO_BOX (pCombo), filename);
m_bIgnoreSoundNameChange = FALSE;
/* destroy the file selector dialog */
diff --git a/gok/gok-page-feedbacks.h b/gok/gok-page-feedbacks.h
index 78166e5..7e20526 100644
--- a/gok/gok-page-feedbacks.h
+++ b/gok/gok-page-feedbacks.h
@@ -1,7 +1,8 @@
/* gok-page-feedbacks.h
*
-* Copyright 2002 Sun Microsystems, Inc.,
-* Copyright 2002 University Of Toronto
+* Copyright 2002-2009 Sun Microsystems, Inc.,
+* Copyright 2002-2009 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -19,28 +20,37 @@
* Boston, MA 02111-1307, USA.
*/
+#ifndef __GOK_PAGE_FEEDBACKS_H__
+#define __GOK_PAGE_FEEDBACKS_H__
+
+#include <gtk/gtk.h>
#include <glade/glade.h>
+
#include "gok-feedback.h"
+G_BEGIN_DECLS
+
gboolean gok_page_feedbacks_initialize (GladeXML* xml);
void gok_page_feedbacks_refresh (void);
gboolean gok_page_feedbacks_apply (void);
gboolean gok_page_feedbacks_revert (void);
void gok_page_feedbacks_backup (void);
-void gok_page_actions_action_changed (GtkEditable* pEditControl);
void gok_page_feedbacks_update_controls (GokFeedback* pFeedback);
void gok_page_feedbacks_button_clicked_change_name (void);
void gok_page_feedbacks_button_clicked_new (void);
void gok_page_feedbacks_fill_combo_feedback_names (void);
void gok_page_feedbacks_button_clicked_delete (void);
-void gok_page_feedbacks_check_keyflashing_clicked (void);
+void gok_page_feedbacks_check_keyflashing_toggled (GtkToggleButton *button);
void gok_page_feedbacks_spin_keyflashing_changed (void);
-void gok_page_feedbacks_check_sound_clicked (void);
-void gok_page_feedbacks_entry_soundname_changed (void);
+void gok_page_feedbacks_check_sound_toggled (GtkToggleButton *button);
+void gok_page_feedbacks_soundname_changed (GtkComboBox *combo);
void gok_page_feedbacks_get_sound_file (void);
void gok_feedbacks_update_sound_combo (void);
gboolean gok_page_feedbacks_get_changed (void);
void gok_page_feedbacks_set_changed (gboolean bTrueFalse);
-void gok_page_feedbacks_feedback_changed (GtkEditable* pEditControl);
+void gok_page_feedbacks_feedback_changed (GtkComboBox *combo);
void gok_page_feedbacks_check_speech_toggled (GtkToggleButton *button);
+G_END_DECLS
+
+#endif /* __GOK_PAGE_FEEDBACKS_H__ */
diff --git a/gok/gok-settings-dialog.c b/gok/gok-settings-dialog.c
index f551b92..f744411 100644
--- a/gok/gok-settings-dialog.c
+++ b/gok/gok-settings-dialog.c
@@ -2,6 +2,7 @@
*
* Copyright 2002 Sun Microsystems, Inc.,
* Copyright 2002 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -409,15 +410,158 @@ void gok_settingsdialog_backup_settings ()
gok_data_backup_settings();
}
+/*
+ * gok_settingsdialog_combobox_sort:
+ * @model: A #GtkTreeModel
+ * @a: Iter pointing to a row
+ * @b: Iter pointing to another row
+ * @data: User data
+ *
+ * Alpha-numeric compare func. UTF-8.
+ *
+ * Returns: 0 if the items are the same, -1 if a is less than b,
+ * 1 if a is greater than b.
+ */
+static gint
+gok_settingsdialog_combobox_sort (GtkTreeModel *model,
+ GtkTreeIter *a,
+ GtkTreeIter *b,
+ gpointer data)
+{
+ gchar *str_a, *str_b;
+ gint ret = 0;
+
+ gtk_tree_model_get (model, a, COL_TEXT, &str_a, -1);
+ gtk_tree_model_get (model, b, COL_TEXT, &str_b, -1);
+
+
+ if (str_a == NULL || str_b == NULL)
+ {
+ if (str_a == NULL && str_b == NULL)
+ return 0; /* both equal */
+
+ ret = (str_a == NULL) ? -1 : 1;
+ }
+ else
+ {
+ ret = g_utf8_collate (str_a, str_b);
+ }
+
+ g_free (str_a);
+ g_free (str_b);
+
+ return ret;
+}
+
/**
-* gok_settingsdialog_sort
-* @pItem1: pointer to item #1.
-* @pItem2: pointer to item #2.
-*
-* returns: 0 if the items are the same, -1 if pItem1 is less than pItem 2.
-* Returns 1 if pItem1 is greater than pItem2.
-**/
-gint gok_settingsdialog_sort (gconstpointer pItem1, gconstpointer pItem2)
+ * gok_settingsdialog_combobox_init:
+ * @combo: A #GtkComboBox
+ * @sortalbe: Whether the model should be sortable
+ *
+ * Utility function to intitialize @combo.
+ *
+ * The initialization is similar to gtk_combo_box_new_text, to
+ * allow the use of the 'simple text-only API' for combo boxes.
+ */
+void
+gok_settingsdialog_combobox_init (GtkComboBox *combo,
+ gboolean sortable)
{
- return strcmp (pItem1, pItem2);
+ GtkListStore *model;
+ GtkCellRenderer *cell;
+
+ g_return_if_fail (GTK_IS_COMBO_BOX (combo));
+
+ /* model */
+ model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING);
+ gtk_combo_box_set_model (combo, GTK_TREE_MODEL (model));
+
+ /* text renderer */
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cell,
+ "text", COL_TEXT, NULL);
+
+ /* sorting */
+ if (sortable)
+ {
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model),
+ COL_TEXT,
+ gok_settingsdialog_combobox_sort,
+ NULL, NULL);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
+ COL_TEXT,
+ GTK_SORT_ASCENDING);
+ }
+ g_object_unref (model);
}
+
+/**
+ * gok_settingsdialog_combobox_search:
+ * @combo: A #GtkComboBox
+ * @item: The item to search for
+ * @iter_return: Return location for iter
+ *
+ * Searches for @item in @combo. @iter_return will point to the location of
+ * @item. If the function returns #FALSE, @iter_return will be invalid.
+ *
+ * Returns: #TRUE if @item was found, #FALSE otherwise
+ */
+gboolean
+gok_settingsdialog_combobox_search (GtkComboBox *combo,
+ const gchar *item,
+ GtkTreeIter *iter_return)
+{
+ GtkTreeModel *model;
+ gchar *str;
+
+ g_return_val_if_fail (GTK_IS_COMBO_BOX (combo), FALSE);
+ g_return_val_if_fail (iter_return != NULL, FALSE);
+
+ model = gtk_combo_box_get_model (combo);
+ if (gtk_tree_model_get_iter_first (model, iter_return))
+ {
+ do
+ {
+ gtk_tree_model_get (model, iter_return, COL_TEXT, &str, -1);
+ if (g_strcmp0 (item, str) == 0)
+ {
+ g_free (str);
+ return TRUE;
+ }
+ g_free (str);
+ }
+ while (gtk_tree_model_iter_next (model, iter_return));
+ }
+ return FALSE;
+}
+
+/**
+ * gok_settingsdialog_combobox_set_active:
+ * @combo: a #GtkComboBox
+ * @item: The item to show
+ *
+ * Set @item as the current seletction in @combo.
+ */
+void
+gok_settingsdialog_combobox_set_active (GtkComboBox *combo,
+ const gchar *item)
+{
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+
+ g_return_if_fail (GTK_IS_COMBO_BOX (combo));
+ g_return_if_fail (item != NULL);
+
+ if (!gok_settingsdialog_combobox_search (combo, item, &iter))
+ {
+ /* fall back to first item */
+ model = gtk_combo_box_get_model (combo);
+ if (!gtk_tree_model_get_iter_first (model, &iter))
+ {
+ /* combo box is empty */
+ return;
+ }
+ }
+ gtk_combo_box_set_active_iter (combo, &iter);
+}
\ No newline at end of file
diff --git a/gok/gok-settings-dialog.h b/gok/gok-settings-dialog.h
index c927798..d9ff667 100644
--- a/gok/gok-settings-dialog.h
+++ b/gok/gok-settings-dialog.h
@@ -2,6 +2,7 @@
*
* Copyright 2002 Sun Microsystems, Inc.,
* Copyright 2002 University Of Toronto
+* Copyright 2009 Gerd Kohlberger <gerdko gmail com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -35,6 +36,12 @@ extern "C" {
#define PAGE_NUM_ACCESS_METHODS 3
#define PAGE_NUM_PREDICTION 4
+/* for combo box models */
+enum {
+ COL_TEXT,
+ N_COLUMNS
+};
+
gboolean gok_settingsdialog_open (gboolean bShow);
void gok_settingsdialog_close (void);
gboolean gok_settingsdialog_show (void);
@@ -48,7 +55,9 @@ void gok_settingsdialog_refresh (void);
void gok_settingsdialog_backup_settings (void);
GtkWidget* gok_settingsdialog_get_window (void);
GladeXML* gok_settingsdialog_get_xml (void);
-gint gok_settingsdialog_sort (gconstpointer pItem1, gconstpointer pItem2);
+void gok_settingsdialog_combobox_init (GtkComboBox *combo, gboolean sortable);
+void gok_settingsdialog_combobox_set_active (GtkComboBox *combo, const gchar *item);
+gboolean gok_settingsdialog_combobox_search (GtkComboBox *combo, const gchar *item, GtkTreeIter *iter_return);
#ifdef __cplusplus
}
diff --git a/inverse-scanning.xml.in b/inverse-scanning.xml.in
index 79a9be4..e8be1d8 100644
--- a/inverse-scanning.xml.in
+++ b/inverse-scanning.xml.in
@@ -78,7 +78,7 @@
<!-- Rates for this access method. -->
<GOK:rate name="movehighlighter" stringvalue="switch1" />
<GOK:rate name="select" stringvalue="switch3" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
diff --git a/singlekey-automatic-scanning.xml.in b/singlekey-automatic-scanning.xml.in
index 03f73b7..bd30624 100644
--- a/singlekey-automatic-scanning.xml.in
+++ b/singlekey-automatic-scanning.xml.in
@@ -75,7 +75,7 @@
<!-- Rates for this access method. -->
<GOK:rate name="movehighlighter" stringvalue="switch1" />
<GOK:rate name="select" stringvalue="switch3" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
diff --git a/singlekey-inverse-scanning.xml.in b/singlekey-inverse-scanning.xml.in
index 93160c3..70a2980 100644
--- a/singlekey-inverse-scanning.xml.in
+++ b/singlekey-inverse-scanning.xml.in
@@ -66,7 +66,7 @@
<!-- Rates for this access method. -->
<GOK:rate name="movehighlighter" stringvalue="switch1" />
<GOK:rate name="select" stringvalue="switch3" />
- <GOK:rate name="feedbackmovement" stringvalue="" />
+ <GOK:rate name="feedbackmovement" stringvalue="none" />
<GOK:rate name="feedbackselection" stringvalue="key_flashing" />
<GOK:rate name="autorepeat" value="0" />
<GOK:rate name="repeatrate" value="30" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]