Added tab-key-action setting

master
Yevgen Muntyan 2006-04-25 00:10:36 -05:00
parent 50a7ed93df
commit f41112a35a
9 changed files with 638 additions and 250 deletions

View File

@ -291,16 +291,16 @@
</kdevdoctreeview>
<kdevfilecreate>
<filetypes>
<type icon="source" ext="g" name="GAP source" create="template" >
<type icon="source" ext="g" create="template" name="GAP source" >
<descr>A new empty GAP source file</descr>
</type>
<type icon="source_cpp" ext="cpp" name="C++ Source" create="template" >
<type icon="source_cpp" ext="cpp" create="template" name="C++ Source" >
<descr>A new empty C++ file.</descr>
</type>
<type icon="source_h" ext="h" name="C/C++ Header" create="template" >
<type icon="source_h" ext="h" create="template" name="C/C++ Header" >
<descr>A new empty header file for C/C++.</descr>
</type>
<type icon="source_c" ext="c" name="C Source" create="template" >
<type icon="source_c" ext="c" create="template" name="C Source" >
<descr>A new empty C file.</descr>
</type>
</filetypes>

View File

@ -5,7 +5,7 @@
<widget class="GtkWindow" id="window">
<property name="visible">True</property>
<property name="title" translatable="yes">window1</property>
<property name="title">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
@ -70,14 +70,278 @@
<widget class="GtkCheckButton" id="smarthome">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Smart Home and End</property>
<property name="label">Smart Home and End</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">False</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="smart_home_end" last_modification_time="Wed, 14 Sep 2005 09:40:47 GMT"/>
<signal name="moo_prefs_key" handler="smart_home_end"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label">Tab key:</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</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>
<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">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">6</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkRadioButton" id="tab_inserts_tab">
<property name="visible">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="tab_key_action" last_modification_time="Tue, 25 Apr 2006 04:34:42 GMT"/>
<signal name="moo_prefs_value" handler="do-nothing" last_modification_time="Tue, 25 Apr 2006 04:35:27 GMT"/>
<child>
<widget class="GtkLabel" id="label156">
<property name="visible">True</property>
<property name="label">Moves input focus</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>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="tab_indents">
<property name="visible">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">tab_inserts_tab</property>
<signal name="moo_prefs_key" handler="tab_key_action" last_modification_time="Tue, 25 Apr 2006 04:36:32 GMT"/>
<signal name="moo_prefs_value" handler="indent" last_modification_time="Tue, 25 Apr 2006 04:36:49 GMT"/>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label">Indents text</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>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="tab_placeholder">
<property name="visible">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">tab_inserts_tab</property>
<signal name="moo_prefs_key" handler="tab_key_action" last_modification_time="Tue, 25 Apr 2006 04:37:01 GMT"/>
<signal name="moo_prefs_value" handler="find-placeholder" last_modification_time="Tue, 25 Apr 2006 04:37:19 GMT"/>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label">Moves cursor to next placeholder</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>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label64">
<property name="visible">True</property>
<property name="label">Keyboard</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="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame38">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkAlignment" id="alignment251">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">3</property>
<property name="left_padding">3</property>
<property name="right_padding">3</property>
<child>
<widget class="GtkVBox" id="vbox91">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkCheckButton" id="enable_auto_indent">
<property name="visible">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="auto_indent" last_modification_time="Tue, 25 Apr 2006 04:37:59 GMT"/>
<child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label">Enable auto indentation</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>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -90,14 +354,14 @@
<widget class="GtkCheckButton" id="usespaces">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Use spaces to indent</property>
<property name="label">Use spaces to indent</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">False</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="spaces_instead_of_tabs" last_modification_time="Wed, 14 Sep 2005 09:41:18 GMT"/>
<signal name="moo_prefs_key" handler="spaces_instead_of_tabs"/>
</widget>
<packing>
<property name="padding">0</property>
@ -106,17 +370,29 @@
</packing>
</child>
<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">1</property>
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">6</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">3</property>
<signal name="moo_sensitive" handler="usespaces" last_modification_time="Thu, 08 Dec 2005 03:50:41 GMT"/>
<signal name="moo_sensitive" handler="usespaces"/>
<child>
<widget class="GtkLabel" id="label32">
<property name="visible">True</property>
<property name="label" translatable="yes">Tab key inserts</property>
<property name="label">Indent width:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -150,7 +426,7 @@
<property name="snap_to_ticks">False</property>
<property name="wrap">False</property>
<property name="adjustment">4 1 100 1 10 10</property>
<signal name="moo_prefs_key" handler="indent_width" last_modification_time="Thu, 08 Dec 2005 14:12:42 GMT"/>
<signal name="moo_prefs_key" handler="indent_width"/>
</widget>
<packing>
<property name="padding">0</property>
@ -162,7 +438,7 @@
<child>
<widget class="GtkLabel" id="label96">
<property name="visible">True</property>
<property name="label" translatable="yes">spaces</property>
<property name="label">spaces</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -184,6 +460,45 @@
</packing>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="backspace_indents">
<property name="visible">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="backspace_indents" last_modification_time="Tue, 25 Apr 2006 04:38:28 GMT"/>
<child>
<widget class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label">Backspace key indents</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>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
@ -196,9 +511,9 @@
</child>
<child>
<widget class="GtkLabel" id="label64">
<widget class="GtkLabel" id="label641">
<property name="visible">True</property>
<property name="label" translatable="yes">Editing</property>
<property name="label">Indentation</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -226,14 +541,14 @@
</child>
<child>
<widget class="GtkFrame" id="frame25">
<widget class="GtkFrame" id="frame251">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkAlignment" id="alignment37">
<widget class="GtkAlignment" id="alignment371">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@ -245,14 +560,15 @@
<property name="right_padding">3</property>
<child>
<widget class="GtkVBox" id="vbox19">
<widget class="GtkVBox" id="vbox191">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkHBox" id="hbox11">
<widget class="GtkHBox" id="hbox111">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
@ -260,14 +576,14 @@
<widget class="GtkCheckButton" id="auto_save">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Auto save every </property>
<property name="label">Auto save every </property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">False</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="auto_save" last_modification_time="Wed, 14 Sep 2005 09:42:58 GMT"/>
<signal name="moo_prefs_key" handler="auto_save"/>
</widget>
<packing>
<property name="padding">0</property>
@ -287,8 +603,8 @@
<property name="snap_to_ticks">False</property>
<property name="wrap">False</property>
<property name="adjustment">1 1 100 1 10 10</property>
<signal name="moo_prefs_key" handler="auto_save_interval" last_modification_time="Wed, 14 Sep 2005 09:43:08 GMT"/>
<signal name="moo_sensitive" handler="auto_save" last_modification_time="Sat, 19 Mar 2005 05:29:04 GMT"/>
<signal name="moo_sensitive" handler="auto_save"/>
<signal name="moo_prefs_key" handler="auto_save_interval"/>
</widget>
<packing>
<property name="padding">0</property>
@ -300,7 +616,7 @@
<child>
<widget class="GtkLabel" id="auto_save_label">
<property name="visible">True</property>
<property name="label" translatable="yes"> minutes</property>
<property name="label"> minutes</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -314,7 +630,7 @@
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<signal name="moo_sensitive" handler="auto_save" last_modification_time="Sat, 19 Mar 2005 05:37:41 GMT"/>
<signal name="moo_sensitive" handler="auto_save"/>
</widget>
<packing>
<property name="padding">0</property>
@ -331,17 +647,17 @@
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton1">
<widget class="GtkCheckButton" id="checkbutton11">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Make backups</property>
<property name="label">Make backups</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="make_backups" last_modification_time="Thu, 08 Dec 2005 14:13:29 GMT"/>
<signal name="moo_prefs_key" handler="make_backups"/>
</widget>
<packing>
<property name="padding">0</property>
@ -351,17 +667,17 @@
</child>
<child>
<widget class="GtkCheckButton" id="checkbutton2">
<widget class="GtkCheckButton" id="checkbutton21">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Remove trailing spaces</property>
<property name="label">Remove trailing spaces</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="strip" last_modification_time="Thu, 08 Dec 2005 14:13:46 GMT"/>
<signal name="moo_prefs_key" handler="strip"/>
</widget>
<packing>
<property name="padding">0</property>
@ -375,9 +691,9 @@
</child>
<child>
<widget class="GtkLabel" id="label95">
<widget class="GtkLabel" id="label951">
<property name="visible">True</property>
<property name="label" translatable="yes">Saving</property>
<property name="label">Saving</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -405,14 +721,14 @@
</child>
<child>
<widget class="GtkFrame" id="frame27">
<widget class="GtkFrame" id="frame271">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkAlignment" id="alignment39">
<widget class="GtkAlignment" id="alignment391">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@ -424,21 +740,21 @@
<property name="right_padding">3</property>
<child>
<widget class="GtkVBox" id="vbox22">
<widget class="GtkVBox" id="vbox221">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkHBox" id="hbox13">
<widget class="GtkHBox" id="hbox131">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkLabel" id="label102">
<widget class="GtkLabel" id="label1021">
<property name="visible">True</property>
<property name="label" translatable="yes">Default language: </property>
<property name="label">Default language: </property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -493,9 +809,9 @@
</child>
<child>
<widget class="GtkLabel" id="label101">
<widget class="GtkLabel" id="label1011">
<property name="visible">True</property>
<property name="label" translatable="yes">Misc</property>
<property name="label">Misc</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -529,9 +845,9 @@
</child>
<child>
<widget class="GtkLabel" id="label21">
<widget class="GtkLabel" id="label211">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="label">General</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -552,13 +868,13 @@
</child>
<child>
<widget class="GtkVBox" id="vbox12">
<widget class="GtkVBox" id="vbox121">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkFrame" id="frame18">
<widget class="GtkFrame" id="frame181">
<property name="border_width">3</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
@ -566,7 +882,7 @@
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkAlignment" id="alignment28">
<widget class="GtkAlignment" id="alignment281">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@ -578,7 +894,7 @@
<property name="right_padding">3</property>
<child>
<widget class="GtkVBox" id="vbox13">
<widget class="GtkVBox" id="vbox131">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
@ -587,14 +903,14 @@
<widget class="GtkCheckButton" id="enable_wrapping">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Enable text wrapping</property>
<property name="label">Enable text wrapping</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="wrapping_enable" last_modification_time="Wed, 14 Sep 2005 09:43:32 GMT"/>
<signal name="moo_prefs_key" handler="wrapping_enable"/>
</widget>
<packing>
<property name="padding">0</property>
@ -607,15 +923,15 @@
<widget class="GtkCheckButton" id="dont_split_words">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Do not split words</property>
<property name="label">Do not split words</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="wrapping_dont_split_words" last_modification_time="Wed, 14 Sep 2005 09:43:46 GMT"/>
<signal name="moo_sensitive" handler="enable_wrapping" last_modification_time="Sat, 19 Mar 2005 05:45:36 GMT"/>
<signal name="moo_sensitive" handler="enable_wrapping"/>
<signal name="moo_prefs_key" handler="wrapping_dont_split_words"/>
</widget>
<packing>
<property name="padding">0</property>
@ -629,9 +945,9 @@
</child>
<child>
<widget class="GtkLabel" id="label70">
<widget class="GtkLabel" id="label701">
<property name="visible">True</property>
<property name="label" translatable="yes">Text wrapping</property>
<property name="label">Text wrapping</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -688,14 +1004,14 @@
<widget class="GtkCheckButton" id="checkbutton5">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Enable syntax highlighting</property>
<property name="label">Enable syntax highlighting</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="enable_highlighting" last_modification_time="Thu, 08 Dec 2005 16:30:11 GMT"/>
<signal name="moo_prefs_key" handler="enable_highlighting"/>
</widget>
<packing>
<property name="padding">0</property>
@ -708,14 +1024,14 @@
<widget class="GtkCheckButton" id="checkbutton6">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Highlight matching brackets</property>
<property name="label">Highlight matching brackets</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="highlight_matching_brackets" last_modification_time="Thu, 08 Dec 2005 14:16:58 GMT"/>
<signal name="moo_prefs_key" handler="highlight_matching_brackets"/>
</widget>
<packing>
<property name="padding">0</property>
@ -728,14 +1044,14 @@
<widget class="GtkCheckButton" id="checkbutton7">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Highlight mismatching brackets</property>
<property name="label">Highlight mismatching brackets</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="highlight_mismatching_brackets" last_modification_time="Thu, 08 Dec 2005 14:17:09 GMT"/>
<signal name="moo_prefs_key" handler="highlight_mismatching_brackets"/>
</widget>
<packing>
<property name="padding">0</property>
@ -748,14 +1064,14 @@
<widget class="GtkCheckButton" id="checkbutton9">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Highlight current line</property>
<property name="label">Highlight current line</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="highlight_current_line" last_modification_time="Thu, 08 Dec 2005 16:30:32 GMT"/>
<signal name="moo_prefs_key" handler="highlight_current_line"/>
</widget>
<packing>
<property name="padding">0</property>
@ -771,7 +1087,7 @@
<child>
<widget class="GtkLabel" id="label98">
<property name="visible">True</property>
<property name="label" translatable="yes">Highlighting</property>
<property name="label">Highlighting</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -828,14 +1144,14 @@
<widget class="GtkCheckButton" id="show_line_numbers">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Show line numbers</property>
<property name="label">Show line numbers</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="show_line_numbers" last_modification_time="Wed, 14 Sep 2005 09:44:01 GMT"/>
<signal name="moo_prefs_key" handler="show_line_numbers"/>
</widget>
<packing>
<property name="padding">0</property>
@ -848,14 +1164,14 @@
<widget class="GtkCheckButton" id="checkbutton3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Show tabs</property>
<property name="label">Show tabs</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="show_tabs" last_modification_time="Thu, 08 Dec 2005 14:17:21 GMT"/>
<signal name="moo_prefs_key" handler="show_tabs"/>
</widget>
<packing>
<property name="padding">0</property>
@ -868,14 +1184,14 @@
<widget class="GtkCheckButton" id="checkbutton4">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Show trailing spaces</property>
<property name="label">Show trailing spaces</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="show_trailing_spaces" last_modification_time="Thu, 08 Dec 2005 14:17:33 GMT"/>
<signal name="moo_prefs_key" handler="show_trailing_spaces"/>
</widget>
<packing>
<property name="padding">0</property>
@ -891,7 +1207,7 @@
<child>
<widget class="GtkLabel" id="label73">
<property name="visible">True</property>
<property name="label" translatable="yes">Misc</property>
<property name="label">Misc</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -927,7 +1243,7 @@
<child>
<widget class="GtkLabel" id="label62">
<property name="visible">True</property>
<property name="label" translatable="yes">View</property>
<property name="label">View</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -957,14 +1273,14 @@
<widget class="GtkCheckButton" id="use_default_font">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Use default theme font</property>
<property name="label">Use default theme font</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<signal name="moo_prefs_key" handler="use_default_font" last_modification_time="Thu, 08 Dec 2005 14:17:50 GMT"/>
<signal name="moo_prefs_key" handler="use_default_font"/>
</widget>
<packing>
<property name="padding">0</property>
@ -985,7 +1301,7 @@
<child>
<widget class="GtkLabel" id="label99">
<property name="visible">True</property>
<property name="label" translatable="yes">Font:</property>
<property name="label">Font:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -999,14 +1315,14 @@
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
<signal name="moo_sensitive" handler="use_default_font" object="invert" last_modification_time="Thu, 08 Dec 2005 14:18:41 GMT"/>
<signal name="moo_sensitive" handler="use_default_font" object="invert"/>
</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="x_options">fill</property>
<property name="x_options"></property>
<property name="y_options"></property>
</packing>
</child>
@ -1020,8 +1336,8 @@
<property name="use_font">True</property>
<property name="use_size">True</property>
<property name="focus_on_click">True</property>
<signal name="moo_prefs_key" handler="font" last_modification_time="Thu, 08 Dec 2005 14:18:12 GMT"/>
<signal name="moo_sensitive" handler="use_default_font" object="invert" last_modification_time="Thu, 08 Dec 2005 14:18:55 GMT"/>
<signal name="moo_sensitive" handler="use_default_font" object="invert"/>
<signal name="moo_prefs_key" handler="font"/>
</widget>
<packing>
<property name="left_attach">1</property>
@ -1035,7 +1351,7 @@
<child>
<widget class="GtkLabel" id="label100">
<property name="visible">True</property>
<property name="label" translatable="yes">Color scheme:</property>
<property name="label">Color scheme:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1055,7 +1371,7 @@
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="x_options"></property>
<property name="y_options"></property>
</packing>
</child>
@ -1075,7 +1391,7 @@ gvim
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
@ -1095,7 +1411,7 @@ gvim
<child>
<widget class="GtkLabel" id="label97">
<property name="visible">True</property>
<property name="label" translatable="yes">Font and colors</property>
<property name="label">Font and colors</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>

