Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hutchinson <mhutchinson@novell.com>2009-09-18 03:35:07 +0400
committerMichael Hutchinson <mhutchinson@novell.com>2009-09-18 03:35:07 +0400
commitaae918a5d6d7df83883f6ff5b0e81f864c9bed28 (patch)
tree1204da72947a959036c38bdb635330a9305fda01 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates
parent174fafd9f5d6c32aca0a4fb748ea55b0406dab48 (diff)
* Makefile.am:
* MonoDevelop.Ide.csproj: Add ref to SWF for propgrid enum. * MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs: Fix GTK warning. * MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs: * MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs: Track API. * MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs: Use the PropertyGrid for displaying variables, as this allows them to be edited. * MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs: Mark up with attributes for the propgrid. Use a custom class for the value pairs so we can name the values and mark it up too. svn path=/trunk/monodevelop/; revision=142160
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs48
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs143
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs10
5 files changed, 62 insertions, 152 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs
index ee59f0fbf1..09be8ba643 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateListDataProvider.cs
@@ -32,23 +32,23 @@ namespace MonoDevelop.Ide.CodeTemplates
{
public class CodeTemplateListDataProvider : IListDataProvider<string>
{
- List<KeyValuePair<string, string>> itemList;
+ List<CodeTemplateVariableValue> itemList;
- public CodeTemplateListDataProvider (List<KeyValuePair<string, string>> itemList)
+ public CodeTemplateListDataProvider (List<CodeTemplateVariableValue> itemList)
{
this.itemList = itemList;
}
public CodeTemplateListDataProvider (string s)
{
- itemList = new List<KeyValuePair<string, string>> ();
- itemList.Add (new KeyValuePair<string, string> (null, s));
+ itemList = new List<CodeTemplateVariableValue> ();
+ itemList.Add (new CodeTemplateVariableValue (s, null));
}
#region IListDataProvider implementation
public string GetText (int index)
{
- return itemList[index].Value;
+ return itemList[index].Text;
}
public string this [int index] {
@@ -59,7 +59,7 @@ namespace MonoDevelop.Ide.CodeTemplates
public Gdk.Pixbuf GetIcon (int index)
{
- string iconName = itemList[index].Key;
+ string iconName = itemList[index].IconName;
if (string.IsNullOrEmpty (iconName))
return null;
return MonoDevelop.Core.Gui.ImageService.GetPixbuf (iconName, Gtk.IconSize.Menu);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs
index 3e071afcbd..b38e8fc4ac 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplatePanel.cs
@@ -115,7 +115,6 @@ namespace MonoDevelop.Ide.CodeTemplates
if (treeviewCodeTemplates.Selection.GetSelected (out selected)) {
EditTemplateDialog editDialog = new EditTemplateDialog ((CodeTemplate)templateStore.GetValue (selected, 0), false);
editDialog.TransientFor = this.Toplevel as Gtk.Window;
- editDialog.Parent = parent;
editDialog.Run ();
editDialog.Destroy ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs
index d5891df333..4f1bf7e9a0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplateVariable.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using System.ComponentModel;
using System.Collections.Generic;
using System.Xml;
using MonoDevelop.Core;
@@ -33,38 +34,47 @@ namespace MonoDevelop.Ide.CodeTemplates
{
public class CodeTemplateVariable
{
+ [Browsable (false)]
public string Name {
get;
set;
}
+ [LocalizedDescription ("Default value for this variable.")]
public string Default {
get;
set;
}
+ [LocalizedDescription ("The tooltip to display to the user for this variable.")]
public string ToolTip {
get;
set;
}
+ [LocalizedDescription ("A function to be evaluated for the contents of this variable.")]
public string Function {
get;
set;
}
+ [LocalizedDisplayName ("Editable")]
+ [LocalizedDescription ("Whether the variable is an editable region.")]
public bool IsEditable {
get;
set;
}
+ [LocalizedDisplayName ("Identifier")]
+ [LocalizedDescription ("Whether the variable is an identifier, and should only accept valid identifiers as input.")]
public bool IsIdentifier {
get;
set;
}
- List<KeyValuePair<string, string>> values = new List<KeyValuePair<string, string>> ();
- public List<KeyValuePair<string, string>> Values {
+ [LocalizedDescription ("A list of values for the user to choose from.")]
+ List<CodeTemplateVariableValue> values = new List<CodeTemplateVariableValue> ();
+ public List<CodeTemplateVariableValue> Values {
get {
return values;
}
@@ -115,11 +125,11 @@ namespace MonoDevelop.Ide.CodeTemplates
if (Values.Count > 0) {
writer.WriteStartElement (ValuesNode);
- foreach (KeyValuePair<string, string> val in Values) {
+ foreach (var val in Values) {
writer.WriteStartElement (ValueNode);
- if (!string.IsNullOrEmpty (val.Key))
- writer.WriteAttributeString (iconAttribute, val.Key);
- writer.WriteString (val.Value);
+ if (!string.IsNullOrEmpty (val.IconName))
+ writer.WriteAttributeString (iconAttribute, val.IconName);
+ writer.WriteString (val.Text);
writer.WriteEndElement ();
}
writer.WriteEndElement (); // ValuesNode
@@ -166,7 +176,7 @@ namespace MonoDevelop.Ide.CodeTemplates
case ValueNode:
string icon = reader.GetAttribute (iconAttribute);
string val = reader.ReadElementContentAsString ();
- result.Values.Add (new KeyValuePair<string, string> (icon, val));
+ result.Values.Add (new CodeTemplateVariableValue (val, icon));
return true;
}
return false;
@@ -182,4 +192,28 @@ namespace MonoDevelop.Ide.CodeTemplates
return result;
}
}
+
+ public class CodeTemplateVariableValue
+ {
+ public CodeTemplateVariableValue ()
+ {
+ }
+
+ public CodeTemplateVariableValue (string text, string iconName)
+ {
+ this.Text = text;
+ this.IconName = iconName;
+ }
+
+ [LocalizedDisplayName ("Text")]
+ public string Text { get; set; }
+
+ [LocalizedDisplayName ("Icon name")]
+ public string IconName { get; set; }
+
+ public override string ToString ()
+ {
+ return Text;
+ }
+ }
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs
index 4c9fc62d48..e90651805e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/EditTemplateDialog.cs
@@ -46,6 +46,7 @@ namespace MonoDevelop.Ide.CodeTemplates
ListStore variablesListStore;
List<CodeTemplateVariable> variables = new List<CodeTemplateVariable> ();
+ MonoDevelop.Components.PropertyGrid.PropertyGrid grid;
TreeStore variableStore;
@@ -109,118 +110,15 @@ namespace MonoDevelop.Ide.CodeTemplates
nameRenderer.Markup = ((string)model.GetValue (iter, 2));
});
-/*
- treeviewVariables.HeadersClickable = true;
+ grid = new MonoDevelop.Components.PropertyGrid.PropertyGrid ();
+ grid.PropertySort = System.Windows.Forms.PropertySort.Alphabetical;
+ grid.ShowHelp = true;
+ grid.ShowAll ();
+ grid.ShowToolbar = false;
- #region NameColumn
- TreeViewColumn column;
- CellRendererText nameRenderer = new CellRendererText ();
- column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Name"), nameRenderer,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- nameRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Name;
- });
- //column.Resizable = true;
- #endregion
-
- #region TipColumn
- CellRendererText tipRenderer = new CellRendererText ();
- tipRenderer.Editable = true;
- tipRenderer.Edited += delegate(object o, EditedArgs args) {
- TreeIter iter;
- if (variablesStore.GetIterFromString (out iter, args.Path)) {
- CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0);
- var.ToolTip = args.NewText;
- }
- };
- column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Tooltip"), tipRenderer,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- tipRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).ToolTip;
- });
- column.Resizable = true;
- #endregion
-
- #region DefaultValueColumn
- CellRendererText defaultRenderer = new CellRendererText ();
- defaultRenderer.Editable = true;
- defaultRenderer.Edited += delegate(object o, EditedArgs args) {
- TreeIter iter;
- if (variablesStore.GetIterFromString (out iter, args.Path)) {
- CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0);
- var.Default = args.NewText;
- }
- };
+ vbox4.Remove (scrolledwindow2);
+ vbox4.PackEnd (grid, true, true, 0);
- column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Default"), defaultRenderer,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- defaultRenderer.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Default;
- });
- column.Resizable = true;
- #endregion
-
- #region EditableColumn
- CellRendererToggle toggleRenderer = new CellRendererToggle ();
- toggleRenderer.Activatable = true;
- toggleRenderer.Toggled += delegate(object o, ToggledArgs args) {
- TreeIter iter;
- if (variablesStore.GetIterFromString (out iter, args.Path)) {
- CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0);
- var.IsEditable = !var.IsEditable;
- }
- };
- treeviewVariables.AppendColumn (GettextCatalog.GetString ("Editable"), toggleRenderer,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- toggleRenderer.Active = ((CodeTemplateVariable)model.GetValue (iter, 0)).IsEditable;
- });
- #endregion
-
- #region FunctionColumn
- Gtk.CellRendererCombo cellRendererFunction = new Gtk.CellRendererCombo ();
- cellRendererFunction.Mode = CellRendererMode.Editable;
- cellRendererFunction.Editable = true;
- cellRendererFunction.HasEntry = true;
- cellRendererFunction.TextColumn = 0;
- cellRendererFunction.Edited += delegate(object o, EditedArgs args) {
- TreeIter iter;
- if (variablesStore.GetIterFromString (out iter, args.Path)) {
- CodeTemplateVariable var = (CodeTemplateVariable)variablesStore.GetValue (iter, 0);
- var.Function = args.NewText;
- }
- };
-
- ListStore store = new ListStore (typeof(string));
- ExpansionObject expansion = CodeTemplateService.GetExpansionObject (template);
- foreach (string str in expansion.Descriptions) {
- store.AppendValues (str);
- }
- cellRendererFunction.Model = store;
-
- column = treeviewVariables.AppendColumn (GettextCatalog.GetString ("Function"), cellRendererFunction,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- cellRendererFunction.Text = ((CodeTemplateVariable)model.GetValue (iter, 0)).Function;
- });
- column.Resizable = true;
- #endregion
-
- #region ValueColumn
- CellRendererText valueRenderer = new CellRendererText ();
- valueRenderer.Editable = true;
- valueRenderer.EditingStarted += delegate(object o, EditingStartedArgs args) {
- Console.WriteLine ("Editing Started !!!");
- };
-
- treeviewVariables.AppendColumn (GettextCatalog.GetString ("Values"), valueRenderer,
- delegate (TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) {
- CodeTemplateVariable var = (CodeTemplateVariable)model.GetValue (iter, 0);
- if (var.Values.Count == 0) {
- valueRenderer.Markup = "<span foreground=\"" + CodeTemplatePanelWidget.GetColorString (Style.Text (StateType.Insensitive)) + "\">(empty)</span>";
- } else if (var.Values.Count == 1) {
- valueRenderer.Text = var.Values[0].Value;
- } else {
- valueRenderer.Text = var.Values[0].Value + ", ...";
- }
- });
- #endregion
- */
UpdateVariables ();
}
@@ -317,31 +215,10 @@ namespace MonoDevelop.Ide.CodeTemplates
}
}
- class CellRendererProperty : CellRendererText
- {
-
- }
+
void FillVariableTree (CodeTemplateVariable var)
{
- variableStore.Clear ();
- if (var == null)
- return;
-
- variableStore.AppendValues (GettextCatalog.GetString ("Name"), var, GLib.Markup.EscapeText (var.Name ?? ""), 0);
- variableStore.AppendValues (GettextCatalog.GetString ("Tooltip"), var, GLib.Markup.EscapeText (var.ToolTip ?? ""), 1);
- variableStore.AppendValues (GettextCatalog.GetString ("Default"), var, GLib.Markup.EscapeText (var.Default ?? ""), 2);
- variableStore.AppendValues (GettextCatalog.GetString ("Editable"), var, var.IsEditable ? "True" : "False", 3);
- variableStore.AppendValues (GettextCatalog.GetString ("Function"), var, GLib.Markup.EscapeText (var.Function ?? ""), 4);
- string valueStr;
-
- if (var.Values.Count == 0) {
- valueStr = "<span foreground=\"" + CodeTemplatePanelWidget.GetColorString (Style.Text (StateType.Insensitive)) + "\">(empty)</span>";
- } else if (var.Values.Count == 1) {
- valueStr = GLib.Markup.EscapeText (var.Values[0].Value);
- } else {
- valueStr = GLib.Markup.EscapeText (var.Values[0].Value) + ", ...";
- }
- variableStore.AppendValues (GettextCatalog.GetString ("Values"), var, valueStr, 5);
+ grid.CurrentObject = var;
}
void UpdateVariables ()
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs
index de711e8c81..227b55f0f6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/ExpansionObject.cs
@@ -135,8 +135,8 @@ namespace MonoDevelop.Ide.CodeTemplates
MonoDevelop.Projects.Gui.Completion.ICompletionDataList list;
public IListDataProvider<string> GetCollections ()
{
- List<KeyValuePair<string, string>> result = new List<KeyValuePair<string, string>> ();
- CompletionTextEditorExtension ext = CurrentContext.Document.GetContent <CompletionTextEditorExtension> ();
+ var result = new List<CodeTemplateVariableValue> ();
+ var ext = CurrentContext.Document.GetContent <CompletionTextEditorExtension> ();
if (ext != null) {
if (list == null)
list = ext.CodeCompletionCommand (CurrentContext.Document.TextEditor.CurrentCodeCompletionContext);
@@ -149,7 +149,7 @@ namespace MonoDevelop.Ide.CodeTemplates
if (data.Member is IMember) {
IMember m = data.Member as IMember;
if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null)
- result.Add (new KeyValuePair<string, string>(data.Icon, m.Name));
+ result.Add (new CodeTemplateVariableValue (m.Name, data.Icon));
}
}
@@ -160,7 +160,7 @@ namespace MonoDevelop.Ide.CodeTemplates
if (data.Member is IParameter) {
IParameter m = data.Member as IParameter;
if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null)
- result.Add (new KeyValuePair<string, string>(data.Icon, m.Name));
+ result.Add (new CodeTemplateVariableValue (m.Name, data.Icon));
}
}
@@ -171,7 +171,7 @@ namespace MonoDevelop.Ide.CodeTemplates
if (data.Member is LocalVariable) {
LocalVariable m = data.Member as LocalVariable;
if (DomType.GetComponentType (CurrentContext.ProjectDom, m.ReturnType) != null)
- result.Add (new KeyValuePair<string, string>(data.Icon, m.Name));
+ result.Add (new CodeTemplateVariableValue (m.Name, data.Icon));
}
}
}