[MonoDevelop] Implemented Configurable Key Bindings
Balaji Rao
balajirrao at gmail.com
Wed Jul 11 12:47:32 EDT 2007
On Fri, Jul 06, 2007 at 01:06:44PM +0200, Lluis Sanchez wrote:
> Hey, it looks like a good start ;)
> The only comment I can make now is that you should use Stetic instead of
> Glade for new windows.
>
> Lluis.
>
Hello, included as attachment is a patch whch implements conf key
bindings. I have used stetic for it. and now its almost stable. I
have fixed some bugs.
One question is that, should commands, which by default dont have a
shortcut, be allowed be assigned a shortcut?
Suggestions are welcome.
Regards,
Balaji Rao
> El dv 06 de 07 del 2007 a les 15:53 +0530, en/na Balaji Rao va escriure:
> > Hello ppl,
> >
> > I have almost implemented Configurable Key Bindings with a Option Panel.
> > I have not tested it extensively. I just hacked this up quickly.
> >
> > I will make it perfect soon after getting your comments on this.
> >
> > Things i plan to include are,
> >
> > * Configuration Profiles for some popular IDEs (eclipse, netbeans)
> > * Prevent conflicting configuiration
> >
> > Any suggestions are welcome..
> >
> > Regards,
> >
> > Balaji Rao
> > _______________________________________________
> > Monodevelop-list mailing list
> > Monodevelop-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/monodevelop-list
>
-------------- next part --------------
Index: Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/KeysBindingPanel.cs
===================================================================
--- Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/KeysBindingPanel.cs (revision 0)
+++ Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.OptionPanels/KeysBindingPanel.cs (revision 0)
@@ -0,0 +1,215 @@
+
+
+using System;
+using System.Collections;
+
+using MonoDevelop.Core.Gui.Dialogs;
+using MonoDevelop.Components.Commands;
+using Mono.Addins;
+using Gtk;
+
+namespace MonoDevelop.Ide.Gui.OptionPanels
+{
+ public partial class KeysBindingPanel : Gtk.Bin, IDialogPanel
+ {
+ ListStore keysStore;
+ Hashtable commands = new Hashtable();
+ Command selectedCommand;
+
+ /* Indicates whether the text in the accelEntry is a complete shortcut key */
+ private bool accelComplete=false;
+
+
+ bool ctrlActive=false;
+ bool altActive=false;
+ bool shiftActive=false;
+
+
+ /* Indicates the current position of the iter in the keystore. Used while editing the
+ accelEntry to reflect the changes in the treeview*/
+ TreeIter editIter;
+
+ public KeysBindingPanel()
+ {
+ this.Build();
+ }
+ public bool StorePanelContents()
+ {
+ return true;
+ }
+
+ public void LoadPanelContents()
+ {
+ keysStore = new ListStore(typeof(string),typeof(string));
+ keysTreeView.Model = keysStore;
+ keysTreeView.AppendColumn ("Command",new CellRendererText(),"text",0);
+ keysTreeView.AppendColumn ("Shortcut",new CellRendererText(),"text",1);
+ keysTreeView.Selection.Changed += new EventHandler(OnKeysTreeViewSelectionChange);
+
+ accelEntry.KeyPressEvent += new KeyPressEventHandler(OnAccelEntryKeyPress);
+ accelEntry.KeyReleaseEvent += new KeyReleaseEventHandler(OnAccelEntryKeyRelease);
+ updateButton.Clicked += new EventHandler(OnUpdateButtonClick);
+ // Populate the TreeView
+ object[] cmds =
+ AddinManager.GetExtensionObjects("/SharpDevelop/Commands");
+ foreach(object c in cmds) {
+ if (c is Command && ((Command)c).AccelKey !=null ) {
+ Command cmd = c as Command;
+ string label = cmd.Text.Replace("_",String.Empty);
+ string accel=String.Empty;
+ if (((Command)c).AccelKey !=null )
+ accel= cmd.AccelKey.Replace('|','+');
+ commands.Add(label,cmd);
+ keysStore.AppendValues(label,accel);
+ }
+ }
+ }
+ public void OnKeysTreeViewSelectionChange(object sender,EventArgs e) {
+ TreeSelection sel = sender as TreeSelection;
+ if (sender != null)
+ {
+ TreeIter iter;
+ TreeModel model = (TreeModel)keysStore;
+ accelComplete = false;
+ if (sel.GetSelected (out model, out iter)) {
+ accelEntry.Text = (string)model.GetValue (iter, 1);
+ string label = (string)model.GetValue (iter, 0);
+ selectedCommand = (Command)commands [label];
+ accelComplete = true;
+ editIter = iter;
+ }
+ }
+ }
+ [GLib.ConnectBefore]
+ public void OnAccelEntryKeyPress(object sender,KeyPressEventArgs e) {
+ Gdk.EventKey key = e.Event;
+ Gdk.Key k = key.Key;
+ if (accelComplete) {
+ accelEntry.Text = "";
+ altActive=false;
+ ctrlActive=false;
+ shiftActive=false;
+ accelComplete=false;
+ if (k.Equals(Gdk.Key.BackSpace)) {
+ e.RetVal=true;
+ return;
+ }
+ }
+
+ if (k.Equals(Gdk.Key.Control_L) || k.Equals(Gdk.Key.Control_R)) {
+ if (!ctrlActive) accelEntry.AppendText("Control+");
+ accelComplete = false;
+ } else if (k.Equals(Gdk.Key.Alt_L) || k.Equals(Gdk.Key.Alt_R)) {
+ if (!altActive) accelEntry.AppendText("Alt+");
+ accelComplete = false;
+ } else if (k.Equals(Gdk.Key.Shift_L) || k.Equals(Gdk.Key.Shift_R)) {
+ if (!shiftActive) accelEntry.AppendText("Shift+");
+ accelComplete = false;
+ } else {
+ if (k.Equals(Gdk.Key.Page_Down))
+ accelEntry.AppendText("Page_Down");
+ else
+ accelEntry.AppendText(k.ToString());
+ accelComplete=true;
+ }
+ e.RetVal=true;
+ }
+ public void OnAccelEntryKeyRelease(object sender,KeyReleaseEventArgs e) {
+ if (accelComplete == false) {
+ accelEntry.Text="";
+ }
+ }
+ public void OnUpdateButtonClick(object sender,EventArgs e) {
+ if (selectedCommand != null) {
+ selectedCommand.AccelKey = accelEntry.Text.Replace('+','|');
+ keysStore.SetValue(editIter,1,accelEntry.Text);
+ }
+ }
+
+#region Cut & Paste from abstract option panel
+ bool wasActivated = false;
+ bool isFinished = true;
+ object customizationObject = null;
+
+ public Widget Control {
+ get {
+ return this;
+ }
+ }
+
+ public virtual Gtk.Image Icon {
+ get {
+ return null;
+ }
+ }
+
+ public bool WasActivated {
+ get {
+ return wasActivated;
+ }
+ }
+
+ public virtual object CustomizationObject {
+ get {
+ return customizationObject;
+ }
+ set {
+ customizationObject = value;
+ OnCustomizationObjectChanged();
+ }
+ }
+
+ public virtual bool EnableFinish {
+ get {
+ return isFinished;
+ }
+ set {
+ if (isFinished != value) {
+ isFinished = value;
+ OnEnableFinishChanged();
+ }
+ }
+ }
+
+ public virtual bool ReceiveDialogMessage(DialogMessage message)
+ {
+ try {
+ switch (message) {
+ case DialogMessage.Activated:
+ if (!wasActivated) {
+ LoadPanelContents();
+ wasActivated = true;
+ }
+ break;
+ case DialogMessage.OK:
+ if (wasActivated) {
+ return StorePanelContents();
+ }
+ break;
+ }
+ } catch (Exception ex) {
+ Services.MessageService.ShowError (ex);
+ }
+
+ return true;
+ }
+
+
+ protected virtual void OnEnableFinishChanged()
+ {
+ if (EnableFinishChanged != null) {
+ EnableFinishChanged(this, null);
+ }
+ }
+ protected virtual void OnCustomizationObjectChanged()
+ {
+ if (CustomizationObjectChanged != null) {
+ CustomizationObjectChanged(this, null);
+ }
+ }
+
+ public event EventHandler CustomizationObjectChanged;
+ public event EventHandler EnableFinishChanged;
+#endregion
+ }
+}
\ No newline at end of file
Index: Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml
===================================================================
--- Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml (revision 81663)
+++ Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml (working copy)
@@ -888,6 +888,9 @@
<DialogPanel id = "SelectStyle"
_label = "Visual Style"
class = "MonoDevelop.Ide.Gui.OptionPanels.SelectStylePanel"/>
+ <DialogPanel id = "KeysBinding"
+ _label = "Key Bindings"
+ class = "MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel"/>
<DialogPanel id = "LoadSave"
_label = "Load/Save"
class = "MonoDevelop.Ide.Gui.OptionPanels.LoadSavePanel"/>
Index: Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp
===================================================================
--- Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp (revision 81663)
+++ Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp (working copy)
@@ -1,13 +1,13 @@
<Project name="MonoDevelop.Ide" fileversion="2.0" language="C#" clr-version="Net_2_0" ctype="DotNetProject">
<Configurations active="Debug">
<Configuration name="Debug" ctype="DotNetProjectConfiguration">
- <Output directory="../../../build/AddIns/" assembly="MonoDevelop.Ide" signAssembly="False" />
+ <Output directory="../../../build/AddIns/" assembly="MonoDevelop.Ide" />
<Build debugmode="True" target="Library" />
<Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" />
<CodeGeneration compiler="Csc" warninglevel="4" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
</Configuration>
<Configuration name="Release" ctype="DotNetProjectConfiguration">
- <Output directory="../../../build/AddIns/" assembly="MonoDevelop.Ide" signAssembly="False" />
+ <Output directory="../../../build/AddIns/" assembly="MonoDevelop.Ide" />
<Build debugmode="False" target="Library" />
<Execution runwithwarnings="True" consolepause="True" runtime="MsNet" clr-version="Net_2_0" />
<CodeGeneration compiler="Csc" warninglevel="4" optimize="True" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" generatexmldocumentation="False" ctype="CSharpCompilerParameters" />
@@ -299,6 +299,8 @@
<File name="./MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs" subtype="Code" buildaction="Compile" />
<File name="./MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs" subtype="Code" buildaction="Compile" />
<File name="./MonoDevelop.Ide.CodeTemplates/EditTemplateGroupDialog.cs" subtype="Code" buildaction="Compile" />
+ <File name="./MonoDevelop.Ide.Gui.OptionPanels/KeysBindingPanel.cs" subtype="Code" buildaction="Compile" />
+ <File name="./gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="False" refto="gecko-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=ccf7d78a55e9f021" />
@@ -313,13 +315,6 @@
<ProjectReference type="Gac" localcopy="False" refto="Mono.GetOptions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
<ProjectReference type="Gac" localcopy="False" refto="System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<ProjectReference type="Gac" localcopy="False" refto="glade-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Core" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Projects.Gui" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Documentation" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Components" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Dock" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Core.Gui" />
- <ProjectReference type="Project" localcopy="False" refto="MonoDevelop.Projects" />
<ProjectReference type="Assembly" localcopy="False" refto="../../../contrib/Mono.Addins.dll" />
<ProjectReference type="Gac" localcopy="True" refto="gtk-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<ProjectReference type="Gac" localcopy="True" refto="gdk-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
@@ -329,10 +324,18 @@
<ProjectReference type="Assembly" localcopy="False" refto="../../../contrib/Mono.Addins.Gui.dll" />
<ProjectReference type="Assembly" localcopy="False" refto="../../../contrib/Mono.Addins.Setup.dll" />
<ProjectReference type="Gac" localcopy="True" refto="gconf-sharp-peditors, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
- <ProjectReference type="Gac" localcopy="True" refto="gconf-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
- <ProjectReference type="Gac" localcopy="True" refto="gnome-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
- <ProjectReference type="Gac" localcopy="True" refto="gnome-vfs-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
- <ProjectReference type="Gac" localcopy="True" refto="gtkhtml-sharp, Version=2.8.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Projects.Gui.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Dock.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Projects.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/bin/MonoDevelop.Core.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Components.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Documentation.dll" />
+ <ProjectReference type="Assembly" localcopy="True" refto="../../../build/AddIns/MonoDevelop.Core.Gui.dll" />
+ <ProjectReference type="Gac" localcopy="True" refto="glib-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Gac" localcopy="True" refto="gconf-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Gac" localcopy="True" refto="gnome-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Gac" localcopy="True" refto="gnome-vfs-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <ProjectReference type="Gac" localcopy="True" refto="gtkhtml-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
</References>
<MonoDevelop.Autotools.MakefileInfo IntegrationEnabled="True" RelativeMakefileName="./Makefile.am" BuildTargetName="" CleanTargetName="" SyncReferences="True" IsAutotoolsProject="True" RelativeConfigureInPath="../../../">
<ExcludedFiles>
@@ -350,6 +353,7 @@
<ExportedWidgets>
<Widget>MonoDevelop.Ide.Gui.Dialogs.CombineEntryFeatureSelector</Widget>
<Widget>MonoDevelop.Ide.StandardHeaders.StandardHeaderPanel</Widget>
+ <Widget>MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel</Widget>
</ExportedWidgets>
</GtkDesignInfo>
<MonoDevelop.Gettext.TranslationInfo />
Index: Core/src/MonoDevelop.Ide/gtk-gui/objects.xml
===================================================================
--- Core/src/MonoDevelop.Ide/gtk-gui/objects.xml (revision 81663)
+++ Core/src/MonoDevelop.Ide/gtk-gui/objects.xml (working copy)
@@ -18,4 +18,17 @@
</itemgroup>
</signals>
</object>
+ <object type="MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel" palette-category="widget" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups>
+ <itemgroup label="KeysBindingPanel Properties">
+ <property name="EnableFinish" />
+ </itemgroup>
+ </itemgroups>
+ <signals>
+ <itemgroup label="KeysBindingPanel Signals">
+ <signal name="CustomizationObjectChanged" />
+ <signal name="EnableFinishChanged" />
+ </itemgroup>
+ </signals>
+ </object>
</objects>
\ No newline at end of file
Index: Core/src/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.cs
===================================================================
--- Core/src/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.cs (revision 0)
+++ Core/src/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.cs (revision 0)
@@ -0,0 +1,118 @@
+// ------------------------------------------------------------------------------
+// <autogenerated>
+// This code was generated by a tool.
+// Mono Runtime Version: 2.0.50727.42
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </autogenerated>
+// ------------------------------------------------------------------------------
+
+namespace MonoDevelop.Ide.Gui.OptionPanels {
+
+
+ public partial class KeysBindingPanel {
+
+ private Gtk.VBox vbox2;
+
+ private Gtk.ScrolledWindow scrolledwindow1;
+
+ private Gtk.TreeView keysTreeView;
+
+ private Gtk.HBox hbox1;
+
+ private Gtk.Label label1;
+
+ private Gtk.Entry accelEntry;
+
+ private Gtk.Button updateButton;
+
+ protected virtual void Build() {
+ Stetic.Gui.Initialize();
+ // Widget MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel
+ Stetic.BinContainer.Attach(this);
+ this.Name = "MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel";
+ // Container child MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.Gtk.Container+ContainerChild
+ this.vbox2 = new Gtk.VBox();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.scrolledwindow1 = new Gtk.ScrolledWindow();
+ this.scrolledwindow1.CanFocus = true;
+ this.scrolledwindow1.Name = "scrolledwindow1";
+ this.scrolledwindow1.VscrollbarPolicy = ((Gtk.PolicyType)(1));
+ this.scrolledwindow1.HscrollbarPolicy = ((Gtk.PolicyType)(1));
+ this.scrolledwindow1.ShadowType = ((Gtk.ShadowType)(1));
+ // Container child scrolledwindow1.Gtk.Container+ContainerChild
+ this.keysTreeView = new Gtk.TreeView();
+ this.keysTreeView.CanFocus = true;
+ this.keysTreeView.Name = "keysTreeView";
+ this.scrolledwindow1.Add(this.keysTreeView);
+ this.vbox2.Add(this.scrolledwindow1);
+ Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.vbox2[this.scrolledwindow1]));
+ w2.Position = 0;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.hbox1 = new Gtk.HBox();
+ this.hbox1.Name = "hbox1";
+ this.hbox1.Spacing = 6;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.label1 = new Gtk.Label();
+ this.label1.Name = "label1";
+ this.label1.LabelProp = Mono.Unix.Catalog.GetString("Edit Binding");
+ this.hbox1.Add(this.label1);
+ Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1]));
+ w3.Position = 0;
+ w3.Expand = false;
+ w3.Fill = false;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.accelEntry = new Gtk.Entry();
+ this.accelEntry.CanFocus = true;
+ this.accelEntry.Name = "accelEntry";
+ this.accelEntry.IsEditable = true;
+ this.accelEntry.InvisibleChar = '?';
+ this.hbox1.Add(this.accelEntry);
+ Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.hbox1[this.accelEntry]));
+ w4.Position = 1;
+ // Container child hbox1.Gtk.Box+BoxChild
+ this.updateButton = new Gtk.Button();
+ this.updateButton.CanFocus = true;
+ this.updateButton.Name = "updateButton";
+ this.updateButton.UseUnderline = true;
+ // Container child updateButton.Gtk.Container+ContainerChild
+ Gtk.Alignment w5 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
+ w5.Name = "GtkAlignment";
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ Gtk.HBox w6 = new Gtk.HBox();
+ w6.Name = "GtkHBox";
+ w6.Spacing = 2;
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ Gtk.Image w7 = new Gtk.Image();
+ w7.Name = "image15";
+ w7.Pixbuf = Stetic.IconLoader.LoadIcon("gtk-apply", 20);
+ w6.Add(w7);
+ // Container child GtkHBox.Gtk.Container+ContainerChild
+ Gtk.Label w9 = new Gtk.Label();
+ w9.Name = "GtkLabel";
+ w9.LabelProp = Mono.Unix.Catalog.GetString("Apply");
+ w9.UseUnderline = true;
+ w6.Add(w9);
+ w5.Add(w6);
+ this.updateButton.Add(w5);
+ this.hbox1.Add(this.updateButton);
+ Gtk.Box.BoxChild w13 = ((Gtk.Box.BoxChild)(this.hbox1[this.updateButton]));
+ w13.Position = 2;
+ w13.Expand = false;
+ w13.Fill = false;
+ this.vbox2.Add(this.hbox1);
+ Gtk.Box.BoxChild w14 = ((Gtk.Box.BoxChild)(this.vbox2[this.hbox1]));
+ w14.Position = 1;
+ w14.Expand = false;
+ w14.Fill = false;
+ this.Add(this.vbox2);
+ if ((this.Child != null)) {
+ this.Child.ShowAll();
+ }
+ this.Show();
+ }
+ }
+}
Index: Core/src/MonoDevelop.Ide/gtk-gui/gui.stetic
===================================================================
--- Core/src/MonoDevelop.Ide/gtk-gui/gui.stetic (revision 81663)
+++ Core/src/MonoDevelop.Ide/gtk-gui/gui.stetic (working copy)
@@ -1700,4 +1700,86 @@
</widget>
</child>
</widget>
+ <widget class="Gtk.Bin" id="MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel" design-size="322 296">
+ <property name="MemberName" />
+ <child>
+ <widget class="Gtk.VBox" id="vbox2">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.ScrolledWindow" id="scrolledwindow1">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="VscrollbarPolicy">Automatic</property>
+ <property name="HscrollbarPolicy">Automatic</property>
+ <property name="ShadowType">In</property>
+ <child>
+ <widget class="Gtk.TreeView" id="keysTreeView">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="HeadersClickable">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.HBox" id="hbox1">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.Label" id="label1">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Edit Binding</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Entry" id="accelEntry">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="IsEditable">True</property>
+ <property name="InvisibleChar">?</property>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Button" id="updateButton">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="Type">TextAndIcon</property>
+ <property name="Icon">stock:gtk-apply Button</property>
+ <property name="Label" translatable="yes">Apply</property>
+ <property name="UseUnderline">True</property>
+ <property name="IsDialogButton">False</property>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</stetic-interface>
\ No newline at end of file
Index: Core/src/MonoDevelop.Ide/Makefile.am
===================================================================
--- Core/src/MonoDevelop.Ide/Makefile.am (revision 81663)
+++ Core/src/MonoDevelop.Ide/Makefile.am (working copy)
@@ -6,16 +6,16 @@
$(GLADE_SHARP_LIBS) \
$(GNOME_SHARP_LIBS) \
$(GNOME_VFS_SHARP_LIBS) \
- $(GTK_SHARP_LIBS) \
$(GTKHTML_SHARP_LIBS) \
$(MONODOC_LIBS) \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Components.dll \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Core.Gui.dll \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Dock.dll \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Documentation.dll \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Projects.dll \
- -r:$(top_builddir)/build/AddIns/MonoDevelop.Projects.Gui.dll \
- -r:$(top_builddir)/build/bin/MonoDevelop.Core.dll \
+ -pkg:gtk-sharp \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Components.dll \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Core.Gui.dll \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Dock.dll \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Documentation.dll \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Projects.dll \
+ -r:$(top_srcdir)/build/AddIns/MonoDevelop.Projects.Gui.dll \
+ -r:$(top_srcdir)/build/bin/MonoDevelop.Core.dll \
-r:$(top_srcdir)/contrib/log4net.dll \
-r:$(top_srcdir)/contrib/Mono.Addins.dll \
-r:$(top_srcdir)/contrib/Mono.Addins.Gui.dll \
@@ -40,6 +40,7 @@
gtk-gui/MonoDevelop.Ide.Gui.Dialogs.NewProjectDialog.cs \
gtk-gui/MonoDevelop.Ide.Gui.Dialogs.OpenFileInSolutionDialog.cs \
gtk-gui/MonoDevelop.Ide.Gui.Dialogs.RenameItemDialog.cs \
+ gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.KeysBindingPanel.cs \
gtk-gui/MonoDevelop.Ide.NewHeaderTemplateDialog.cs \
gtk-gui/MonoDevelop.Ide.StandardHeaders.StandardHeaderPanel.cs \
MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs \
@@ -130,6 +131,7 @@
MonoDevelop.Ide.Gui.OptionPanels/BuildPanel.cs \
MonoDevelop.Ide.Gui.OptionPanels/CodeGenerationPanel.cs \
MonoDevelop.Ide.Gui.OptionPanels/ExternalToolPanel.cs \
+ MonoDevelop.Ide.Gui.OptionPanels/KeysBindingPanel.cs \
MonoDevelop.Ide.Gui.OptionPanels/LoadSavePanel.cs \
MonoDevelop.Ide.Gui.OptionPanels/SelectStylePanel.cs \
MonoDevelop.Ide.Gui.OptionPanels/TasksOptionsPanel.cs \
More information about the Monodevelop-list
mailing list