View File

@ -929,8 +929,6 @@ static gboolean handle_backspace (MooTextView *view,
GdkEventKey *event);
static gboolean handle_enter (MooTextView *view,
GdkEventKey *event);
static gboolean handle_shift_tab (MooTextView *view,
GdkEventKey *event);
static gboolean handle_ctrl_up (MooTextView *view,
GdkEventKey *event,
gboolean up);
@ -988,7 +986,7 @@ _moo_text_view_key_press_event (GtkWidget *widget,
/* TODO TODO stupid X and gtk !!! */
case GDK_ISO_Left_Tab:
case GDK_KP_Tab:
handled = handle_shift_tab (view, event);
handled = handle_tab (view, event);
break;
}
}
@ -1085,42 +1083,42 @@ set_invisible_cursor (GdkWindow *window)
}
static void
move_focus (GtkWidget *widget,
GtkDirectionType direction)
static gboolean
tab_unindent (MooTextView *view)
{
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
g_signal_emit_by_name (toplevel, "move-focus", direction);
GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
GtkTextIter start, end;
int first_line, last_line;
if (!view->priv->indenter)
return FALSE;
gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
first_line = gtk_text_iter_get_line (&start);
last_line = gtk_text_iter_get_line (&end);
if (gtk_text_iter_starts_line (&end) && first_line != last_line)
last_line -= 1;
gtk_text_buffer_begin_user_action (buffer);
moo_indenter_shift_lines (view->priv->indenter, buffer, first_line, last_line, -1);
gtk_text_buffer_end_user_action (buffer);
gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (view),
gtk_text_buffer_get_insert (buffer));
return TRUE;
}
static gboolean
handle_tab (MooTextView *view,
GdkEventKey *event)
tab_indent (MooTextView *view)
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
GtkTextIter insert, bound, start, end;
gboolean starts_line, insert_last, has_selection;
int first_line, last_line;
switch (view->priv->tab_key_action)
{
case MOO_TEXT_TAB_KEY_DO_NOTHING:
move_focus (GTK_WIDGET (view),
event->state & GDK_SHIFT_MASK ?
GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD);
return TRUE;
case MOO_TEXT_TAB_KEY_FIND_PLACEHOLDER:
if (event->state & GDK_SHIFT_MASK)
moo_text_view_prev_placeholder (view);
else
moo_text_view_next_placeholder (view);
return TRUE;
case MOO_TEXT_TAB_KEY_INDENT:
break;
}
if (!view->priv->indenter)
return FALSE;
@ -1174,32 +1172,41 @@ handle_tab (MooTextView *view,
}
static gboolean
handle_shift_tab (MooTextView *view,
G_GNUC_UNUSED GdkEventKey *event)
static void
move_focus (GtkWidget *widget,
GtkDirectionType direction)
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
GtkTextIter start, end;
int first_line, last_line;
GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
g_signal_emit_by_name (toplevel, "move-focus", direction);
}
if (!view->priv->shift_tab_unindents || !view->priv->indenter)
return FALSE;
gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
first_line = gtk_text_iter_get_line (&start);
last_line = gtk_text_iter_get_line (&end);
if (gtk_text_iter_starts_line (&end) && first_line != last_line)
last_line -= 1;
gtk_text_buffer_begin_user_action (buffer);
moo_indenter_shift_lines (view->priv->indenter, buffer, first_line, last_line, -1);
gtk_text_buffer_end_user_action (buffer);
gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (view),
gtk_text_buffer_get_insert (buffer));
static gboolean
handle_tab (MooTextView *view,
GdkEventKey *event)
{
switch (view->priv->tab_key_action)
{
case MOO_TEXT_TAB_KEY_DO_NOTHING:
move_focus (GTK_WIDGET (view),
event->state & GDK_SHIFT_MASK ?
GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD);
return TRUE;
case MOO_TEXT_TAB_KEY_FIND_PLACEHOLDER:
if (event->state & GDK_SHIFT_MASK)
moo_text_view_prev_placeholder (view);
else
moo_text_view_next_placeholder (view);
return TRUE;
case MOO_TEXT_TAB_KEY_INDENT:
if (event->state & GDK_SHIFT_MASK)
return tab_unindent (view);
else
return tab_indent (view);
}
g_return_val_if_reached (FALSE);
}
@ -1268,7 +1275,7 @@ handle_enter (MooTextView *view,
GtkTextIter start, end;
gboolean has_selection;
if (!view->priv->indenter)
if (!view->priv->indenter || !view->priv->enter_indents)
return FALSE;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));

