1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
using System;
using MonoDevelop.Ide.Templates;
using MonoDevelop.Core;
using MonoDevelop.Projects;
using Gtk;
namespace MonoDevelop.GtkCore.Dialogs
{
class GtkFeatureWidget : Gtk.VBox
{
ComboBox versionCombo;
public GtkFeatureWidget (DotNetProject project)
{
Spacing = 6;
versionCombo = Gtk.ComboBox.NewText ();
ReferenceManager refmgr = new ReferenceManager (project);
foreach (string v in refmgr.SupportedGtkVersions)
versionCombo.AppendText (v);
versionCombo.Active = 0;
refmgr.Dispose ();
// GTK# version selector
HBox box = new HBox (false, 6);
Gtk.Label vlab = new Label (GettextCatalog.GetString ("Target GTK# version:"));
box.PackStart (vlab, false, false, 0);
box.PackStart (versionCombo, false, false, 0);
box.PackStart (new Label (GettextCatalog.GetString ("(or upper)")), false, false, 0);
PackStart (box, false, false, 0);
ShowAll ();
}
public string SelectedVersion {
get { return versionCombo.ActiveText; }
}
}
class GtkProjectFeature: ISolutionItemFeature
{
public string Title {
get { return GettextCatalog.GetString ("GTK# Support"); }
}
public string Description {
get { return GettextCatalog.GetString ("Enables support for GTK# in the project. Allows the visual design of GTK# windows, and the creation of a GTK# widget library."); }
}
public FeatureSupportLevel GetSupportLevel (SolutionFolder parentCombine, SolutionItem entry)
{
if (!(entry is DotNetProject) || !GtkDesignInfo.SupportsRefactoring (entry as DotNetProject))
return FeatureSupportLevel.NotSupported;
ReferenceManager refmgr = new ReferenceManager ((DotNetProject)entry);
if (refmgr.SupportedGtkVersions.Count == 0)
return FeatureSupportLevel.NotSupported;
if (GtkDesignInfo.SupportsDesigner ((Project)entry))
return FeatureSupportLevel.Enabled;
else if (entry is DotNetAssemblyProject)
return FeatureSupportLevel.SupportedByDefault;
else
return FeatureSupportLevel.Supported;
}
public Widget CreateFeatureEditor (SolutionFolder parentCombine, SolutionItem entry)
{
return new GtkFeatureWidget ((DotNetProject) entry);
}
public void ApplyFeature (SolutionFolder parentCombine, SolutionItem entry, Widget editor)
{
GtkFeatureWidget fw = (GtkFeatureWidget) editor;
ReferenceManager refmgr = new ReferenceManager ((DotNetProject) entry);
refmgr.GtkPackageVersion = fw.SelectedVersion;
refmgr.Dispose ();
}
public string Validate (SolutionFolder parentCombine, SolutionItem entry, Gtk.Widget editor)
{
return null;
}
}
}
|