[MonoDevelop] Rework of SourceEditor,
SyntaxHilighting preferences panel
Muthiah Annamalai
muthus_post at yahoo.com
Sat Jan 28 23:49:55 EST 2006
Hi,
Currently, the SourceEditor, SyntaxHilighting preferences panel, has
a combo box to choose the list of languages and their syntax hiliting
properties.
I thought if you had a treeview instead of this combo box, you wouldnt
hide the UI, and make it more intuitive for the user to choose his/her
languages.
A Rework of SourceEditor, SyntaxHilighting preferences panel,
with screenshot is here:
http://students.uta.edu/StudentWebs/mx/mxa6471/mono/md-editor-prefs.png
patch file,
http://students.uta.edu/StudentWebs/mx/mxa6471/mono/md.patch
Thanks
Muthu
Im attaching the patch here:
Index: Extras/MonoDevelop.SourceEditor/EditorBindings.glade
===================================================================
--- Extras/MonoDevelop.SourceEditor/EditorBindings.glade (revision 56206)
+++ Extras/MonoDevelop.SourceEditor/EditorBindings.glade (working copy)
@@ -1577,59 +1577,26 @@
<property name="spacing">6</property>
<child>
- <widget class="GtkComboBox" id="sourceLanguages">
+ <widget class="GtkHBox" id="hbox33">
<property name="visible">True</property>
- <signal name="changed" handler="OnLanguageSelected" last_modification_time="Sat, 02 Apr 2005 05:35:28 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label58">
- <property name="visible">True</property>
- <property name="label" translatable="yes"><b>Elements</b></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</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>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox32">
- <property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow5">
+ <widget class="GtkScrolledWindow" id="scrolledwindow6">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+ <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkTreeView" id="stylesTreeView">
+ <widget class="GtkTreeView" id="sourceLanguageList">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="headers_visible">False</property>
- <property name="rules_hint">False</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">True</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
</widget>
@@ -1643,99 +1610,23 @@
</child>
<child>
- <widget class="GtkVBox" id="vbox62">
+ <widget class="GtkVBox" id="vbox65">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">0</property>
<child>
- <widget class="GtkToggleButton" id="boldToggle">
+ <widget class="GtkVBox" id="vbox66">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-bold</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_HALF</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:07 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkToggleButton" id="italicToggle">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-italic</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_HALF</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:23 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkToggleButton" id="underlineToggle">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-underline</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_HALF</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:38 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkToggleButton" id="strikeToggle">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-strikethrough</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_HALF</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:53 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox63">
- <property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
- <widget class="GtkLabel" id="label59">
+ <widget class="GtkLabel" id="label58">
<property name="visible">True</property>
- <property name="label" translatable="yes">Color:</property>
+ <property name="label" translatable="yes"><b>Elements</b></property>
<property name="use_underline">False</property>
- <property name="use_markup">False</property>
+ <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
@@ -1752,61 +1643,242 @@
</child>
<child>
- <widget class="GtkColorButton" id="fgColorButton">
+ <widget class="GtkHBox" id="hbox32">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="use_alpha">False</property>
- <property name="focus_on_click">True</property>
- <signal name="color_set" handler="OnColorSet" last_modification_time="Sat, 02 Apr 2005 17:17:34 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
- <child>
- <widget class="GtkVBox" id="vbox64">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow5">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
- <child>
- <widget class="GtkLabel" id="label60">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Background:</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>
+ <child>
+ <widget class="GtkTreeView" id="stylesTreeView">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</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="GtkVBox" id="vbox62">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkToggleButton" id="boldToggle">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-bold</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_HALF</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:07 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToggleButton" id="italicToggle">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-italic</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_HALF</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:23 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToggleButton" id="underlineToggle">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-underline</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_HALF</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:38 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkToggleButton" id="strikeToggle">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-strikethrough</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_HALF</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <signal name="toggled" handler="OnButtonToggled" last_modification_time="Sat, 02 Apr 2005 17:18:53 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox63">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label59">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Color:</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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkColorButton" id="fgColorButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="color_set" handler="OnColorSet" last_modification_time="Sat, 02 Apr 2005 17:17:34 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</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="GtkVBox" id="vbox64">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label60">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Background:</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>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkColorButton" id="bgColorButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="focus_on_click">True</property>
+ <signal name="color_set" handler="OnColorSet" last_modification_time="Sat, 02 Apr 2005 17:17:48 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkColorButton" id="bgColorButton">
+ <widget class="GtkButton" id="restoreDefaultButton">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="use_alpha">False</property>
+ <property name="label" translatable="yes">Restore default</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
- <signal name="color_set" handler="OnColorSet" last_modification_time="Sat, 02 Apr 2005 17:17:48 GMT"/>
+ <signal name="clicked" handler="OnRestoreClicked" last_modification_time="Sat, 02 Apr 2005 06:54:14 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
@@ -1817,42 +1889,24 @@
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
-
- <child>
- <widget class="GtkButton" id="restoreDefaultButton">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Restore default</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="OnRestoreClicked" last_modification_time="Sat, 02 Apr 2005 06:54:14 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
</widget>
<packing>
<property name="padding">0</property>
Index: Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor.Gui.OptionPanels/SyntaxHighlightingPanel.cs
===================================================================
--- Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor.Gui.OptionPanels/SyntaxHighlightingPanel.cs (revision 56206)
+++ Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor.Gui.OptionPanels/SyntaxHighlightingPanel.cs (working copy)
@@ -32,7 +32,7 @@
class SyntaxHighlightingPanelWidget : GladeWidgetExtract
{
[Glade.Widget] CheckButton enableSyntaxHighlighting;
- [Glade.Widget] ComboBox sourceLanguages;
+ [Glade.Widget] Gtk.TreeView sourceLanguageList;
[Glade.Widget] Gtk.TreeView stylesTreeView;
[Glade.Widget] ToggleButton boldToggle;
[Glade.Widget] ToggleButton italicToggle;
@@ -43,7 +43,7 @@
[Glade.Widget] Button restoreDefaultButton;
[Glade.Widget] VBox childrenVBox;
- SourceViewService svs = (SourceViewService) ServiceManager.GetService (typeof (SourceViewService));
+ SourceViewService svs = (SourceViewService)ServiceManager.GetService (typeof (SourceViewService));
SourceLanguage currentLanguage;
SourceTagStyle currentStyle;
string styleid;
@@ -55,15 +55,14 @@
// add available sourceLanguages
ListStore store = new ListStore (typeof (string));
foreach (SourceLanguage sl in svs.AvailableLanguages)
+ {
store.AppendValues (sl.Name);
+ }
store.SetSortColumnId (0, SortType.Ascending);
- sourceLanguages.Model = store;
+ sourceLanguageList.Model = store;
+ sourceLanguageList.AppendColumn("Languages",new CellRendererText(),"text",0);
+ sourceLanguageList.Selection.Changed += new EventHandler (OnLanguageSelected);
- CellRendererText cr = new CellRendererText ();
- sourceLanguages.PackStart (cr, true);
- sourceLanguages.AddAttribute (cr, "text", 0);
- sourceLanguages.Active = 0;
-
stylesTreeView.AppendColumn ("styles", new CellRendererText (), "text", 0);
stylesTreeView.Selection.Changed += new EventHandler (OnStyleChanged);
}
@@ -135,8 +135,11 @@
private void OnLanguageSelected (object sender, EventArgs a)
{
TreeIter iter;
- if (sourceLanguages.GetActiveIter (out iter)) {
- SetCurrentLanguage ((string) sourceLanguages.Model.GetValue (iter, 0));
+ TreeModel model;
+ TreeSelection selection = sender as TreeSelection;
+
+ if (selection.GetSelected (out model, out iter)) {
+ SetCurrentLanguage ((string) (string) model.GetValue (iter,0));
}
}
Index: Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor/SourceViewService.cs
===================================================================
--- Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor/SourceViewService.cs (revision 56206)
+++ Extras/MonoDevelop.SourceEditor/MonoDevelop.SourceEditor/SourceViewService.cs (working copy)
@@ -23,14 +23,14 @@
{
foreach (SourceLanguage sl in AvailableLanguages)
{
if (sl.Name == name)
return sl;
}
// not found
return null;
}
public SourceLanguage GetLanguageFromMimeType (string mimetype)
{
return slm.GetLanguageFromMimeType (mimetype);
}
---------------------------------
Yahoo! Autos. Looking for a sweet ride? Get pricing, reviews, & more on new and used cars.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodevelop-list/attachments/20060128/c7e518c0/attachment-0001.html
More information about the Monodevelop-list
mailing list