View File

@ -62,6 +62,10 @@ _moo_edit_init_settings (void)
NEW_KEY_BOOL (MOO_EDIT_PREFS_SPACES_NO_TABS, FALSE);
NEW_KEY_INT (MOO_EDIT_PREFS_INDENT_WIDTH, 8);
NEW_KEY_ENUM (MOO_EDIT_PREFS_TAB_KEY_ACTION,
MOO_TYPE_TEXT_TAB_KEY_ACTION, MOO_TEXT_TAB_KEY_INDENT);
NEW_KEY_BOOL (MOO_EDIT_PREFS_AUTO_INDENT, TRUE);
NEW_KEY_BOOL (MOO_EDIT_PREFS_BACKSPACE_INDENTS, FALSE);
NEW_KEY_BOOL (MOO_EDIT_PREFS_AUTO_SAVE, FALSE);
NEW_KEY_INT (MOO_EDIT_PREFS_AUTO_SAVE_INTERVAL, 5);
@ -124,6 +128,16 @@ _moo_edit_apply_settings (MooEdit *edit)
"draw-tabs", get_bool (MOO_EDIT_PREFS_SHOW_TABS),
"draw-trailing-spaces", get_bool (MOO_EDIT_PREFS_SHOW_TRAILING_SPACES),
"quick-search-flags", get_flags (MOO_EDIT_PREFS_QUICK_SEARCH_FLAGS),
"tab-key-action", get_enum (MOO_EDIT_PREFS_TAB_KEY_ACTION),
"auto-indent", get_bool (MOO_EDIT_PREFS_AUTO_INDENT),
"backspace-indents", get_bool (MOO_EDIT_PREFS_BACKSPACE_INDENTS),
NULL);
moo_edit_config_set (edit->config,
"indent-use-tabs", MOO_EDIT_CONFIG_SOURCE_PREFS,
!get_bool (MOO_EDIT_PREFS_SPACES_NO_TABS),
"indent-width", MOO_EDIT_CONFIG_SOURCE_PREFS,
get_int (MOO_EDIT_PREFS_INDENT_WIDTH),
NULL);
if (get_bool (MOO_EDIT_PREFS_WRAP_ENABLE))

