public SelectImageDialog(Gtk.Window parent, Stetic.IProject project)
{
this.parent = parent;
this.project = project;
Glade.XML xml = new Glade.XML (null, "stetic.glade", "SelectImageDialog", null);
xml.Autoconnect (this);
// Stock icon list
iconList = new ThemedIconList ();
iconList.SelectionChanged += new EventHandler (OnIconSelectionChanged);
iconScrolledwindow.AddWithViewport (iconList);
// Icon Sizes
foreach (IconSize s in Enum.GetValues (typeof(Gtk.IconSize))) {
if (s != IconSize.Invalid)
iconSizeCombo.AppendText (s.ToString ());
}
iconSizeCombo.Active = 0;
// Resource list
resourceListStore = new Gtk.ListStore (typeof(Gdk.Pixbuf), typeof(string), typeof(string));
resourceList.Model = resourceListStore;
Gtk.TreeViewColumn col = new Gtk.TreeViewColumn ();
Gtk.CellRendererPixbuf pr = new Gtk.CellRendererPixbuf ();
pr.Xpad = 3;
col.PackStart (pr, false);
col.AddAttribute (pr, "pixbuf", 0);
Gtk.CellRendererText crt = new Gtk.CellRendererText ();
col.PackStart (crt, true);
col.AddAttribute (crt, "markup", 1);
resourceList.AppendColumn (col);
resourceProvider = project.ResourceProvider;
if (resourceProvider == null) {
buttonAdd.Sensitive = false;
buttonRemove.Sensitive = false;
}
FillResources ();
resourceList.Selection.Changed += OnResourceSelectionChanged;
if (project.FileName != null)
fileChooser.SetCurrentFolder (project.ImagesRootPath);
fileChooser.SelectionChanged += delegate (object s, EventArgs a) {
UpdateButtons ();
};
fileChooser.FileActivated += delegate (object s, EventArgs a) {
if (Icon != null) {
if (Validate ())
dialog.Respond (Gtk.ResponseType.Ok);
}
};
okButton.Clicked += OnOkClicked;
UpdateButtons ();
}