Author: lluis
Date: 2007-05-15 10:02:30 -0400 (Tue, 15 May 2007)
New Revision: 77404

Modified:
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/GtkDesignInfo.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libstetic.dll
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libsteticui.dll
Log:
* MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs,
  MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs,
  MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs,
  MonoDevelop.GtkCore/GtkDesignInfo.cs,
  MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs,
  MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs,
  MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs,
  MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs,
  MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs,
  MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs,
  MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs,
  MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs,
  MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs: Track api changes in
  Stetic.
* MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs: Delay
  library updating until really necessary.
* lib/libsteticui.dll, lib/libstetic.dll: Updated from stetic module.

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog      2007-05-15 
13:57:21 UTC (rev 77403)
+++ trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog      2007-05-15 
14:02:30 UTC (rev 77404)
@@ -1,3 +1,23 @@
+2007-05-15  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs,
+         MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs,
+         MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs,
+         MonoDevelop.GtkCore/GtkDesignInfo.cs,
+         MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs,
+         MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs,
+         MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs,
+         MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs,
+         MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs,
+         MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs,
+         MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs,
+         MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs,
+         MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs: Track api changes in
+         Stetic.
+       * MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs: Delay
+         library updating until really necessary.
+       * lib/libsteticui.dll, lib/libstetic.dll: Updated from stetic module.
+
 2007-05-11  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
        * MonoDevelop.GtkCore.mdp: Copy the .addins.xml file to the output dir.

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/GtkDesignInfo.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/GtkDesignInfo.cs
   2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/GtkDesignInfo.cs
   2007-05-15 14:02:30 UTC (rev 77404)
@@ -261,7 +261,7 @@
                                        }
                                }
                                