View File

@ -30,8 +30,11 @@ const char *moo_edit_setting (const char *setting_name);
#define MOO_EDIT_PREFS_DEFAULT_LANG "default_lang"
#define MOO_EDIT_PREFS_TAB_KEY_ACTION "tab_key_action"
#define MOO_EDIT_PREFS_SPACES_NO_TABS "spaces_instead_of_tabs"
#define MOO_EDIT_PREFS_INDENT_WIDTH "indent_width"
#define MOO_EDIT_PREFS_AUTO_INDENT "auto_indent"
#define MOO_EDIT_PREFS_BACKSPACE_INDENTS "backspace_indents"
#define MOO_EDIT_PREFS_AUTO_SAVE "auto_save"
#define MOO_EDIT_PREFS_AUTO_SAVE_INTERVAL "auto_save_interval"

View File

@ -125,9 +125,6 @@ struct _MooTextViewPrivate {
/* Indentation
/*/
MooIndenter *indenter;
gboolean tab_indents;
gboolean tab_inserts_indent_chars;
gboolean shift_tab_unindents;
gboolean backspace_indents;
gboolean enter_indents;
MooTextTabKeyAction tab_key_action;

View File

@ -183,7 +183,11 @@ static guint signals[LAST_SIGNAL];
enum {
PROP_0,
PROP_BUFFER,
PROP_INDENTER,
PROP_AUTO_INDENT,
PROP_BACKSPACE_INDENTS,
PROP_HIGHLIGHT_CURRENT_LINE,
PROP_HIGHLIGHT_MATCHING_BRACKETS,
PROP_HIGHLIGHT_MISMATCHING_BRACKETS,
@ -450,6 +454,18 @@ static void moo_text_view_class_init (MooTextViewClass *klass)
MOO_TEXT_TAB_KEY_INDENT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (gobject_class,
PROP_AUTO_INDENT,
g_param_spec_boolean ("auto-indent",
"auto-indent", "auto-indent",
TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (gobject_class,
PROP_BACKSPACE_INDENTS,
g_param_spec_boolean ("backspace-indents",
"backspace-indents", "backspace-indents",
FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("expander-size",
"Expander Size",
@ -606,9 +622,8 @@ static void moo_text_view_init (MooTextView *view)
view->priv->last_search_stamp = -1;
view->priv->saved_cursor_visible = TRUE;
view->priv->tab_indents = TRUE;
view->priv->shift_tab_unindents = TRUE;
view->priv->backspace_indents = TRUE;
view->priv->tab_key_action = MOO_TEXT_TAB_KEY_INDENT;
view->priv->backspace_indents = FALSE;
view->priv->enter_indents = TRUE;
view->priv->ctrl_up_down_scrolls = TRUE;
view->priv->ctrl_page_up_down_scrolls = TRUE;
@ -621,13 +636,6 @@ static void moo_text_view_init (MooTextView *view)
view->priv->qs.flags = MOO_TEXT_SEARCH_CASELESS;
#if 0
gtk_drag_dest_unset (GTK_WIDGET (view));
gtk_drag_dest_set (GTK_WIDGET (view), 0, NULL, 0, GDK_ACTION_DEFAULT);
view->priv->targets = gtk_target_list_new (NULL, 0);
gtk_target_list_add_text_targets (view->priv->targets, DND_TARGET_TEXT);
#endif
name = g_strdup_printf ("moo-text-view-%p", view);
gtk_widget_set_name (GTK_WIDGET (view), name);
g_free (name);
@ -1051,6 +1059,16 @@ moo_text_view_set_property (GObject *object,
moo_text_view_set_tab_key_action (view, g_value_get_enum (value));
break;
case PROP_AUTO_INDENT:
view->priv->enter_indents = g_value_get_boolean (value);
g_object_notify (object, "auto-indent");
break;
case PROP_BACKSPACE_INDENTS:
view->priv->backspace_indents = g_value_get_boolean (value);
g_object_notify (object, "backspace-indents");
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@ -1071,92 +1089,77 @@ moo_text_view_get_property (GObject *object,
case PROP_BUFFER:
g_value_set_object (value, get_buffer (view));
break;
case PROP_INDENTER:
g_value_set_object (value, view->priv->indenter);
break;
case PROP_HIGHLIGHT_CURRENT_LINE:
g_value_set_boolean (value, view->priv->highlight_current_line);
break;
case PROP_HIGHLIGHT_MATCHING_BRACKETS:
g_object_get (get_buffer (view), "highlight-matching-brackets", &val, NULL);
g_value_set_boolean (value, val);
break;
case PROP_HIGHLIGHT_MISMATCHING_BRACKETS:
g_object_get (get_buffer (view), "highlight-mismatching-brackets", &val, NULL);
g_value_set_boolean (value, val);
break;
case PROP_CURRENT_LINE_COLOR_GDK:
g_value_set_boxed (value, &view->priv->current_line_color);
break;
case PROP_DRAW_TABS:
g_value_set_boolean (value, view->priv->draw_tabs != 0);
break;
case PROP_DRAW_TRAILING_SPACES:
g_value_set_boolean (value, view->priv->draw_trailing_spaces != 0);
break;
case PROP_HAS_TEXT:
g_value_set_boolean (value, moo_text_view_has_text (view));
break;
case PROP_HAS_SELECTION:
g_value_set_boolean (value, moo_text_view_has_selection (view));
break;
case PROP_CAN_UNDO:
g_value_set_boolean (value, moo_text_view_can_undo (view));
break;
case PROP_CAN_REDO:
g_value_set_boolean (value, moo_text_view_can_redo (view));
break;
case PROP_MANAGE_CLIPBOARD:
g_value_set_boolean (value, view->priv->manage_clipboard != 0);
break;
case PROP_SMART_HOME_END:
g_value_set_boolean (value, view->priv->smart_home_end != 0);
break;
case PROP_ENABLE_HIGHLIGHT:
g_value_set_boolean (value, moo_text_buffer_get_highlight (get_moo_buffer (view)));
break;
case PROP_SHOW_LINE_NUMBERS:
g_value_set_boolean (value, view->priv->show_line_numbers);
break;
case PROP_SHOW_SCROLLBAR_MARKS:
g_value_set_boolean (value, view->priv->show_scrollbar_marks);
break;
case PROP_SHOW_LINE_MARKS:
g_value_set_boolean (value, view->priv->show_line_marks);
break;
case PROP_ENABLE_FOLDING:
g_value_set_boolean (value, view->priv->enable_folding);
break;
case PROP_ENABLE_QUICK_SEARCH:
g_value_set_boolean (value, view->priv->qs.enable);
break;
case PROP_QUICK_SEARCH_FLAGS:
g_value_set_flags (value, view->priv->qs.flags);
break;
case PROP_TAB_KEY_ACTION:
g_value_set_enum (value, view->priv->tab_key_action);
break;
case PROP_AUTO_INDENT:
g_value_set_boolean (value, view->priv->enter_indents != 0);
break;
case PROP_BACKSPACE_INDENTS:
g_value_set_boolean (value, view->priv->backspace_indents != 0);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;

View File

@ -17,6 +17,7 @@
#include "mooutils/moocompat.h"
#include "mooutils/mooprefs.h"
#include "mooutils/mooprefsdialogpage.h"
#include "mooutils/mooutils-gobject.h"
#include <string.h>
@ -318,7 +319,15 @@ connect_signals (MooGladeXML *xml,
{
if (!strcmp (signal, "moo-prefs-key"))
return connect_prefs_key (xml, widget, handler, object, user_data);
else
if (!strcmp (signal, "moo-prefs-value"))
{
g_return_val_if_fail (GTK_IS_RADIO_BUTTON (widget), FALSE);
g_object_set_data_full (G_OBJECT (widget), "moo-prefs-value",
g_strdup (handler), g_free);
return TRUE;
}
return FALSE;
}
@ -447,6 +456,26 @@ setting_apply (GtkWidget *widget)
}
static int
radio_button_get_value (GtkWidget *button,
GType type)
{
const char *string;
GValue val;
string = g_object_get_data (G_OBJECT (button), "moo-prefs-value");
g_return_val_if_fail (string != NULL, -1);
val.g_type = 0;
g_value_init (&val, type);
if (moo_value_convert_from_string (string, &val))
return g_value_get_enum (&val);
g_return_val_if_reached (-1);
}
static gboolean
setting_get_value (GtkWidget *widget,
GValue *value)
@ -496,6 +525,22 @@ setting_get_value (GtkWidget *widget,
return TRUE;
}
}
else if (GTK_IS_RADIO_BUTTON (widget))
{
if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_ENUM))
{
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
{
int val = radio_button_get_value (widget, G_VALUE_TYPE (value));
g_value_set_enum (value, val);
return TRUE;
}
else
{
return FALSE;
}
}
}
else if (GTK_IS_TOGGLE_BUTTON (widget))
{
if (value->g_type == G_TYPE_BOOLEAN)
@ -562,6 +607,19 @@ static void setting_set_value (GtkWidget *widget,
return;
}
}
else if (GTK_IS_RADIO_BUTTON (widget))
{
if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_ENUM))
{
int val = g_value_get_enum (value);
int val_here = radio_button_get_value (widget, G_VALUE_TYPE (value));
if (val == val_here)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
return;
}
}
else if (GTK_IS_TOGGLE_BUTTON (widget))
{
if (value->g_type == G_TYPE_BOOLEAN)

View File

@ -68,16 +68,6 @@ void moo_prefs_dialog_page_bind_setting (MooPrefsDialogPage *page,
const char *setting,
GtkToggleButton *set_or_not);
void moo_prefs_dialog_page_bind_radio_setting
(MooPrefsDialogPage *page,
const char *setting,
GtkToggleButton **btns,
const char **cvals);
void moo_prefs_dialog_page_bind_radio (MooPrefsDialogPage *page,
const char *setting,
GtkToggleButton *btn,
const char *cval);
G_END_DECLS