-                               foreach (Stetic.ActionGroupComponent ag in 
GuiBuilderProject.SteticProject.GetActionGroups ()) {
+                               foreach (Stetic.ActionGroupInfo ag in 
GuiBuilderProject.SteticProject.ActionGroups) {
                                        string fn = 
GuiBuilderService.GenerateSteticCodeStructure (project, ag, true, false);
                                        partialFiles.Add (fn);
                                        if (!project.IsFileInProject (fn)) {

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs
   2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore/WidgetFileDescriptionTemplate.cs
   2007-05-15 14:02:30 UTC (rev 77404)
@@ -104,7 +104,7 @@
                                XmlDocument doc = new XmlDocument ();
                                doc.LoadXml (content);
                                
-                               Stetic.WidgetComponent w = 
gproject.AddNewComponent (doc.DocumentElement);
+                               Stetic.WidgetInfo w = gproject.AddNewComponent 
(doc.DocumentElement);
                                gproject.Save (false);
                                
                                if (!w.IsWindow)

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs
       2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/ConfirmWindowDeleteDialog.cs
       2007-05-15 14:02:30 UTC (rev 77404)
@@ -39,16 +39,16 @@
                [Glade.Widget] Gtk.Label label;
                [Glade.Widget] Gtk.CheckButton checkbox;
                
-               public ConfirmWindowDeleteDialog (string windowName, string 
fileName, Stetic.Component obj)
+               public ConfirmWindowDeleteDialog (string windowName, string 
fileName, Stetic.ProjectItemInfo obj)
                {
                        XML glade = new XML (null, "gui.glade", 
"ConfirmWindowDeleteDialog", null);
                        glade.Autoconnect (this);
                        
-                       if (obj is Stetic.WidgetComponent && 
((Stetic.WidgetComponent)obj).IsWindow) {
+                       if (obj is Stetic.WidgetInfo && 
((Stetic.WidgetInfo)obj).IsWindow) {
                                label.Text = GettextCatalog.GetString ("Are you 
sure you want to delete the window '{0}'?", windowName);
-                       } else if (obj is Stetic.WidgetComponent) {
+                       } else if (obj is Stetic.WidgetInfo) {
                                label.Text = GettextCatalog.GetString ("Are you 
sure you want to delete the widget '{0}'?", windowName);
-                       } else if (obj is Stetic.ActionGroupComponent) {
+                       } else if (obj is Stetic.ActionGroupInfo) {
                                label.Text = GettextCatalog.GetString ("Are you 
sure you want to delete the action group '{0}'?", windowName);
                        } else
                                label.Text = GettextCatalog.GetString ("Are you 
sure you want to delete '{0}'?", windowName);

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
        2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.Dialogs/WidgetBuilderOptionPanel.cs
        2007-05-15 14:02:30 UTC (rev 77404)
@@ -152,7 +152,6 @@
                                                        
designInfo.IsWidgetLibrary = true;
                                                        
designInfo.ExportedWidgets = (string[]) selection.ToArray (typeof(string));
                                                        
GtkCoreService.UpdateObjectsFile (project);
-                                                       
designInfo.GuiBuilderProject.UpdateLibraries ();
                                                }
                                        } else
                                                designInfo.IsWidgetLibrary = 
false;

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
    2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupDisplayBinding.cs
    2007-05-15 14:02:30 UTC (rev 77404)
@@ -89,7 +89,7 @@
                        return null;
                }
                
-               Stetic.ActionGroupComponent GetActionGroup (string file)
+               Stetic.ActionGroupInfo GetActionGroup (string file)
                {
                        Project project = 
IdeApp.ProjectOperations.CurrentOpenCombine.GetProjectContainingFile (file);
                        if (project == null)
@@ -102,7 +102,7 @@
                        return info.GuiBuilderProject.GetActionGroupForFile 
(file);
                }
                
-               internal static string BindToClass (Project project, 
Stetic.ActionGroupComponent group)
+               internal static string BindToClass (Project project, 
Stetic.ActionGroupInfo group)
                {
                        GuiBuilderProject gproject = 
GuiBuilderService.GetGuiBuilderProject (project);
                        string file = gproject.GetSourceCodeFile (group);
@@ -124,7 +124,7 @@
                                        return null;
                                
                                if (dialog.CreateNew)
-                                       CreateClass (project, group, 
dialog.ClassName, dialog.Namespace, dialog.Folder);
+                                       CreateClass (project, 
(Stetic.ActionGroupComponent) group.Component, dialog.ClassName, 
dialog.Namespace, dialog.Folder);
 
                                string fullName = dialog.Namespace.Length > 0 ? 
dialog.Namespace + "." + dialog.ClassName : dialog.ClassName;
                                group.Name = fullName;

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
      2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/ActionGroupView.cs
      2007-05-15 14:02:30 UTC (rev 77404)
@@ -45,9 +45,10 @@
                CodeBinder codeBinder;
                GuiBuilderProject project;
                Stetic.ActionGroupComponent group;
+               Stetic.ActionGroupInfo groupInfo;
                string groupName;
                
-               public ActionGroupView (IViewContent content, 
Stetic.ActionGroupComponent group, GuiBuilderProject project): base (content)
+               public ActionGroupView (IViewContent content, 
Stetic.ActionGroupInfo group, GuiBuilderProject project): base (content)
                {
                        groupName = group.Name;
                        this.project = project;
@@ -56,16 +57,17 @@
                
                void LoadDesigner ()
                {
-                       group = project.GetActionGroup (groupName);
-                       if (group == null)
+                       groupInfo = project.GetActionGroup (groupName);
+                       if (groupInfo == null)
                                // Group not found
                                return;
-                               
+                       
+                       group = (Stetic.ActionGroupComponent) 
groupInfo.Component;
                        project.Unloaded += OnDisposeProject;
                        
                        GtkDesignInfo info = GtkCoreService.GetGtkInfo 
(project.Project);
 
-                       designer = 
project.SteticProject.CreateActionGroupDesigner (group, false);
+                       designer = 
project.SteticProject.CreateActionGroupDesigner (groupInfo, false);
                        designer.AllowActionBinding = (info != null && 
!info.GeneratePartialClasses);
                        designer.BindField += new EventHandler (OnBindField);
                        
@@ -137,7 +139,7 @@
                
                public override void Save (string fileName)
                {
-                       string oldBuildFile = 
GuiBuilderService.GetBuildCodeFileName (project.Project, group);
+                       string oldBuildFile = 
GuiBuilderService.GetBuildCodeFileName (project.Project, groupInfo.Name);
                        
                        base.Save (fileName);
                        if (designer == null)
@@ -147,7 +149,7 @@
                        
                        designer.Save ();
                        
-                       string newBuildFile = 
GuiBuilderService.GetBuildCodeFileName (project.Project, group);
+                       string newBuildFile = 
GuiBuilderService.GetBuildCodeFileName (project.Project, groupInfo.Name);
                        if (oldBuildFile != newBuildFile)
                                Runtime.FileService.MoveFile (oldBuildFile, 
newBuildFile);
 

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
   2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CodeBinder.cs
   2007-05-15 14:02:30 UTC (rev 77404)
@@ -325,5 +325,15 @@
                {
                        return obj.Name;
                }
+               
+               internal static string GetClassName (Stetic.ProjectItemInfo obj)
+               {
+                       return GetObjectName (obj);
+               }
+               
+               internal static string GetObjectName (Stetic.ProjectItemInfo 
obj)
+               {
+                       return obj.Name;
+               }
        }
 }

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
    2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
    2007-05-15 14:02:30 UTC (rev 77404)
@@ -57,6 +57,7 @@
                DateTime lastSaveTime;
                object fileSaveLock = new object ();
                bool disposed;
+               bool librariesUpdated;
                
                public event WindowEventHandler WindowAdded;
                public event WindowEventHandler WindowRemoved;
@@ -91,19 +92,16 @@
                                IdeApp.Services.MessageService.ShowError (ex, 
GettextCatalog.GetString ("The GUI designer project file '{0}' could not be 
loaded.", fileName));
                                hasError = true;
                        }
-                       
-                       // Sync project libraries
-                       UpdateLibraries ();
 
                        gproject.ResourceProvider = GtkCoreService.GetGtkInfo 
(project).ResourceProvider;
-                       gproject.ComponentAdded += new 
Stetic.ComponentEventHandler (OnAddWidget);
-                       gproject.ComponentRemoved += new 
Stetic.ComponentRemovedEventHandler (OnRemoveWidget);
+                       gproject.WidgetAdded += OnAddWidget;
+                       gproject.WidgetRemoved += OnRemoveWidget;
                        gproject.ActionGroupsChanged += OnGroupsChanged;
-                       project.FileRemovedFromProject += new 
ProjectFileEventHandler (OnFileRemoved);
+                       project.FileRemovedFromProject += OnFileRemoved;
                        project.ReferenceAddedToProject += OnReferenceAdded;
                        project.ReferenceRemovedFromProject += 
OnReferenceRemoved;
                        
-                       foreach (Stetic.WidgetComponent ob in 
gproject.GetComponents ())
+                       foreach (Stetic.WidgetInfo ob in gproject.Widgets)
                                RegisterWindow (ob, false);
                                
                        // Monitor changes in the file
@@ -128,10 +126,10 @@
                        foreach (GuiBuilderWindow win in formInfos)
                                win.Dispose ();
 
-                       gproject.ComponentAdded -= new 
Stetic.ComponentEventHandler (OnAddWidget);
-                       gproject.ComponentRemoved -= new 
Stetic.ComponentRemovedEventHandler (OnRemoveWidget);
+                       gproject.WidgetAdded -= OnAddWidget;
+                       gproject.WidgetRemoved -= OnRemoveWidget;
                        gproject.ActionGroupsChanged -= OnGroupsChanged;
-                       project.FileRemovedFromProject -= new 
ProjectFileEventHandler (OnFileRemoved);
+                       project.FileRemovedFromProject -= OnFileRemoved;
                        project.ReferenceAddedToProject -= OnReferenceAdded;
                        project.ReferenceRemovedFromProject -= 
OnReferenceRemoved;
                        gproject.Dispose ();
@@ -139,6 +137,7 @@
                        formInfos = null;
                        needsUpdate = true;
                        hasError = false;
+                       librariesUpdated = false;
                        GuiBuilderService.SteticApp.UpdateWidgetLibraries 
(false);
                        
                        watcher.Dispose ();
@@ -235,16 +234,16 @@
                        return GuiBuilderService.SteticApp.ActiveProject == 
SteticProject && !disposed;
                }
                
-               public Stetic.WidgetComponent AddNewComponent 
(Stetic.ComponentType type, string name)
+               public Stetic.WidgetInfo AddNewComponent (Stetic.ComponentType 
type, string name)
                {
-                       Stetic.WidgetComponent c = 
SteticProject.AddNewComponent (type, name);
+                       Stetic.WidgetInfo c = SteticProject.AddNewComponent 
(type, name);
                        RegisterWindow (c, true);
                        return c;
                }
                
-               public Stetic.WidgetComponent AddNewComponent (XmlElement 
element)
+               public Stetic.WidgetInfo AddNewComponent (XmlElement element)
                {
-                       Stetic.WidgetComponent c = 
SteticProject.AddNewComponent (element);
+                       Stetic.WidgetInfo c = SteticProject.AddNewComponent 
(element);
                        // Register the window now, don't wait for the 
WidgetAdded event since
                        // it may take some time, and the GuiBuilderWindow 
object is needed
                        // just after this call
@@ -252,7 +251,7 @@
                        return c;
                }
        
-               void RegisterWindow (Stetic.WidgetComponent widget, bool notify)
+               void RegisterWindow (Stetic.WidgetInfo widget, bool notify)
                {
                        foreach (GuiBuilderWindow w in formInfos)
                                if (w.RootWidget == widget)
@@ -288,23 +287,23 @@
                        UnregisterWindow (win);
                }
        
-               public void RemoveActionGroup (Stetic.ActionGroupComponent 
group)
+               public void RemoveActionGroup (Stetic.ActionGroupInfo group)
                {
                        gproject.RemoveActionGroup (group);
                }
        
-               void OnAddWidget (object s, Stetic.ComponentEventArgs args)
+               void OnAddWidget (object s, Stetic.WidgetInfoEventArgs args)
                {
                        if (!disposed)
-                               RegisterWindow 
((Stetic.WidgetComponent)args.Component, true);
+                               RegisterWindow (args.WidgetInfo, true);
                }
                
-               void OnRemoveWidget (object s, Stetic.ComponentRemovedEventArgs 
args)
+               void OnRemoveWidget (object s, Stetic.WidgetInfoEventArgs args)
                {
                        if (disposed)
                                return;
                        foreach (GuiBuilderWindow form in Windows) {
-                               if (form.RootWidget.Name == args.ComponentName) 
{
+                               if (form.RootWidget.Name == 
args.WidgetInfo.Name) {
                                        UnregisterWindow (form);
                                        break;
                                }
@@ -334,7 +333,7 @@
 
                void OnReferenceAdded (object ob, ProjectReferenceEventArgs 
args)
                {
-                       if (disposed)
+                       if (disposed || !librariesUpdated)
                                return;
                        string pref = GetReferenceLibraryPath 
(args.ProjectReference);
                        if (pref != null) {
@@ -345,7 +344,7 @@
                
                void OnReferenceRemoved (object ob, ProjectReferenceEventArgs 
args)
                {
-                       if (disposed)
+                       if (disposed || !librariesUpdated)
                                return;
                        string pref = GetReferenceLibraryPath 
(args.ProjectReference);
                        if (pref != null) {
@@ -427,25 +426,21 @@
                        return null;
                }
                
-               public Stetic.ActionGroupComponent GetActionGroupForFile 
(string fileName)
+               public Stetic.ActionGroupInfo GetActionGroupForFile (string 
fileName)
                {
-                       foreach (Stetic.ActionGroupComponent group in 
SteticProject.GetActionGroups ()) {
+                       foreach (Stetic.ActionGroupInfo group in 
SteticProject.ActionGroups) {
                                if (fileName == GetSourceCodeFile (group))
                                        return group;
                        }
                        return null;
                }
                
-               public Stetic.ActionGroupComponent GetActionGroup (string name)
+               public Stetic.ActionGroupInfo GetActionGroup (string name)
                {
-                       foreach (Stetic.ActionGroupComponent group in 
SteticProject.GetActionGroups ()) {
-                               if (name == group.Name)
-                                       return group;
-                       }
-                       return null;
+                       return SteticProject.GetActionGroup (name);
                }
                
-               public string GetSourceCodeFile (Stetic.Component obj)
+               public string GetSourceCodeFile (Stetic.ProjectItemInfo obj)
                {
                        IClass cls = GetClass (obj);
                        GtkDesignInfo info = GtkCoreService.GetGtkInfo 
(project);
@@ -461,7 +456,7 @@
                        return null;
                }
                
-               IClass GetClass (Stetic.Component obj)
+               IClass GetClass (Stetic.ProjectItemInfo obj)
                {
                        string name = CodeBinder.GetClassName (obj);
                        return FindClass (name);
@@ -500,6 +495,8 @@
                        if (hasError || disposed || gproject == null)
                                return;
 
+                       librariesUpdated = true;
+                       
                        string[] oldLibs = gproject.WidgetLibraries;
                        
                        ArrayList libs = new ArrayList ();

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
    2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderService.cs
    2007-05-15 14:02:30 UTC (rev 77404)
@@ -108,7 +108,7 @@
                                return null;
                }
                
-               public static ActionGroupView OpenActionGroup (Project project, 
Stetic.ActionGroupComponent group)
+               public static ActionGroupView OpenActionGroup (Project project, 
Stetic.ActionGroupInfo group)
                {
                        GuiBuilderProject p = GetGuiBuilderProject (project);
                        string file = p != null ? p.GetSourceCodeFile (group) : 
null;
@@ -252,17 +252,29 @@
                        info.GuiBuilderProject.ImportGladeFile ();
                }
                
-               public static string GetBuildCodeFileName (Project project, 
Stetic.Component component)
+               public static string GetBuildCodeFileName (Project project, 
string componentName)
                {
                        GtkDesignInfo info = GtkCoreService.GetGtkInfo 
(project);
-                       return Path.Combine (info.GtkGuiFolder, component.Name 
+ Path.GetExtension (info.SteticGeneratedFile));
+                       return Path.Combine (info.GtkGuiFolder, componentName + 
Path.GetExtension (info.SteticGeneratedFile));
                }
                
+               public static string GenerateSteticCodeStructure (DotNetProject 
project, Stetic.ProjectItemInfo item, bool saveToFile, bool overwrite)
+               {
+                       return GenerateSteticCodeStructure (project, item, 
null, saveToFile, overwrite);
+               }
+               
                public static string GenerateSteticCodeStructure (DotNetProject 
project, Stetic.Component component, bool saveToFile, bool overwrite)
                {
+                       return GenerateSteticCodeStructure (project, null, 
component, saveToFile, overwrite);
+               }
+               
+               static string GenerateSteticCodeStructure (DotNetProject 
project, Stetic.ProjectItemInfo item, Stetic.Component component, bool 
saveToFile, bool overwrite)
+               {
                        // Generate a class which contains fields for all bound 
widgets of the component
                        
-                       string name = component.Name;
+                       string name = item != null ? item.Name : component.Name;
+                       string fileName = GetBuildCodeFileName (project, name);
+                       
                        string ns = "";
                        int i = name.LastIndexOf ('.');
                        if (i != -1) {
@@ -271,11 +283,13 @@
                        }
                        
                        GtkDesignInfo info = GtkCoreService.GetGtkInfo 
(project);
-                       string fileName = GetBuildCodeFileName (project, 
component);
                        
                        if (saveToFile && !overwrite && File.Exists (fileName))
                                return fileName;
                        
+                       if (item != null)
+                               component = item.Component;
+                       
                        CodeCompileUnit cu = new CodeCompileUnit ();
                        
                        if (info.GeneratePartialClasses) {

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
       2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
       2007-05-15 14:02:30 UTC (rev 77404)
@@ -67,6 +67,7 @@
                {
                        rootName = window.Name;
                        gproject = window.Project;
+                       gproject.UpdateLibraries ();
                        LoadDesigner ();
                }
                
@@ -215,7 +216,8 @@
                
                void OnComponentTypesChanged (object s, EventArgs a)
                {
-                       ToolboxProvider.Instance.NotifyItemsChanged ();
+                       if (ToolboxProvider.Instance != null)
+                               ToolboxProvider.Instance.NotifyItemsChanged ();
                }
                
                void OnActionshanged (object s, EventArgs args)
@@ -267,7 +269,7 @@
                                return;
                        
                        string oldName = window.RootWidget.Name;
-                       string oldBuildFile = 
GuiBuilderService.GetBuildCodeFileName (gproject.Project, window.RootWidget);
+                       string oldBuildFile = 
GuiBuilderService.GetBuildCodeFileName (gproject.Project, 
window.RootWidget.Name);
  
                        codeBinder.UpdateBindings (fileName);
                        if (!ErrorMode) {
@@ -277,7 +279,7 @@
                                        actionsBox.Save ();
                        }
                        
-                       string newBuildFile = 
GuiBuilderService.GetBuildCodeFileName (gproject.Project, window.RootWidget);
+                       string newBuildFile = 
GuiBuilderService.GetBuildCodeFileName (gproject.Project, 
window.RootWidget.Name);
                        
                        if (oldBuildFile != newBuildFile)
                                Runtime.FileService.MoveFile (oldBuildFile, 
newBuildFile);

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs
     2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderWindow.cs
     2007-05-15 14:02:30 UTC (rev 77404)
@@ -48,14 +48,14 @@
 {
        public class GuiBuilderWindow: IDisposable
        {
-               Stetic.WidgetComponent rootWidget;
+               Stetic.WidgetInfo rootWidget;
                GuiBuilderProject fproject;
                Stetic.Project gproject;
                string name;
                
                public event WindowEventHandler Changed;
                
-               internal GuiBuilderWindow (GuiBuilderProject fproject, 
Stetic.Project gproject, Stetic.WidgetComponent rootWidget)
+               internal GuiBuilderWindow (GuiBuilderProject fproject, 
Stetic.Project gproject, Stetic.WidgetInfo rootWidget)
                {
                        this.fproject = fproject;
                        this.rootWidget = rootWidget;
@@ -65,7 +65,7 @@
                        rootWidget.Changed += OnChanged;
                }
                
-               public Stetic.WidgetComponent RootWidget {
+               public Stetic.WidgetInfo RootWidget {
                        get { return rootWidget; }
                }
                
@@ -90,7 +90,7 @@
                void OnProjectReloaded (object s, EventArgs args)
                {
                        rootWidget.Changed -= OnChanged;
-                       rootWidget = gproject.GetComponent (name);
+                       rootWidget = gproject.GetWidget (name);
                        if (rootWidget != null)
                                rootWidget.Changed += OnChanged;
                }
@@ -144,19 +144,20 @@
                        
                        CodeRefactorer gen = new CodeRefactorer 
(IdeApp.ProjectOperations.CurrentOpenCombine, 
IdeApp.ProjectOperations.ParserDatabase);
                        GtkDesignInfo info = GtkCoreService.GetGtkInfo 
(fproject.Project);
+                       Stetic.WidgetComponent component = 
(Stetic.WidgetComponent) rootWidget.Component;
                        
                        CodeTypeDeclaration type = new CodeTypeDeclaration ();
                        type.Name = name;
                        type.IsClass = true;
                        type.IsPartial = info.GeneratePartialClasses;
-                       type.BaseTypes.Add (new CodeTypeReference 
(rootWidget.Type.ClassName));
+                       type.BaseTypes.Add (new CodeTypeReference 
(component.Type.ClassName));
                        
                        // Generate the constructor. It contains the call that 
builds the widget.
                        
                        CodeConstructor ctor = new CodeConstructor ();
                        ctor.Attributes = MemberAttributes.Public | 
MemberAttributes.Final;
                        
-                       foreach (object val in 
rootWidget.Type.InitializationValues) {
+                       foreach (object val in 
component.Type.InitializationValues) {
                                if (val is Enum) {
                                        ctor.BaseConstructorArgs.Add (
                                                new 
CodeFieldReferenceExpression (
@@ -192,8 +193,8 @@
                        
                        // Add signal handlers
                        
-                       AddSignalsRec (type, rootWidget);
-                       foreach (Stetic.Component ag in 
rootWidget.GetActionGroups ())
+                       AddSignalsRec (type, component);
+                       foreach (Stetic.Component ag in 
component.GetActionGroups ())
                                AddSignalsRec (type, ag);
                        
                        // Create the class
@@ -231,7 +232,7 @@
                {
                        if (cls.BaseTypes != null) {
                                foreach (IReturnType bt in cls.BaseTypes) {
-                                       if (bt.FullyQualifiedName == 
rootWidget.Type.ClassName)
+                                       if (bt.FullyQualifiedName == 
rootWidget.Component.Type.ClassName)
                                                return true;
                                        
                                        IClass baseCls = ctx.GetClass 
(bt.FullyQualifiedName, true, true);

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
     2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/ActionGroupNodeBuilder.cs
     2007-05-15 14:02:30 UTC (rev 77404)
@@ -48,31 +48,31 @@
                }
                        
                public override Type NodeDataType {
-                       get { return typeof(Stetic.ActionGroupComponent); }
+                       get { return typeof(Stetic.ActionGroupInfo); }
                }
                
                public override string GetNodeName (ITreeNavigator thisNode, 
object dataObject)
                {
-                       Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) dataObject;
+                       Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) 
dataObject;
                        return group.Name;
                }
                
                public override void BuildNode (ITreeBuilder treeBuilder, 
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf 
closedIcon)
                {
-                       Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) dataObject;
+                       Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) 
dataObject;
                        label = group.Name;
                        icon = IdeApp.Services.Resources.GetIcon 
("md-gtkcore-actiongroup", Gtk.IconSize.Menu);
                }
                
                public override void OnNodeAdded (object dataObject)
                {
-                       Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) dataObject;
+                       Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) 
dataObject;
                        group.Changed += new EventHandler (OnChanged);
                }
                
                public override void OnNodeRemoved (object dataObject)
                {
-                       Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) dataObject;
+                       Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) 
dataObject;
                        group.Changed -= new EventHandler (OnChanged);
                }
                
@@ -97,12 +97,12 @@
                                if (doc != null) {
                                        GuiBuilderView view = 
doc.GetContent<GuiBuilderView> ();
                                        if (view != null)
-                                               view.ShowActionDesignerView 
(((Stetic.ActionGroupComponent) CurrentNode.DataItem).Name);
+                                               view.ShowActionDesignerView 
(((Stetic.ActionGroupInfo) CurrentNode.DataItem).Name);
                                }
                        }
                        else {
                                Project project = (Project) 
CurrentNode.GetParentDataItem (typeof(Project), false);
-                               Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) CurrentNode.DataItem;
+                               Stetic.ActionGroupInfo group = 
(Stetic.ActionGroupInfo) CurrentNode.DataItem;
                                GuiBuilderService.OpenActionGroup (project, 
group);
                        }
                }
@@ -125,7 +125,7 @@
                                return;
 
                        Project project = (Project) 
CurrentNode.GetParentDataItem (typeof(Project), false);
-                       Stetic.ActionGroupComponent group = 
(Stetic.ActionGroupComponent) CurrentNode.DataItem;
+                       Stetic.ActionGroupInfo group = (Stetic.ActionGroupInfo) 
CurrentNode.DataItem;
                        GuiBuilderProject gproject = GtkCoreService.GetGtkInfo 
(project).GuiBuilderProject;
                        string sfile = gproject.GetSourceCodeFile (group);
 

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
  2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WidgetNodeBuilder.cs
  2007-05-15 14:02:30 UTC (rev 77404)
@@ -85,7 +85,7 @@
                public override void BuildChildNodes (ITreeBuilder builder, 
object dataObject)
                {
                        GuiBuilderWindow win = (GuiBuilderWindow) dataObject;
-                       foreach (Stetic.ActionGroupComponent agroup in 
win.RootWidget.GetActionGroups ()) {
+                       foreach (Stetic.ActionGroupInfo agroup in 
win.RootWidget.ActionGroups) {
                                builder.AddChild (agroup);
                        }
                }
@@ -93,7 +93,7 @@
                public override bool HasChildNodes (ITreeBuilder builder, 
object dataObject)
                {
                        GuiBuilderWindow win = (GuiBuilderWindow) dataObject;
-                       return win.RootWidget.GetActionGroups().Length > 0;
+                       return 
win.RootWidget.ActionGroups.GetEnumerator().MoveNext ();
                }
                
                public override void OnNodeAdded (object dataObject)

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
   2007-05-15 13:57:21 UTC (rev 77403)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
   2007-05-15 14:02:30 UTC (rev 77404)
@@ -88,7 +88,7 @@
                                builder.AddChild (new StockIconsNode (p));
                                foreach (GuiBuilderWindow fi in 
info.GuiBuilderProject.Windows)
                                        builder.AddChild (fi);
-                               foreach (Stetic.ActionGroupComponent group in 
info.GuiBuilderProject.SteticProject.GetActionGroups ())
+                               foreach (Stetic.ActionGroupInfo group in 
info.GuiBuilderProject.SteticProject.ActionGroups)
                                        builder.AddChild (group);
                        }
                }

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libstetic.dll
===================================================================
(Binary files differ)

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libsteticui.dll
===================================================================
(Binary files differ)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to