2008-02-06  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/SignalsEditorBackend.cs: TargetObject can't be set when no
	  project is selected.

2008-01-25  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/PropertyTree.cs: Use a theme color for the property group
	  headers. Fixes bug #356244.

2008-01-25  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Label.cs: Fix generation of MnemonicWidget property
	  assignment.
	* libstetic/wrapper/objects.xml: The default way of 
	* libstetic/editor/WidgetSelector.cs: Sort the list of widgets. Hide
	  unselectable widgets.

2008-01-21  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/GuiDispatchServerSink.cs, libsteticui/WidgetDesigner.cs,
	  libsteticui/Project.cs: Made events fired by the designer synchronous.
	  Fixes some criticals caused by events being fired in the wrong order.
	* libstetic/wrapper/Frame.cs, libstetic/wrapper/CheckButton.cs,
	  libstetic/wrapper/Container.cs, libstetic/wrapper/ScrolledWindow.cs: Fix
	  some gtk warnings and criticals.

2008-01-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetDesigner.cs: Fix typo.

2008-01-15  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/ComboBox.cs: Fix bug #324925 - Glade import: Text combos
	  not correctly imported.

2008-01-14  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/Boolean.cs: Improve rendering of checkbox.

2008-01-11  Marek Safar <marek.safar@gmail.com> 

	* libstetic/editor/ActionMenu.cs, libstetic/editor/ActionMenuBar.cs,
	libstetic/editor/ActionToolbar.cs, libstetic/undo/ActionDiffAdaptor.cs
	libstetic/editor/ActionGroupEditor.cs: Build with the latest gmcs.

2008-01-11  Marek Safar <marek.safar@gmail.com> 

	* libsteticui/ActionGroupToolbar.cs: Build with the latest gmcs.

2008-01-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: Don't fire load events when loading a
	  widget. Fixes part of bug #352065.
	* libstetic/wrapper/Paned.cs: Fix bug in paned initialization. Fixes part of
	  bug #352065.
	* libstetic/editor/IconSelectorItem.cs: Added null check. Fixes some
	  crashes.

2007-12-13  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Container.cs: Call base method when attaching/detaching
	  designer, since Object has some logic in those methods.

2007-12-13  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/ScrolledWindow.cs, libstetic/wrapper/objects.xml: Set
	  the correct default for ScrolledWindow.XscrollbarPolicy.

2007-12-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/ActionMenuItem.cs: Don't try to remove the menu item
	  controls if they have not been added to the table.

2007-12-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/libsteticui.mdp, libstetic/libstetic.mdp, stetic/stetic.mdp,
	  stetic.mds: Updated.
	* libstetic/wrapper/objects.xml: In ScrolledWindow, ignore the default for
	  scrollbar policy. The default value returned by gtk is not correct.
	  Fixes bug #344196.
	* libstetic/ErrorWidget.cs: Allow exporting projects with unknown widgets.
	* stetic/UIManager.cs: Use gtk stock icons instead of gnome's.

2007-10-26  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/PaletteBackend.cs: Moved defaultActionIcon to ActionComponent.
	* libsteticui/ActionComponent.cs, libsteticui/ComponentType.cs,
	  libstetic/wrapper/Action.cs: Added a label property to the
	  ActionComponent. The label will be shown in the toolbox now. Also show
	  the default action icon if no icon is specified, instead of the missing
	  image icon.

2007-10-25  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/ActionItem.cs: Ignore the SelectionDisposed event if the
	  action item has already been disposed.

2007-10-23  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: Remove undo annotations from the xml
	  document when saving.

2007-10-22  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: Set default value for ShowScrollbars
	  property.

2007-10-18  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/ActionItem.cs: The selected object needs to be the action
	  because that's what is shown in the properties pad.

2007-10-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/TextView.cs, libstetic/wrapper/TreeView.cs: By default,
	  show TextView and TreeView widgets wrapped in a ScrolledWindow. Fixes
	  bug #324439.
	* libstetic/wrapper/Widget.cs, libstetic/wrapper/Container.cs,
	  libstetic/wrapper/ScrolledWindow.cs, libstetic/wrapper/Viewport.cs,
	  libstetic/wrapper/objects.xml: Implemented new ShowScrollbars
	  pseudo-property for widgets. When set, the widget will be wrapped inside
	  a ScrolledWindow. This scrolled window will be bound to the widget, so
	  if the widget is deleted or moved, the ScrolledWindow will also be
	  deleted or moved.
	* libstetic/wrapper/Table.cs, libstetic/wrapper/Paned.cs,
	  libstetic/wrapper/Box.cs, libstetic/wrapper/Notebook.cs: Methods for
	  adding widgets to a container other than Add() do not fire the child
	  Added event, so it has to be manually called.

2007-10-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/Clipboard.cs, libsteticui/Clipboard.cs: Moved to libstetic.
	* libstetic/editor/ActionGroupEditor.cs, libstetic/editor/ActionItem.cs,
	  libstetic/editor/ActionMenuItem.cs, libstetic/editor/ActionToolItem.cs:
	  Factorized common code in ActionMenuItem and ActionToolItem into
	  ActionItem. Implemented IEditableObject.
	* libstetic/editor/ActionMenu.cs: Improved support for keyboard. Return now
	  edits the selected item, and ctrl+right/left adds/removes submenus.
	* libstetic/editor/ActionMenuBar.cs, libstetic/editor/ActionToolbar.cs: Keep
	  the selection when a node is deleted. Track other api changes.
	* libstetic/IEditableObject.cs: New interface to be implemented by objects
	  which can handle clipboard operations.
	* libstetic/libstetic.mdp, libstetic/Makefile.am,
	  libsteticui/libsteticui.mdp, libsteticui/Makefile.am: Updated.
	* libstetic/Placeholder.cs, libstetic/wrapper/Widget.cs: Implemented
	  IEditableObject.
	* libsteticui/ContextMenu.cs: Use the new IEditableObject interface to
	  implement the clipboard operations.
	* libsteticui/ProjectBackend.cs, libsteticui/WidgetDesigner.cs,
	  libsteticui/WidgetEditSession.cs: Use IEditableObject to handle
	  clipboard operations.

2007-10-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: Removed unneeded dispose and destroy
	  calls. The toolbar will be destroyed together with the parent.
	* libsteticui/ActionGroupEditSession.cs: If the designer has not been
	  requested, it means it has not been added to a container, so it has to
	  be explicitely destroyed.
	* libsteticui/WidgetActionBar.cs: Removed unneeded Dispose and Destroy calls
	  (Destroy already calls dispose).
	* libsteticui/WidgetDesignerBackend.cs: Make sure base.Dispose is always
	  called. Handle exceptions thrown by the GConf query.
	* libsteticui/ActionGroupDesignerBackend.cs: Remove references on dispose.
	  Helps tracking down leaks.
	* libsteticui/PluggableWidget.cs: Don't try to create an image of the
	  designer if it is not visible. Don't explicitely destroy the child
	  designer. It will be destroyed by the subclass.
	* libstetic/editor/ActionToolbar.cs, libstetic/editor/ActionGroupEditor.cs:
	  Properly destroy items.

2007-10-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Action.cs: Avoid providing a null name in the Gtk.Action
	  constructor. Fixes crash in gtk+ 2.12.

2007-10-01  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs: Added missing null check.

2007-09-20  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/AssemblyWidgetLibrary.cs,
	  libsteticui/CecilWidgetLibrary.cs, libsteticui/ApplicationBackend.cs,
	  libsteticui/Application.cs: Added a callback for resolving assembly
	  names.

2007-09-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs, libsteticui/Designer.cs,
	  libsteticui/WidgetDesigner.cs: Added a property for getting the project
	  element being edited in the designer.
	* libsteticui/ComponentEventHandler.cs: Added property for getting the new
	  name in the args for the name change event.

2007-09-13  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/WidgetUtils.cs: Fix version comparison logic.

2007-09-10  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/Project.cs: Properly propagate the widget name change event
	  when saving the contents of the designer.

2007-09-06  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: Removed unneeded code.

2007-09-06  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs: When
	  creating the designer, about creating twice the window widget (once for
	  the source project and once for the project being edited). Removed some
	  debug code.

2007-09-06  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs, libsteticui/ApplicationBackend.cs,
	  libsteticui/Designer.cs, libsteticui/Application.cs,
	  libsteticui/WidgetDesigner.cs: The Application.ActiveProject has been
	  replaced by Application.ActiveDesigner, which coveys more information
	  about what to show in the designer widgets.
	* libsteticui/ProjectBackend.cs, libsteticui/Project.cs, libstetic/DND.cs:
	  Implemented lazy loading of windows. The project now only loads the xml,
	  and only creates the widgets when they have to be shown in the designer.
	* libsteticui/WidgetEditSession.cs, libsteticui/WidgetTree.cs,
	  libsteticui/ProjectView.cs, libsteticui/ProjectViewBackend.cs: Renamed
	  ProjectView to WidgetTree. This widget now only displays the widget tree
	  of the currently active designer.
	* libsteticui/libsteticui.mdp, libsteticui/Makefile.am: Added new files.
	* libsteticui/PaletteBackend.cs: Hide the palette if there is no active
	  project.
	* libstetic/IProject.cs, libstetic/ObjectWrapper.cs,
	  libstetic/wrapper/Widget.cs: Added notification methods to IProject, in
	  this way some common events can be forwarded to the project without
	  having to subscribe them on every widget.
	* libstetic/wrapper/Button.cs, libstetic/wrapper/Object.cs,
	  libstetic/wrapper/Container.cs, libstetic/TypedPropertyDescriptor.cs:
	  Make sure change events are not fired when widgets are loaded from xml.
	* libstetic/WidgetUtils.cs: Removed unused code.
	* stetic/Stetic.cs, stetic/DesignerView.cs, stetic/stetic.glade,
	  stetic/Makefile.am, stetic/stetic.mdp, stetic/WindowListWidget.cs,
	  stetic/UIManager.cs: Added a new widget for displaying the list of all
	  windows in the project, since the project view now only displays the
	  widget tree of the active designer. Track other api changes.

2007-09-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: Added support for NodeView. Fixes bug
	  #81238.

2007-09-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/ComboBox.cs: Comboboxes are now of type Text by default.
	  Fixes bug #81763.

2007-09-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Notebook.cs: Workaround for GTK bug. ShowAll is not
	  propagated to tab labels. Fixes bug #82476.

2007-09-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: When reloading a project, reuse the same
	  icon factory instance, since it may be inherited from another project.
	  Fixes bug #82527.
	* libsteticui/WidgetEditSession.cs: Removed unneeded assignement.
	* libsteticui/CodeGenerator.cs, libsteticui/CodeGeneratorInternalClass.cs,
	  libsteticui/CodeGeneratorPartialClass.cs, libstetic/GeneratorContext.cs:
	  Fix crash when generating the icon factory (the root object was not set
	  in the GeneratorContext).
	* libsteticui/Project.cs: Special handling of IconFactory is not needed.
	* libstetic/editor/ActionToolItem.cs: In CreateControls, fix crash caused by
	  the icon property being set too early, when it might be null.
	* libstetic/editor/ActionToolbar.cs: Added missing null check.

2007-09-03  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: FileChooserButton doesn't have a default
	  constructor, it requires the title and the action. Fixes bug #82671.

2007-08-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs, libsteticui/Application.cs,
	  libsteticui/ApplicationBackendController.cs: When a library is unloaded
	  notify the application frontend. The frontend can then clear cached data
	  from the library.
	* libstetic/wrapper/objects.xml: Update EventBox category to 'container'.
	* libstetic/ClassDescriptor.cs: When no label is set for a widget, use the
	  class name, without namespace.

2007-08-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Widget.cs: Added missing null check. Don't set the Name
	  property to unselectable widgets.

2007-07-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Button.cs, libstetic/wrapper/ButtonBox.cs: Don't
	  store the IsDialogButton property. The value can be determined on
	  the fly.

2007-07-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: Assign the target gtk version to
	  the project being edited.
	* libstetic/wrapper/IconView.cs, libstetic/wrapper/objects.xml,
	  libstetic/libstetic.mdp, libstetic/Makefile.am: Added wrapper for
	  IconView.
	* libstetic/TypedPropertyDescriptor.cs: Added null check.

2007-07-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/ImageInfo.cs, libstetic/editor/ThemedIcon.cs,
	  libstetic/editor/SelectImageDialog.cs,
	  libstetic/editor/StockIconSelectorItem.cs,
	  libstetic/editor/StockIconList.cs, libstetic/editor/StockItem.cs,
	  libstetic/editor/SelectIconDialog.cs,
	  libstetic/GeneratorContext.cs, libstetic/WidgetUtils.cs: Fixed
	  loading of theme and gtk stock icons.

2007-07-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetPropertyTreeBackend.cs: Added missing null check.

2007-07-27  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs: Added null check.
	* libsteticui/PluggableWidget.cs: When updating the child widget, do
	  not add it to the notebook if it is already a child of the
	  notebook.
	* libstetic/wrapper/pixmaps/comboentry.png,
	  libstetic/wrapper/pixmaps/iconview.png, libstetic/libstetic.mdp,
	  libstetic/Makefile.am: Added some missing icons.
	* libstetic/wrapper/Widget.cs, libstetic/wrapper/objects.xml: Fixed
	  some issues with HasDefault. It can only be assigned when the
	  widget already has a parent.
	* libstetic/TypedClassDescriptor.cs: Report icon loading errors.

2007-07-20  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: Make DeleteSelection work for
	  placeholders.
	* libsteticui/WidgetEditSession.cs, libsteticui/Component.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/WidgetComponent.cs:
	  Moved all clipboard checking properties to WidgetDesigner.

2007-07-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/Project.cs: Fixes on ActionGroup management.

2007-07-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupToolbar.cs: Notify group changes to the
	  frontend.
	* libsteticui/ActionGroupEditSession.cs: Don't delay the creation of
	  the designer because when used in combination with the widget
	  designer, change events are subscribed since the begining

2007-07-10  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: Fix NRE (bug #82052).

2007-07-09  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/ActionMenuItem.cs,
	  libstetic/editor/ActionToolItem.cs: Show menu items and tool
	  buttons insensitive when bound to an insensitive action. Fixes bug
	  #81810.

2007-07-09  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectViewBackend.cs: Cosmetic fixes.

2007-07-09  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs: Return 2.4 target gtk version is
	  none is provided.
	* libsteticui/ApplicationBackend.cs, libsteticui/Application.cs,
	  libsteticui/ComponentType.cs: Added Library property to
	  ComponentType.
	* libsteticui/PluggableWidget.cs: The widget may be unrealized after
	  adding the notebook. Added a null check for this case. Fixes bug
	  #81977.

2007-06-27  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs, libsteticui/Application.cs,
	  libsteticui/ComponentType.cs: When reading the component list of a
	  library, get the target version.
	* libsteticui/ApplicationBackend.cs: Properly report an error when
	  dropping a widget of a class that doesn't exist.
	* libstetic/WidgetLibrary.cs, libstetic/DND.cs: Added null check.

2007-06-27  Jacob Ilsø Christensen  <jacobilsoe@gmail.com>

	* libstetic/WidgetLibrary.cs: Added handling of
	an empty objects.xml file.

2007-06-22  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs: When looking for widgets in a
	  library, ignore those without a palette category.
	* libsteticui/ApplicationBackend.cs: Added null check.
	* libsteticui/Application.cs: Don't try to load widgets from an
	  assembly if we know that's not a widget library.
	* libstetic/CustomWidget.cs: Add IntPtr constructor.
	* libstetic/EnumDescriptor.cs: Fix problem with the enum loading code,
	  which was not working when loading Gtk.SelectionMode, because it
	  has two members with the same value.
	* libstetic/wrapper/Container.cs: When dropping an object, look for
	  placeholders in all the child hierarchy, not only the direct
	  childs.

2007-06-20  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: Flickering fixes.
	* libsteticui/WidgetDesigner.cs: In BeginComponentDrag, don't take a
	  callback when the component type is known.

2007-06-20  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/PluggableWidget.cs,
	  libsteticui/Project.cs: Fixed flickering in widget designers caused
	  by project reloading. The new ProjectReloading event is fired
	  before the whole process reloading starts, and the designer takes a
	  'screenshot' of the old desiger, which is shown in place of the
	  real designer during the reloading process.
	* libsteticui/CecilWidgetLibrary.cs, libsteticui/Application.cs: Added
	  GetComponentTypes method, which returns a list of widgets
	  implemented in a library, without having to load it.
	* libsteticui/ApplicationBackend.cs, libstetic/IProject.cs,
	  libstetic/ObjectWriter.cs, libstetic/ObjectWrapper.cs,
	  libstetic/wrapper/Container.cs, libstetic/DND.cs: Added support for
	  dragging widgets from a palette before loading the widget library
	  that implements them. When the widget is dropped, a callback is
	  called (which is supposed to load the library) and the new widget
	  is created.
	* libstetic/wrapper/pixmaps/widget.png, libstetic/libstetic.mdp,
	  libstetic/Makefile.am: Added new image.

2007-06-19  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: Added some missing gtk 2.8 properties.

2007-06-18  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/SignalsEditorBackend.cs,
	  libsteticui/WidgetPropertyTreeBackend.cs,
	  libsteticui/WidgetEditSession.cs, libsteticui/PropertyTree.cs,
	  libsteticui/WidgetActionBar.cs, libsteticui/ApplicationBackend.cs,
	  libsteticui/PaletteBackend.cs, libsteticui/Project.cs,
	  libstetic/IProject.cs, libstetic/ItemDescriptor.cs,
	  libstetic/ObjectWrapper.cs, libstetic/WidgetLibrary.cs,
	  libstetic/ErrorWidget.cs, libstetic/WidgetUtils.cs,
	  libstetic/ClassDescriptor.cs: Allow selecting the target the gtk#
	  version of a project.
	* libstetic/wrapper/objects.xml: Added new widgets, properties and
	  events for gtk# 2.6.

2007-06-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/lib/Mono.Cecil.dll: Updated from SVN, to keep in sync
	  with MD.

2007-06-11  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/Project.cs: Make sure the project backend is loaded when
	  checking the CanGenerateCode property.

2007-06-11  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/ImageInfo.cs: Load images from a path relative to the entry
	  assembly location.

2007-06-11  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/Project.cs: Fix problem with reading empty action groups.

2007-06-04  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/GeneratorContext.cs: IconLoader must be an internal class.

2007-05-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Action.cs: Generate initialization of the Active
	  and DrawAsRadio properties. They are not generated by default
	  because they belong to a Gtk.Action subclass. Fixes bug #81785.

2007-05-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/Project.cs: Added method
	  for getting all widget types included in a project.
	* libstetic/wrapper/objects.xml: Gtk.Bin now inherits the properties of
	  Gtk.Container.

2007-05-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilClassDescriptor.cs: Added missing null check when
	  checking for base classes in FindEvent.

2007-05-30  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/libsteticui.mdp, libsteticui/Makefile.am: Added reference
	  to glib.
	* libsteticui/WidgetActionBar.cs, libstetic/CommandDescriptor.cs: Use
	  Menu size for command icons.
	* libsteticui/WidgetTreeCombo.cs: Replaced the popup widget menu by a
	  popup widget tree view. Fixes bug #81762.

2007-05-30  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Window.cs: Store the WindowPosition property in the
	  Window wrapper, since it may sometimes be changed by the embedder
	  widget.
	* libstetic/wrapper/objects.xml: Added default value for Widget.Events
	  property.
	* libstetic/wrapper/Dialog.cs: (Wrap) Don't initialize the HasSeparator
	  property if the provided instance is already initialized.

2007-05-30  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/ActionMenuBar.cs, libstetic/editor/ActionMenu.cs:
	  When a menu bar loses the focus, reset the menu item selection
	  before hiding the submenus. Fixes bug #81761.

2007-05-23  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/StockIconSelectorItem.cs,
	  libstetic/editor/IconSelectorItem.cs: Added IntPtr constructors. It
	  seems to crash without them in some contexts.

2007-05-21  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs: When saving write to a temporary file
	  first, just in case something fails.

2007-05-21  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilSignalDescriptor.cs,
	  libsteticui/CecilWidgetLibrary.cs: Properly handle generic event
	  handler types. Fixes bug #80783.

2007-05-19  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/Project.cs,
	  libstetic/IProject.cs: Added ImagesRootPath, which is the root path
	  where to start looking for images. Added the ImportFileCallback
	  callback, called when an image file is referenced from the stetic
	  project.
	* libstetic/ImageInfo.cs: Image files are now relative to
	  ImagesRootPath.
	* libstetic/stetic.glade, libstetic/editor/SelectImageDialog.cs: Use
	  the new root image path to create relative paths to images.
	* libstetic/editor/ImageSelector.cs: Make the clean button smaller.
	* libstetic/WidgetUtils.cs: Added AbsoluteToRelative function.

2007-05-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Notebook.cs, libstetic/wrapper/objects.xml: Added
	  CurrentPage property to Notebook.

2007-05-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilSignalDescriptor.cs: Added missing null check.
	* libsteticui/ProjectBackend.cs: Remove debug cwl.
	* libstetic/wrapper/Container.cs: Don't show the main window if the
	  visible flag is not set. Fixes bug #81365.

2007-05-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetActionBar.cs, libstetic/CommandDescriptor.cs: Fix
	  bug about widget commands without an icon not being properly shown.
	* libstetic/wrapper/Notebook.cs: Implemented Swap methods.
	* libstetic/libstetic.mdp: Updated.

2007-05-16  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/PaletteBackend.cs, libsteticui/Project.cs: Added
	  support for internal widgets and internal widget libraries.
	  Internal widgets won't be shown in the palette unless the library
	  to which they belong is internal to the project.
	* libsteticui/Component.cs, libsteticui/ActionGroupComponent.cs,
	  libsteticui/WidgetComponent.cs: Added properties for changing the
	  GeneratePublic flag.
	* libstetic/ImageInfo.cs, libstetic/ProjectIconFactory.cs,
	  libstetic/GeneratorContext.cs: Added a GenerateLoadPixbuf method
	  which creates a pixbuf from a stock image name in safe way (it
	  won't crash if the image doesn't exist, but it will return a
	  'missing image' icon).
	* libstetic/wrapper/ActionGroup.cs: Allow generatic private action
	  groups.
	* libstetic/ClassDescriptor.cs: Added support for internal widgets.

2007-05-15  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs, libsteticui/ProjectBackend.cs,
	  libsteticui/WidgetInfoEventHandler.cs, libsteticui/Application.cs,
	  libsteticui/Project.cs, libsteticui/PluggableWidget.cs,
	  stetic/Stetic.cs, stetic/DesignerView.cs, stetic/UIManager.cs:
	  Implemented lazy loading of projects. Project widgets won't be
	  instantiated until necessary. The new WidgetInfo class allows
	  getting the list of toplevels in a project without having to
	  completely load it.
	* libsteticui/CecilSignalDescriptor.cs,
	  libsteticui/CecilPropertyDescriptor.cs,
	  libsteticui/LibraryCache.cs, libsteticui/CecilClassDescriptor.cs,
	  libsteticui/CecilWidgetLibrary.cs: Store parsed information in a
	  cache file. When loading the library again stetic will check if the
	  library has changed, and it if has not it will load widget info
	  from the cache file.
	* libsteticui/libsteticui.mdp, libsteticui/Makefile.am: Updated.
	* libsteticui/ProjectView.cs, libsteticui/ProjectViewBackend.cs: Added
	  SelectionChanged event. Moved from the Project class, since project
	  doesn't have the concept of Selection anymore.
	* libsteticui/WidgetDesigner.cs: Added clipboard check operations from
	  the Project class.
	* libstetic/wrapper/Widget.cs: After reading the info of a widget,
	  store the oldName field, so it can properly track name changes.
	* stetic/Makefile.am, stetic/stetic.mdp: Added new files.

2007-05-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/ScrolledWindow.cs: Manually notify that a child has
	  been added, since the child added event is not being fired.
	* libstetic/GladeUtils.cs: Normalize glade field names when loading.

2007-05-02  Mike Kestner <mkestner@novell.com> 

	* libsteticui/WidgetFactory.cs: don't Destroy from Dispose override
	since the circular ref GC mechanism can get to the child before the
	parent.

2007-05-01  Mike Kestner <mkestner@novell.com> 

	* libstetic/wrapper/MenuBar.cs:
	* libstetic/wrapper/ActionToolbarWrapper.cs:
	* libstetic/editor/ActionMenuItem.cs:
	* libstetic/editor/IconSelectorMenuItem.cs:
	* libstetic/editor/ActionMenu.cs: Call base.Dispose on GLib.Objects 
	after all other dispose actions are performed.

2007-05-01  Mike Kestner <mkestner@novell.com> 

	* libsteticui/WidgetFactory.cs:
	* libsteticui/ProjectView.cs:
	* libsteticui/PaletteBackend.cs:
	* libsteticui/SignalsEditor.cs:
	* libsteticui/ActionGroupToolbar.cs:
	* libsteticui/WidgetDesigner.cs:
	* libsteticui/PluggableWidget.cs:
	* stetic/DesignerView.cs: Call base.Dispose on GLib.Objects after
	all other dispose actions are performed.

2007-04-27  Mike Kestner <mkestner@novell.com> 

	* libstetic/editor/ActionToolbar.cs (FillMenu):  can't Destroy
	after Disposing the widgets. Just Destroy, as it disposes.

2007-04-27  Mike Kestner <mkestner@novell.com> 

	* libsteticui/ObjectWrapper.cs:  ContainerChildHashItem.Equals needs
	to return avoid cast and return false if comparing to another type.

2007-04-26  Mike Kestner <mkestner@novell.com> 

	* libsteticui/PaletteBackend.cs:  ActionGroupBox.Dispose needs to 
	do its cleanup before invoking base.Dispose.
 
2007-04-18  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/libsteticui.mdp, libstetic/libstetic.mdp: Updated.
	* libstetic/wrapper/Box.cs, libstetic/wrapper/Table.cs: Set spacing to
	  6 by default.
	* libstetic/wrapper/ScrolledWindow.cs: Set scrolling to automatic by
	  default.
	* libstetic/WidgetUtils.cs, libstetic/ClassDescriptor.cs,
	  libstetic/TypedClassDescriptor.cs: When looking for default values,
	  avoid initializing the test instance, make sure the get an instance
	  with all default values.

2007-04-10  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CecilWidgetLibrary.cs: Performance improvements in the
	  method that resolves widget types.
	* libstetic/wrapper/ButtonBox.cs: Don't automatically bind dialog
	  buttons with response type set to None.
	* libstetic/PropertyDescriptor.cs: Set the hasDefault flag when a
	  default is explicitely set in the objects.xml file.
	* libstetic/Makefile.am: Updated.

2007-03-28  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs: Don't allow cutting/copying top
	  level widgets. Fixes bug #81015.

2007-03-28  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs: When
	  selecting a widget, avoid setting the focus to the parent
	  container, since it may end changing the selection. Fixes bug
	  #81014. 

2007-03-28  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: Removed properties already inherited
	  from Gtk.Button.

2007-03-28  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/undo/XmlDiffAdaptor.cs: Don't crash if a child element
	  doesn't exist.
	* libstetic/editor/StockItem.cs: Fix warning.

2007-03-28  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/ScrolledWindow.cs: Don't generate the viewport if
	  there isn't any child. Make scrollbars always visible in the
	  designer.
	* libstetic/wrapper/objects.xml: Ignore the default for DrawIndicator,
	  since the default is 'false', but a default CheckButton has 'true'
	  as value. 

2007-03-26  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs,
	  libsteticui/CodeGeneratorPartialClass.cs,
	  libstetic/wrapper/Widget.cs, libstetic/wrapper/objects.xml: Support
	  generating private classes.
	* libsteticui/ComponentType.cs, libstetic/ImageInfo.cs,
	  libstetic/wrapper/Action.cs, libstetic/wrapper/ImageMenuItem.cs,
	  libstetic/editor/StockItem.cs, libstetic/WidgetUtils.cs: Use the
	  new MissingIcon constant.
	* libstetic/wrapper/ComboBox.cs: Made combo values translatable. Fixes
	  bug #81033.
	* libstetic/HandleWindow.cs: Removed unused file.

2007-03-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Container.cs: Fix null ref.
	* libstetic/wrapper/Widget.cs: Use a wrapper property for CanFocus
	  since it may be changed by the designer.

2007-03-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetDesignerBackend.cs: ResetSelection now sets the
	  focus to the fixed container.
	* libsteticui/PropertyTree.cs: Dispose the edit session of a cell when
	  losing the focus.
	* libsteticui/PaletteBackend.cs: Don't call SetActionGroups when
	  disposing, since it ends calling show().
	* libstetic/wrapper/Container.cs: Use ResetSelection to remove the
	  focus from the current widget.
	* libstetic/editor/TextEditor.cs: Don't fire the changed event at every
	  key press, only when pressing enter or losing the focus.
	* libstetic/PropertyEditorCell.cs: When losing the focus, update the
	  property value.
	* libstetic/wrapper/Widget.cs: Don't try to change widget event flags
	  if the widget is already realized.

2007-03-06  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs: Added some null checks. Added
	  BeginComponentDrag, to allow using an external toolbox.
	* libsteticui/ProjectBackend.cs, libsteticui/WidgetDesigner.cs,
	  libsteticui/Project.cs: Added method for getting all component
	  types accessible from a project. Added some null checks.
	* libsteticui/WidgetEditSession.cs: Reload the project when the widget
	  libraries change.
	* libsteticui/Application.cs: Fill ComponentType with category
	  information.
	* libsteticui/PropertyTree.cs: Removed the horizontall scrollbar. Cell
	  size will always fit the available space. Allow changing the column
	  width by dragging the divider.
	* libsteticui/PaletteBackend.cs: The library list of a project now
	  includes the core library.
	* libsteticui/ActionGroupComponent.cs: Added null check.
	* libsteticui/ComponentType.cs: Added category information. Allow
	  creating a ComponentType from an action.
	* libsteticui/WidgetComponent.cs: Added some null checks.
	* libstetic/editor/Enumeration.cs: Use a combo box entry with no frame
	  as selector. It takes less space.
	* libstetic/editor/TextEditor.cs, libstetic/editor/Flags.cs,
	  libstetic/editor/String.cs, libstetic/editor/IntRange.cs,
	  libstetic/editor/Identifier.cs, libstetic/editor/OptIntRange.cs,
	  libstetic/editor/StringArray.cs: Removed frames from all editors.
	  Take less space.



2007-02-24  Zach Lute <zach.lute@gmail.com>

	* libstetic/ImageInfo.cs: Fixed an issue in which an image thumbnail
	  wouldn't be scaled if width and height were equal. Fixes bug #80927.

2007-03-02  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/ObjectReader.cs, libstetic/wrapper/Container.cs: Fixed
	  issues with internal children when importing a glade file.
	* libstetic/GladeUtils.cs: Use invariant culture to parse floats.

2007-02-20  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupEditSession.cs: Added null check.
	* libstetic/wrapper/Action.cs: Don't set the type to Radio unless a
	  real group name is provided.
	* libstetic/editor/ActionMenu.cs: Set AppPaintable, since we do some
	  custom painting in the Expose event. Also call the base
	  OnExposeEvent after painting the background. Fixes bug #80864.



2007-02-19  Nate Hancock <nchancock@yahoo.com>

	* libstetic/wrapper/object.xml: Gtk.ToggleButton now has base class 
     Gtk.Button instead of Gtk.Container.

2007-02-19  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetFactory.cs, libsteticui/WidgetEditSession.cs:
	  Several fixes in the disposing code.
	* libsteticui/ActionGroupToolbar.cs: Unsubscribe all events, since gtk#
	  seems to leak if not done. Replaced all anonymous methods, since
	  keep to many references in memory.
	* libsteticui/ActionGroupDesignerBackend.cs: Removed the Dispose
	  method, since everything will be disposed when the backend is
	  destroyed.
	* libsteticui/libsteticui.mdp, libstetic/libstetic.mdp,
	  stetic/stetic.mdp: Updated.
	* libsteticui/WidgetDesigner.cs: Added some checks to avoid operating
	  on disposed designers.
	* libsteticui/ActionGroupEditSession.cs: Delay the creation of the
	  action group designer until it is really required.
	* libsteticui/PluggableWidget.cs: Explicitely destroy replaced
	  children.
	* libstetic/undo/UndoManager.cs: Don't use an anonymous method since it
	  will hold a reference to the object to which the event is being
	  added, and we don't want this.
	* libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs: Moved
	  tooltip generation code from Widget to Container. Reset the
	  generated widget code when starting code generation.
	* libstetic/wrapper/MenuBar.cs: Dispose the attached ActionTreeNode
	  object when the palette item is disposed.
	* libstetic/wrapper/ActionTree.cs: Recursively dispose node children. 
	* libstetic/editor/ActionGroupEditor.cs: Unsubscribe events when
	  disposing.

2007-02-13  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/wrapper/Container.cs: Emit the content changed event when a
	  new child is added.
	* libstetic/wrapper/Paned.cs: Add1 and Add2 does not fire the child
	  added event, so the parent has to be manually notified.

2007-02-13  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/RadioGroupManager.cs: Implement the IRadioGroupManager
	  interface.
	* libstetic/wrapper/Action.cs, libstetic/wrapper/objects.xml,
	  libstetic/wrapper/RadioActionGroupManager.cs: Implemented support
	  for radio groups in RadioAction objects.
	* libstetic/wrapper/RadioToolButton.cs,
	  libstetic/wrapper/RadioButton.cs,
	  libstetic/wrapper/RadioMenuItem.cs: Implement the new
	  IRadioGroupManagerProvider interface.
	* libstetic/IRadioGroupManager.cs: Added new interface for wrapping
	  group managers.
	* libstetic/editor/GroupPicker.cs: Get the group manager from the
	  manager provider, instead of looking for a static method.
	* libstetic/libstetic.mdp, libstetic/Makefile.am: Updated.

2007-02-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs, libsteticui/Application.cs,
	  libstetic/stetic.glade, libstetic/wrapper/Container.cs,
	  libstetic/editor/NonContainerWarningDialog.cs,
	  libstetic/libstetic.mdp, libstetic/Makefile.am, stetic/Stetic.cs,
	  stetic/Configuration.cs: When dropping a non-container into a main
	  window, warn the user whether they really wanted that, or if they
	  instead wanted a container to be in place. Make this warning dialog
	  configurable.
	* libsteticui/PropertyTree.cs: Removed unused code.

2007-02-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/PropertyTree.cs: Refiltering the tree while it is being
	  edited has lots of issues, so filtering has been completely
	  removed. Now, the label of hidden properties are shown as disabled,
	  and the content blank.
	* stetic/Makefile.am, stetic/stetic.mdp: Added missing resource.

2007-02-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/libsteticui.mdp, libsteticui/Makefile.am,
	  libstetic/Makefile.am, stetic/Makefile.am: Flush.
	* libsteticui/WidgetDesigner.cs: When disposing the active project,
	  reset the active project property.
	* libstetic/GeneratorContext.cs: Added a code generation option for
	  specifying the Gettext class to use.

2007-02-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/libsteticui.mdp, libsteticui/Makefile.am: Fixed
	  references.
	* configure.in: Added missing modules.

2007-02-08  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/Makefile.am, libstetic/Makefile.am, stetic/Makefile.am:
	  Distcheck fixes.
	* libstetic/GeneratorContext.cs: Don't generate gettext for empty
	  strings.
	* configure.in: Add missing package.
	* stetic/stetic.mdp, libsteticui/libsteticui.mdp,
	  libstetic/libstetic.mdp, stetic.mds: Added MonoDevelop projects.

2007-02-05  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: Clone the widget library list from
	  the master project since the list is cleared when the copy project
	  is closed.
	* libstetic/ObjectWrapper.cs, libstetic/wrapper/Button.cs,
	  libstetic/PropertyDescriptor.cs, libstetic/WidgetUtils.cs: Properly
	  generate translatable properties.

2007-02-02  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/editor/SelectImageDialog.cs,
	  libstetic/editor/StockIconSelectorItem.cs,
	  libstetic/editor/SelectIconDialog.cs, libstetic/WidgetUtils.cs,
	  libstetic/TypedClassDescriptor.cs,
	  libstetic/wrapper/pixmaps/missing.png: Looks like some themes don't
	  have icon for gtk-missing-image. Added a fallback to avoid crashes.
	* stetic/UIManager.cs: Action fixes.

2007-02-01  Lluis Sanchez Gual <lluis@novell.com> 

	* configure.in: More dependency removal.

2007-02-01  Lluis Sanchez Gual <lluis@novell.com> 

	* autogen.sh: Removed gnome-common dependency.

2007-01-31  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/Clipboard.cs: Use the new PasteChild method, since
	  ReplaceChild is now protected.
	* libsteticui/Glade.cs: Don't try to resolve references when loading a
	  glade file.
	* libsteticui/libsteticui.dll.config, libstetic/libstetic.dll.config:
	  Added dlls maps for MacOSX
	* libstetic/wrapper/Button.cs, libstetic/wrapper/CheckButton.cs: Set
	  UseUnderline = true by default.
	* libstetic/wrapper/Container.cs: Made ReplaceChild protected. Make
	  sure widgets copied from clipboard are properly registered in the
	  undo system.
	* libstetic/wrapper/Paned.cs, libstetic/wrapper/Box.cs,
	  libstetic/wrapper/Frame.cs, libstetic/wrapper/Fixed.cs,
	  libstetic/wrapper/ScrolledWindow.cs, libstetic/wrapper/Toolbar.cs,
	  libstetic/wrapper/Notebook.cs, libstetic/wrapper/Expander.cs: Made
	  ReplaceChild protected.
	* libstetic/wrapper/ComboBoxEntry.cs: Fix code generation issue for
	  text combo box.
	* libstetic/wrapper/objects.xml: Added UseUnderline property to
	  CheckButton.
	* libstetic/DND.cs: Use the native format for copy/paste widgets.

2007-01-25  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CodeGenerator.cs,
	  libsteticui/CodeGeneratorInternalClass.cs,
	  libsteticui/CodeGeneratorPartialClass.cs: Make sure the globla
	  Initialization is called from internal and partial classes.
	* libstetic/editor/ActionMenuItem.cs,
	  libstetic/editor/ActionToolItem.cs: Fix compilation conflict with
	  recent gtk# versions.

2007-01-22  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetDesigner.cs: Avoid disposing twice the designer.

2007-01-22  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs, libsteticui/ProjectBackend.cs,
	  libsteticui/Application.cs: Fixed problem when updating project
	  libraries. Make sure referenced libraries are not unloaded when
	  they are still needed.
	* libsteticui/CecilWidgetLibrary.cs: Null check.

2007-01-22  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs, libsteticui/ProjectView.cs,
	  libsteticui/SignalsEditor.cs, libsteticui/PluggableWidget.cs: Some
	  protection to avoid dispatching some events after the object has
	  been disposed.
	* libsteticui/ApplicationBackend.cs: Changed the way libraries are
	  loaded. If a library has dependencies, the dependencies are loaded
	  first.
	* libsteticui/CecilSignalDescriptor.cs,
	  libsteticui/CecilPropertyDescriptor.cs,
	  libsteticui/AssemblyResolver.cs,
	  libsteticui/CecilClassDescriptor.cs,
	  libsteticui/CecilWidgetLibrary.cs: New classes which allow loading
	  a widget library using cecil.
	* libsteticui/ProjectBackend.cs, libsteticui/Project.cs: Project
	  libraries are now stored in the project file. In this way it is
	  possible to generate code for projects which depend on other
	  libraries using the command line tool.
	* libsteticui/GuiDispatchServerSink.cs: Removed debug message.
	* libsteticui/CodeGenerator.cs: Avoid dependency on
	  TypeSignalDescriptor.
	* libsteticui/WidgetTreeCombo.cs, stetic/Stetic.cs: Misc fixes.
	* libsteticui/WidgetEditSession.cs, libsteticui/WidgetDesigner.cs: Some
	  protection to avoid dispatching some events after the object has
	  been disposed. Some fixes for the out-of-process mode.
	* libsteticui/Application.cs: Implemented method which determines if an
	  assembly is a widget library or not. Other misc fixes.
	* libsteticui/PaletteBackend.cs: Update the widget list when the
	  registry changes.
	* libsteticui/Makefile.am: Updated. Added Cecil dependency.
	* libsteticui/AssemblyWidgetLibrary.cs, libstetic/WidgetLibrary.cs:
	  Added GetLibraryDependencies method, which returns widget libraries
	  needed by the widgets of this library.
	* libstetic/ItemGroup.cs, libstetic/Registry.cs: When looking for an
	  item group of a class, avoid returning a group which has not been
	  declared in the class, but inherited by a base class.
	* libstetic/NoGuiDispatchAttribute.cs: Moved from libsteticui to
	  libstetic.
	* libstetic/ObjectWrapper.cs: Added an extended data property where
	  class descriptors can store random information.
	* libstetic/wrapper/Container.cs: Removed dependency on
	  TypeClassDescriptor.
	* libstetic/wrapper/FontSelectionDialog.cs,
	  libstetic/wrapper/ComboBox.cs, libstetic/wrapper/ColorButton.cs:
	  Set the correct base class.
	* libstetic/wrapper/ScrolledWindow.cs: Destory viewport after replacing
	  it.
	* libstetic/wrapper/objects.xml, libstetic/ClassDescriptor.cs,
	  libstetic/TypedClassDescriptor.cs: Implemented support for
	  'base-type' attribute, which means that a widget class inherits all
	  properties and events of the referenced type.
	* libstetic/wrapper/TreeView.cs: New wrapper for TreeView.
	* libstetic/Makefile.am: Updated.
	* libstetic/AssemblyWidgetLibrary.cs: Moved to libsteticui.

2007-01-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libstetic/EnumDescriptor.cs: Avoid importing enum values which have
	  not been declared in the xml file. Shoud fix bugs 80007 and 80471.
	* libstetic/wrapper/objects.xml: Removed missing property.

2007-01-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs: Fixed some warnings.
	* libsteticui/WidgetDesignerBackend.cs,
	  libsteticui/WidgetEditSession.cs, libstetic/IDesignArea.cs,
	  libstetic/editor/ActionMenuItem.cs,
	  libstetic/editor/ActionToolItem.cs: Provide information about the
	  drag hot point when firing the drag event. Allow enabling/disabling
	  drag support.
	* libsteticui/ProjectBackend.cs: Fix cast exception when changing
	  signals in actions.
	* libsteticui/Clipboard.cs, libstetic/wrapper/Button.cs,
	  libstetic/wrapper/Frame.cs, libstetic/wrapper/ButtonBox.cs: User
	  the new ReplaceChild overload.
	* libsteticui/WidgetDesigner.cs: Improve error message when the
	  designet can't be loaded.
	* libsteticui/Makefile.am, configure.in, stetic/Makefile.am: Build
	  libstetic with mcs instead of gmcs, since that assembly may need to
	  be linked with widget libraries based on .net 1.1.
	* libstetic/wrapper/pixmaps/fixed.png: New bitmap for Gtk.Fixed.
	* libstetic/wrapper/Container.cs: Added protected methods for notifying
	  the add/remove child event, since some containers don't fire them.
	  Added ReplaceChild overload which will explicitely destroy the
	  replaced widget. Don't allow dragging top level widgets.
	* libstetic/wrapper/Fixed.cs, libstetic/Makefile.am: Implemented
	  support for Gtk.Fixed.
	* libstetic/wrapper/Window.cs: Don't generate code for the Type
	  property, since it's read-only.
	* libstetic/wrapper/objects.xml: Implemented support for Gtk.Fixed.
	  Hide the Type property, since code for that property can't be
	  generated (it must be provided by the user in the window
	  constructor.
	* libstetic/DND.cs: Added properties for getting the hot drag point
	  when dragging a widget.

2007-01-15  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/UndoQueue.cs: Removed debug messages.

2007-01-15  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ApplicationBackend.cs, libstetic/Registry.cs: Allow
	  grouping several changes in the registry in a single transaction.
	* libsteticui/CodeGenerator.cs, libsteticui/Application.cs,
	  libsteticui/CodeGeneratorInternalClass.cs,
	  libsteticui/CodeGeneratorPartialClass.cs,
	  libsteticui/CodeGenerationResult.cs, libstetic/ObjectWrapper.cs,
	  libstetic/GeneratorContext.cs, libstetic/ErrorWidget.cs,
	  stetic/Stetic.cs: Added an option to allow generating code even
	  when not all referenced widgets are available. Added support for
	  warnings in the code generation methods, so the caller can get
	  information about what went wrong during the generation process.
	* libsteticui/Makefile.am: Added CodeGenerationResult.
	* libstetic/wrapper/Widget.cs: Clear the signal list when reloading a
	  widget. Fixed action group read code.
	* libstetic/wrapper/Table.cs: Always return the children of the table
	  in the same order, to avoid unneeded changes in the diff files.

2007-01-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ContainerUndoRedoManager.cs: Added missing file.

2007-01-12  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs: When saving the designer session,
	  instead of deleting the old widget and adding the new one, update
	  the existing widget.
	* libsteticui/Application.cs: Added some thread locking.
	* libsteticui/Project.cs: When a widget name changed event is received,
	  update the corresponding component from the current thread, there
	  is no need to do it in the gui thread.
	* libstetic/wrapper/Container.cs: Added null check for container child.

2007-01-11  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs, libsteticui/WidgetDesigner.cs,
	  libsteticui/ActionGroupEditSession.cs: Added undo support for the
	  global action group designer.
	* libsteticui/ApplicationBackend.cs: Catch errors when loading a
	  library to avoid aborting the whole update operation.
	* libsteticui/ProjectBackend.cs,
	  libsteticui/CodeGeneratorInternalClass.cs,
	  libsteticui/PaletteBackend.cs, libsteticui/PropertyGrid.cs,
	  libstetic/undo/ActionDiffAdaptor.cs, stetic/Stetic.cs,
	  stetic/DesignerView.cs: Track api changes.
	* libsteticui/CodeGenerator.cs: Include actions in the bind field list.
	* libsteticui/ComponentEventHandler.cs, libsteticui/Project.cs: The
	  component removed event now provides the name of the removed
	  component, no the component reference. Needed since the component
	  is already removed, and providing an instance in this case is
	  problematic.
	* libsteticui/ActionComponent.cs: Added property for gettion the group
	  of an action.
	* libsteticui/Makefile.am: Added new file.
	* libsteticui/UndoQueue.cs: Generalized the undo manager, so it can be
	  used for the action group editor.
	* libstetic/undo/DiffGenerator.cs: Improved error message.
	* libstetic/undo/UndoManager.cs: Make sure the UndoWriter works for
	  wrappers other than widgets. Don't include disposed or unregistered
	  wrappers into the undo event.
	* libstetic/ObjectWrapper.cs: Factorized some undo properties and
	  methods into ObjectWrapper.
	* libstetic/wrapper/Action.cs: More undo support.
	* libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs: Removed
	  some methods and properties now implemented in ObjectWrapper.
	* libstetic/wrapper/ActionGroup.cs: ActionGroup is now an ObjectWrapper
	  subclass. Added better support for Undo.
	* libstetic/editor/ActionGroupEditor.cs: Use new new ObjectChanged
	  event.
	* libstetic/GeneratorContext.cs: Made GenerateInstanceExpression
	  public.
	* stetic/LibraryManagerDialog.cs: Fixed warning.

2007-01-09  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/CodeGenerator.cs: Don't generate variables for
	  unselectable widgets. Use CodeDom expressions instead of variable
	  names when possible. When using partial classes, avoid creating
	  unneeded local variables, use field references instead.
	* libsteticui/WidgetTreeCombo.cs: Don't show unselectable widgets, but
	  show its children if they are selectable.
	* libsteticui/CodeGeneratorInternalClass.cs: Use CodeDom expressions
	  instead of variable names when possible. Fixed some incorrect
	  variable names. Make sure the generated class names are valid.
	* libsteticui/CodeGeneratorPartialClass.cs: Use CodeDom expressions
	  instead of variable names when possible.
	* libstetic/RadioGroupManager.cs, libstetic/ObjectWrapper.cs,
	  libstetic/wrapper/Button.cs, libstetic/wrapper/Label.cs,
	  libstetic/wrapper/TextView.cs,
	  libstetic/wrapper/RadioToolButton.cs,
	  libstetic/wrapper/RadioButton.cs, libstetic/wrapper/Frame.cs,
	  libstetic/wrapper/ActionGroup.cs, libstetic/wrapper/Window.cs,
	  libstetic/wrapper/ComboBox.cs, libstetic/wrapper/ColorButton.cs,
	  libstetic/wrapper/Notebook.cs, libstetic/wrapper/ButtonBox.cs,
	  libstetic/wrapper/MenuBar.cs,
	  libstetic/wrapper/ActionToolbarWrapper.cs,
	  libstetic/wrapper/RadioMenuItem.cs, libstetic/wrapper/Expander.cs,
	  libstetic/wrapper/Bin.cs, libstetic/wrapper/CheckButton.cs,
	  libstetic/ErrorWidget.cs: Track api changes. Variable name in code
	  generation methods has been replaced by a CodeDom expression.
	* libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs: Instead
	  of calling Show for each visible widget, call ShowAll on the top
	  level container child, and hide all invisible widgets. Track api
	  changes.
	* libstetic/GeneratorContext.cs: Don't use variable names to reference
	  widget instances anymore, use CodeDom expressions instead. Needed
	  since widgets can be stored in variables and in fields.

2006-12-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/Project.cs: Added new
	  Changed event.
	* libsteticui/PaletteBackend.cs, libsteticui/UndoQueue.cs,
	  libstetic/undo/DiffGenerator.cs,
	  libstetic/undo/ActionDiffAdaptor.cs, libstetic/wrapper/Action.cs,
	  libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs,
	  libstetic/wrapper/ActionGroup.cs, libstetic/wrapper/MenuBar.cs,
	  libstetic/wrapper/ActionTree.cs,
	  libstetic/editor/ActionMenuItem.cs,
	  libstetic/editor/ActionMenuBar.cs, libstetic/editor/ActionMenu.cs,
	  libstetic/editor/ActionToolItem.cs,
	  libstetic/editor/ActionToolbar.cs: Improved support for Undo.
	* libstetic/undo/UndoManager.cs: Removed debug code.
	* libstetic/undo/XmlDiffAdaptor.cs: Fix support for name and id
	  properties when diffing.
	* libstetic/wrapper/objects.xml: HasFocus property doesn't need to be
	  available at design time.
	* libstetic/wrapper/ActionToolbarWrapper.cs: Implemented support for
	  Undo.

2006-12-17  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ProjectBackend.cs, libsteticui/WidgetEditSession.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/Project.cs: Added new
	  Changed event.
	* libsteticui/PaletteBackend.cs, libsteticui/UndoQueue.cs,
	  libstetic/undo/DiffGenerator.cs,
	  libstetic/undo/ActionDiffAdaptor.cs, libstetic/wrapper/Action.cs,
	  libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs,
	  libstetic/wrapper/ActionGroup.cs, libstetic/wrapper/MenuBar.cs,
	  libstetic/wrapper/ActionTree.cs,
	  libstetic/editor/ActionMenuItem.cs,
	  libstetic/editor/ActionMenuBar.cs, libstetic/editor/ActionMenu.cs,
	  libstetic/editor/ActionToolItem.cs,
	  libstetic/editor/ActionToolbar.cs: Improved support for Undo.
	* libstetic/undo/UndoManager.cs: Removed debug code.
	* libstetic/undo/XmlDiffAdaptor.cs: Fix support for name and id
	  properties when diffing.
	* libstetic/wrapper/objects.xml: HasFocus property doesn't need to be
	  available at design time.
	* libstetic/wrapper/ActionToolbarWrapper.cs: Implemented support for
	  Undo.

2006-12-05  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/UndoQueue.cs: Added debug method.
	* libstetic/UndoManager.cs: Moved to undo dir.
	* libstetic/undo, libstetic/undo/IDiffAdaptor.cs,
	  libstetic/undo/DiffGenerator.cs, libstetic/undo/UndoManager.cs,
	  libstetic/undo/ActionDiffAdaptor.cs,
	  libstetic/undo/XmlDiffAdaptor.cs: Moved here UndoManager and added
	  some classes to generate undo diffs between objects and xml
	  representations.
	* libstetic/wrapper/Button.cs, libstetic/wrapper/RadioToolButton.cs,
	  libstetic/wrapper/RadioButton.cs, libstetic/wrapper/OptionMenu.cs,
	  libstetic/wrapper/Image.cs, libstetic/wrapper/ImageMenuItem.cs,
	  libstetic/wrapper/RadioMenuItem.cs,
	  libstetic/wrapper/ToolButton.cs: Track api changes.
	* libstetic/wrapper/Action.cs, libstetic/wrapper/ActionGroup.cs,
	  libstetic/wrapper/MenuBar.cs,
	  libstetic/wrapper/ActionToolbarWrapper.cs: Added support for
	  Undo/Redo.
	* libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs: Moved
	  all diffing code to the DiffGenerator class.
	* libstetic/Placeholder.cs: Changed the name of the undo id property.
	* libstetic/editor/ActionMenuItem.cs: Made atomic some action property
	  changes.
	* libstetic/editor/ActionMenuBar.cs, libstetic/editor/ActionMenu.cs:
	  Added methods for saving/restoring the selection of a menu and
	  toolbar.
	* libstetic/TypedPropertyDescriptor.cs: Added null check.
	* libstetic/Makefile.am: Updated.

2006-12-01  Lluis Sanchez Gual <lluis@novell.com> 

	* libsteticui/ActionGroupDesigner.cs: Added null check.
	* libsteticui/ProjectBackend.cs: Always return the top level widgets in
	  the same order they were stored in the project file.
	* libsteticui/WidgetEditSession.cs, libsteticui/Clipboard.cs,
	  libsteticui/WidgetDesigner.cs, libsteticui/UndoQueue.cs,
	  libstetic/UndoManager.cs, libstetic/ObjectWrapper.cs,
	  libstetic/Placeholder.cs, stetic/Stetic.cs, stetic/DesignerView.cs,
	  stetic/UIManager.cs: Added support for undo/redo.
	* libsteticui/Application.cs: Minor fix.
	* libsteticui/Glade.cs, libsteticui/ActionGroupEditSession.cs,
	  libstetic/wrapper/Button.cs, libstetic/wrapper/Action.cs,
	  libstetic/wrapper/Container.cs, libstetic/wrapper/Widget.cs,
	  libstetic/wrapper/RadioToolButton.cs,
	  libstetic/wrapper/RadioButton.cs, libstetic/wrapper/Frame.cs,
	  libstetic/wrapper/ActionGroup.cs, libstetic/wrapper/OptionMenu.cs,
	  libstetic/wrapper/Notebook.cs, libstetic/wrapper/Image.cs,
	  libstetic/wrapper/MenuItem.cs, libstetic/wrapper/ButtonBox.cs,
	  libstetic/wrapper/ImageMenuItem.cs, libstetic/wrapper/Table.cs,
	  libstetic/wrapper/MenuBar.cs, libstetic/wrapper/Dialog.cs,
	  libstetic/wrapper/ActionToolbarWrapper.cs,
	  libstetic/wrapper/RadioMenuItem.cs, libstetic/wrapper/Expander.cs,
	  libstetic/wrapper/CheckButton.cs, libstetic/wrapper/ToolButton.cs,
	  libstetic/GladeUtils.cs, libstetic/ErrorWidget.cs,
	  libstetic/WidgetUtils.cs: Track api changes.
	* libsteticui/Makefile.am, libstetic/Makefile.am: Updated.
	* libsteticui/Project.cs: Update the app library list after removing a
	  project.
	* libstetic/ItemGroup.cs: Use an ordered dictionary to store
	  properties, so we always get them in the correct order.
	* libstetic/CommandDescriptor.cs: Make sure the changes done by
	  commands are atomic.
	* libstetic/ObjectReader.cs, libstetic/ObjectWriter.cs: New clases for
	  reading/writing objects
	* libstetic/PropertyDescriptor.cs,
	  libstetic/TypedPropertyDescriptor.cs, libstetic/ClassDescriptor.cs,
	  libstetic/TypedClassDescriptor.cs: Added new method for
	  initializing and instance to its default values.

2006-11-13  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/editor/Flags.cs:
	* libstetic/editor/ActionToolItem.cs:
	  Fix build. Patch by Michael Schurter.

2006-09-22  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/WidgetEditSession.cs:
	* libsteticui/Palette.cs:
	* libsteticui/ProjectView.cs:
	* libsteticui/SignalsEditor.cs:
	* libsteticui/ApplicationBackend.cs: Reconnect the plug when the socket
	  is unrealized.
	  
	* libsteticui/WidgetDesignerBackend.cs: Added null check.
	
	* libsteticui/WidgetDesigner.cs:
	* libsteticui/ActionGroupEditSession.cs:
	* libsteticui/PluggableWidget.cs:
	* libsteticui/WidgetPropertyTree.cs:
	* libsteticui/ActionGroupDesigner.cs:
	* libstetic/Registry.cs:
	* stetic/Stetic.cs:
	* libsteticui/Application.cs: Fixed process restart workflow, to make
	  the process switch faster.
	
	* libsteticui/GuiDispatchServerSink.cs:
	* libsteticui/Component.cs:
	* libsteticui/ApplicationBackendController.cs:
	* libsteticui/Project.cs:
	* libsteticui/ProjectBackend.cs: Misc bug fixes.
	
	* libstetic/ItemDescriptor.cs: Made it serializable.
	* libstetic/wrapper/Action.cs (CopyFrom): Clear the signals list before
	  adding the new signals.
	* stetic/DesignerView.cs: Added getter for the root component.

2006-09-21  Lluis Sanchez Gual  <lluis@novell.com> 

	* stetic/UIManager.cs:
	* stetic/Stetic.cs: Use the new API.
	
	* stetic/stetic.glade:
	* stetic/Configuration.cs:
	* stetic/LibraryManagerDialog.cs: Implemented dialog for selecting
	  widget libraries.
	  
	* stetic/Makefile.am: Updated.

2006-09-21  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/ActionGroupDesigner.cs:
	* libsteticui/ApplicationBackend.cs:
	* libsteticui/WidgetDesignerBackend.cs:
	* libsteticui/ProjectBackend.cs:
	* libsteticui/SignalsEditorBackend.cs:
	* libsteticui/WidgetPropertyTreeBackend.cs:
	* libsteticui/WidgetEditSession.cs:
	* libsteticui/Palette.cs:
	* libsteticui/ComponentSignalEventHandler.cs:
	* libsteticui/ProjectView.cs:
	* libsteticui/ComponentEventHandler.cs:
	* libsteticui/Component.cs:
	* libsteticui/Application.cs:
	* libsteticui/EmbedWindow.cs:
	* libsteticui/PaletteBackend.cs:
	* libsteticui/SignalsEditor.cs:
	* libsteticui/ActionGroupComponent.cs:
	* libsteticui/ApplicationBackendController.cs:
	* libsteticui/ActionGroupDesignerBackend.cs:
	* libsteticui/ActionComponent.cs:
	* libsteticui/WidgetDesigner.cs:
	* libsteticui/ActionGroupEditSession.cs:
	* libsteticui/ComponentType.cs:
	* libsteticui/Project.cs:
	* libsteticui/WidgetComponent.cs:
	* libsteticui/PluggableWidget.cs:
	* libsteticui/WidgetPropertyTree.cs: 
	* libsteticui/ProjectViewBackend.cs:
	* libstetic/IResourceProvider.cs:
	  Redesigned the API so it allows running the designer in a separate
	  process. This running mode is optional and not enabled by default
	  until all stability problems have been fixed.
	
	* libsteticui/NoGuiDispatchAttribute.cs:
	* libsteticui/GuiDispatchServerSinkProvider.cs:
	* libsteticui/GuiDispatchServerSink.cs: A channel sink which ensures that
	  all incoming calls al dispatched in the GUI thread.
	
	* libsteticui/ActionGroupToolbar.cs:
	* libsteticui/WidgetActionBar.cs: Added the Bind to Field button
	  (moved from MD).
	
	* libsteticui/CodeGenerator.cs: Added optional Gettext support.
	
	* libsteticui/WidgetTreeCombo.cs:
	* libsteticui/Clipboard.cs:
	* libsteticui/Glade.cs:
	* libsteticui/PropertyGrid.cs:
	* libsteticui/UserInterface.cs:
	* libsteticui/WidgetFactory.cs: Make classes internal.
	
	* libsteticui/Makefile.am: Updated.
	
2006-09-21  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/IProject.cs: Removed unused method.
	* libstetic/ItemDescriptor.cs: Made some fields not serializable.
	* libstetic/ObjectWrapper.cs: Allow binding a wrapper to a remote
	  frontend running in another process.
	  
	* libstetic/Registry.cs:
	* libstetic/WidgetLibrary.cs: Implemented better support for library
	  reloading.

	* libstetic/wrapper/Container.cs:
	* libstetic/wrapper/Widget.cs:
	* libstetic/wrapper/Action.cs: Track api changes, added some null checks.
	
	* libstetic/wrapper/Signal.cs:
	* libstetic/SignalDescriptor.cs:
	* libstetic/TypedSignalDescriptor.cs:
	* libstetic/wrapper/SignalCollection.cs: Made it serializable.
	
	* libstetic/wrapper/ActionGroup.cs: Made it sealed. Added some helper
	  methods.
	* libstetic/wrapper/objects.xml: Action properties are translatable.
	* libstetic/editor/ThemedIcon.cs, ImageSelector.cs: Don't use 
	  stock_symbol-selection stock
	  icon since it is not available in all themes.
	* libstetic/editor/Identifier.cs: Fix warning.
	* libstetic/TypedPropertyDescriptor.cs: Improved error reporting.
	* libstetic/GeneratorContext.cs: Added support for Gettext.

2006-09-01  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/wrapper/Container.cs: When changing the selected item,
	  disable the focus event for the correct widget. Fixes bug #79247.
	
	* libstetic/editor/ThemedIcon.cs:
	* libstetic/editor/ImageSelector.cs: Use "..." as label for the selector
	  button since the icon stock_symbol-selection is not present in some
	  themes.

2006-09-01  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/Project.cs: Avoid the normal widget clearing callback
	  when closing a project. It may avoid a crash seen by some users
	  but which is hard to reproduce. Initialize the icon factory
	  when closing the project.
	* libstetic/CommandDescriptor.cs: Added null check.
	* libstetic/wrapper/Widget.cs: Clear the selection if the selected
	  widget is destroyed.
	* libstetic/wrapper/WidgetEventHandler.cs: Set the wrapper property
	  in the args constructor.
	* libstetic/wrapper/Viewport.cs: Wrapper properties can't be initialized
	  in the constructor.
	* libstetic/wrapper/objects.xml: Set the default value for Visible to 
	  'true' (in gtk, the default is false, but for stetic it is true).
	* libstetic/editor/ActionMenuItem.cs: Added null check.
	* libstetic/editor/SelectImageDialog.cs: Don't allow addin/removing
	  resources if there is no resource manager.

2006-08-30  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/ActionGroupDesigner.cs: Use Dispose instead of destroy
	  since it was generating some warnings.
	* libsteticui/WidgetDesigner.cs: Dispose is enough.
	* libsteticui/Project.cs: Don't add unselectable widgets to the tree.
	  Moved here some selection code from Widget.cs.
	* libstetic/ItemGroup.cs: Make sure properties are returned in the
	  same order they are declared in objects.xml.
	* libstetic/ObjectWrapper.cs: Don't nullify proj and signals on dispose,
	  it is causing some nullrefs.
	* libstetic/wrapper/Container.cs: Changed a bit how selection works.
	  Everything is now controled by the project.
	* libstetic/wrapper/Widget.cs: Make sure clicks for unselectable widgets
	  are intercepted.
	* libstetic/wrapper/Notebook.cs: Track api changes.
	* libstetic/wrapper/Table.cs: Destroy widgets removed from the table.
	* libstetic/editor/ActionGroupEditor.cs: Implemented public Cut, Copy,
	  Paste and Delete methods.
	* stetic/Stetic.cs:
	* libstetic/TypedPropertyDescriptor.cs: Improved some error messages.

2006-08-29  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/ActionGroupDesigner.cs:
	* libsteticui/ActionGroupToolbar.cs:
	* libsteticui/Palette.cs:
	* libsteticui/WidgetDesigner.cs:
	* libsteticui/Project.cs: 
	* libsteticui/WidgetActionBar.cs:
	* libstetic/ObjectWrapper.cs:
	* libstetic/editor/ActionMenuBar.cs:
	* libstetic/editor/ActionMenu.cs:
	* libstetic/editor/ActionGroupEditor.cs:
	* stetic/Stetic.cs: Explicitely destroy custom widgets to avoid memory
	  leaks.

2006-08-26  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/wrapper/WidgetEventHandler.cs: Added WidgetWrapper property.
	
	* libsteticui/PropertyGrid.cs:
	* libsteticui/Palette.cs:
	* libsteticui/ProjectView.cs:
	* libsteticui/WidgetActionBar.cs:
	* libsteticui/SignalsEditor.cs:
	* stetic/Stetic.cs:
	* stetic/UIManager.cs:
	* libsteticui/WidgetPropertyTree.cs: Track changes in WidgetEventHandler.
	
	* libsteticui/Project.cs: Factorized cleanup methods into Close().
	  Properly dispose actions.
	* libstetic/wrapper/Action.cs: Properly read the action id.
	* libstetic/wrapper/Container.cs: Disconnect container events when
	  disposing. Sync the table after reading it.
	* libstetic/wrapper/Widget.cs: Properly track unwrapped children
	  and intercept clicks for them.
	* libstetic/wrapper/Box.cs: Don't create drop faults if the widget is
	  not selectable.
	* libstetic/wrapper/ActionGroup.cs: Implemented IDisposable.
	* libstetic/wrapper/ButtonBox.cs: Destroy buttons being removed (this will
	  dispose the wrapper).
	* libstetic/wrapper/objects.xml: Inherit IsTextCombo property.
	* libstetic/editor/ActionMenuBar.cs: Show an "Empty" message when the widget
	  is not selected.
	* libstetic/editor/StockIconSelectorItem.cs: Removed gnome stock icons since
	  they need some special initialization code. Still available in the stock
	  icon selection box.
	* libstetic/editor/ActionToolItem.cs: Propagate to menu popup the key used
	  to show the menu.
	* libstetic/PropertyDescriptor.cs: Store translation info in the object wrapper,
	  instead of a global hashtable. This avoids keeping a reference to the object
	  forever in the translation info hashtable.
	
	* libstetic/wrapper/TextView.cs:
	* libstetic/wrapper/Window.cs:
	* libstetic/wrapper/Scale.cs:
	* libstetic/wrapper/Range.cs:
	* libstetic/wrapper/Dialog.cs:
	* libstetic/wrapper/Toolbar.cs: Unsubscribe events on dispose.
	  
	* libstetic/editor/SelectIconDialog.cs:
	* libstetic/stetic.glade: Added warning to stock selection icon, shown when
	  the selected icon needs special icon factories.

2006-08-18  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/ActionGroupToolbar.cs: Fix exception.
	* libsteticui/CodeGenerator.cs: Use CodeArgumentReferenceExpression
	  instead of CodeVariableReferenceExpression to reference parameters.
	* libsteticui/WidgetDesigner.cs: Update the widget design size when
	  it changes.
	* libstetic/ObjectWrapper.cs: Added setter for Loading.
	* libstetic/wrapper/Container.cs: Don't fire ChildRemoved event
	  when loading.
	* libstetic/wrapper/ActionGroup.cs: Added Remove method.
	
	* libstetic/wrapper/ActionTree.cs:
	* libstetic/wrapper/ActionToolbarWrapper.cs:
	* libstetic/wrapper/MenuBar.cs: Don't fire change events when
	  creating the menu and toolbar.
	  
	* libstetic/wrapper/Widget.cs:
	* libstetic/wrapper/Bin.cs: Implemented support for UIManagers
	  in custom widgets.
	  
	* libstetic/editor/Accelerator.cs: Fire change event when the
	  accelerator is set.
	* stetic/UIManager.cs: Some UI improvements.

2006-08-17  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/PropertyEditor.cs: Made the class internal.
	* libsteticui/UserInterface.cs: Added new overload for
	  CreateActionGroupDesigner.
	* stetic/Stetic.cs: Close the project before opening a new one.
	* stetic/UIManager.cs: Fixed bug when opening recent files.
	* libsteticui/ActionGroupDesigner.cs: New file.
	* libsteticui/Project.cs: Set the modified flag when a widget
	  is added or removed from the project.
	* stetic/Stetic.cs: Moved page creation code to DesignerView.cs.
	* DesignerView.cs: New file.
	
	* libstetic/wrapper/Custom.cs:
	* libstetic/CustomWidget.cs: Make public again, since it is
	  being used by the MD addin.
	  
	* libsteticui/Makefile.am: Updated.

2006-08-16  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/*:
	* libstetic/*
	* stetic/*: Added Catalog.GetString to all translatable strings.

2006-08-16  Lluis Sanchez Gual  <lluis@novell.com> 

	* stetic/Stetic.cs: If a file name is specified when starting
	  Stetic, load it. Warn the user when closing an unsaved project.
	  Implemented Close command. Read and save the main window position.
	* stetic/stetic.glade: Added an status bar.
	* stetic/UIManager.cs: Implemented "Recent Files" submenu.
	
	* stetic/RecentFiles.cs:
	* stetic/Configuration.cs: New files.
	
	* stetic/Makefile.am: Updated.

2006-08-16  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/Shadow.cs:
	* libsteticui/EmbedWindow.cs:
	* libsteticui/Metacity: Moved from libstetic.
	
	* libsteticui/WidgetFactory.cs: Don't allow dragging window
	  items.
	* libsteticui/Glade.cs: Removed unused BeginGladeImport method.
	* libsteticui/CodeGenerator.cs: Use GenerateCreationCode instead
	  of GenerateBuildCode to generate the code for the root window,
	  since it includes initialization code for properties which are
	  usually provided as constructor parameters.
	* libsteticui/WidgetTreeCombo.cs: Fix warning.
	* libsteticui/Project.cs: Added Close method. Removed some unused
	  code.
	* libsteticui/PropertyTree.cs: Made CellRendererPropertyGroup internal.
	
	* libsteticui/UserInterface.cs: Added method overload.
	  CreateActionGroupDesigner now creates the toolbar.
	
	* libsteticui/ContextMenu.cs:
	* libsteticui/Grid.cs: Made the class internal.
	
	* libsteticui/WidgetDesigner.cs: Moved from libstetic. Renamed from
	  PreviewBox to WidgetDesigner.
	  
	* libsteticui/WidgetPropertyTree.cs:
	* libsteticui/SignalsEditor.cs: Track api changes.
	
	* libsteticui/Makefile.am: Updated.

2006-08-16  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/CustomWidget.cs:
	* libstetic/wrapper/Custom.cs: Made the class internal.
	
	* libstetic/wrapper/Frame.cs:
	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/ButtonBox.cs:
	* libstetic/wrapper/Expander.cs:
	* libstetic/HandleWindow.cs:
	* libstetic/editor/Translatable.cs: Track api changes.
	
	* libstetic/PreviewBox.cs:
	* libstetic/EmbedWindow.cs:
	* libstetic/Shadow.cs:
	* libstetic/Metacity: Moved to libsteticui.
	
	* libstetic/IDesignArea.cs: Moved here a delegate previously declared
	  in PreviewBox.
	* libstetic/IProject.cs: Removed unused event.
	* libstetic/ObjectWrapper.cs: Added public methods for attaching/detaching
	  designers.
	* libstetic/wrapper/Container.cs: Removed unused code.
	* libstetic/editor/TextBox.cs: Moved to Editors directory.
	* libstetic/PropertyDescriptor.cs: Made TranslationInfo internal.
	* libstetic/GeneratorContext.cs: Added initialization code for
	  top level widgets.
	
	* libstetic/wrapper/ActionToolbarWrapper.cs:
	* libstetic/wrapper/objects.xml: Support specifying a "Default" style for
	  the toolbar, which will cause the toolbar to take the style from the
	  gnome preferences.
	  
	* libstetic/Makefile.am: Updated.

2006-08-11  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/editor/DateTimeEditor.cs:
	* libstetic/editor/TimeSpanEditor.cs:
	* libstetic/PropertyEditorCell.cs:
	* libstetic/Makefile.am: Added editors for DateTime and TimeSpan.

2006-08-11  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/WidgetTreeCombo.cs: Don't show unselectable
	  widgets in the combo.
	  
	* libstetic/IProject.cs:
	* libsteticui/Project.cs: Removed tooltips property. They are
	  now handlerd in a different way.
	  
	* libstetic/ObjectWrapper.cs:
	* libstetic/wrapper/Container.cs:
	* libstetic/wrapper/Frame.cs:
	* libstetic/wrapper/Button.cs: Fixed some issues when reading
	  and writing buttons.

	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/MenuItem.cs:
	* libstetic/wrapper/OptionMenu.cs:
	* libstetic/wrapper/Expander.cs:
	* libstetic/wrapper/CheckButton.cs:
	* libstetic/wrapper/Object.cs: Track api changes.
	
	* libstetic/wrapper/objects.xml: Added initialization property
	  for windows. Use Entry.IsEditable instead of Editable, which is
	  obsolete.
	  
	* libstetic/editor/Flags.cs: Fix warnings.
	* libstetic/wrapper/Widget.cs: Generate code for displaying
	  tooltips.

	* libstetic/GeneratorContext.cs:
	* libstetic/PropertyDescriptor.cs: Support code generation of
	  DateTime and TimeSpan.
	  
	* libstetic/DND.cs: Fixed several issues with insert bars in
	  boxes.
	  
	* libstetic/Makefile.am: Updated.
	  
2006-08-01  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/ItemGroup.cs: Use a hashtable to store the items.
	
	* libstetic/wrapper/Button.cs:
	* libstetic/wrapper/Object.cs:
	* libstetic/wrapper/Table.cs:
	* libstetic/ObjectWrapper.cs: Avoid firing events while the objects
	  are loading.
	  
	* libstetic/wrapper/Container.cs: Don't validate names while the object
	  is being loaded.
	* libstetic/ItemGroupCollection.cs: Added helper method for getting
	  an item.
	  
	* libstetic/WidgetUtils.cs: Avoid using SelectSingleNode since it's very
	  slow. Use the ChildNodes property instead. Merged ReadProperties and
	  ReadSignals in a single ReadMembers method, which is more efficient.

2006-08-01  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/Clipboard.cs: When copying a widget, store it as
	  xml, so if the widget is deleted the clipboard will still
	  have the data. Fixes bug #78938.
	  
	* libstetic/PreviewBox.cs:
	* libstetic/EmbedWindow.cs: Avoid a crash when metacity is not
	  installed. Fixes bug #78916.
	  
	* libstetic/wrapper/Container.cs: Properly read internal children
	  when using Glade format.
	* libstetic/wrapper/RadioButton.cs: Fix read code for radio buttons.
	  Fixes bug #78909.
	  
	* libstetic/wrapper/Dialog.cs:
	* libstetic/wrapper/ButtonBox.cs: Added special code generation case
	  when the button box is the action area of a dialog. In this case
	  widgets are added using dialog.AddActionWidget(). Fixes bug #78956.
	  
	* libstetic/editor/Accelerator.cs: Capture the key combination using
	  a modal dialog, to avoid messing with the container accelerators.
	  Fixes bug #78867.
	  
2006-07-24  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/EnumDescriptor.cs: Don't throw an exception if the
	  CLR enum has more members than the enum declared in objects.xml.
	  A new backward compatible version of a library may introduce new
	  members which Stetic is unaware of.

2006-07-24  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/wrapper/Table.cs: Don't try to automatically set
	  the horizontal expansion property of widgets which expand 
	  more than one column, since we may have a different expand
	  value for each column, and changing it for every column may
	  end up in an infinite loop when syncing the table. The
	  same for rows and vertical expansion.

2006-07-21  Alp Toker  <alp@atoker.com>

	* libsteticui/CodeGenerator.cs:
	* libsteticui/PropertyTree.cs:
	* libstetic/TypedPropertyDescriptor.cs:
	* libstetic/WidgetUtils.cs: Trivial comment typofixes.

2006-07-04  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/WidgetActionBar.cs: Assign the label of the command
	  to the button.
	* libstetic/PreviewBox.cs: Added property for getting the current
	  selection.
	* libstetic/wrapper/Action.cs: Use IconSet.RenderIcon to render
	  action icons.
	  
	* libstetic/wrapper/Image.cs:
	* libstetic/wrapper/Label.cs: Changed base wrapper to Misc.
	
	* libstetic/wrapper/objects.xml: Use the new identifier editor
	  for the widget name. Added alignment commands for Label and
	  for table child.
	* libstetic/wrapper/Table.cs: Implemented Fill/Expand commands.
	* libstetic/editor/ImageSelector.cs: Use a default size of 16
	  for thumbnail icons.
	* libstetic/editor/StockItem.cs: Render icons using the icon set,
	  not the theme.
	* libstetic/WidgetUtils.cs: In ParseWidgetName, limit numeric suffix
	  to 4 digits.
	* libstetic/Makefile.am: Added Identifier.cs and Misc.cs.
	* libstetic/TypedClassDescriptor.cs: If a wrapper is inherited 
	  from a base class, ignore the CreateInstance method since it 
	  is going to create an instance of the base class.
	  

2006-06-12  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/ItemDescriptor.cs: Properly invoke method based checks
	  for item descriptors.
	* libstetic/wrapper/Action.cs: Copy signals when cloning actions.
	* libstetic/ErrorWidget.cs: Improve error message when generating code.
	
	* libstetic/GeneratorContext.cs:
	* libstetic/PropertyDescriptor.cs: Add support for string arrays.
	
	* libstetic/wrapper/objects.xml:
	* libstetic/wrapper/ComboBox.cs: Added property which when set generates
	  a text based combobox.
	  
	* libstetic/wrapper/Notebook.cs:
	* libstetic/RadioGroupManager.cs: Fix bug when accessing to widget
	  variable names. Patch by Jasiu.

2006-06-12  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/PropertyTree.cs: Don't show empty item groups.
	* libsteticui/WidgetActionBar.cs: Call the virtual AddWidgetCommands
	  only once per widget.
	* libstetic/editor/ActionToolbar.cs: Remove debug code.
	* libstetic/wrapper/Widget.cs: When deleting a widget unselect it if
	  it is the current selection. Fixes bugs #78620 and 78622.
	* libstetic/wrapper/ColorButton.cs: Don't generate the Alpha property
	  if the value is -1 (not set).
	  
	* libstetic/wrapper/objects.xml:
	* libstetic/wrapper/pixmaps/expander.png: Added icon for the expander
	  widget by ml.
	  

2006-06-09  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/CommandDescriptor.cs:
	* libsteticui/WidgetActionBar.cs: Add support for icon based
	  commands and for toogle commands.
	  
	* libstetic/ItemDescriptor.cs: invisible-if and disable-if elements
	  now support calling a method to get the check value.
	* libstetic/WidgetLibrary.cs: Assign the widget library to
	  class descriptors.
	* libstetic/wrapper/Container.cs: Implemented IncBorder and DecBorder
	  commands.
	* libstetic/wrapper/Box.cs: Implemented BoxExpand and BoxFill toggle
	  commands.
	* libstetic/wrapper/objects.xml: Added IncBorder and DecBorder commands
	  to containers. Added BoxExpand and BoxFill to box child.
	* libstetic/editor/Accelerator.cs: Fixed. Added button for clearing
	  the accelerator.
	  
	* libstetic/editor/ActionToolbar.cs:
	* libstetic/editor/ActionMenuBar.cs: Make sure the menu has some height
	  when there are no items, so it can be easily selected.
	  
	* libstetic/editor/ActionToolItem.cs: Don't allow editing separators.
	* libstetic/PropertyEditorCell.cs: Paint text, not markup.
	* libstetic/ClassDescriptor.cs: Added property which returns the widget
	  library that implements the class descriptor.
	* libstetic/AssemblyWidgetLibrary.cs: Implemented GetResource method.

2006-06-08  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/wrapper/Box.cs: In GladeChildren return children
	  based on the order of their positions. Fixes bug #78160.

2006-05-26  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/Palette.cs: Don't show the toolitems section,
	  since it's not being used right now. Show a default icon
	  for actions which don't have an icon.
	* libsteticui/PropertyTree.cs: If the property tree only
	  has one group, allways expand it.
	* libsteticui/Makefile.am: Added resource.
	* libsteticui/WidgetPropertyTree.cs: There is no need to delay
	  the tree filling when the selection is null.
	* libstetic/PreviewBox.cs: Minor fixes.
	* libstetic/ImageInfo.cs: Added some image scaling methods.
	* libstetic/ProjectIconFactory.cs: Added RenderIcon method.
	* libstetic/wrapper/Action.cs: Added Accelerator property.
	  Other minor fixes.
	* libstetic/wrapper/Widget.cs: Notify changes in the local
	  action groups. Register the accel group of the generated
	  UIManager.
	* libstetic/wrapper/objects.xml: Disabled the old toolbar
	  model. Use the action based toolbar instead.
	* libstetic/wrapper/ActionTree.cs: Added Changed event.
	* libstetic/editor/ActionMenuItem.cs: Use the new icon
	  selection menu.
	* libstetic/editor/StockItem.cs: Implemented a new editor
	  which uses the new icon selector menu.
	* libstetic/PropertyDescriptor.cs: Added support for
	  specifying a default value for a property in the xml file.
	* libstetic/Makefile.am: Updated.
	
	* wrapper/ActionToolbarWrapper.cs:
	* editor/ActionToolbar.cs:
	* editor/ActionToolItem.cs: New toolbar designer.
	
	* editor/IconSelectorItem.cs:
	* editor/IconSelectorMenu.cs:
	* editor/IconSelectorMenuItem.cs:
	* editor/ProjectIconSelectorItem.cs:
	* editor/StockIconSelectorItem.cs: New menu for selecting icons.

	* libstetic/wrapper/MenuBar.cs:
	* libstetic/editor/ActionMenu.cs:
	* libstetic/editor/ActionGroupEditor.cs:
	* libstetic/editor/ActionMenuBar.cs:
	* libstetic/wrapper/ActionGroup.cs: Several fixes.
	
	* stetic/stetic.glade:
	* stetic/UIManager.cs:
	* stetic/Stetic.cs: Added a toolbar to the UI.
	
	
2006-05-19  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/WidgetFactory.cs: Highlight the item on mouse over.
	* libsteticui/ActionGroupToolbar.cs: Implemente a single group
	  mode, to be used when editing global action groups.
	* libsteticui/CodeGenerator.cs: Generate code for actions and
	  icon factories.
	* libsteticui/Palette.cs: Adjusted some margins. Update actions
	  when they change.
	* libsteticui/ProjectView.cs: Clean the tree when no project
	  is selected.
	* libsteticui/Makefile.am: Added UserInterface.cs.
	* libsteticui/Project.cs: Added IconFactory property.
	* libsteticui/SignalsEditor.cs: Added missing null check.
	* libstetic/Metacity/ButtonLayout.cs:
	* libsteticui/WidgetPropertyTree.cs: Minor fix.
	
	* libstetic/IProject.cs: Added Modified and IconFactory properties.
	* libstetic/PreviewBox.cs: Implemented UpdateObjectViewers.
	* libstetic/stetic.glade: Added icon selector and icon factory editor.
	* libstetic/RadioGroupManager.cs: 
	
	* libstetic/wrapper/MenuBar.cs:
	* libstetic/wrapper/ActionTree.cs:
	* libstetic/wrapper/ActionGroup.cs:
	* libstetic/wrapper/Action.cs: Implemented code generation. Avoid name
	  duplication inside action groups. 
	* libstetic/wrapper/Container.cs: Moved method ParseWidgetName into
	  WidgetUtils.
	* libstetic/wrapper/Widget.cs: Added some methods for supporting code
	  action generation.
	* libstetic/wrapper/ActionGroup.cs: Added memberName property.
	
	* libstetic/editor/ImageSelector.cs:
	* libstetic/editor/StockItem.cs:
	* libstetic/GladeUtils.cs:
	* libstetic/editor/TextEditorDialog.cs: Fix warning.
	
	* libstetic/editor/ThemedIconList.cs: Factorized some code into the
	  new base class IconList.
	* libstetic/editor/ActionMenuItem.cs: Added context menu. Added support
	  for separators. Use the new icon selector for selecting action items.
	* libstetic/editor/SelectImageDialog.cs: Improved disabling of OK button when
	  nothing is selected.
	  
	* libstetic/editor/ActionGroupEditor.cs:
	* libstetic/editor/ActionMenu.cs:
	* libstetic/editor/ActionMenuBar.cs: Implemented some context menu commands.
	
	* libstetic/GeneratorContext.cs: Support generating code for ActionGroups.
	  Make WidgetMap work for non-widget objects (e.g. Action).
	* libstetic/WidgetUtils.cs: Moved from Container.cs.
	
	* libstetic/Makefile.am: Updated. Added Mono.Unix reference.
	
	* libstetic/editor/IconList.cs: Base class for two-column icon lists.
	* libstetic/ProjectIconFactory.cs: Holds information about icons defined
	  in a project.
	* libstetic/editor/ProjectIconList.cs: IconList subclass that shows 
	  icons from a project icon factory.
	* libstetic/editor/EditIconDialog.cs: Dialog for editing icons.
	* libstetic/editor/StockIconList.cs: IconList subclass that shows 
	  stock icons only.
	* libstetic/editor/EditIconFactoryDialog.cs: Dialog for editing an
	  icon factory.
	* libstetic/editor/SelectIconDialog.cs: Dialog for selecting an icon.
	
	* libstetic/editor/TreeViewCellContainer.cs: Bridge widget to be used for
	  cell rederers with custom editors.
	* libstetic/editor/CellRendererComboBox.cs: A combo cell renderer.
	
	* stetic/Stetic.cs: Make sure Gtk is properly initialized before trying
	  to generate code.
	* stetic/UIManager.cs: Added EditProjectIcons command.
	

2006-05-12  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/ActionGroupToolbar.cs: Initialize the action group
	  editor after binding it.
	* libstetic/PreviewBox.cs: Call OnDesignerAttach when attaching
	  a widget for editing.
	* libstetic/wrapper/Widget.cs:
	* libstetic/ObjectWrapper.cs: Moved basic code generation methods
	  here from Widget.cs, since generic objects may also need to
	  support it (for example, Gtk.Action).
	  Added OnDesignerAttach, which is called when a widget is attached
	  to a designer.
	* libstetic/wrapper/Container.cs: Implement OnDesignerAttach.
	* libstetic/wrapper/Action.cs: Implemented CopyTo in ActionCollection.
	* libstetic/wrapper/Box.cs: Use Add insted of PackStart to add a widget
	  from drag-drop. Looks like PackStart does not fire the ChildAdded
	  event?
	* libstetic/editor/ActionMenuItem.cs: Grab the keyboard focus after editing
	  is done.
	* libstetic/editor/ActionMenuBar.cs: Show a dummy menu item when none is
	  defined, so the menubar has a proper height. Unselec any selected
	  item when the bar is unselected. Allow dropping actions from the
	  palette.
	* libstetic/editor/ActionGroupEditor.cs: Sort action alphabetically.
	* libstetic/editor/ActionMenu.cs: Destroy menu items when the menu
	  is disposed.
	* libstetic/GeneratorContext.cs: In GenerateCreationCode, added the variable
	  for the new object to the statements collections after calling
	  GenerateObjectCreation, so statements needed for the object creation
	  are added before the declaration.
	* libstetic/TypedClassDescriptor.cs: Lazily initialize the missingIcon
	  static variable.
	* stetic/Stetic.cs: Show stetic help before standard gnome app help.
	  
	* libstetic/wrapper/ActionTree.cs:
	* libstetic/wrapper/MenuBar.cs:
	* libstetic/wrapper/ActionGroup.cs: Added code generation support.
	  
	* libstetic/wrapper/HScale.cs:
	* libstetic/wrapper/Expander.cs:
	* libstetic/wrapper/ToolButton.cs:
	* libstetic/wrapper/VScrollbar.cs:
	* libstetic/wrapper/ComboBoxEntry.cs:
	* libstetic/wrapper/ComboBox.cs:
	* libstetic/wrapper/HScrollbar.cs:
	* libstetic/wrapper/VScale.cs: Renamed GenerateWidgetCreation to
	  a more generic GenerateObjectCreation.
	
	* libstetic/wrapper/objects.xml: Defined some initialization properties.

2006-05-11  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/wrapper/ActionMenuItem.cs:
	* libstetic/wrapper/ActionMenu.cs: Moved to /editor
	* libstetic/Makefile.am: Updated.

2006-05-11  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/Palette.cs: Show all action groups inside
	  an "Actions" section.
	* libsteticui/Makefile.am: Updated.
	* libsteticui/ActionGroupToolbar.cs: Toolbar for the ActionGroup
	  designer.
	* libsteticui/Project.cs: Forwards events fired when changing action
	  signals.
	* libsteticui/SignalsEditor.cs: Include the action name in generated
	  handlers.
	  
	* libstetic/IDesignArea.cs: Added some methods for getting the
	  current selection.
	* libstetic/PreviewBox.cs: Implemented the new IDesignArea methods.
	* libstetic/wrapper/Action.cs: Implemented clone and copy methods.
	* libstetic/wrapper/ActionMenuItem.cs: Many fixes.
	* libstetic/wrapper/Widget.cs: Allow more than one local action group.
	  Forward signal change events from the action groups.
	* libstetic/wrapper/ActionGroup.cs: Added several events.
	* libstetic/wrapper/ActionMenu.cs: Implemented keyboard support.
	* libstetic/wrapper/objects.xml: Added name property to gtk.Action.
	* libstetic/wrapper/MenuBar.cs: Moved ActionMenuBar to its own file.
	* libstetic/WidgetUtils.cs: Added common GetDesignArea method.
	* libstetic/Makefile.am: Updated.
	* libstetic/editor/ActionGroupEditor.cs: Implemented an editor for
	  action groups.
	
	* stetic/Stetic.cs: Added some support for the new action group editor.

2006-05-05  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/wrapper/objects.xml: Ignore the default for the
	  Position property of BoxChild. The position always needs to
	  be set, even if it's 0. Fixes bug #78307.

2006-05-03  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/Palette.cs: Added support for drag&drop between
	  action groups. Temporarily disabled action group support.
	* libsteticui/Project.cs: Create a global action group by
	  default.
	* libstetic/IDesignArea.cs: Added MoveWidget method.
	* libstetic/IProject.cs: Added ActionGroups property.
	* libstetic/PreviewBox.cs: Update the preview window title when
	  the wrapped window title changes. Implemented IDesignArea.MoveWidget.
	* libstetic/ObjectWrapper.cs: For Gtk.Container.ContainerChild objects,
	  store the object in the wrapper hashtable using a special container
	  objects which properly implements the GetHashCode and Equals methods.
	  This is needed since every call to the Gtk.Container indexer returns
	  a new instance of the container child.
	* libstetic/wrapper/Action.cs: Implemented Read/Write methods. Added
	  some missing events. Improved ActionCollection.
	* libstetic/wrapper/Container.cs: Fixed some issues with name conflict
	  checking. Checks can't be done in the ParentSet event, since when
	  it is fired the child is not yet shown as a child of the container.
	  Properly dispose container child wrappers.
	* libstetic/wrapper/Widget.cs: Same as before. Implemented read/write
	  support for action groups, but it is disabled for now.
	* libstetic/wrapper/Box.cs: In the ChildContentsChanged method, avoid
	  setting Expand and Fill properties if the values don't change.
	  This avoids firing some unneeded change events.
	* libstetic/wrapper/ActionGroup.cs: Implemented.
	* libstetic/wrapper/objects.xml: Added some 'min' values to properties.
	* libstetic/wrapper/ActionTree.cs: Implemented read/write methods. Added
	  some events.
	* libstetic/WidgetUtils.cs: Added support for reading/writing properties
	  of arbitrary objects, not only widgets.
	  
	* libstetic/wrapper/MenuBar.cs:
	* libstetic/wrapper/ActionMenu.cs:
	* libstetic/wrapper/ActionMenuItem.cs: Support editing of menu items in
	  a menu bar. Bug fixes and improvements.

2006-04-28  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/WidgetFactory.cs: Added PaletteItemFactory class,
	  as a base class for palette factories. Added InstanceWidgetFactory,
	  to support Action palette items.
	  
	* libsteticui/SignalsEditor.cs:
	* libsteticui/CodeGenerator.cs: Track api changes in signal handling.
	  
	* libsteticui/Palette.cs: Add action groups to the palette.
	* libsteticui/PropertyTree.cs: After editing a property,
	  notify the change to the wrapper.
	  
	* libsteticui/Project.cs: Added action group collection.
	  Track api changes in signal handling.
	* libsteticui/WidgetPropertyTree.cs: Allow showing properties of any
	  kind of wrapper, not only widgets.
	* libstetic/PreviewBox.cs: Implemented IDesignArea. Implemented a new
	  way of drawing the widget selection box.
	
	* libstetic/wrapper/Widget.cs:
	* libstetic/ObjectWrapper.cs: Moved signal properties and the notify
	  event from Widget to ObjectWrapper.
	  
	* libstetic/wrapper/SignalCollection.cs:
	* libstetic/wrapper/Signal.cs:
	* libstetic/wrapper/SignalEventHandler.cs:
	* libstetic/wrapper/SignalChangedEventHandler.cs:
	* libstetic/wrapper/Container.cs: Use the new selection box system,
	  based in IDesignArea.
	  
	* libstetic/wrapper/objects.xml: Added Action class.
	
	* libstetic/DND.cs: Some minor changes to allow dragging widgets which
	  don't have a wrapper.
	  
	* libstetic/Makefile.am: Updated.
	
	* libstetic/IDesignArea.cs: New class for providing some designer
	  services to widget wrappers.
	* libstetic/ObjectWrapperEventHandler.cs: New handler for
	  ObjectWrapper events.
	* libstetic/wrapper/Action.cs: Wrapper for Gtk.Action.
	* libstetic/wrapper/ActionMenu.cs: Widget for editing a Menu.
	* libstetic/wrapper/ActionMenuItem.cs: An action menu item editor.
	* libstetic/wrapper/ActionGroup.cs: Wrapper for Gtk.ActionGruoup.
	* libstetic/wrapper/ActionTree.cs: An action tree structure (menu or
	  toolbar).
	* libstetic/wrapper/MenuBar.cs: Wrapper for Gtk.MenuBar.

2006-04-24  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/PreviewBox.cs: When handling the case of metacity
	  not being installed, don't specifically check for
	  a DllNotFoundException, since the exception may be wrapped
	  in another exception.
	* libstetic/EmbedWindow.cs: Don't crash if the metacity
	  libs can't be found.
	* libstetic/wrapper/Table.cs: Fix hang when loading project
	  which contains a table (bug #78167).

2006-04-21  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/wrapper/VScale.cs:
	* libstetic/wrapper/HScrollbar.cs:
	* libstetic/wrapper/HScale.cs:
	* libstetic/wrapper/VScrollbar.cs: Generate valid construction
	  expressions.

2006-04-18  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/wrapper/objects.xml:
	* libstetic/wrapper/Notebook.cs: Disable "Insert Before" and
	  "Delete Page" commands when there are no pages in the notebook.
	* stetic/Stetic.cs: Fix crash when deleting a widget.

2006-04-18  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/wrapper/Widget.cs:
	* libstetic/wrapper/Container.cs: When adding a widget to a container,
	  make sure the identifiers are not duplicated.
	* libstetic/wrapper/Frame.cs: Fixed code generation for
	  the label widget.
	* libstetic/wrapper/Expander.cs: Fix code generation. Fixes bug #78090.

2006-04-10  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/editor/Boolean.cs: Fix nullref in some themes.

2006-04-03  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/WidgetTreeCombo.cs: Don't show children
	  for widgets which don't allow children.
	* libsteticui/ProjectView.cs: Allow deleting top level
	  widgets from the project view.
	* libsteticui/ContextMenu.cs: Don't allow deleting or
	  cutting top level widgets.
	* libstetic/CustomWidget.cs: Use EventBox as base class.
	  A gdk window is required to make child widgets selectable.
	* libstetic/wrapper/Container.cs: Minor change in focus
	  handling. Don't allow deleting the only placeholder of a 
	  top level container.
	* libstetic/wrapper/Widget.cs: Avoid handling the FocusIn
	  event fired by an internal Select call.
	* libstetic/wrapper/objects.xml: Removed some read-only
	  properties.
	* libstetic/TypedPropertyDescriptor.cs: Provide defaults only
	  for primitive type properties.
	* stetic/Stetic.cs: When deleting a top level widget, hide the
	  corresponding tab.

2006-03-31  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/PropertyTree.cs: Changed the way instance
	  information is stored. The value is now stored in
	  the tree store instead of a hashtable.
	* libstetic/wrapper/Table.cs: Added a flag to avoid
	  recursively notifying changes in properties.

2006-03-29  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/ImageInfo.cs: Don't crash if an icon is not
	  found in the current theme.

2006-03-22  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/WidgetTreeCombo.cs: A combo that shows the
	  tree of widgets of a window.
	* libsteticui/WidgetPropertyTree.cs:
	* libsteticui/PropertyTree.cs: A TreeView based property
	  editor.
	* libsteticui/WidgetActionBar.cs: A toolbar that shows
	  the tree of widgets on a combo and some commands
	  available for the selected widget.
	* libsteticui/Project.cs: Replaced the Selected event by
	  SelectionChanged, which uses a standard signature
	  for event handlers.
	* libsteticui/PropertyGrid.cs: 
	  Track changes in the widget selected event.
	* libsteticui/PropertyEditor.cs: Moved most of code to
	  PropertyEditorCell.
	* libsteticui/Palette.cs: Show windows before widgets, since
	  windows are the first thing an user is going to create.
	* libsteticui/ProjectView.cs: Track changes in the widget 
	  selected event. Added WidgetActivated event.
	* libsteticui/SignalsEditor.cs: Make columns resizable.
	  Track changes in the widget selected event.
	  
	* libsteticui/ContextMenu.cs: Show the Delete command for
	  placeholders. Delete placeholders through their container.
	  
	* libsteticui/Makefile.am: Updated.
	
	* libstetic/PropertyEditorCell.cs: New file. Implements the base
	  class for property editors that need custom rendering.
	* libstetic/IProject.cs: Added SelectionChanged event.
	* libstetic/ItemDescriptor.cs: HasDependencies now returns true
	  if there are visibility dependencies, not only sensitivity.
	* libstetic/stetic.glade: Added text editor dialog.
	
	* libstetic/wrapper/Button.cs: Added null check.
	* libstetic/wrapper/Container.cs: When the last placeholder of
	  a container is delete, delete the container.
	* libstetic/wrapper/Paned.cs: Don't allow deleting placeholders.
	* libstetic/wrapper/Box.cs: Removed AllowPlaceholders override,
	  now will always return true. Why was this override needed?
	* libstetic/wrapper/Window.cs: Store the window icon in an ImageInfo
	  instance.
	* libstetic/wrapper/objects.xml: Fixed some editor references.
	  Removed icons that don't exist. Moved scrollbar and separator
	  widgets to the "widget" palette category.
	* libstetic/wrapper/Table.cs: Make sure placeholders can only be
	  deleted using the delete row/column commands.
	  
	* libstetic/editor/Color.cs:
	* libstetic/editor/Boolean.cs:
	* libstetic/editor/ImageSelector.cs:
	* libstetic/editor/Enumeration.cs:
	* libstetic/editor/Flags.cs:
	* libstetic/editor/StockItem.cs:
	* libstetic/editor/IntRange.cs:
	* libstetic/editor/ResponseId.cs: Implemented as a PropertyEditorCell,
	  since it needs custom rendering.
	  
	* libstetic/editor/Text.cs: Implemented as a subclass of TextEditor.
	* libstetic/editor/Image.cs: Make the editor visible.
	* libstetic/editor/StringArray.cs: New implementation based on the
	  TextEditor dialog.
	  
	* libstetic/editor/TextEditorDialog.cs:
	* libstetic/editor/TextEditor.cs: A new editor for strings.
	
	* libstetic/DND.cs:
	* libstetic/WidgetUtils.cs: Added some null checks.
	
	* libstetic/TypedClassDescriptor.cs: Properly handle errors while
	  loading widget icons.
	* libstetic/Makefile.am: Updated.
	
	* stetic/stetic.glade:
	* stetic/UIManager.cs:
	* stetic/Stetic.cs: Implemented a new interface model. Design windows are
	  now embedded, instead of floating around. Using the new property tree.

2006-03-14  Lluis Sanchez Gual  <lluis@novell.com> 

	* libsteticui/CodeGenerator.cs: Moved statements collection into
	  the GeneratorContext class.
	* libsteticui/PropertyEditor.cs: Register new image editor.
	
	* libstetic/IProject.cs:
	* libsteticui/Project.cs: Added property for IResourceProvider.
	
	* libstetic/ObjectWrapper.cs: Generate an error widget if something
	  fails while loading the project.
	* libstetic/Registry.cs: In LookupItem, throw an exception if the
	  item can't be found.
	* libstetic/wrapper/Button.cs: Use the new ImageInfo class for
	  storing the pixbuf.
	* libstetic/wrapper/Label.cs: Generate specific code for setting
	  the MnemonicWidget property.
	* libstetic/wrapper/TextView.cs: Don't allow placeholders in a
	  text view. Generate code for setting the text of the buffer.
	
	* libstetic/wrapper/Widget.cs: The Visible property is the last
	  one to be set, in this way nothing is shown until everything
	  is built.
	* libstetic/wrapper/Toolbar.cs: Put placeholders inside a ToolItem.
	* libstetic/wrapper/Image.cs: Simplified the code by using an ImageInfo
	  object for storing the pixbuf.
	
	* libstetic/wrapper/ComboBox.cs:
	* libstetic/wrapper/ComboBoxEntry.cs: If some items have been
	  added at design time, generate a text combo box.
	  
	* libstetic/wrapper/RadioToolButton.cs:
	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/Window.cs:
	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/RadioMenuItem.cs:
	* libstetic/wrapper/Bin.cs:
	* libstetic/wrapper/Container.cs: Moved statements collection into
	  the GeneratorContext class.
	
	* libstetic/wrapper/objects.xml: Added some min values. Removed the
	  Bin control from the palette. Track changes in Image and Button
	  image properties.
	* libstetic/wrapper/CheckButton.cs: In the generated code, remove
	  the default label child widget if not needed.
	* libstetic/wrapper/ToolButton.cs: Simplified the code by using a n
	  ImageInfo object for storing the pixbuf.
	* libstetic/editor/ThemedIcon.cs: Fixed some compilation problems.
	  Moved ThemedIconList to its own file.
	* libstetic/PropertyDescriptor.cs: Added support for type converters.
	* libstetic/TypedPropertyDescriptor.cs: Implemented RuntimePropertyType.
	
	* libstetic/GeneratorContext.cs: Added the statements collection that
	  will contain all generated code. Added EndGeneration, which
	  runs all post build generation methods.
	* libstetic/ErrorWidget.cs: Added support for reporting load errors.
	
	* libstetic/editor/FlagsSelectorDialog.cs:
	* libstetic/editor/Flags.cs: When there are more than 5 flag values,
	  use a dialog to select them, since the checkbox list takes too
	  much space.
	
	* libstetic/Makefile.am: Updated.
	
2006-03-03  Lluis Sanchez Gual  <lluis@novell.com> 

	* libstetic/WidgetLibrary.cs: Made Dispose virtual.
	* libstetic/wrapper/objects.xml: Declared initializer properties.
	* libstetic/wrapper/Container.cs: Don't generate code for building
	  children if children are not allowed.
	* libstetic/wrapper/Widget.cs: Support generating code for untyped
	  class descriptors.
	* libstetic/TypedClassDescriptor.cs: When looking for a static
	  CreateInstance method, look for an overload that takes
	  a ClassDescriptor as parameter.
	* libstetic/wrapper/Bin.cs: In CreateInstance, return the
	  CustomWidget instance only if the class is a Gtk.Bin.
	  Don't do it for subclasses of Bin.
	  
	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/RadioMenuItem.cs:
	* libstetic/wrapper/RadioToolButton.cs: Track api changes.

2006-03-03  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/SignalsEditor.cs: Add the name of the widget
	  to the handler name, to avoid collisions when mapping
	  the same event from different widgets.
	* libstetic/wrapper/Notebook.cs: Added some specific generation
	  code.

2006-03-02  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/CodeGenerator.cs: Generated class is not internal.
	  Generate a new Build overload, which takes a type instead of
	  an id as parameter. Other minor fixes.
	* libsteticui/Palette.cs: Added methods for showing/hiding groups.
	  Added property for setting the widget libraries to show in
	  the palette.
	* libsteticui/Clipboard.cs: Use the native format to make copies
	  of widgets.
	* libsteticui/ProjectView.cs: Redraw the tree when widget names
	  change.
	* libsteticui/Project.cs: Added method for getting a node.
	* libstetic/PreviewBox.cs: Added some null checks.
	
	* libstetic/wrapper/RadioToolButton.cs:
	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/RadioMenuItem.cs:
	* libstetic/RadioGroupManager.cs: Added support for code generation.
	
	* libstetic/Registry.cs: Added getter for the core widget library.
	* libstetic/wrapper/Container.cs: Generate code only for properties
	  available at run time.
	* libstetic/wrapper/Widget.cs: Same as previous. Also use the wrapped
	  type name specified by the class descriptor, instead of using the
	  real type of the object, since it may be a design-time only object.
	* libstetic/wrapper/Object.cs: Translate gtk property names to managed
	  names when firing the notify event.
	* libstetic/wrapper/Custom.cs: Don't use GdkWindow.SetBackPixmap since
	  it seems to fail for some widget sizes.
	* libstetic/wrapper/objects.xml: Specified a custom wrapper for Bin.
	  Added references to Gtk.Widget properties and signals.
	  
	* libstetic/PropertyDescriptor.cs: Added some methods for handling
	  property values at run-time.
	* libstetic/TypedPropertyDescriptor.cs: Added support for run-time
	  properties.
	* libstetic/GeneratorContext.cs: Added CodeNamespace property.
	
	* libstetic/WidgetUtils.cs: Use XmlElement instead of XmlDocument
	  for exporting/importing widgets (its more generic). Implemented
	  Copy/Paste methods based on native format serialization.
	  Added some BuildWidget methods (which are not used right now).
	
	* libstetic/ClassDescriptor.cs: Properly initialize the name of the
	  widget.
	* libstetic/TypedClassDescriptor.cs: Moved name initialization to
	  base class.
	* libstetic/Makefile.am: Updated.

2006-02-24  Lluis Sanchez Gual  <lluis@novell.com>

	* libsteticui/Glade.cs: Use the new api for reading/writing.
	* libsteticui/Palette.cs: Update the palette when the
	  registry changes.
	* libsteticui/ProjectView.cs: Update the project tree when
	  the project has been reloaded (due for example to a
	  registry change).
	* libsteticui/Makefile.am: Updated.
	* libsteticui/Project.cs: Make it aware of changes in the
	  registry. When the registry changes, reload the project.
	  Added Read/Write and Load/Save methods, based on the
	  native format. Added ProjectReloaded event, which is fired
	  after the project has been reloaded due to a registry change.
	  Other minor changes.
	* libsteticui/SignalsEditor.cs: Refresh when the project is
	  reloaded. Addded SignalActivated, which is fired when double-
	  clicking an event.
	* libsteticui/ContextMenu.cs: Get class descriptors from wrappers,
	  instead of looking up in the registry. Track some other api
	  changes.
	* libsteticui/PropertyGrid.cs: Refresh when the project is
	  reloaded. Track some api changes.
	  
	* libstetic/ParamSpec.cs: Commented out some methods and
	  properties which depend on P/Invoke calls.
	* libstetic/ItemGroup.cs: Delegate item creation to the
	  owner class.
	* libstetic/wrapper/Button.cs:
	* libstetic/wrapper/Container.cs: Replaced glade export/import 
	  methods by Read/Write methods. Implemented code generation.
	* libstetic/wrapper/Widget.cs: Select the widget when it gets
	  the focus. Changed InternalChildId by InternalChildProperty,
	  which has more useful information. Made Visible a wrapper
	  property for all widgets. Replaced glade export/import 
	  methods by Read/Write methods. Implemented code generation.
	* libstetic/wrapper/Window.cs: Implemented code generation.
	* libstetic/wrapper/ComboBox.cs: Removed unneeded override.
	* libstetic/wrapper/objects.xml: Added some init-properties
	  and wrapper attributes. 
	* libstetic/wrapper/Table.cs: Fixed bug when setting column
	  count.
	* libstetic/wrapper/Dialog.cs: Track api changes. Don't throw
	  the buttons changed event while reading from xml.
	
	* libstetic/wrapper/RadioMenuItem.cs:
	* libstetic/wrapper/ImageMenuItem.cs:
	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/MenuItem.cs:
	* libstetic/wrapper/ButtonBox.cs:
	* libstetic/wrapper/Box.cs:
	* libstetic/wrapper/Expander.cs:
	* libstetic/wrapper/CheckButton.cs:
	* libstetic/wrapper/ToolButton.cs:
	* libstetic/wrapper/Frame.cs:
	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/OptionMenu.cs:
	* libstetic/editor/ResponseId.cs:
	* libstetic/editor/Enumeration.cs:
	* libstetic/editor/GroupPicker.cs:
	* libstetic/editor/Flags.cs:
	* libstetic/ItemDescriptor.cs:
	* libstetic/wrapper/RadioToolButton.cs: Track api changes.
	
	* libstetic/SignalDescriptor.cs: Moved all code that depends
	  on Type and Reflection to TypedSignalDescriptor. Added
	  ParameterDescriptor, which replaces ParameterInfo.
	* libstetic/CommandDescriptor.cs: Made several changes to avoid
	  ClassDescriptor.WrapperType, which has been removed. Instead
	  of getting the method to call from the wrapped type, it gets
	  it from the type of the object when the command is invoked.
	* libstetic/editor/Char.cs: Fix worng type check.
	* libstetic/editor/Accelerator.cs: Removed glue P/Invokes.
	* libstetic/Placeholder.cs: Looks loke GdkWindow.SetBackPixmap
	  doesn't work very well. Draw filled rectangle instead.
	* libstetic/HandleWindow.cs:  If the window is embedded in a
	  preview box, use the gdk window of that box, which has more room
	  for drawing the handles.
	* libstetic/PropertyDescriptor.cs: Moved all code that depends
	  on Type and Reflection to TypedPropertyDescriptor. 
	  Added StringToValue and ValueToString methods for parsing and
	  converting values to string.
	
	* libstetic/GladeUtils.cs: Track api changes. Removed dependencies
	  to some ParamSpec properties that have been removed. The most
	  complex one to remove is the type of the glade property. Now it
	  is taken from the type of the corresponding class property.
	* libstetic/EnumDescriptor.cs: Use the registry to lookup the type
	  of the enum. The registry will look in all available libraries.
	* libstetic/ClassDescriptor.cs: Moved all code that depends
	  on Type and Reflection to TypedClassDescriptor.
	* libstetic/Makefile.am: Updated.
	* libstetic/ObjectWrapper.cs: Replaced glade export/import 
	  methods by Read/Write methods with support for native format.
	  Added ClassDescriptor property. There is no need to lookup
	  for classes in the registry since it can be accessed most of
	  the time from wrappers.
	* libstetic/Registry.cs: Added support for external widget
	  libraries.
	
	* ErrorWidget.cs:
	* EmbedWindow.cs:
	* Shadow.cs:
	* TypedClassDescriptor.cs:
	* TypedPropertyDescriptor.cs:
	* TypedSignalDescriptor.cs:
	* WidgetLibrary.cs:
	* Metacity/*:
	* wrapper/Entry.cs:
	* WidgetUtils.cs:
	* GeneratorContext.cs:
	* PreviewBox.cs:
	* AssemblyWidgetLibrary.cs:
	* WidgetLibrary.cs: New files.
	
	* Makefile.am:
	* configure.in: Removed glue directory from the build.
	
	* stetic/Stetic.cs: Added support for code generation from
	the command line.
	* stetic/stetic.in: Added debug option.
	* stetic/Makefile.am: Updated.
	* stetic/Glade.cs: Moved to libsteticui.
	* stetic/UIManager.cs: Added Load and Save commands.

2006-02-09  Lluis Sanchez Gual  <lluis@novell.com>

	* stetic.pc.in: Add a reference to the new libsteticui dll.
	* configure.in, Makefile.am: Add libsteticui dir.
	
	* stetic/WidgetFactory.cs:
	* stetic/Grid.cs:
	* stetic/missing.png:
	* stetic/PropertyGrid.cs:
	* stetic/PropertyEditor.cs:
	* stetic/Palette.cs:
	* stetic/Clipboard.cs:
	* stetic/ProjectView.cs:
	* stetic/Makefile.am:
	* stetic/Project.cs:
	* stetic/SignalsEditor.cs:
	* stetic/ContextMenu.cs:
	Moved files to libsteticui.

2006-02-07  Lluis Sanchez Gual  <lluis@novell.com>

	* libstetic/ItemGroup.cs: Converted to class. Added support for
	Signal items.
	
	* libstetic/wrapper/Container.cs: Added properties for storing
	the width and height of the container (at design time).
	
	* libstetic/wrapper/Widget.cs: Added support for signals. 
	Added some new events: NameChanged, WidgetChanged, SignalAdded,
	SignalRemoved, SignalChanged.
	
	* libstetic/wrapper/Window.cs: Don't show the window when it's
	selected. That's something that the hosting application has to
	decide. The selection change event in Project can be used for this.
	
	* libstetic/wrapper/objects.xml: Added signals.
	
	* libstetic/editor/ResponseId.cs: 
	* libstetic/editor/Translatable.cs:
	* libstetic/editor/Char.cs:
	* libstetic/editor/Color.cs:
	* libstetic/editor/ThemedIcon.cs:
	* libstetic/editor/Boolean.cs:
	* libstetic/editor/Image.cs:
	* libstetic/editor/FloatRange.cs:
	* libstetic/editor/Text.cs:
	* libstetic/editor/Accelerator.cs:
	* libstetic/editor/Enumeration.cs:
	* libstetic/editor/GroupPicker.cs:
	* libstetic/editor/OptIntRange.cs:
	* libstetic/editor/Flags.cs:
	* libstetic/editor/StringArray.cs:
	* libstetic/editor/String.cs:
	* libstetic/editor/IntRange.cs:
	  Implement the new IPropertyEditor interface.
	
	* libstetic/HandleWindow.cs: Use a wider focus rectangle.
	Get the correct top level window when it's embedded in another window.
	
	* libstetic/GladeUtils.cs: Added helper methods for exporting and
	importing widgets. Read/Write signal information.
	
	* libstetic/ClassDescriptor.cs: Added support for signals.
	
	* stetic/Makefile.am:
	* libstetic/Makefile.am: Updated.
	
	* libstetic/Registry.cs: Added some helper methods for locating
	groups.
	
	* Makefile.am:
	* configure.in: Set version to 0.1.0. Added .pc file.
	
	* stetic/WidgetFactory.cs: Don't show the window when it's
	created. The hosting app can do it by subscribing the 
	Project.WidgetAdded event.
	
	* stetic/Glade.cs: Top level widgets don't need to be windows,
	they can be containers.
	
	* stetic/PropertyGrid.cs: Some big changes. This widget is not a Grid
	anymore, but a VBox of grids. There is a grid for every ItemGroup, and
	they are reused for all widgets that share the same ItemGroup. The
	property grid is now much faster.
	
	* stetic/Stetic.cs: Added the signals editor. Handle some events
	previously handled in the widget code, but which I moved here to
	make the code more generic.
	
	* libstetic/IPropertyEditor.cs: New interface to be implemented
	by all property editors.
	
	* stetic/PropertyEditor.cs: Replaced all code that relied on reflection
	to create and initialize property editors. All this is now done through
	the new IPropertyEditor interface. Now it is also possible to reuse
	the same PropertyEditor for different objects that share the same
	property.
	
	* stetic/Palette.cs:
	* stetic/ProjectView.cs: Added support for changing the project to
	which those widgets are bound.
	
	* stetic/stetic.glade: Added the signals editor.
	
	* stetic/Project.cs: Added several events which are needed to
	integrate Stetic in an IDE.
	
	* stetic.pc.in: Added.
	
	* libstetic/SignalDescriptor.cs: New descriptor for signals.
	
	* libstetic/wrapper/WidgetEventHandler.cs:
	* libstetic/wrapper/WidgetNameChangedHandler.cs:
	* libstetic/wrapper/SignalEventHandler.cs:
	* libstetic/wrapper/SignalChangedEventHandler.cs
	
	* libstetic/wrapper/SignalCollection.cs:
	* libstetic/wrapper/Signal.cs: New class. Holds information
	about signal handlers bound to a widgets.
	
	* libstetic/ItemGroupCollection.cs: New collection class.
	
	* stetic/SignalsEditor.cs: The new signals editor.

2005-09-27  Dan Winship  <danw@novell.com>

	* libstetic/HandleWindow.cs (HandleEvent): hack around bgo 316871
	(shaped windows block update events in gtk+ 2.8.0 - 2.8.3).

2005-09-26  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/objects.xml: bring back ThemedIcon images and
	buttons. Add <itemgroup ref="Gtk.Widget"> to a few classes that
	were missing it.

	* libstetic/editor/ThemedIcon.cs: Fix to work under Gtk# 2.4

	* libstetic/wrapper/Button.cs: bring back ThemedIcon buttons

	* libstetic/wrapper/Image.cs: bring back ThemedIcon images.

	* libstetic/wrapper/Frame.cs: don't crash when importing a frame
	with no label widget. If the LabelWidget changes, create a new
	wrapper for it.

	* libstetic/wrapper/Container.cs (GladeImport): don't crash when
	importing a placeholder into a !AllowPlacerholders container.

2005-09-26  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Dialog.cs (Buttons): make this a number rather
	than having an enum of standard button choices; the HIG prefers
	stronger labels than "OK"/"Yes", so we shouldn't be making it
	easier to use bad labels than good ones.
	(HelpButton): reorder the help button to be the first child so
	that it won't ever get deleted when you decrement Buttons
	(ButtonsChanged): keep the Buttons and HelpButton properties in
	sync if the user manipulates the buttonbox contents by hand

	* libstetic/wrapper/Button.cs (StockId): if the button's ReponseId
	matches its old StockId (or is unset), update it to match it's new
	StockId.
	(IsDialogButton): replaces HasResponseId and is now settable
	rather than being figured out automatically. Also, set
	button.CanDefault when turning on IsDialogButton.
	(ResponseIdForStockId): maps Gtk.Stock values to Gtk.ResponseType
	values.

	* libstetic/wrapper/ButtonBox.cs (NewButton): if the buttonbox is
	a dialog's action_area, set IsDialogButton on new child buttons.
	(AllowPlaceholders): false
	(InsertBefore, InsertAfter): Reimplement using Secondary/non-
	Secondary rather than PackType.
	(ButtonBoxChild): add InDialog property
	
	* libstetic/wrapper/Container.cs (ContextChildProps): for use in
	context-menu ops; gets the child properties corresponding to the
	ancestor of the widget that is a child of the container.

	* libstetic/wrapper/Box.cs (AllowPlaceholders): only return false
	if InternalChildId is unset. (Eg, we definitely want to allow
	placeholders in a dialog box's internal vbox).
	(InsertBefore, InsertAfter): use Container.ContextChildProps so
	that this works regardless of what descendant widget was clicked
	on.

	* libstetic/wrapper/objects.xml (Gtk.ButtonBox): Change the
	command labels to "Insert Button Before" and "Insert Button
	After".
	(Gtk.ButtonBox+ButtonBoxChild): Remove PackType, since the
	interaction of PackType and Secondary is unnecessarily annoying.
	Also add a new internal InDialog property and hide Secondary if
	that's true (since we handle Help buttons specially and nothing
	else should be secondary).
	(Gtk.Button): s/HasResponseId/IsDialogButton/
	(Gtk.Dialog): change the description of Buttons since it's now a
	number, and give it a minimum value of "1".
	(Gtk.ResponseType): add labels/descriptions for this enum
	(Stetic.Wrapper.Dialog+StandardButtons): and kill this one

	* libstetic/editor/ResponseId.cs: update this to use
	EnumDescriptor

2005-09-22  Dan Winship  <danw@novell.com>

	* libstetic/ClassDescriptor.cs: Handle <contextmenu ref="..." />

	* libstetic/DND.cs (Cancel): fix a crash

	* libstetic/Registry.cs (LookupContextMenu): look up a context
	menu by class name.
	(NewInstance): Look up a class and invoke NewInstance on it

	* libstetic/wrapper/ButtonBox.cs: Wrapper for ButtonBox, that
	automatically fills in dummy buttons as needed.

	* libstetic/wrapper/objects.xml (Gtk.ButtonBox): use the new
	ButtonBox wrapper. Add a "Size" property and a context menu.

	* libstetic/wrapper/Container.cs (AllowPlaceholders): new virtual
	property saying whether or not to allow arbitrary placeholders in
	the container.
	(Wrap, GladeImport, Delete): Don't add placeholders if
	!AllowPlaceholders
	(DragEnd): Remove the dragSource placeholder after a successful
	drag if !AllowPlaceholders

	* libstetic/wrapper/Box.cs (AllowPlaceholders): false
	(InsertBefore, InsertAfter): If invoked on the box directly
	(rather than via the submenu from one of its children), insert
	before the first / after the last child.

	* libstetic/wrapper/Button.cs: Remove CreateInstance method;
	default to text-only buttons like Glade does.

	* libstetic/wrapper/Dialog.cs (AddButton): Use
	Registry.NewInstance.

	* libstetic/wrapper/Notebook.cs (InsertPage): Use
	Registry.NewInstance

	* stetic/ContextMenu.cs: Fix up for bxc 75689 again, since it was
	still broken before.

2005-09-20  Dan Winship  <danw@novell.com>

	* libstetic/EnumDescriptor.cs: New descriptor class for English
	(and later localized) enum value names and descriptions.

	* libstetic/Registry.cs (Registry): Create EnumDescriptors before
	ClassDescriptors.
	(LookupEnum): return EnumDescriptors.

	* libstetic/PropertyDescriptor.cs: throw an exception if an
	enum-valued property has no EnumDescriptor in the registry.

	* libstetic/editor/Enumeration.cs: simplify using EnumDescriptor.
	Also set the combobox's tooltip to the description of the selected
	enum value.

	* libstetic/editor/Flags.cs: editor for flags values (vbox full of
	checkbuttons, with tooltips).

	* libstetic/wrapper/Widget.cs (Events): proxy this property, since
	it can't be changed after the widget is realized.

	* libstetic/wrapper/objects.xml: add <enum> nodes for all enum
	types we use.

	* stetic/PropertyEditor.cs (PropertyEditor): Use the Flags editor
	for flags-valued enums

2005-09-16  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Container.cs (ReplaceChild):
	EmitContentsChanged() at the end, to fix a bug with the
	Project tree being out of sync.

	* configure.in: bump gtk-sharp dependency back up to 2.3.91. There
	are too many post-1.9.5 fixes we need.

	* libstetic/DND.cs: 
	* libstetic/HandleWindow.cs: 
	* libstetic/editor/Accelerator.cs: 
	* libstetic/editor/Translatable.cs: Revert 1.9.5 reversions

2005-09-15  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Label.cs: remove the custom ctor

	* libstetic/wrapper/Notebook.cs (InsertPage): use the Gtk.Label
	ClassDescriptor's NewInstace to create labels, so they end up
	fully-constructed.

2005-09-14  Dan Winship  <danw@novell.com>

	* configure.in: drop gtk# dependency down to 1.9.5

	* libstetic/Makefile.am (libstetic_dll_sources): remove
	editor/ThemedIcon.cs and wrapper/AboutDialog.cs

	* libstetic/DND.cs: 
	* libstetic/HandleWindow.cs: use gtk# 1.9.5-compatible
	Gdk.WindowAttr fields

	* libstetic/ItemGroup.cs (ItemGroup): deal with comment nodes in
	objects.xml

	* libstetic/editor/GroupPicker.cs: comment out use of
	ComboBox.RowSeparatorFunc.

	* libstetic/editor/Translatable.cs (ButtonPressed): use gtk#
	1.9.5-compatible Gtk.Menu.Popup call.

	* libstetic/wrapper/objects.xml: comment out all 2.6 widgets and
	properties

	* libstetic/wrapper/Image.cs: comment out "themed icon" support

	* libstetic/wrapper/Button.cs: comment out "themed icon" buttons
	and the use of Button.Image

	* stetic/UIManager.cs: Comment out Gtk.AboutDialog usage, use
	Gnome.About instead.

	* stetic/Clipboard.cs: Comment out support for plaintext cut+paste.

	* stetic/Stetic.cs: Comment out Gtk.AboutDialog-related stuff.

2005-08-18  Dan Winship  <danw@novell.com>

	* libstetic/Tooltips.cs: Hashtable/Gtk.Tooltips mix. (Gtk.Tooltips
	is write-only, so we can't use it by itself.)

	* libstetic/IProject.cs (Tooltips): new tooltips field

	* stetic/Project.cs (Tooltips): implement

	* libstetic/wrapper/objects.xml (Gtk.Widget): add Tooltip
	property.

	* libstetic/wrapper/Widget.cs (Tooltip): implement, using
	proj.Tooltips.

2005-08-17  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/objects.xml (Expander): Remove "Label",
	"UseMarkup", and "UseUnderline" properties; we'll treat the label
	as a child widget now, like Glade does. Also fix palette-category
	to be "container".
	(Frame): Remove the Label property, as with Expander. Also remove
	the redundant and deprecated "Shadow" property.
	(Notebook): Remove some deprecated properties

	* libstetic/wrapper/Expander.cs (Wrap): create an ObjectWrapper
	for the expander's LabelWidget
	(ReplaceChild): deal with LabelWidget

	* libstetic/wrapper/Frame.cs: Likewise

	* libstetic/wrapper/Notebook.cs (Wrap): remove the dummy page that
	will have been added by Container.Wrap.
	(Select): don't crash if the passed-in wrapper is null

2005-08-04  Dan Winship  <danw@novell.com>

	Support cut+paste of widgets, including interprocess cut+paste and
	drag+drop. (For some reason, it is very slow when going
	cross-process...)
	
	* libstetic/GladeUtils.cs (ApplicationXGladeAtom): Gdk.Atom for
	glade selections.
	(XslImportTransform, XslExportTransform): do the import/export xsl
	fixups.
	(Copy): copy a glade representation of a widget into a
	Gtk.SelectionData (in the same format that glade uses for its own
	internal clipboard).
	(Paste): generate a widget from a glade representation in a
	Gtk.SelectionData.

	* libstetic/DND.cs (targetList): add application/x-glade to the
	supported target types.
	(Drag): connect to the source's DragDataGet signal
	(Drop): if asked to drop an out-of-proc widget, call
	Gtk.Drag.GetData and return null.
	(DragDataGet): Respond by calling GladeUtils.Copy
	(FaultDragDrop, FaultDragDataReceived): update to be able to deal
	with receiving an out-of-proc widget

	* libstetic/ObjectWrapper.cs (Project): new public property to get
	the wrapper's Project

	* libstetic/wrapper/Container.cs (GladeExport): create
	<placeholder> elements as appropriate.
	(CreatePlaceholder): connect to DragDataReceived.
	(PlaceholderDragDataReceived): Paste the received widget data into
	place.
	(GladeChildren): return AllChildren, not RealChildren, because we
	want to include placeholders.
	(ReplaceChild): make this public

	* libstetic/wrapper/Button.cs (UseUnderline): wrap this; we can't
	set it directly on the button when we have a special icon set.
	(GladeImport): Remove a useless special case.
	(GladeExport): Set the "label" property when the button has a
	stock id.
	(GladeChildren): return base.GladeChildren, not base.RealChildren.

	* libstetic/wrapper/ScrolledWindow.cs (GladeChildren): don't need
	to override any more.

	* libstetic/wrapper/objects.xml (Gtk.Button): add UseStock as an
	internal property.
	(Gtk.ColorButton): Remove the "Color" property, since we have no
	way to serialize it.
	(Gtk.ColorSelection): Likewise for CurrentColor here.

	* stetic/Clipboard.cs: new static class with some cut/paste helper
	routines.

	* stetic/ContextMenu.cs (DoCut, DoCopy, DoPaste, DoDelete): update
	to use Clipboard

	* stetic/Glade.cs: use GladeUtils.XslImportTransform and
	XslExportTransform.

	* stetic/Project.cs (Selection): don't crash when clearing the
	selection

	* stetic/UIManager.cs (Cut, Copy, Paste): Implement these for
	widgets as well as text.

2005-08-02  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (ParseEnum, ParseFlags, PropToString):
	use Enum rather than obsolete EnumWrapper

	* libstetic/editor/Translatable.cs (ButtonPressed): Use
	non-obsolete Gtk.Menu.Popup().

	* libstetic/wrapper/objects.xml: add "Stock" internal property to
	Image so that stock images load correctly again. Fix
	Gtk.Notebook's InsertBefore and InsertAfter commands.

	* stetic/ContextMenu.cs (ContextMenu): work around another
	anonymous delegates bug (75689)

2005-07-21  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/*.cs: add a bunch of missing EmitNotify()
	calls.

2005-07-19  Dan Winship  <danw@novell.com>

	* stetic/UIManager.cs: subclass of Gtk.UIManager for Stetic. Not
	horribly functional yet, though it does track Edit menu
	sensitivity, for both widgets and text, and implements
	Cut/Copy/Paste for text (but not widgets).

	* stetic/stetic.glade: Replace the menubar with another Custom.

	* stetic/Stetic.cs (Main): create a Stetic.UIManager. Set
	SteticMain.MainWindow (to the window containing the PropertyGrid).
	Move menu command implementations to UIManager.cs

	* stetic/ContextMenu.cs: use ImageMenuItems for Cut/Copy/Paste.
	Use the UIManager to implement them.

	* stetic/Project.cs (SelectedHandler, Selection): pass the
	Gtk.Widget, not its wrapper, since there won't be a wrapper in the
	Placeholder case.

	* stetic/ProjectView.cs (WidgetSelected):
	* stetic/PropertyGrid.cs (Selected): update for prototype change

2005-07-19  Dan Winship  <danw@novell.com>

	* libstetic/IProject.cs: rename IStetic to IProject

	* libstetic/*.cs:
	* libstetic/wrapper/*.cs:
	* stetic/Project.cs: update

2005-07-15  Dan Winship  <danw@novell.com>

	* libstetic/PropertyDescriptor.cs (Translatable, IsTranslated,
	SetTranslated, TranslationContext, SetTranslationContext,
	TranslationComment, SetTranslationComment): support for
	translatable properties.

	* libstetic/GladeUtils.cs: Reorg a bunch to handle
	translatable-string-related attributes on import/export.
	(SetPacking): do GladeOverride packing properties correctly.

	* libstetic/EditorAttribute.cs: gone. We weren't really using it
	anyway, and editors can get data from the PropertyDescriptor now.

	* libstetic/TextBox.cs: a vertically-scrolling
	fixed-number-of-lines TextView. Stolen from Stetic.Editor.Text,
	now also used by Stetic.Editor.Translatable.

	* libstetic/editor/Translatable.cs: base class for translatable
	property editors. Adds an icon indicating whether or not the
	property is marked for translation, with a pop-up menu allowing
	you to toggle that and set a context or comment (which appear
	inline in the property grid rather than only in a separate
	window).

	* libstetic/editor/String.cs: inherit from Translatable

	* libstetic/editor/Text.cs: inherit from Translatable and use
	TextBox.

	* libstetic/editor/Enumeration.cs: 
	* libstetic/editor/GroupPicker.cs: 
	* libstetic/editor/StringArray.cs: update protytype to take a
	PropertyDescriptor rather than a PropertyInfo.

	* libstetic/wrapper/objects.xml: Mark all translatable string
	properties with translatable="true". Also make more use of
	<property ref=...> to simplify/correctify things.

	* libstetic/wrapper/Container.cs (GladeSetInternalChild): Make
	this look up the internal child using the properties on the
	ClassDescriptor, since the "child" might really be a grandchild or
	deeper descendant.
	(GladeImportChild, GladeSetInternalChild): Update for
	GladeUtils.SetPacking change.

	* libstetic/wrapper/pixmaps/globe.png: 
	* libstetic/wrapper/pixmaps/globe-not.png: translated/not
	translated icon

	* stetic/stetic.glade: Remove the height_request and
	width_request, because we only wanted to set initial defaults and
	let it resize itself appropriately after that.

	* stetic/PropertyEditor.cs (PropertyEditor): Pass
	PropertyDescriptors, not PropertyInfos to editor constructors, and
	add another new type (PropertyDescriptor, object).

	* stetic/Glade.cs (Export): set the DOCTYPE after the xsl
	transform, or else XslTransform will insist on adding lots of
	redundant attributes we don't want.

2005-07-13  Dan Winship  <danw@novell.com>

	* libstetic/ClassDescriptor.cs (ClassDescriptor) parse the
	internal-children node of a class as an ItemGroup.
	(InternalChildren): return it

	* libstetic/wrapper/objects.xml: Add internal-children nodes to
	Dialog and OptionMenu. Add info for AboutDialog, ColorSelection,
	ColorSelectionDialog, FileChooserWidget, FileChooserButton,
	FileChooserDialog, FontSelection, and FontSelectionDialog (several
	of which also have internal-children). Move AutoSize from
	ContainerChild to BoxChild and TableChild for now at least.

	* libstetic/wrapper/Container.cs (Wrap): get the ClassDescriptor's
	InternalChildren list and set InternalChildId and Name on the
	container's internal children.

	* libstetic/wrapper/Dialog.cs (Wrap): 
	* libstetic/wrapper/OptionMenu.cs (Wrap): Remove internal child
	handling; it's done by Container now.

	* libstetic/wrapper/AboutDialog.cs: wrap this, to make the
	Website/WebsiteLabel behavior more interactively-sane, and to make
	it not default to putting "Stetic" as the application name :).

	* libstetic/wrapper/FontSelectionDialog.cs: wrapper to expose the
	internal FontSelection widget.

	* libstetic/editor/StringArray.cs: editor for string[] (for
	AboutDialog)

	* stetic/PropertyEditor.cs: add Stetic.Editor.StringArray to the
	editors hashtable.

	* stetic/Grid.cs (SizeAllocate): don't vertically center the label
	wrt the editor if the editor is more than twice the line height
	(eg, a multiline text box).

	* stetic/Stetic.cs (Main): call Gtk.AboutDialog.SetUrlHook() here
	rather than in About(), so that the UrlHook is set for
	user-created about dialogs too.

2005-07-12  Dan Winship  <danw@novell.com>

	* libstetic/ClassDescriptor.cs: fix some names with underscores to
	use camelCase instead.
	(ClassDescriptor): If a class has no wrapper typed specified, use
	its parent's wrapper type. Allow a "cname" attribute, to override
	the CName property, so we can use a different class at design time
	than we do at runtime (eg, for MessageDialog). Remove the
	never-necessary "commands" node and no-longer-necessary
	"internal-properties" node. Count the number of "important"
	itemgroups.
	(NewInstance): move the widget-name-generation code here from
	Widget, and apply it to every property on the object with the
	init-with-name attribute.
	(ImportantGroups): return the number of "important" itemgroups
	
	* libstetic/GladeUtils.cs (ExtractWrapperProperties, GetProps):
	update for ItemGroup being enumerable.
	(ExportWidget): use the ClassDescriptor's CName, not the wrapped
	type's name.

	* libstetic/ItemDescriptor.cs (ItemDescriptor, IsInternal): note
	when properties are internal.

	* libstetic/ItemGroup.cs: make this IEnumerable, clean up a bit

	* libstetic/PropertyDescriptor.cs (PropertyDescriptor,
	InitWithName): note when properties have the init-with-name
	attribute set.

	* libstetic/wrapper/objects.xml: Move all internal-properties
	properties to internal="true" properties in itemgroups. Set
	init-with-name where appropriate. Remove now-redundant
	wrapper="..." attributes. Remove <commands> node from Gtk.Label.
	Fix Custom and GtkMessageDialog with cname attributes.

	* libstetic/wrapper/Bin.cs: gone; Container can handle all of
	this now.

	* libstetic/wrapper/Expander.cs: 
	* libstetic/wrapper/Frame.cs: 
	* libstetic/wrapper/ScrolledWindow.cs: 
	* libstetic/wrapper/Viewport.cs: inherit from Container now, since
	Bin is gone

	* libstetic/wrapper/CheckButton.cs (Wrap): Remove Label setting,
	which now happens via init-with-name.

	* libstetic/wrapper/Container.cs (Wrap): when initializing a
	container, if it has no children, add a placeholder.

	* libstetic/wrapper/Custom.cs: Remove references to C glue since
	we can now do this entirely in C# via the "cname" property. Move
	all of the properties into Stetic.Custom and remove
	Stetic.Wrapper.Custom.

	* libstetic/wrapper/Label.cs (Wrap): remove; LabelProp gets
	initialized via init-with-name now

	* libstetic/wrapper/MessageDialog.cs: create a new class
	Stetic.MessageDialog that subclasses Gtk.Dialog (and update the
	objects.xml entry to use that). The old solution of just creating
	a special Gtk.Dialog in CreateInstance() doesn't work any more.

	* libstetic/wrapper/RadioButton.cs (Wrap): remove the Label
	setting, which now happens via init-with-name

	* libstetic/wrapper/Widget.cs (Wrap): remove the Name setting,
	which now happens in ClassDescriptor.

	* libstetic/wrapper/Window.cs: inherit from Container, since Bin
	is now gone, and remove Title setting, which now happens via
	init-with-name
	
	* stetic/PropertyEditor.cs: fix a bug in int properties with
	neither a min nor a max specified.

	* stetic/PropertyGrid.cs (AppendItemGroups): use
	ClassDescriptor.ImportantGroups rather than assuming the first
	ItemGroup should be expanded and the later ones shouldn't.

	* glue/custom.c: no longer needed

2005-07-11  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/objects.xml: add some missing properties

2005-07-08  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Widget.cs (InsensitiveManager): track
	realize/unrealize events and only create the intercepting window
	when the underlying widget is realized, or else it will end up as
	a child of the root window and we'll totally lose.

2005-07-08  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/objects.xml: add <glade-transform> nodes with
	XSL transformations to fix some oddities in the glade file format.
	(GtkHButtonBox): set the "secondary" property on a Help button
	child. Use Gtk.Box as a wrapper now, since we don't need a
	ButtonBox wrapper any more.
	(GtkButtonBox, GtkVButtonBox): use Gtk.Box as a wrapper.
	(GtkMenuItem): a menuitem with no label should be a
	SeparatorMenuItem.
	(GtkTable): fix/break the non-standard "x_options" and "y_options"
	(GtkWidget): remove/add the extraneous spaces in "events"

	* libstetic/wrapper/ButtonBox.cs: gone

	* libstetic/wrapper/Container.cs (GladeImport): Sync() at the end.

	* libstetic/wrapper/Table.cs (GladeImportChild, GladeExportChild):
	gone, handled by xsl now.
	(GladeImport): gone, Container does the Sync() for us now.

	* libstetic/GladeUtils.cs (ParseFlags): remove special case for
	Widget.Events

	* libstetic/Registry.cs: handle the <glade-transform> nodes.
	(GladeImportXsl, GladeExportXsl): properties to return
	XslTransforms for glade import and export.

	* stetic/Glade.cs: use Registry.GladeImportXsl and GladeExportXsl.

2005-07-08  Dan Winship  <danw@novell.com>

	Rework the glade import/export framework to pass XmlElements
	directly to the wrapper import/export methods, rather than trying
	to parse out the "relevant" parts into Hashtables, etc. This makes
	it easier to handle a lot of the things that need special
	handling now, and will make it easier to handle signal,
	accelerator, and a11y import/export stuff later.

	* libstetic/GladePropertyAttribute.cs: gone, entirely replaced by
	XML attributes now

	* libstetic/GladeUtils.cs: update to use XML.
	(ParseProperty): handle gunichar properties.
	(Wrap): don't need the LateImportHelper stuff now

	* libstetic/ObjectWrapper.cs (GladeImport): update to use XML

	* libstetic/PropertyDescriptor.cs: Update for removal of
	GladePropertyAttribute. Handle glade-name and glade-override xml
	attributes.

	* libstetic/wrapper/objects.xml: Add glade-override="true" to
	properties that should be read from/written to the wrapper rather
	than the object during glade import/export. Move AutoSize from
	Container to ContainerChild, where it belonged. Fix
	Button.ResponseId to invisiblify correctly. Remove
	palette-category="internal" since the Palette will now ignore
	objects with no palette-category. Make Menu be wrapped by
	Container rather than Widget, so its MenuItems will be added
	correctly.

	* libstetic/wrapper/Button.cs (GladeImport, GladeExport): update
	(GladeImportChild): update, and remove the GladeImportComplete
	stuff, since we can do it immediately after
	base.GladeImportChild() now.
	(StockId): Fix so this actually works :)
	
	* libstetic/wrapper/ButtonBox.cs (GladeImportChild): update,
	remove redundant setting of button.ResponseId.

	* libstetic/wrapper/Container.cs: make non-abstract, since Menu
	uses this as its wrapper now.
	(GladeImport, GladeImportChild, GladeSetInternalChild,
	GladeExport, GladeExportChild): Update. In particular, Container
	now handles recursing into child widgets itself, which is nice
	because it means all of a widget's children are imported when its
	base.GladeImport() call returns, which lets us simplify a few
	places that used to need the GladeImportComplete event.

	* libstetic/wrapper/Image.cs (Wrap): Fix the case of wrapping a
	Gtk.Image with no image specified
	(IconSize): Remove GladePropertyAttribute

	* libstetic/wrapper/Label.cs (MnemonicWidget): make this a string,
	for now at least.

	* libstetic/wrapper/OptionMenu.cs (GladeImport, etc):
	* libstetic/wrapper/Table.cs (GladeImport, etc): update. Remove
	GladeImportComplete hacks.

	* libstetic/wrapper/Widget.cs (GladeImport, GladeExport): Make
	these work with XML.
	(Visible, HasDefault, Sensitive): Remove the
	GladePropertyAttribute.

	* libstetic/wrapper/Window.cs (Modal, TypeHint, Type): Remove
	GladePropertyAttribute.

	* libstetic/wrapper/Bin.cs (GladeImport):
	* libstetic/wrapper/ComboBox.cs (GladeImport):
	* libstetic/wrapper/CheckButton.cs (GladeImportChild):
	* libstetic/wrapper/Expander.cs (GladeImportChild, GladeExportChild):
	* libstetic/wrapper/Frame.cs (GladeImportChild, GladeExportChild):
	* libstetic/wrapper/ImageMenuItem.cs (GladeImport):
	* libstetic/wrapper/Notebook.cs (GladeImportChild, GladeExportChild):
	* libstetic/wrapper/MenuItem.cs (GladeImportChild):
	* libstetic/wrapper/RadioButton.cs (GladeImport, GladeExport):
	* libstetic/wrapper/RadioMenuItem.cs (GladeImport, GladeExport): 
	* libstetic/wrapper/RadioToolButton.cs (GladeImport, GladeExport):
	* libstetic/wrapper/ToolButton.cs (GladeImport): update

	* libstetic/editor/FloatRange.cs: 
	* libstetic/editor/IntRange.cs: 
	* libstetic/editor/OptIntRange.cs: Make these take object args,
	and substitute in a default min/max value if either is null.

	* libstetic/ClassDescriptor.cs: 
	* libstetic/ItemDescriptor.cs: Use SelectNodes, not
	GetElementsByTagName, which is recursive. (Oops.)

	* libstetic/ParamSpec.cs (IsUnichar): add this, to test
	G_IS_PARAM_SPEC_UNICHAR, since you can't otherwise distinguish
	them from uint paramspecs.

	* stetic/Glade.cs: update to pass XML to libstetic, and to not
	recurse (since the wrappers do it themselves now).

	* stetic/Palette.cs: ignore classes with no palette category
	specified.

	* stetic/PropertyEditor.cs: merge BasicEditor and RangeEditor
	together, and update for the range editor changes to handle
	implicit min/max.

	* glue/paramspec.c (stetic_param_spec_is_unichar): glue for
	ParamSpec.IsUnichar.

2005-07-06  Dan Winship  <danw@novell.com>

	* libstetic/DND.cs (NewWindow):
	* libstetic/HandleWindow.cs (HandleWindow): update for new
	studlynamed WindowAttr fields.

2005-07-01  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/objects.xml: new XML description of widgets,
	replacing the Register() methods and a lot of miscellaneous
	property attributes.

	* libstetic/CommandAttribute.cs: 
	* libstetic/DescriptionAttribute.cs: 
	* libstetic/ObjectWrapperAttribute.cs: 
	* libstetic/ObjectWrapperType.cs: 
	* libstetic/RangeAttribute.cs: gone (replaced by XML attributes)

	* libstetic/ItemGroup.cs: construct from XML

	* libstetic/ItemDescriptor.cs: construct from XML
	(EnabledFor, VisibleFor): take the widget as an argument rather
	than the wrapper

	* libstetic/PropertyDescriptor.cs: construct from XML, remove
	slashed property names
	(GetValue, SetValue): take the widget rather than the wrapper

	* libstetic/CommandDescriptor.cs: construct from XML
	(Enabled, Run): take the widget rather than the wrapper

	* libstetic/Registry.cs: New static class that handles keeping
	track of ObjectWrappers and ClassDescriptors.

	* libstetic/ClassDescriptor.cs: new, describes a class. Takes on a
	lot of functionality that used to be in static ObjectWrapper
	methods. Also, having ItemGroups, etc stored on a ClassDescriptor
	object means we don't need a ObjectWrapper subclass for each
	wrapped class (unless the wrapper implements some special
	functionality).

	* libstetic/ObjectWrapper.cs: Remove a lot of static methods,
	which are now handled by Registry and ClassDescriptor.

	* libstetic/GladeUtils.cs: Misc updates for Registry/ObjectWrapper
	changes

	* libstetic/wrapper/*.cs: remove Register() and various other
	no-longer-needed things
	
	* libstetic/wrapper/Alignment.cs:
	* libstetic/wrapper/Arrow.cs:
	* libstetic/wrapper/Calendar.cs:
	* libstetic/wrapper/CheckMenuItem.cs:
	* libstetic/wrapper/DrawingArea.cs:
	* libstetic/wrapper/Entry.cs:
	* libstetic/wrapper/EventBox.cs:
	* libstetic/wrapper/HBox.cs:
	* libstetic/wrapper/HButtonBox.cs:
	* libstetic/wrapper/HPaned.cs:
	* libstetic/wrapper/HSeparator.cs:
	* libstetic/wrapper/Menu.cs:
	* libstetic/wrapper/MenuBar.cs:
	* libstetic/wrapper/Misc.cs:
	* libstetic/wrapper/ProgressBar.cs:
	* libstetic/wrapper/SeparatorMenuItem.cs:
	* libstetic/wrapper/SeparatorToolItem.cs:
	* libstetic/wrapper/Statusbar.cs:
	* libstetic/wrapper/ToggleButton.cs:
	* libstetic/wrapper/TreeView.cs:
	* libstetic/wrapper/VBox.cs:
	* libstetic/wrapper/VButtonBox.cs:
	* libstetic/wrapper/VPaned.cs:
	* libstetic/wrapper/VSeparator.cs: gone; these classes don't
	need any special functionality beyond what can be specified in
	objects.xml.

	* stetic/Palette.cs: Use Registry.AllClasses to get the palette
	contents.

	* stetic/PropertyEditor.cs: use objects directly rather than via
	their wrappers (particularly since PropertyDescriptor.Get/SetValue
	now work directly on the objects).

	* stetic/WidgetFactory.cs: take a ClassDescriptor instead of name,
	icon, and wrapperType.

	* stetic/ContextMenu.cs:
	* stetic/Project.cs:
	* stetic/PropertyGrid.cs: misc updates for other changes

2005-06-28  Raja R Harinath  <rharinath@novell.com>

	Fix 'make distcheck'.
	* stetic/Makefile.am (RESOURCE_FILES): Pick stetic.glade from
	$(srcdir).
	(stetic.exe): Prepend $(srcdir)/ to all source filenames.
	(EXTRA_DIST): Add stetic.glade.  Don't use $(RESOURCE_FILES).
	Automake doesn't grok $(wildcard ..).
	(dist-hook): New.  Copy the png files here.
	* libstetic/Makefile.am (libstetic.dll): Prepend $(srcdir)/ to all
	source filenames.
	(EXTRA_DIST): Don't list wrapper/pixmaps/*.png.
	(dist-hook): New.  Copy the png files here.

2005-06-23  Dan Winship  <danw@novell.com>

	* libstetic/ItemDescriptor.cs (DisabledIf): Replaces DependsOn and
	DependsInverselyOn; specifies that a property is disabled if
	another property has any of the listed values. (Rather than only
	being able to depend on boolean values like before).
	(InvisibleIf): Likewise replaces VisibleIf and InvisibleIf.
	(HasVisibility): Tests if an item has any visibility constraints,
	a la HasDependencies.

	* libstetic/editor/ThemedIcon.cs: new editor for selecting a
	themed icon (which can be either a registered stock icon or one of
	the broader set of theme-based icons).

	* libstetic/wrapper/Button.cs: Redo this using an enum to select
	the type of button (Stock, Text-only, Themed icon + Label,
	Icon-from-file + Label, or Custom contents). Use
	ItemDescriptor.InvisibleIf to cause irrelevant fields to be
	hidden.
	(Register): Rework for the above, plus for the
	ToggleButton/CheckButton inheritance changes below.
	(ThemedIcon): Use the ThemedIcon editor to select this.

	* libstetic/wrapper/Image.cs: Handle the themed icon vs
	icon-from-file distinction the same way Button does.

	* libstetic/wrapper/CheckButton.cs: inherit from Container rather
	than Button, since we're mostly not like Button.

	* libstetic/wrapper/RadioButton.cs: inherit from CheckButton, not
	Button.

	* libstetic/wrapper/ToggleButton.cs: Simplify because it can
	inherit more behavior from Button, now that CheckButton doesn't.

	* libstetic/wrapper/Dialog.cs (AddButton): update for Button
	changes

	* libstetic/wrapper/ScrolledWindow.cs (AddWithViewport): Set the
	ShadowType on the Viewport to None.

	* libstetic/wrapper/Box.cs (BoxChild.Register):
	* libstetic/wrapper/ButtonBox.cs (ButtonBoxChild.Register):
	* libstetic/wrapper/FontButton.cs (Register):
	* libstetic/wrapper/Scale.cs (Register):
	* libstetic/wrapper/Table.cs (TableChild.Register): Update for
	ItemDescriptor changes.

	* stetic/PropertyGrid.cs: Add logic to allow property visibility
	to change on the fly, rather than being assumed to be constant for
	a given object.

	* stetic/Grid.cs (OnSizeAllocated): if a widget is invisible,
	don't allocate space for it. If an editor is invisible, hide its
	label too.

2005-06-12  Todd Berman  <tberman@off.net>

	* libstetic/wrapper/Frame.cs: Make the frame HIG-ified by default.
	* TODO: Update TODO.

2005-06-10  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Widget.cs (InsensitiveManager): new static
	class to manage insensitive widgets (using a Gtk.Invisible and
	InputOnly Gdk.Windows to intercept clicks on them).
	(Sensitive): Inform the InsensitiveManager about the widget's
	state.

	* libstetic/HandleWindow.cs: Likewise, attach the HandleWindow to
	a Gtk.Invisible, so we still get events on it even if the selected
	widget is insensitive.

	* TODO: Sensitive is handled properly now.

2005-06-01  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/ScrolledWindow.cs (AddWithViewport): Create
	and wrap the viewport first, rather than trying to wrap it after
	adding it to the window, which may cause a warning trying to set
	its .Events in Widget.Wrap().
	(ReplaceChild): If oldChild is in a Viewport, remove it from that
	as well as removing the viewport from the scrolled window.

	* libstetic/wrapper/Container.cs (Select): connect to the
	selection's "Destroyed" event (and disconnect from the old
	selection's)
	(SelectionDestroyed): Unselect the selection
	(Delete): No longer need to do it here. (Now destroyed widgets get
	properly unselected whether you delete them directly or delete one
	of their ancestors.)

	* stetic/Palette.cs: Fix this to not be a subclass of
	ScrolledWindow; the caller can put it in a ScrolledWindow itself
	if it wants to.

	* stetic/Project.cs (Selection): don't try to unselect the
	previous selection if it's been destroyed, or we'll get a warning.

	* stetic/stetic.glade: Fill in the menu contents here, set up some
	signal handlers.

	* stetic/stetic-multi.glade: An alternate UI file, with multiple
	windows like glade.

	* stetic/Stetic.cs (Main): update for the .glade file changes.
	(Cut, Copy, Paste, Delete): currently dummy methods
	(Quit): implement
	(About): implement

2005-05-27  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Box.cs (DoSync, Drop): Properly handle
	PackStart vs PackEnd (particularly in terms of creating all the
	right drag faults).

	* libstetic/DND.cs (AddFault): add some new overloads

	* TODO: remove comments about PackStart/PackEnd

2005-05-26  Dan Winship  <danw@novell.com>

	* stetic/Stetic.cs (Main): Load the UI from a glade file rather
	than hardcoding it.

	* stetic/stetic.glade: the UI, now editable in itself

	* stetic/Glade.cs: Rename this class to GladeFiles, because C#'s
	namespacing rules suck.

	* stetic/Makefile.am: add stetic.glade as a resource

	* libstetic/wrapper/Container.cs (LookupParent): don't return
	Unselectable wrappers

	* libstetic/wrapper/Custom.cs (Int1, Int2): Add RangeAttributes
	to these so the property grid doesn't crash

	* libstetic/wrapper/Paned.cs (ReplaceChild): Make this actually
	work.

	* libstetic/wrapper/ScrolledWindow.cs (ReplaceChild,
	AddPlaceholder): when using a Viewport, create an (unselectable)
	ObjectWrapper for it.
	(RealChildren, GladeChildren): override to make the viewport show
	up when glade-exporting, but not otherwise.

	* libstetic/wrapper/Viewport.cs: new, wrapper for Gtk.Viewport.

2005-05-26  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (ParseFlags, PropToString): Remove
	special cases for TableChild options (now handled in Table.cs).
	Use PropertyDescriptor.HasDefault.

	* libstetic/IStetic.cs (Selection): Make this a Gtk.Widget, not a
	Stetic.Wrapper.Widget, so we can keep more careful track of
	Placeholder selections.

	* libstetic/PropertyDescriptor.cs (HasDefault): new settable
	property to say whether or not the property has a default value.
	(See Scale.cs below).

	* libstetic/wrapper/Bin.cs (GladeImport): at GladeImportComplete
	time, if the bin is empty, add a Placeholder.

	* libstetic/wrapper/Button.cs (GladeImport, GladeChildren): dtrt
	with buttons that contain placeholders.
	(FixupGladeChildren): set UseUnderline correctly.
	(GladeExport): handle stock buttons correctly

	* libstetic/wrapper/ButtonBox.cs (GladeImportChild): fix the
	"Help" button case.

	* libstetic/wrapper/Container.cs (LookupParent): was
	Widget.ParentWrapper, but now can be used for Placeholders as
	well.
	(Select, UnSelect): update for selection changes

	* libstetic/wrapper/Image.cs (GladeExport): don't export the
	"filename" property when it's a stock image, or the "stock"
	property when it's an image file.
	(UseStock, Stock, Filename): misc other fixes

	* libstetic/wrapper/OptionMenu.cs (GladeImport): juggle the Menu
	at GladeImportComplete time to force a proper size request
	(GladeImportChild): allow the menu to be specified as an internal
	or non-internal child, since different versions of glade
	apparently do different things.

	* libstetic/wrapper/Scale.cs (Register): clear HasDefault on the
	DrawValue and ValuePos properties, since the ParamSpecs are
	registered with the wrong default values.

	* libstetic/wrapper/Table.cs (GladeImportChild, GladeExportChild):
	translate between the "normal" flag value representation
	("GTK_EXPAND|GTK_FILL") and TableChild's special representation
	("expand|fill") here rather than in GladeUtils.

	* libstetic/wrapper/Widget.cs (ParentWrapper): use
	Container.LookupParent().
	(WidgetEvent): update for selection changes
	(UnSelect): gone, handled by other things now

	* stetic/ContextMenu.cs: Fix (again) so that only the top level
	menu has submenus. Add icons to the widget labels.

	* stetic/Glade.cs (Export): close the file when we're done.
	(ExportWidget): Remove a no-longer-relevant FIXME about
	Placeholders

	* stetic/Project.cs (Selection, etc): update for IStetic change to
	make Selection a Gtk.Widget. Unselect the previous selection
	always. (Previously Placeholders weren't unselected properly.)

	* stetic/PropertyGrid.cs: Add a "Widget Class" line (with icon)

2005-05-24  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs: Fix up the parsing/unparsing to be
	based on C# types rather than ParamSpec GTypes, so that it can be
	used for C# wrapper properties. Update for PropertyDescriptor
	GladeProperty changes.

	* libstetic/PropertyDescriptor.cs (PropertyDescriptor): Allow the
	"Foo" in a "Foo/Bar" property to be a wrapper property. Copy the
	ParamSpec and GladeAttribute from a property to its glade proxy.
	(GladeProperty): don't return null; if the property has no
	GladeProperty proxy, return the property itself.
	(GladeName): don't peek into GladeProperty. (Make the caller do
	it).
	(GladeGetValue, GladeSetValue): gone; just use GetValue/SetValue
	on the GladeProperty.

	* libstetic/RadioGroupManager.cs (GladeGroupName): return the
	glade "group" property value for a radio group item.

	* libstetic/editor/GroupPicker.cs (Dispose): Changed from
	OnDestroyed() to work around a gtk# refcounting bug at the moment.

	* libstetic/wrapper/Button.cs (ConstructChild): build Unselectable
	wrappers for the contents, so they can be glade-serialized
	correctly.
	(GladeChildren): include or skip the child wrappers as
	appropriate.
	(HasResponseId): fix

	* libstetic/wrapper/Calendar.cs (DisplayOptions): proxies
	Gtk.Calendar.DisplayOptions, with a GladeProperty attribute.
	(Register): Change properties to, "DisplayOptions/ShowHeading",
	etc, so that DisplayOptions is treated as the glade property.
	(GladeImport): no longer needed

	* libstetic/wrapper/Container.cs (GladeChildren): new virtual
	property to get a list of children for glade export purposes

	* libstetic/wrapper/Custom.cs:
	s/ObjectManager.RegisterType/GType.Register/
	(Int1, Int2): make these ints now that GladeUtils can deal with
	that.

	* libstetic/wrapper/MenuItem.cs (Label): store the label text
	separately from the Label itself, since OptionMenu will steal the
	Label of the selected MenuItem, so our Label will sometimes be
	unexpectedly null.
	(UseUnderline): remove glade proxy now that GladeUtils can
	directly deal with the property being a bool.

	* libstetic/wrapper/OptionMenu.cs (Items, FlattenMenu): Remove.
	Make the contents be a menu, not just a list of labels.
	(Wrap): mark the menu wrapper with the InternalChildId "menu"
	(GladeImport): don't need FlattenMenu any more, but have to set
	Active property after the menu is built.
	(GladeChildren): return the menu.

	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/RadioMenuItem.cs: 
	* libstetic/wrapper/RadioToolButton.cs (GladeImport): Re-set
	"Active" after setting the group.
	(GladeExport): Use GroupManager.GladeGroupName() to get the right
	group

	* libstetic/wrapper/Widget.cs (Unselectable): new property.
	(FindWrapper): skip wrappers marked Unselectable.

	* stetic/Glade.cs (ExportWidget): use GladeChildren rather than
	RealChildren.

2005-05-04  Dan Winship  <danw@novell.com>

	* configure.in: require gtk-sharp 2.5

	* libstetic/editor/GroupPicker.cs: use ComboBox.RowSeparatorFunc
	to add a separator to the menu

	* libstetic/wrapper/Toolbar.cs (Tooltips): Remove; this is a real
	property in gtk 2.6

	* libstetic/wrapper/ToggleToolButton.cs (Active): Likewise

2005-04-28  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (PropToString): switch based on the type
	of value, not on prop.PropertyType, since they might not match
	(eg, if UseUnderlying is set).
	(GetProps): skip props that aren't visible on a given wrapper
	
	* glue/custom.c: define the last_modification_time property to
	avoid warnings on glade import

	* libstetic/wrapper/Expander.cs: 
	* libstetic/wrapper/Frame.cs (GladeExportChild): implement

	* libstetic/wrapper/Paned.cs: Remove MaxPosition/MinPosition from
	the Pane Properties; they're not writable.

2005-04-26  Dan Winship  <danw@novell.com>

	* glue/Makefile.am (pkglib_LTLIBRARIES): install libsteticglue.la

	* libstetic/Makefile.am (pkglib_DATA): install libstetic.dll and
	libstetic.dll.config
	(libstetic.dll): update to non-warned-about mcs option syntax
	(CLEANFILES, EXTRA_DIST): update
	
	* libstetic/libstetic.dll.config: remove unused mapping

	* libstetic/wrapper/pixmaps/Makefile.am: remove unused Makefile

	* stetic/Makefile.am (pkglib_DATA, bin_DATA): install stetic and
	stetic.exe
	(stetic.exe): update to non-warned-about mcs option syntax
	(CLEANFILES, EXTRA_DIST): update
	(run, trace, mdb, gdb): targets to run the uninstalled stetic.exe

	* stetic/stetic.in: redo this for installation

	* stetic/stetic.exe.config: remove this; stetic.exe doesn't
	DllImport anything of its own

	* configure.in: remove unused GACUTIL checks

2005-04-20  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/CheckMenuItem.cs: 
	* libstetic/wrapper/ImageMenuItem.cs: 
	* libstetic/wrapper/MenuBar.cs: 
	* libstetic/wrapper/MenuItem.cs: 
	* libstetic/wrapper/RadioMenuItem.cs: 
	* libstetic/wrapper/SeparatorMenuItem.cs: wrap these enough to be
	able to glade-import menus, but not really well enough to be able
	to edit them happily.

	* libstetic/Makefile.am (libstetic.dll): Change the rule to write
	all the args out to a response file and then use that.

	* libstetic/editor/Accelerator.cs: PropertyGrid editor for
	accelerators. Loosely based on EggCellRendererKeys.

	* glue/misc.c (stetic_keycode_is_modifier): for
	Stetic.Editor.Accelerator

	* glue/Makefile.am (libsteticglue_la_SOURCES): add misc.c

2005-04-19  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (ParseProperty, PropToString): do the
	value<->string conversion here rather than calling out to C glue.
	Later on, this will let us get rid of some per-widget hacks, but
	for now it just does exactly what the C code did.

	* libstetic/wrapper/Container.cs (GladeExportChild): fix the
	tagging of internal-children, which has apparently been broken for
	a while.

	* glue/value.c: gone

2005-04-13  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/*.cs: change a bunch of fields that are only
	used via reflection to be "internal" rather than "private", so
	that mcs won't warn about their apparent unusedness.

	* libstetic/PropertyDescriptor.cs: remove an unused field

	* stetic/Glade.cs: remove an unused DllImport

2005-04-11  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/HBox.cs: 
	* libstetic/wrapper/HPaned.cs: 
	* libstetic/wrapper/Notebook.cs: 
	* libstetic/wrapper/OptionMenu.cs: 
	* libstetic/wrapper/VBox.cs: 
	* libstetic/wrapper/VPaned.cs: s/.Children//

	* libstetic/wrapper/Container.cs (FindInternalChild): use
	AllChildren
	(RealChildren): use AllChildren. kill RealChildEnumerator.

	* libstetic/wrapper/Widget.cs (InterceptClicks, FindWrapper): use
	AllChildren, kill ChildEnumerator

	* stetic/Grid.cs (ForAll): use new signature

2005-04-11  Dan Winship  <danw@novell.com>

	* glue/custom.c (custom_new): new method

	* libstetic/RadioGroupManager.cs (this[Gtk.Widget]): track the
	Destroyed event on radio widgets and update everything
	appropriately when a radio widget is destroyed.

	* libstetic/wrapper/Widget.cs (Delete): UnSelect when Deleting.

	* libstetic/wrapper/Container.cs (UnSelect): clear the Project
	selection when unselecting.

	* libstetic/wrapper/Custom.cs (Stetic.Custom.ctor()): call
	custom_new()

	* TODO: misc updates

2005-04-07  Dan Winship  <danw@novell.com>

	* glue/custom.c: 
	* libstetic/wrapper/Custom.cs: 
	* libstetic/wrapper/pixmaps/custom.png: Add custom widgets (a bit
	kludgy at the moment).

	* libstetic/wrapper/Calendar.cs (GladeImport): handle "display_options"

	* libstetic/wrapper/ComboBox.cs (Items): tag this properly for
	glade import/export

	* libstetic/wrapper/ScrolledWindow.cs (AddPlaceholder): override
	this to add the placeholder in a viewport

	* libstetic/wrapper/Widget.cs (ParentWrapper): fix to not get into
	an infinite loop on toplevel windows.

2005-04-07  Dan Winship  <danw@novell.com>

	Add Toolbar and its children, plus a bunch of things I had to fix
	to get there.
	
	* libstetic/DND.cs (Cancel): Returns the widget that was being
	dragged, after removing it from the DragWindow, so we don't get
	errors when you cancel a drag.

	* libstetic/HandleWindow.cs (Dispose): disconnect from
	selection.WidgetEvent.
	(SelectionEvent): if the event occurred in the handle window,
	always return true. Fixes the bug where widgets sometimes undrew
	themselves when they were selected.

	* libstetic/ObjectWrapperAttribute.cs (ObjectWrapperType): kill
	this enum
	(Type): make this a string

	* libstetic/ObjectWrapperType.cs: new static class containing
	constant strings for the predefined wrapper types (including the
	new ToolbarItem type).

	* libstetic/Placeholder.cs (OnDragDrop): remove this; Container
	can handle the event itself.

	* libstetic/PropertyDescriptor.cs: Fix this to be able to handle
	the case of a subproperty of a wrapper type (eg,
	ToolItem.IsImportant in Wrapper.Toolbar.ToolbarChild)

	* libstetic/RadioGroupManager.cs: Move the group-handling code
	from Wrapper.RadioButton here, and genericize it to be able to
	work with RadioToolButtons and RadioMenuItems as well.

	* libstetic/editor/GroupPicker.cs: update to use RadioGroupManager.

	* libstetic/wrapper/Container.cs (PlaceholderDragDrop): connect to
	this directly rather than having the Placeholder proxy it to us.
	(CreateDragSource): new virtual method to create a Placeholder (or
	not) specifically for when dragging something out of a container
	(CreatePlaceholder): update signal-handling here
	(RealChildren): make this virtual

	* libstetic/wrapper/Toolbar.cs: Wrap this.
	(RealChildren, ReplaceChild): Override these to handle "invisible"
	ToolItem wrappers around non-ToolItem objects stuck into the
	toolbar.
	(DoSync, Drop): do DND autoexpanding. (At some point, we should
	use the actual toolbar DND editing methods.)
	(CreateDragSource, DragEnd): return a Gtk.Invisible rather than
	adding a placeholder to the toolbar.
	(ToolbarChild): wrap this, putting the three ToolItem properties
	here, since it's where they really belong.

	* libstetic/wrapper/RadioButton.cs: port to use RadioGroupManager

	* libstetic/wrapper/Widget.cs (Wrap, InterceptClicks): recursively
	set up event interception, so that widgets with internal embedded
	widgets work correctly.
	(ParentWrapper): Make this able to cope with non-wrapped widgets
	in the hierarchy.

	* libstetic/wrapper/RadioToolButton.cs: 
	* libstetic/wrapper/SeparatorToolItem.cs: 
	* libstetic/wrapper/ToggleToolButton.cs: 
	* libstetic/wrapper/ToolButton.cs: Wrap

	* stetic/Palette.cs: update for ObjectWrapperType changes

2005-04-05  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Widget.cs (ToString): override

	* stetic/ContextMenu.cs (ContextMenu): Update for WidgetSite
	removal; use the right context widget. Also, only include the
	insensitive "name" label on the top-level menu.

2005-04-04  Dan Winship  <danw@novell.com>

	* libstetic/PropertyDescriptor.cs (GladeName): fix for proxied
	properties so that MnemonicWidget works right.

	* libstetic/wrapper/Button.cs (ConstructChild): Fix so that stock
	icons always UseUnderline

	* libstetic/wrapper/Container.cs (FindInternalChild): No need to
	recurse upward here any more. Also, return the wrapper rather than
	the child.
	(GladeSetInternalChild): don't create a wrapper here, since the
	widget must already have one.
	(Select): add a workaround for when you select a widget that isn't
	mapped.

	* libstetic/wrapper/OptionMenu.cs (Wrap): create a wrapper for the
	menu.
	(GladeSetInternalChild): override this, since the menu (which
	glade considers to be an internal child of the optionmenu) is not
	actually a real child.

	* libstetic/wrapper/Widget.cs (FindWrapper): don't find widgets
	that aren't mapped.
	(HasDefault, HierarchyChanged): Fix the logic here; a widget
	always has a "Toplevel", it's just that the Toplevel is not always
	actually a toplevel widget.

	* libstetic/wrapper/Window.cs (Select): Show() the window when it
	is selected.

2005-03-29  Dan Winship  <danw@novell.com>

	* libstetic/HandleWindow.cs (SelectionEvent): simplify for gdk#
	changes

	* libstetic/editor/Image.cs: Use reflection to get the list of
	stock IDs rather than Gtk.Stock.ListIds, since the latter will
	return 2.6-specific IDs if you have libgtk 2.6.
	(Image): pack the combobox into a vbox so it won't expand
	incorrectly.
	
	* libstetic/wrapper/ButtonBox.cs (GladeImportChild): fix
	ResponseId handling.

	* libstetic/wrapper/Container.cs (Select, UnSelect): virtualize
	(Delete): new method to delete a widget and replace it with a
	Placeholder.

	* libstetic/wrapper/Label.cs (Label (string)): pass "true" to Wrap
	so it doesn't bash the passed-in label string

	* libstetic/wrapper/Notebook.cs (GladeImportChild, InsertPage):
	Remove FIXMEs.
	(GladeExportChild): fix a leftover WidgetSiteism.
	(Select): override this; if a tab is selected, switch to its page.
	(ReplaceChild): allow tabs to be replaced, and don't muck things
	up when pages get replaced

	* libstetic/wrapper/Table.cs (Sync): fix to not get caught in
	infinite loops again.

	* libstetic/wrapper/Widget.cs (WidgetEvent): simply for gdk#
	changes.
	(FindWrapper): search all children (not just non-internal ones)
	(Delete): new method to delete a widget (by calling
	ParentWrapper.Delete)

	* stetic/ContextMenu.cs (DoDelete): use Wrapper.Widget.Delete()

2005-03-29  Dan Winship  <danw@novell.com>

	* libstetic/WidgetBox.cs:
	* libstetic/WidgetSite.cs: GONE!

	* libstetic/Placeholder.cs: inherit from DrawingArea rather than
	WidgetBox now.
	(NewWindow): Gone. The DrawingArea creates the window for us now.
	(Mimic, UnMimic): kill; Wrapper.Container watches out for this now

	* libstetic/HandleWindow.cs (SelectionEvent): intercept
	ButtonPress and Motion events and signal to the parent container
	when to start dragging.

	* libstetic/DND.cs (SourceSet, SourceUnset, SourceButtonPress,
	CanDrag): Remove "non-automatic" drag sources; HandleWindow
	handles that now.
	(AddFault, etc): update/rename stuff for WidgetSite removal

	* libstetic/IStetic.cs (CreateWidgetSite, CreatePlaceholder): gone
	(PopupContextMenu): new, to make the app pop up a context menu
	(Selection): new read/write property to replace old Select() method

	* libstetic/wrapper/Widget.cs (Wrap): add ButtonPressMask to the
	widget eventmask, and connect to WidgetEvent and PopupMenu
	(ParentWrapper): simplify for lack of WidgetSites
	(WidgetEvent): intercept button presses and walk through the
	widget's children to find the deepest wrapped widget that the
	click was inside (since NoWindow widgets will no longer be able to
	report their own clicks). Handle selection and context menus.

	* libstetic/wrapper/Container.cs (GladeImportChild,
	GladeExportChild): remove WidgetSite handling
	(Add): replaces AddWidgetSite
	(CreateWidgetSite, SiteButtonPress, SiteMotionNotify): gone
	(CreatePlaceholder): create the Placeholder directly rather than
	needing stetic.CreatePlaceholder.
	(PlaceholderDrop, PlaceholderDragEnd): don't create a WidgetSite
	(RealChildren): replaces Sites
	(HandleWindowDrag): initiate drag and drop from here.
	(ChildHExpandable, ChildVExpandable): checks the expandability of
	a child (which might be a Placeholder, or not)

	* libstetic/wrapper/*.cs: Update for WidgetSite removal, and
	ChildHExpandable/ChildVExpandable.

	* stetic/ContextMenu.cs (OnSelectionDone): be self-destroying

	* stetic/Glade.cs (ExportWidget): no more WidgetSites

	* stetic/Project.cs (Selection): change from method to property
	(CreateWidgetSite, CreatePlaceholder): Kill
	(PopupContextMenu): Implement
	(AddWidget, ContentsChanged): s/foo.Sites/foo.RealChildren/

2005-03-28  Dan Winship  <danw@novell.com>

	* libstetic/HandleWindow.cs: new class to implement selection handles.

	* libstetic/WidgetBox.cs: Remove all handle-related code

	* libstetic/IStetic.cs (Select): new, to tell the main program to
	select a widget (rather than having the it listen for an event on
	all toplevel windows).

	* libstetic/wrapper/Widget.cs (Select, UnSelect): tell the parent
	container (if any) to select this widget
	(CreateWidgetSite, CreatePlaceholder): remove these; anything that
	is a container needs to be subclassing Container, not Widget.

	* libstetic/wrapper/Container.cs (CreateWidgetSite,
	CreatePlaceholder): catch ButtonPressEvents
	(SiteButtonPress, PlaceholderButtonPress): handle
	selection/context menus
	(Select, UnSelect): update handles, call stetic.Select()

	* libstetic/wrapper/Notebook.cs: FIXME out a few bits for now...

	* libstetic/wrapper/Table.cs (OnButtonPressEvent): remove this
	code, which has been commented-out forever.

	* libstetic/wrapper/Window.cs (SetFocus, Select): gone; selection
	is handled at the Container level now.

	* stetic/Project.cs (WindowFocusChanged): gone
	(IStetic.Select): handle selection here
	(SelectedHandler): change the WidgetBox arg to a Wrapper.Widget

	* stetic/ProjectView.cs (WidgetSelected):
	* stetic/PropertyGrid.cs (Selected): update signature

2005-03-24  Dan Winship  <danw@novell.com>

	* libstetic/DND.cs: move the drag-and-drop "fault" code from
	WidgetSite to here. Remove the DragBegin and DragEnd events since
	nothing needs them any more.

	* libstetic/WidgetSite.cs (AddFault, AddVFault, AddHFault,
	ClearFaults, ShowFaults, HideFaults, OnDragMotion, OnDragLeave,
	OnDragDrop): all moved into DND now.
	(Internal): gone; does nothing WidgetBox.Internal doesn't do now

	* libstetic/wrapper/Widget.cs (Drop): dummy virtual implementation
	that just destroys the dropped widget

	* libstetic/wrapper/Box.cs (Sync): s/site/DND/ for all the fault
	stuff
	(Drop): override to dtrt

2005-03-24  Dan Winship  <danw@novell.com>

	More code migration out of WidgetSite

	* libstetic/DND.cs (DragWidget): public accessor for dragWidget

	* libstetic/Placeholder.cs (Mimic, UnMimic): makes a Placeholder
	mimic the size and expandability of a given WidgetSite. (Replaces
	the old "PseudoOccupied" mode of WidgetSite).

	* libstetic/WidgetSite.cs (Contents): killed, was redundant with
	"Child".
	(ShapeChanged): gone, replaced by ChildContentsChanged on
	Wrapper.Container.
	(Occupancy, Empty): gone. pseudo-occupancy is now handled by
	Placeholder; all WidgetSites are now always actually occupied.
	(OnMotionNotifyEvent, OnDragDataDelete, OnDragEnd): handled by
	Wrapper.Container now
	
	* libstetic/wrapper/Button.cs: s/site.Contents/site.Child/

	* libstetic/wrapper/Box.cs (DoSync): do autosizing here
	(ReplaceChild): kill off the empty-placeholder-killing code for now

	* libstetic/wrapper/Container.cs (Freeze, Thaw, Sync, DoSync):
	move Freeze/Thaw here from Table, change the overridable method to
	"DoSync" and make Sync check frozenness and then call DoSync.
	(CreateWidgetSite): Set up DND on the site and if it contains a
	container, connect to its ContentsChanged method (to replace the
	old WidgetSite.ShapeChanged method).
	(SiteMotionNotify, PlaceholderDragEnd): handle DND.
	(ChildContentsChanged): Replaces SiteShapeChanged;
	
	* stetic/Glade.cs: 
	* stetic/Project.cs: 
	* stetic/PropertyGrid.cs: s/site.Contents/site.Child/

2005-03-23  Dan Winship  <danw@novell.com>

	Move IWidgetSite and WindowSite interfaces to
	Stetic.Wrapper.Widget and Stetic.Wrapper.Window.

	* libstetic/wrapper/Widget.cs (Wrapped): override to return a
	Gtk.Widget, to get rid of lots of typecasting
	(ParentWrapper): replacement for WidgetSite.ParentSite; returns
	the wrapper for the wrapped widget's parent
	(InternalChildId, Select): Moved here from WidgetSite.

	* libstetic/wrapper/Window.cs (FocusChanged): moved here from
	WindowSite.
	(Select): override

	* libstetic/WidgetSite.cs (ParentSite): gone; replaced by
	Wrapper.Widget.ParentWrapper.
	(Internal): replaces InternalChildId.
	(Drop): call Select on the wrapper, not the site.
	(Select, UnSelect, Delete): gone

	* libstetic/IWidgetSite.cs: 
	* libstetic/WindowSite.cs: gone

	* libstetic/wrapper/Button.cs (HasResponseId): use ParentWrapper
	rather than ParentSite.

	* libstetic/wrapper/Container.cs (GladeExportChild,
	FindInternalChild): update for InternalChildId move from
	WidgetSite to Wrapper.Widget.
	(ChildWrapper): take a Wrapper.Widget instead of an IWidgetSite.
	(PlaceholderDrop): call Select on the wrapper, not the site.

	* libstetic/wrapper/Dialog.cs (Wrap): set InternalChildId on the
	wrapper, not the site.

	* stetic/ContextMenu.cs: Change all IWidgetSites to
	Stetic.Wrapper.Widgets

	* stetic/Project.cs (AddWindow): take a Stetic.Wrapper.Window
	rather than a WindowSite.
	(ProjectNode): add a "Wrapper" field

	* stetic/ProjectView.cs (RowSelected, WidgetSelected): update to
	use wrappers intead of sites.

	* stetic/Glade.cs (Import): 
	* stetic/WidgetFactory.cs (WindowFactory.OnButtonPressEvent):
	don't need to create a WindowSite for top-level windows any more.
	Just pass the wrapper to Project.AddWindow instead.

2005-03-23  Dan Winship  <danw@novell.com>

	Split apart placeholders and WidgetSites. This is an intermediate
	step on the road to killing off WidgetSite, and several wrappers
	are broken in this check-in because it doesn't make much sense to
	fix them twice.

	* libstetic/Placeholder.cs: New subclass of WidgetBox to represent
	a placeholder (which can accept drops, but can't actually hold
	widgets).

	* libstetic/WidgetSite.cs: Mostly remove support for empty
	WidgetSites (though not pseudo-occupied ones).

	* libstetic/WidgetBox.cs: Move some stuff here from WidgetSite
	that both WidgetSite and Placeholder will need. Move out some (but
	not all) stuff that they don't both need.

	* libstetic/WindowSite.cs (FocusChangedHandler, FocusChanged):
	make the focus be a WidgetBox rather than an IWidgetSite

	* libstetic/CommandDescriptor.cs: 
	* libstetic/ItemDescriptor.cs: Update commands to take a Widget
	context rather than an IWidgetSite.

	* libstetic/wrapper/Bin.cs: 
	* libstetic/wrapper/Box.cs: 
	* libstetic/wrapper/Dialog.cs: 
	* libstetic/wrapper/Expander.cs: 
	* libstetic/wrapper/Frame.cs: 
	* libstetic/wrapper/Notebook.cs: 
	* libstetic/wrapper/Paned.cs: 
	* libstetic/wrapper/ScrolledWindow.cs: 
	* libstetic/wrapper/Table.cs: 
	* libstetic/wrapper/Window.cs: update for site/placeholder changes

	* libstetic/wrapper/Widget.cs (CreateWidgetSite): Make this take a
	widget to put in the WidgetSite.
	(CreatePlaceholder): like the old CreateWidgetSite, but creates a
	Placeholder.

	* libstetic/wrapper/Container.cs: update for site/placeholder
	changes
	(ReplaceChild): new virtual method to replace one child widget
	with another
	(SiteEmpty): replace the site with a placeholder
	(PlaceholderDrop): replace the placeholder with a WidgetSite
	containing the dropped widget.

	* libstetic/wrapper/Button.cs: update for site/placeholder changes
	(Wrap): fix this so we don't get blank buttons
	(ConstructChild): fix this to work around a maybe-bug in gtk
	2.4.12 and earlier.

	* stetic/*.cs: Misc updates for WidgetSite/Placeholder changes

2005-03-21  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Button.cs: Remove "UseStock" property and just
	use a Stetic.Editor.Image to select either a stock icon or a file.
	Also allow stock icon (or file) with non-stock label.
	(GladeImportChild, FixupGladeChildren): import correctly

	* libstetic/wrapper/ToggleButton.cs: likewise

	* libstetic/wrapper/Dialog.cs (AddButton): update for Button changes

	* libstetic/wrapper/Image.cs (File): This is equivalent to the
	GladeProperty "pixbuf".

	* libstetic/editor/Image.cs: fixes

	* libstetic/GladeUtils.cs (ParseGladeProperty): don't try to parse
	string properties, since they don't need to be (and might not
	correspond to underlying properties anyway).

2005-03-21  Dan Winship  <danw@novell.com>

	* glue/paramspec.c: 
	* libstetic/ParamSpec.cs: Simplify based on the latest version of
	the patch in #70061.

	* libstetic/ParamFlags.cs: gone; we never used this
	
	* libstetic/libstetic.dll.config: add libgtk to the map

2005-03-18  Dan Winship  <danw@novell.com>

	* libstetic/editor/Image.cs: editor that allows selecting a stock
	image or a file

	* libstetic/editor/ImageFile.cs: subclass of Stetic.Editor.Image
	that only allows picking a file

	* libstetic/editor/StockItem.cs: now a subclass of Image

	* libstetic/editor/File.cs: gone

	* libstetic/wrapper/Image.cs: Use ImageFile editor and fix things
	up a bit.

	* libstetic/wrapper/Window.cs (Icon): wrap, using the ImageFile editor

2005-03-17  Dan Winship  <danw@novell.com>

	* libstetic/WidgetBox.cs (Internal): new property saying that the
	box represents an internal object.
	(ShapeHandles): if the box is Internal, don't add corner handles.

	* libstetic/WidgetSite.cs (InternalChildId): set the "Internal"
	property according to whether or not the child id is null, and
	call DND.SourceUnset if marking something internal, so it can't be
	dragged anywhere.

	* libstetic/DND.cs (SourceUnset): new.
	(SourceButtonPress, CanDrag): make sure that CanDrag always
	returns false if the widget isn't a source.

	* stetic/ContextMenu.cs (ContextMenu): disable Cut and Delete on
	"Internal" widgetsites.

	* libstetic/ItemDescriptor.cs (VisibleIf, InvisibleIf): mark a
	property visible if/unless another property is set
	(VisibleFor): Check if the property should be visible on a given
	object.

	* stetic/PropertyGrid.cs (AppendProperty): skip properties that
	shouldn't be visible on this wrapper. 

	* libstetic/wrapper/Button.cs (Register): add a "ResponseId"
	property, and a "HasResponseId" property saying whether or not it
	should be visible.
	(HasResponseId): Check if the button's site's parentsite has an
	InternalChildId of "action_area"

	* libstetic/editor/ResponseId.cs: ComboBoxEntry for dialog button
	Response IDs.

	* libstetic/wrapper/Dialog.cs (Register): add Buttons and
	HelpButton properties.
	(Wrap): set HasSeparator false. Give the internal children sane
	names. Create a button by default.
	(Buttons): Allow the user to pick default buttons via a menu
	(HelpButton): Toggle a "Help" button on/off.

	* libstetic/wrapper/Box.cs: Fix some minor autoexpand problems,
	make it work right with buttonboxes.

	* libstetic/wrapper/Widget.cs (HasDefault): instead of marking
	this "LateImport", if it's set when the widget doesn't have a
	Toplevel, connect to "HierarchyChanged". (That way things other
	than glade import can set it at inappropriate times as well.)

2005-03-15  Dan Winship  <danw@novell.com>

	* libstetic/editor/StockItem.cs: fix sorting again. (ignore "_")

	* libstetic/wrapper/CheckButton.cs: 
	* libstetic/wrapper/Entry.cs: 
	* libstetic/wrapper/ProgressBar.cs: 
	* libstetic/wrapper/RadioButton.cs: 
	* libstetic/wrapper/Statusbar.cs: mark HExpandable

	* libstetic/wrapper/DrawingArea.cs: 
	* libstetic/wrapper/TextView.cs: 
	* libstetic/wrapper/TreeView.cs: mark HExpandable and VExpandable

2005-03-15  Dan Winship  <danw@novell.com>

	* libstetic/WidgetSite.cs (AddFault, AddHFault, AddVFault): Make
	AddHFault and AddVFault take WidgetSites rather than coordinates,
	and provide AddFault for fully-generic fault adding. For AddHFault
	and AddVFault, make the fault windows fill the entire space
	between the two widgets (or from the widget to the edge of its
	parent) if the widgets are spread apart.
	(OnDragMotion): Center the splitter inside its fault since the
	fault may be very large now.

	* libstetic/wrapper/Box.cs (Sync): update for that

	* stetic/Project.cs (ContentsChanged): fix a crash when dragging a
	widget from one position to another within the same container

2005-03-14  Dan Winship  <danw@novell.com>

	* libstetic/WidgetSite.cs (FindFault): fix another autoexpand
	buglet
	(Drop): fix the focus in the autoexpand case

	* libstetic/editor/StockItem.cs: sort the buttons by their Label,
	not their StockId

	* libstetic/wrapper/Box.cs (Wrap): Add 2 children to start out,
	rather than 3.
	(SiteOccupancyChanged): If a site is emptied, destroy it rather
	than leaving an empty site behind (since you can still drag a new
	widget there even without the empty site).

2005-03-14  Dan Winship  <danw@novell.com>

	* libstetic/WidgetSite.cs: Make OccupancyChanged mean only
	"Occupancy changed", and add a new ShapeChanged event for when
	something else happens that may affect AutoSizing in its parent.
	(ToString): override this for debug purposes

	* libstetic/wrapper/Container.cs (CreateWidgetSite, SiteRemoved):
	connect to/disconnect from ShapeChanged
	(SiteShapeChanged): new virtual method
	(SiteRemoved): call EmitContentsChanged()

	* libstetic/wrapper/Box.cs (InsertBefore, InsertAfter, DropOn):
	call EmitContentsChanged()
	(SiteShapeChanged): connect to this, not OccupancyChanged

	* libstetic/wrapper/Expander.cs: don't EmitContentsChanged when
	toggling the expander, make HExpandable/VExpandable not depend on
	whether or not the expander is expanded.

	* libstetic/wrapper/Table.cs (Sync): EmitContentsChanged() iff we
	added sites.
	(SiteShapeChanged): connect to this, not OccupancyChanged

	* stetic/Project.cs (AddWindow): take a WindowSite rather than a
	Window, and connect to its FocusChanged event
	(AddWidget): connect to the widget's Destroyed event
	(WidgetDestroyed): remove the widget from the tree
	(ContentsChanged): simplify using new gtk# api
	(Selected): new event, emitted from the WindowSite.FocusChanged
	handler

	* stetic/ProjectView.cs (ProjectView): connect to the project's
	"Selected" event.
	(RowSelected): if not already syncing, grab the selection on the
	widget corresponding to the row.
	(WidgetSelected): if not already syncing, move the table selection
	to the selected widget.

	* stetic/Stetic.cs: pass Project to the PropertyGrid.
	(Select, NoSelection): gone; the PropertyGrid snoops the Project
	directly now.

	* stetic/Glade.cs (Import):
	* stetic/WidgetFactory.cs (WindowFactory): remove focus-handling
	code; Project.AddWindow will deal with it now

	* stetic/PropertyGrid.cs (PropertyGrid): take a Project and
	connect to its Selected event and set the selection directly from
	that.

2005-03-11  Dan Winship  <danw@novell.com>

	First draft of Glade export.

	* libstetic/GladeException.cs: simplify/fix

	* libstetic/GladePropertyAttribute.cs: add "UseUnderlying", to
	specify that export should use the underlying GObject property
	rather than the stetic wrapper's version.

	* libstetic/GladeUtils.cs (ExtractWrapperProperty): don't extract
	properties with the "UseUnderlying" flag set.
	(ParseGladeProperty): deal with the various new kinds of
	PropertyDescriptor confusion.
	(ExportWidget): base glade export method
	(GetProps): utility method to fill in a Hashtable from a wrapper

	* libstetic/ItemGroup.cs (ItemGroup): deal with '/'s in property
	names.

	* libstetic/ObjectWrapper.cs (WrappedType, NativeTypeName): make
	these public so GladeUtils can use them.

	* libstetic/ParamSpec.cs (ValueType, OwnerType): fix the return
	type

	* libstetic/PropertyDescriptor.cs (PropertyDescriptor): Allow
	property names to have '/'s like "XOptions/XExpand", meaning that
	the real property is XOptions, but it's being split up into other
	properties (including XExpand) in stetic. For split properties
	like that, and sub-properties like "Adjustment.Value", create a
	PropertyDescriptor representing the intermediate property too.
	(GladeProperty): returns the PropertyDescriptor to use for glade
	export (when that's not the same as the PropertyDescriptor itself)
	(GladeGetValue, GladeSetValue): renamed to not have "proxy" in the
	name. Handle all getting/setting of properties for glade.

	* libstetic/SiteContentEnumerator.cs: gone;
	Stetic.Wrapper.Container.Sites handles this by itself now.

	* libstetic/WidgetSite.cs (InternalChildId): property to mark a
	WidgetSite as containing an "internal child" of the widget.

	* glue/value.c: reorg a bunch
	(stetic_g_value_child_property_to_string,
	stetic_g_value_property_to_string, stetic_g_value_to_string): new
	functions for glade export

	* libstetic/wrapper/Widget.cs (GladeExport): implement

	* libstetic/wrapper/Container.cs (GladeExportChild): implement
	(FindInternalChild): make this less gross by expecting the
	container's wrapper class to have set the InternalChildId on the
	relevant WidgetSite.
	(Sites): use Gtk.Container.Forall so that internal sites get
	returned too.

	* libstetic/wrapper/Button.cs (Label): set UseUnderlying

	* libstetic/wrapper/Dialog.cs (Wrap): set InternalChildId on the
	internal children.

	* libstetic/wrapper/Image.cs (IconSize): set UseUnderlying

	* libstetic/wrapper/Notebook.cs (GladeExportChild): do the inverse
	of the GladeImportChild hackery to represent notebook tabs
	correctly.

	* libstetic/wrapper/RadioButton.cs (GladeExport): fake the "group"
	property.

	* libstetic/wrapper/Table.cs (TableChild): rewrite the property
	names as, eg, "XOptions/XExpand", so they will be exported
	correctly.

	* stetic/Glade.cs (Export): Implement

	* stetic/Project.cs (AddWidget, ContentsChanged): Use
	Stetic.Wrapper.Container.Sites directly rather than using
	SiteContentEnumerator.
	(Toplevels): add an enumerator exposing this, for Glade.Export

	* stetic/PropertyEditor.cs: Fix for PropertyDescriptor changes

	* stetic/Stetic.cs: add an "Export" command to the menu.

2005-03-11  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapper.cs (Register, Create): if the wrapper
	type doesn't have a CreateInstance method and the wrapped type
	doesn't have a no-arg constructor, use g_object_new and the IntPtr
	constructor.

	* libstetic/wrapper/Alignment.cs: 
	* libstetic/wrapper/Arrow.cs:
	* libstetic/wrapper/HBox.cs: 
	* libstetic/wrapper/RadioButton.cs: 
	* libstetic/wrapper/VBox.cs: 
	* libstetic/wrapper/Window.cs: remove no-longer-necessary
	CreateInstance methods

2005-03-08  Dan Winship  <danw@novell.com>

	* libstetic/GladePropertyAttribute.cs: new attribute to mark
	properties that need special treatment for glade import/export (to
	allow us to do the special treatment automatically rather than
	needing custom GladeImport/GladeExport routines).
	(GladeProperty): flags type for GladePropertyAttribute. Currently
	defines Proxied (meaning that an alternate property is actually
	used for glade import/export) and LateImport (meaning that on
	import, the property shouldn't be set until the import has
	completed).

	* libstetic/PropertyDescriptor.cs: track glade-related info
	(GladeFlags, GladeName): new accessors
	(GladeProxyGetValue, GladeProxySetValue): getter/setter for glade
	proxy properties

	* libstetic/GladeUtils.cs (ImportWidget): replace CreateWidget and
	SetProps with two new ImportWidget methods that also handle
	[GladeProperty] properties.

	* libstetic/ObjectWrapper.cs (GladeImport): if the GladeImport
	invocation throws a TargetInvocationException, throw its
	InnerException (presumably a GladeException) up to the caller.

	* libstetic/wrapper/ComboBox.cs	(Items): add
	GladePropertyAttribute noting that this is glade's "items"
	property.
	(GladeImport): simplify

	* libstetic/wrapper/Container.cs (GladeSetInternalChild): update.

	* libstetic/wrapper/Entry.cs (InvisibleChar): add this, with a
	GladePropertyAttribute marking GladeInvisibleChar as its proxy
	(GladeInvisibleChar): get/set InvisibleChar as a string
	(GladeImport): gone

	* libstetic/wrapper/Label.cs (MnemonicWidget): add this, with a
	GladePropertyAttribute marking GladeMnemonicWidget as its
	LateImport proxy
	(GladeMnemonicWidget): get/set MnemonicWidget as a string
	(GladeImport): gone

	* libstetic/wrapper/TextView.cs	(Text): add a
	GladePropertyAttribute noting that this is glade's "text"
	property.
	(GladeImport): gone

	* libstetic/wrapper/Widget.cs (Visible, HasDefault): add
	GladePropertyAttributes. (HasDefault is LateImport)
	(GladeImport): simplified
	
	* libstetic/wrapper/Window.cs (Modal, TypeHint, Type): add
	GladePropertyAttributes
	(GladeImport): gone

2005-03-08  Dan Winship  <danw@novell.com>

	* libstetic/WidgetSite.cs (SetupFaults): Pass "false" to DND.DestSet,
	not true, so that the whole widget isn't drop-on-able.
	(AddHFault, AddVFault): don't create windows if we're not realized.

	* libstetic/wrapper/Box.cs (Wrap): call box_ParentSet from here so
	that the DropOn handler will be set up if the Parent is already
	set when it's wrapped (ie, if it's an internal child)

2005-03-08  Dan Winship  <danw@novell.com>

	* libstetic/GladeException.cs: exception class for Glade import problems

	* libstetic/GladeUtils.cs:
	* libstetic/ObjectWrapper.cs:
	* libstetic/wrapper/Container.cs: use GladeException

	* libstetic/GladeUtils.cs (Hydrate): Call g_type_class_ref() and
	pass the GObjectClass* to the glue methods rather than the GType*
	(to save a bunch of lookups).

	* glue/value.c (stetic_g_value_init_for_property,
	stetic_g_value_init_for_child_property): Update for that

	* stetic/Glade.cs: renamed from GladeImport.cs
	(Import): renamed from Load. Use GladeException.

	* libstetic/wrapper/Box.cs (Sync): Fix to not crash on empty boxes

2005-03-08  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (ExtractProperty, CreateWidget,
	SetProps, SetPacking): Make these all take a Hashtable of
	propname->value rather than a pair of ArrayLists.

	* libstetic/ObjectWrapper.cs (Wrap): make this public
	(GladeImport): take a Hashtable rather than ArrayLists
	
	* libstetic/wrapper/*.cs:
	* stetic/GladeImport.cs: update for those

2005-03-03  Todd Berman  <tberman@off.net>

	* stetic/Stetic.cs: Add a ShadowType.In to the widget TreeView.

2005-03-03  Dan Winship  <danw@novell.com>

	* libstetic/DND.cs: static class to handle various
	drag-and-drop-related stuff, so WidgetFactory doesn't need to
	subclass WidgetSite, which is nice since they're not really very
	related.
	(SourceSet): wrapper for Gtk.Drag.SourceSet that can also set up
	drag tracking for widgets that can't use SourceSet.
	(DestSet, DestUnset): more wrappers
	(CanDrag): for non automatic sources, checks if a
	MotionNotifyEvent counts as a drag start
	(Drag): starts a drag
	(Drop): receives the dropped widget
	(DragBegin, DragEnd): moved here from IStetic

	* libstetic/WidgetSite.cs: remove static DND-related fields
	(various): use DND methods rather than Gtk.Drag or IStetic ones
	(OnButtonPressEvent): don't need to track click locations any
	more; DND does it.
	(OnMotionNotify): use DND.CanDrag and DND.Drag
	(OnDragDrop): use DND.Drop
	(OnDropEnd): don't need to call DragEnded() from here any more;
	DND does it.
	
	* libstetic/IStetic.cs: 
	* stetic/Project.cs: kill off the dnd-related events; they're on
	DND now.

	* stetic/WidgetFactory.cs: now a subclass of EventBox
	(ctor): set AboveChild, call DND.SourceSet
	(OnDragBegin): Call DND.Drag
	(Drop): dead code since WidgetFactory isn't a drag destination any more.

2005-03-02  Dan Winship  <danw@novell.com>

	"Autoexpand" for boxes (but not yet tables, and not 100% right
	yet.)
	
	* libstetic/WidgetSite.cs (AddHFault, AddVFault): allow the site
	occupant to add "fault lines" inside the widget where it can split
	apart to fit additional widgets
	(ShowFaults, HideFaults): connected to the IStetic's DragBegin and
	DragEnd signals, to show/hide the (invisible) fault line windows
	as needed.
	(OnDragMotion): if the user drags into a fault line, draw a
	splitter.
	(OnDragDrop): if the user dropped onto a fault line, emit the
	"DropOn" event to let the child handle placing the widget.

	* libstetic/WidgetBox.cs (NewWindow): make this protected so
	WidgetSite can use it

	* libstetic/IStetic.cs (DragBegin, DragEnd): new events, to
	indicate that something somewhere is being dragged

	* libstetic/wrapper/Container.cs (Sync): make this a virtual
	method on Container
	(ContainerChild.EmitNotify): Sync the parent

	* libstetic/wrapper/Box.cs (Wrap): connect to the box's
	SizeAllocated and ParentSet handlers
	(Sync): add fault lines
	(box_ParentSet): connect to the parent site's DropOn event
	(box_SizeAllocated): Sync()
	(DropOn): Insert the child in the right place

	* libstetic/wrapper/Table.cs (Sync): add "override"
	(TableChild.EmitNotify): don't need to call Sync from here;
	Container does it

	* stetic/Project.cs: implement the new IStetic bits

	* stetic/WidgetFactory.cs (ctor): pass the project (IStetic) to
	the WidgetSite ctor
	(Drop): override this to get rid of the warning message when you
	drag something from the palette but then cancel the drag
	
	* TODO: update

2005-02-28  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (HydrateProperties): Handle "adjustment"
	properties, which glade serializes as 6 doubles separated by
	spaces.

	* libstetic/WidgetSite.cs (Selected): new event
	(Focus): emit it

	* libstetic/wrapper/ComboBox.cs (GladeImport): use CreateInstance
	rather than calling down to base.GladeImport, so that we end up
	with a text-only combobox. Handle the "items" property.
	(Items): ignore trailing newlines

	* libstetic/wrapper/Dialog.cs (Wrap): Put WidgetSites around the
	VBox and ActionArea.

	* libstetic/wrapper/Container.cs (FindInternalChild): make this a
	little more complicated (read: grosser) to deal with the extra
	WidgetSites inside a Dialog now.

	* libstetic/wrapper/Expander.cs (GladeImport): Do the same label
	widget hack as in Notebook and Frame

	* libstetic/wrapper/Image.cs: if filename is "", use a "broken
	image" image.

	* libstetic/wrapper/Label.cs: add a new ctor that takes a string
	and constructs a label with that string, and a wrapper around the
	label.

	* libstetic/wrapper/Notebook.cs: connect to the Selected event
	on the label WidgetSites, and switch pages when a label is
	selected.
	(InsertPage): use the new Stetic.Wrapper.Label ctor

	* libstetic/wrapper/OptionMenu.cs (Wrap): if the optionmenu has no
	Menu, create one here rather than in FlattenMenu.

	* libstetic/wrapper/Table.cs (GladeImportChild): if x_options or
	y_options is unspecified, consider it to be "expand|fill", which
	is glade's default value.
	(SiteOccupancyChanged): don't adjust the cell's packing unless it
	is set to AutoSize.

	* libstetic/wrapper/Window.cs (Type): make this a shadow prop too

2005-02-28  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapperAttribute.cs: add a "Deprecated" flag

	* libstetic/wrapper/OptionMenu.cs: New, wrap Gtk.OptionMenu, but
	mark it with the "Deprecated" ObjectWrapperAttribute flag. Also,
	since we don't have a menu editor yet, we just wrap it the same
	way as ComboBox, with a multiline text entry to specify the menu
	items.

	* libstetic/wrapper/Menu.cs: 
	* libstetic/wrapper/MenuItem.cs: Wrap these just enough for
	importing OptionMenus from glade

	* libstetic/wrapper/Container.cs (GladeImportChild): if the
	container does not accept arbitrary GtkWidget children (according
	to Gtk.Container.ChildType()), then don't interpose a WidgetSite
	between parent and child.

	* stetic/Palette.cs (AddWidget): skip widgets with "Deprecated"
	set on their ObjectWrapperAttribute. (Meaning that for now, they
	can be imported, but not created by hand.)

2005-02-27  Dan Winship  <danw@novell.com>

	* libstetic/GladeUtils.cs (ExtractProperty): utility to remove a
	property from the propNames/propVals lists.
	(HydrateProperties): add some debug messages here

	* libstetic/wrapper/Label.cs (GladeImport): simplify using
	ExtractProperty

	* libstetic/wrapper/RadioButton.cs (GladeImport): handle "group"

	* libstetic/wrapper/Table.cs (GladeImport): force a Sync after
	import
	(Sync): don't knock out conflicting sites if they're full (which
	will happen temporarily during glade import, since table.Add(foo)
	will always put it at 0,0).

	* libstetic/wrapper/TextView.cs (GladeImport): handle "text"

	* libstetic/wrapper/Widget.cs (GladeImport): extract "visible" and
	"has_default"; fake out "visible", hold off on setting
	"has_default" until the import is complete (since it requires a
	parent window).

	* libstetic/wrapper/Window.cs (Wrap): force TypeHint to "Normal"
	so the WM doesn't do annoying things to us 
	(GladeImport): extract "modal" and "type_hint"
	(TypeHint): add a shadow property for this
	
	* stetic/GladeImport.cs (CreateWidget, AddChildren): merge these
	together and reduce redundant code.

2005-02-25  Dan Winship  <danw@novell.com>

	Reorganize the glade import code; put all the wacky exceptions
	into the wrapper classes rather than adding more and more to
	GladeImport itself.

	* libstetic/ObjectWrapper.cs (GladeImport): static method to find
	the wrapper type for a given class name and create a wrapper and
	object based on glade data.
	(Create): add a new overload using a className rather than a Type.
	
	* libstetic/IStetic.cs: add GladeImportComplete event and
	LookupWidgetById method.

	* libstetic/GladeUtils.cs: utilities for GladeImport, etc

	* libstetic/wrapper/Widget.cs (GladeImport): virtual method to
	create widget from a glade description.

	* libstetic/wrapper/Container.cs (GladeImportChild): virtual
	method to add and pack a child widget from a glade file.
	(AddPlaceholder): virtual method to add a placeholder
	(GladeSetInternalChild): virtual method to set properties on an
	internal child

	* libstetic/wrapper/ButtonBox.cs (GladeImportChild): remove
	"response_id" from the child's properties, and set the "secondary"
	packing flag if the response_id is ResponseType.Help. This is not
	a complete fix; we need to get the response_id back to the parent
	Dialog somehow.

	* libstetic/wrapper/Entry.cs (GladeImport): Handle the
	"invisible_char" property.

	* libstetic/wrapper/Frame.cs (GladeImportChild): handle the
	special "label_item" child.

	* libstetic/wrapper/Label.cs (GladeImport): Handle the
	"mnemonic_widget" property.

	* libstetic/wrapper/Notebook.cs (GladeImportChild): handle the
	special "tab" child. (This is the only "new" exception so far; all
	the others were previously handled in GladeImport.)

	* stetic/Project.cs (LookupWidgetById, GladeImportComplete):
	implement.

	* stetic/GladeImport.cs: lots of code moved from here into
	GladeUtils, ObjectWrapper, and various wrapper classes.

2005-02-25  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Table.cs: 
	* libstetic/wrapper/Container.cs: move the "AutoSize" child
	property from Table/TableChild to Container/ContainerChild. Also,
	fix the previous fix.

	* libstetic/wrapper/Box.cs: Add AutoSize child property and update
	the SiteOccupancyChanged logic accordingly. Also remove the weird
	code with the FIXME there, since I can't reproduce the bug anyway,
	so either it's fixed or Todd's going to have to debug it himself.

2005-02-25  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapper.cs (Register): Fix the no-CreateInstance
	case to use the *wrapped* type's ctor, not the wrapper type.

	* libstetic/wrapper/Container.cs (Register): Make types whose
	containerchild types are declared by a superclass work again.

2005-02-25  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Icon.cs: 
	* libstetic/wrapper/Image.cs: Merge these two together, with a
	bool property to switch between stock icon and pixmap behavior.
	It's too messy to have two GtkImage wrappers.

	* libstetic/ObjectWrapper.cs (Register, WrapperType): Simplify the
	logic here for 1-1 mapping between gtk and stetic types.

	* stetic/GladeImport.cs: Likewise

2005-02-25  Dan Winship  <danw@novell.com>

	* stetic/Project.cs: implement IStetic

	* stetic/GladeImport.cs: pass the Project down into CreateWidget
	and AddChildren so they can eventually pass it to
	ObjectWrapper.Create as an IStetic. One more FIXME down.

	* stetic/Palette.cs: take a Project at construct time and pass it
	on to WidgetFactories

	* stetic/WidgetFactory.cs: take a Project at construct time and
	pass that to new wrappers rather than implementing IStetic here.

	* stetic/Stetic.cs: pass Project to the Palette

	* libstetic/ObjectWrapper.cs (Create): swap the order of the
	arguments

	* libstetic/wrapper/Container.cs (ChildWrapper): update for
	ObjectWrapper.Create change

2005-02-24  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapper.cs: remove the protected (IStetic,
	object) constructor and replace it with a virtual Wrap method.
	(Register): new method to register a wrapper type
	(Create): new method to create a wrapper of a given type (with
	either a provided widget or a fresh one).
	(AddItemGroup): replaces RegisterWrapper. Adds a single ItemGroup
	to the type.
	(AddContextMenuItems): replaces RegisterContextMenu

	* libstetic/ObjectWrapperAttribute.cs: remove the WrappedType
	again; it's now a static property on the wrapper.

	* libstetic/ItemGroup.cs (ItemGroup): fix this to not lose if
	passed a wrapperType and a dotted property

	* libstetic/wrapper/*.cs: update for the NWO:
		* ObjectWrapperAttribute only takes 3 args again
		* Add static WrappedType property to all wrappers
		* Add static CreateInstance method to all wrappers that
		  need to do more than just "new Gtk.Foo ()"
		* Replace static ctor with static Register method
		  using AddItemGroup/AddContextMenuItems
		* Replace instance ctors with a Wrap override

	* stetic/GladeImport.cs: 
	* stetic/Palette.cs: 
	* stetic/PropertyGrid.cs: 
	* stetic/WidgetFactory.cs: Update to match ObjectWrapper changes

2005-02-24  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Dialog.cs: 
	* libstetic/wrapper/Window.cs (Modal): wrap this and don't set the
	underlying window property

	* libstetic/wrapper/Widget.cs (Visible): wrap this property and
	don't set the underlying widget property for Window subclasses.

	* stetic/GladeImport.cs (Load): set doc.PreserveWhitespace so that
	things like '<property name="label">    </property>' (which is
	used to indent HIG-style frames) import correctly. Don't crash if
	CreateWidget returns null.
	(CreateWidget): Add some debug messages, prevent a g_warning if
	the glade file uses types we don't wrap.
	(AddChildren): Add a hack to make "Help" buttons be packed with
	the "secondary" property in ButtonBoxes, the same as glade does.
	(HydrateProperties): Don't need to filter out Window.Visible any
	more.

2005-02-22  Dan Winship  <danw@novell.com>

	* stetic/PropertyGrid.cs: Kill ChildPropertyGrid and make the
	child properties appear as just another property group in the main
	Properties window.

	* stetic/Stetic.cs (Main): clean this up a little, and reorganize
	(palette on the left, project + properties on the right). Also
	update for PropertyGrid changes.

	* stetic/Palette.cs: fix up code style, make "Widgets" appear
	before "Containers", remove some commented out code

2005-02-22  Everaldo Canuto  <everaldo_canuto@yahoo.com.br>

	* stetic/Palette.cs: New palette GUI.

2005-02-22  Todd Berman  <tberman@off.net>

	* libstetic/wrapper/Button.cs:
	* libstetic/wrapper/ToggleButton.cs:
	* libstetic/wrapper/VScale.cs:
	* libstetic/wrapper/Label.cs:
	* libstetic/wrapper/TextView.cs:
	* libstetic/wrapper/Container.cs:
	* libstetic/wrapper/Widget.cs:
	* libstetic/wrapper/VSeparator.cs:
	* libstetic/wrapper/Paned.cs:
	* libstetic/wrapper/Icon.cs:
	* libstetic/wrapper/Box.cs:
	* libstetic/wrapper/ProgressBar.cs:
	* libstetic/wrapper/RadioButton.cs:
	* libstetic/wrapper/ComboBoxEntry.cs:
	* libstetic/wrapper/EventBox.cs:
	* libstetic/wrapper/Frame.cs:
	* libstetic/wrapper/HPaned.cs:
	* libstetic/wrapper/ScrolledWindow.cs:
	* libstetic/wrapper/HBox.cs:
	* libstetic/wrapper/SpinButton.cs:
	* libstetic/wrapper/Window.cs:
	* libstetic/wrapper/ComboBox.cs:
	* libstetic/wrapper/ColorButton.cs:
	* libstetic/wrapper/VPaned.cs:
	* libstetic/wrapper/Alignment.cs:
	* libstetic/wrapper/VBox.cs:
	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/Image.cs:
	* libstetic/wrapper/ButtonBox.cs:
	* libstetic/wrapper/DrawingArea.cs:
	* libstetic/wrapper/Scale.cs:
	* libstetic/wrapper/Table.cs:
	* libstetic/wrapper/Arrow.cs:
	* libstetic/wrapper/TreeView.cs:
	* libstetic/wrapper/Misc.cs:
	* libstetic/wrapper/HScrollbar.cs:
	* libstetic/wrapper/HButtonBox.cs:
	* libstetic/wrapper/Range.cs:
	* libstetic/wrapper/HScale.cs:
	* libstetic/wrapper/Dialog.cs:
	* libstetic/wrapper/Entry.cs:
	* libstetic/wrapper/FontButton.cs:
	* libstetic/wrapper/MessageDialog.cs:
	* libstetic/wrapper/Expander.cs:
	* libstetic/wrapper/HSeparator.cs:
	* libstetic/wrapper/Bin.cs:
	* libstetic/wrapper/Statusbar.cs:
	* libstetic/wrapper/Calendar.cs:
	* libstetic/wrapper/CheckButton.cs:
	* libstetic/wrapper/VScrollbar.cs:
	* libstetic/wrapper/VButtonBox.cs:

	Move to a 3 param'd ctor, to provide initialized information
	Add a Site property in Bin.
	Add a 4th parameter to the ObjectWrapperAttributes to show which
	gtk# type is wrapped.
	Dummy TreeView wrapper.
	
	* libstetic/ObjectWrapperAttribute.cs: New parameter to show which
	gtk# type is wrapped.

	* libstetic/Makefile.am: Add wrapper/TreeView.cs

	* libstetic/ObjectWrapper.cs: Add LookupWrappedTypes, to return a
	Type[] of the Stetic.Wrapper.* classes that wrap a given gtk# type.

	* TODO: Update.

	* stetic/WidgetFactory.cs: Make sure to hit wrappedObject.GType so
	that GObject stuff is properly initialized.

	* stetic/Stetic.cs: Change the GUI around a bit.

	* stetic/Palette.cs: New palette GUI.

	* stetic/Makefile.am: Add GladeImport.cs.

	* stetic/Project.cs: Add Project.Clear ();

	* stetic/GladeImport.cs: New file, used to provide glade file
	importation.

	* glue/Makefile.am: Add value.c
	* glue/value.c: New glue file to help with interacting with GValues,
	and used in the GladeImport process.

2005-02-22  Dan Winship  <danw@novell.com>

	* TODO: New

2005-02-22  Everaldo Canuto  <everaldo_canuto@yahoo.com.br>

	* libstetic/wrapper/pixmaps/alignment.png: new icon converted fron xpm.
	* libstetic/wrapper/pixmaps/eventbox.png: new icon converted fron xpm.
	* libstetic/wrapper/pixmaps/progressbar.png: new icon converted fron xpm.
	* libstetic/wrapper/pixmaps/statusbar.png: new icon converted fron xpm.

2005-02-19  Dan Winship  <danw@novell.com>

	* libstetic/WidgetBox.cs (PopupContextMenu): new event to mean
	"pop up a context menu for some reason", which could be because of
	a keypress or button press in either the widgetbox itself or its
	child.
	(InterceptButtonPress, OnButtonPressEvent): Handle this stuff here
	rather than passing it off to WidgetSite.

	* stetic/WidgetSite.cs:
	* libstetic/WidgetSite.cs: move stetic/WidgetSite.cs to libstetic,
	minus the very very small amount that depended on other things in
	stetic/.

	* libstetic/WindowSite.cs: split this out of WidgetSite.cs

	* stetic/WidgetFactory.cs (CreateWidgetSite): connect to the
	site's PopupContextMenu event.

2005-02-18  Dan Winship  <danw@novell.com>

	* libstetic/TranslatableAttribute.cs: new attribute to mark a
	string property of an attribute as being translatable.

	* libstetic/ObjectWrapperAttribute.cs (Name): add
	TranslatableAttribute to this property

	* libstetic/CommandAttribute.cs: add a Description field, and mark
	the Label and Description as Translatable.

	* libstetic/CommandDescriptor.cs: extract description from
	CommandAttribute and make it available via the Description field

	* libstetic/DescriptionAttribute.cs: new attribute to give a
	translatable label and description for a property.

	* libstetic/PropertyDescriptor.cs: extract label and description
	info from ParamSpecs or DescriptionAttributes, and make them
	available via the Label and Description fields

	* libstetic/wrapper/Box.cs: 
	* libstetic/wrapper/Button.cs:
	* libstetic/wrapper/ComboBox.cs: 
	* libstetic/wrapper/Icon.cs: 
	* libstetic/wrapper/MessageDialog.cs: 
	* libstetic/wrapper/Notebook.cs: 
	* libstetic/wrapper/RadioButton.cs: 
	* libstetic/wrapper/Table.cs: 
	* libstetic/wrapper/TextView.cs: add descriptions to commands and
	properties

	* stetic/Grid.cs (AppendPair, Append): add overloads that take a
	"description" arg, and set up tooltips.

	* stetic/PropertyGrid.cs (AppendProperty, AppendCommand): Pass the
	descriptions from the ItemDescriptors to the underlying Grid
	methods

2005-02-17  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Container.cs (RegisterWrapper): override the
	base RegisterWrapper method and scan the type for a
	Stetic.Wrapper.Container.ContainerChild subclass, and if found,
	remember it as the class's child wrapper class.
	(RegisterChildItems, ChildItemGroups): Gone now
	(ChildWrapper): Creates a child property wrapper for a WidgetSite
	(class ContainerChild): ObjectWrapper implementation for wrapping
	Gtk.Container.ContainerChild
	(CreateWidgetSite): Now an override of Widget's
	(HExpandable, VExpandable): moved to Widget

	* libstetic/wrapper/Widget.cs (CreateWidgetSite, HExpandable,
	VExpandable): moved here from Container, with non-Container base
	implementations.

	* libstetic/wrapper/Table.cs: implement a ContainerChild subclass
	and use it to implement AutoSize again. Also, split XOptions and
	YOptions into multiple bools.

	* libstetic/wrapper/Box.cs: implement a ContainerChild subclass.
	(SiteOccupancyChanged): when adding a new widget, set Expand and
	Fill correctly according to its expandability

	* libstetic/wrapper/ButtonBox.cs:
	* libstetic/wrapper/Notebook.cs:
	* libstetic/wrapper/Paned.cs: implement a ContainerChild subclass.

	* libstetic/wrapper/Bin.cs: 
	* libstetic/wrapper/Dialog.cs: 
	* libstetic/wrapper/ScrolledWindow.cs: 
	* libstetic/wrapper/Window.cs: make Bin better able to deal with
	subclasses that create their own WidgetSites.

	* libstetic/wrapper/Scrollbar.cs: kill this. HScrollbar and
	VScrollbar can inherit directly from Range.

	* libstetic/wrapper/HScale.cs (HExpandable):
	* libstetic/wrapper/HScrollbar.cs (HExpandable):
	* libstetic/wrapper/HSeparator.cs (HExpandable):
	* libstetic/wrapper/VScale.cs (VExpandable):
	* libstetic/wrapper/VScrollbar.cs (VExpandable):
	* libstetic/wrapper/VSeparator.cs (VExpandable): return true

	* libstetic/CommandDescriptor.cs:
	* libstetic/ItemDescriptor.cs:
	* libstetic/PropertyDescriptor.cs: s/object/ObjectWrapper/ in
	several parts of the API now that ContainerChildren have
	ObjectWrappers.

	* stetic/ContextMenu.cs
	* stetic/PropertyGrid.cs: 
	* stetic/PropertyEditor.cs: update for that

	* libstetic/IStetic.cs:
	* libstetic/WidgetSite.cs: remove the 2-arg CreateWidgetSite
	method from IStetic and add an "EmptySize" property to WidgetSite
	instead.

	* stetic/WidgetFactory.cs: 
	* stetic/WidgetSite.cs: update for CreateWidgetSite/EmptySize
	changes

	* libstetic/Set.cs: convenience class used by Table.

2005-02-17  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapper.cs (RegisterWrapper): Renamed from
	RegisterItems.

	* libstetic/wrapper/*.cs: update for that

	* stetic/Stetic.cs: Put all of the windows into a single notebook.
	Probably not the best layout, but I'm getting sick of the multiple
	windows...

2005-02-16  Dan Winship  <danw@novell.com>

	* stetic/Grid.cs (Connect): static method to connect multiple
	grids so they have the same column widths.
	(OnSizeRequested, OnSizeAllocated): update for that

	* stetic/Stetic.cs (Main): Connect the Properties and
	ChildProperties grids.

2005-02-15  Dan Winship  <danw@novell.com>

	* libstetic/ObjectWrapper.cs: split out parts of
	libstetic/wrapper/Object.cs into this.
	(RegisterItems, RegisterContextMenu): static methods to register
	property grid and context menu items for a wrapper type.
	(ItemGroups, ContextMenuItems): these can be implemented here now
	rather than needing to be abstract and then reimplemented by each
	class.

	* libstetic/wrapper/Object.cs: simplified since most of it is in
	ObjectWrapper.cs now.

	* libstetic/wrapper/Container.cs: parallel some of the
	ObjectWrapper stuff for child properties

	* libstetic/wrapper/*: update for new (simplified) itemgroup
	handling.

	* stetic/PropertyGrid.cs (Notified): update prototype

2005-02-14  Dan Winship  <danw@novell.com>

	* libstetic/editor/GroupPicker.cs: property editor for a
	user-extensible list of strings

	* libstetic/wrapper/RadioButton.cs: use GroupPicker for the Group,
	and translate that into Gtk's terms.

2005-02-14  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Widget.cs (Widget): Set the Name property
	(based on the class name and a per-class counter).

	* libstetic/wrapper/Button.cs: 
	* libstetic/wrapper/CheckButton.cs: 
	* libstetic/wrapper/Expander.cs: 
	* libstetic/wrapper/Frame.cs: 
	* libstetic/wrapper/Label.cs: 
	* libstetic/wrapper/RadioButton.cs: 
	* libstetic/wrapper/ToggleButton.cs: 
	* libstetic/wrapper/Window.cs: use the widget name for the default
	label/title

	* libstetic/wrapper/Notebook.cs: Use real
	wrapped-labels-in-WidgetSites for the notebook tabs.

	* stetic/WidgetFactory.cs: remove widget naming stuff from here

	* stetic/Grid.cs (OnSizeRequested, OnSizeAllocated): fix layout of
	misc widgets (ie, command buttons)

2005-02-14  Dan Winship  <danw@novell.com>

	* libstetic/wrapper/Range.cs: 
	* libstetic/wrapper/Scale.cs: proxy notifications from the
	Adjustment so that the PropertyGrid will reflect manual changes to
	the widget's value

2005-02-14  Dan Winship  <danw@novell.com>

	* libstetic/RangeAttribute.cs: new attribute for specifying the
	range of a property.

	* libstetic/EditorAttribute.cs: local replacement for
	System.ComponentModel.EditorAttribute

	* libstetic/PropertyDescriptor.cs: update to look for
	Stetic.EditorAttribute rather than
	System.ComponentModel.EditorAttribute, and handle
	Stetic.RangeAttribute too.
	(PropertyInfo): property to return the underlying PropertyInfo
	(Minimum, Maximum): new, set from RangeAttribute
	(CanRead): Gone. We never really supported write-only properties.

	* stetic/PropertyEditor.cs (MakeEditor): use the
	PropertyDescriptor's Minimum and Maximum if available.
	(BasicEditor.BasicEditor): Use the property's PropertyInfo rather
	than its type as the "special" constructor used for enumerations,
	etc. This will let us have a few more special editor types. Don't
	bother trying to find a ctor that takes an initial value; it's
	easy enough to just set it post-construction.

	* libstetic/editor/Enumeration.cs: Change the Type ctor to take a
	PropertyInfo instead.

	* libstetic/editor/Text.cs: Use a PropertyInfo ctor, and check if
	there's an EditorAttribute with an EditorSize specified, and use
	that to set the textview's size if so.

	* libstetic/editor/Boolean.cs: 
	* libstetic/editor/Char.cs: 
	* libstetic/editor/Color.cs: 
	* libstetic/editor/File.cs: 
	* libstetic/editor/FloatRange.cs: 
	* libstetic/editor/IntRange.cs: 
	* libstetic/editor/OptIntRange.cs: 
	* libstetic/editor/StockItem.cs: 
	* libstetic/editor/String.cs: Remove "initial" arg from ctor.

	* libstetic/wrapper/ComboBox.cs (Items):
	* libstetic/wrapper/Icon.cs (Stock):
	* libstetic/wrapper/Image.cs (File):
	* libstetic/wrapper/TextView.cs (Text): use new EditorAttribute

	* libstetic/wrapper/Button.cs (StockId): use new EditorAttribute.
	Remove unused DefaultValueAttribute.

	* libstetic/wrapper/ColorButton.cs (Alpha): Use RangeAttribute to
	create a new Alpha property that combines the underlying UseAlpha
	and Alpha properties into a single "optional int range".

2005-02-13  Dan Winship  <danw@novell.com>

	* libstetic/CommandDescriptor.cs: like PropertyDescriptor, but
	describes commands implemented by the widget wrapper (which, like
	properties, can become sensitive and insensitive depending on
	other properties)

	* libstetic/CommandAttribute.cs: attribute for marking methods
	that will be referred to via CommandDescriptors

	* libstetic/IContextMenuProvider.cs: Gone, this functionality is
	part of CommandDescriptor now.

	* libstetic/ItemDescriptor.cs: abstract subclass for
	PropertyDescriptor and CommandDescriptor

	* libstetic/PropertyDescriptor.cs: make this a subclass of
	ItemDescriptor

	* libstetic/ItemGroup.cs: formerly PropertyGroup, but now can hold
	any ItemDescriptor.
	
	* libstetic/wrapper/Object.cs: add a ContextMenuItems property,
	empty by default.

	* libstetic/wrapper/*.cs: update for Item changes

	* libstetic/wrapper/Button.cs: implement "Remove Button Contents"
	and "Restore Button Label" as Commands. Add dummy properties
	HasLabel and HasContents for them to depend on.

	* libstetic/wrapper/Box.cs: 
	* libstetic/wrapper/Notebook.cs: 
	* libstetic/wrapper/Table.cs: change IContextMenuItemProvider
	stuff to use the new Command stuff

	* libstetic/wrapper/ComboBox.cs: replace Model property with a
	multi-line-text Items property

	* libstetic/wrapper/ComboBoxEntry.cs: new wrapper

	* libstetic/wrapper/Window.cs: on a DeleteEvent, just hide the window

	* stetic/Grid.cs: Allow adding of arbitrary widgets in addition to
	the property name/editor pairs.

	* stetic/PropertyGrid.cs: Implement CommandDescriptors by adding
	buttons to the Grid.

	* stetic/ContextMenu.cs: update for CommandDescriptor stuff

	* stetic/PropertyEditor.cs (EditorValueChanged, Update): Fix this
	again to avoid updating loops

	* stetic/WidgetSite.cs (WindowSite.Select): Show() the window, in
	case it was hidden

2005-02-13  Dan Winship  <danw@novell.com>

	* libstetic/ParamSpec.cs (gtksharp_get_type_id): Fix the library
	name in the DllImport attribute

2005-02-11  Dan Winship  <danw@novell.com>

	* stetic/Grid.cs: new base class for PropertyGrid. Instead of
	being a VBox of Expanders, its now a subclass of Container which
	lays out its contents by hand; this makes it much easier to make
	everything end up with the size and location we want (particularly
	in the presence of multi-line editors).

	* stetic/PropertyGrid.cs: Update to be a subclass of Grid

	* libstetic/editor/Text.cs: TextView-based multi-line text editor

	* libstetic/wrapper/TextView.cs: mark the "Text" property as
	wanting the "Text" editor type. Proxy the TextView's Buffer's
	"Changed" event so that the property editor will track typing in
	the widget.

	* stetic/WidgetSite.cs (OnMotionNotifyEvent): force the dragWindow
	to be at least 20x20, so that widgets that make very small
	requests expecting to be allocated much more space (eg, TextView)
	aren't invisible when dragged.

2005-02-09  Dan Winship  <danw@novell.com>

	* libstetic/editor/Color.cs: add an editor for Gdk.Color-valued
	properties

	* stetic/PropertyEditor.cs: Use it

	* stetic/PropertyGrid.cs: 
	* stetic/Stetic.cs: re-enable child packing property page

2005-02-09  Dan Winship  <danw@novell.com>

	* Major reorg again... Now instead of having the widget wrappers
	be subclasses of the types they wrap, they are a parallel set of
	classes. This lets them share code between each other more easily
	than before. Touches nearly every file. Also, update to use
	GLib.Object.AddNotification rather than our own notify hack.

2005-01-27  Dan Winship  <danw@novell.com>

	* stetic/ProjectView.cs: TreeView subclass for displaying the
	widget tree.

	* stetic/Project.cs: model for ProjectView

	* stetic/Palette.cs (IconForType): Split this code out so the
	Project window can make use of it too.

	* stetic/Stetic.cs (Main): Create a "Project" window. Some day
	there will be windows whose names don't start with "P".

	* stetic/WidgetSite.cs: s/ExpandabilityChanged/ContentsChanged/

	* stetic/WidgetFactory.cs (WidgetFactory, Create): set the widget
	Name property, a la glade
	(WindowFactory.OnButtonPressEvent): call
	SteticMain.Project.AddWindow()

	* libstetic/IContainerWrapper.cs: subclass IWidgetWrapper, not
	IObjectWrapper.
	(ContentsChanged): new event that replaces ExpandabilityChanged

	* libstetic/IWindowWrapper.cs: subclass IContainerWrapper, not
	IObjectWrapper

	* libstetic/SiteContentEnumerator.cs: IEnumerator to enumerate the
	real widget children of a container (rather than its WidgetSites)

	* widgets/*.cs: s/ExpandabilityChanged/ContentsChanged/

	* widgets/Dialog.cs: 
	* widgets/MessageDialog.cs: 
	* widgets/Window.cs: Implement ContentsChanged

	* widgets/Paned.cs (Paned): fix a bug in the shared Paned
	properties

	* widgets/ToggleButton.cs (ToggleButton): Initialize "label"

2005-01-25  Dan Winship  <danw@novell.com>

	* libstetic/IWidgetWrapper.cs: New dummy subclass of
	IObjectWrapper

	* libstetic/WidgetBox.cs: Implement OnSetScrollAdjustments (by
	passing them on to the child). Needed for ScrolledWindow.

	* widgets/Alignment.cs: 
	* widgets/EventBox.cs: 
	* widgets/Expander.cs: 
	* widgets/ScrolledWindow.cs: Wrap these

	* widgets/*.cs: s/IObjectWrapper/IWidgetWrapper/

	* stetic/WidgetSite.cs (ParentSite): Deal with the fact that the
	immediate parent won't be a WidgetSite in a few cases.

	* stetic/Palette.cs (AddWidgets): Look for IWidgetWrapper, not
	IObjectWrapper.

2005-01-20  Dan Winship  <danw@novell.com>

	* libstetic/IWindowWrapper.cs: new (empty) interface

	* libstetic/WidgetWrapperAttribute.cs (WidgetType): gone; we can
	distinguish widget wrappers based on whether they implement
	IWindowWrapper, IContainerWrapper, or just IObjectWrapper.

	* widgets/*.cs: remove WidgetType declarations from containers and
	windows.

	* widgets/Dialog.cs: 
	* widgets/Window.cs: Remove IContainerWrapper junk that wasn't
	being used anyway.

	* widgets/Calendar.cs: 
	* widgets/FontButton.cs: 
	* widgets/MessageDialog.cs: new wrappers

	* widgets/pixmaps/curve.png:
	* widgets/pixmaps/gammacurve.png:
	* widgets/pixmaps/hruler.png:
	* widgets/pixmaps/inputdialog.png:
	* widgets/pixmaps/selector.png:
	* widgets/pixmaps/vruler.png: Kill off some glade icons we won't
	be using

	* stetic/Palette.cs: Update for WidgetType going away, and
	reorganize into two columns

2005-01-20  Dan Winship  <danw@novell.com>

	* Move 90% of the files in the repository somewhere else.

	* libstetic/: classes needed by both Stetic itself and widget
	wrapper implementations

	* libstetic/editor/: moved from stetic/editor

	* widgets/: moved from stetic/wrapper and modified a bit to only
	require libstetic. (In particular, all the wrappers now have
	constructors that take an IStetic object which can be used to
	create new WidgetSites)

	* widgets/pixmaps: moved from pixmaps/

	* stetic/: now just the app itself, which links to libstetic and
	dynamically loads libsteticwidgets.
	
2005-01-20  Dan Winship  <danw@novell.com>

	* stetic/IObjectWrapper.cs (PropertyGroup): Make this take a
	varargs list of property names and build the PropertyDescriptors
	itself, to cut down on the amount of work the wrappers need to do.
	Also add an indexer to retrieve a PropertyDescriptor by name.
	(IPropertySensitizer): Gone

	* stetic/PropertyDescriptor.cs: Update the ctor for how
	PropertyGroup uses it now.
	(DependsOn, DependsInverselyOn, Dependencies,
	InverseDependencies): stuff to specify/probe inter-property
	dependencies, to replace the old IPropertySensitizer stuff more
	simply.

	* stetic/PropertyGrid.cs: Replace IPropertySensitizer stuff with
	PropertyDescriptor.Dependencies, etc

	* stetic/Palette.cs (AddWidgets): Catch exceptions from the
	Gdk.Pixbuf ctor and use the "broken image" image instead if it
	can't load the wrapper's specified image.

	* stetic/wrapper/*.cs: Update for new, simpler PropertyGroup
	creation and inter-property sensitivity settings.

	* stetic/wrapper/ColorButton.cs: 
	* stetic/wrapper/HScale.cs: 
	* stetic/wrapper/ProgressBar.cs: 
	* stetic/wrapper/Scale.cs: 
	* stetic/wrapper/Statusbar.cs: 
	* stetic/wrapper/VScale.cs: New wrappers

	* pixmaps/missing.png: "missing image" pixmap to use for now for
	widgets I don't have an icon for.

2005-01-14  Dan Winship  <danw@novell.com>

	* stetic/PropertyEditor.cs (BasicEditor.EditorValueChanged,
	BasicEditor.Update, RangeEditor.EditorValueChanged,
	RangeEditor.Update): Ignore EditorValueChanged if we're inside an
	Update, since it's just reflecting the change we're already
	making. Indirectly fixes a problem with deleting characters in an
	Entry.

	* stetic/wrapper/Arrow.cs: Add Misc.MiscProperties

	* stetic/wrapper/Button.cs: Implement IContextMenuProvider.
	(ContextMenuItems): Return a context menu with "Remove Button
	Contents" and "Restore Button Label" items, properly sensitized.
	(RemoveContents, RestoreLabel): Implement those.
	(InsensitiveProperties): Update to deal with RemoveContents

	* stetic/wrapper/CheckButton.cs: 
	* stetic/wrapper/RadioButton.cs: Add missing "Label" property plus
	Button.ButtonExtraProperties

	* stetic/editor/Enumeration.cs: Don't show the enumeration values
	in the menu.

	* stetic/editor/FloatRange.cs: Show 2 decimal digits

2005-01-14  Dan Winship  <danw@novell.com>

	* stetic/WidgetBox.cs: Remove InterceptEvents property and
	EventWindow. Instead, ConnectBefore to the child's
	ButtonPressEvent. (This should help to deal with
	non-container-like containers. Eg, GtkButton if you replace the
	label widget with something else.)
	(OnChildButtonPress): called when a button press is intercepted on
	the child widget

	* stetic/WidgetSite.cs: Update for WidgetBox changes.
	(OnChildButtonPress): Handle context menu or focus grabbing as
	needed
	(StartDrag): Change this to take an EventMotion arg. Return false
	if the event window isn't the WidgetBox's HandleWindow. (ie, don't
	allow drags from the widget itself any more, only from its
	handles).
	
	* stetic/WidgetFactory.cs (StartDrag): add evt arg

2005-01-13  Dan Winship  <danw@novell.com>

	* stetic/ContextMenu.cs (ContextMenuItem): add an "Enabled" field
	and a ctor to set it
	(ContextMenu): obey the "Enabled" field on IContextMenuProvider
	items
	(IContextMenuProvider): Turn ContextMenuItems from a property to a
	procedure, so we can pass the context item to it

	* stetic/wrapper/Notebook.cs: update for IContextMenuProvider
	change. Disable items (eg, "Go To Previous Page") as appropriate.

	* stetic/wrapper/HBox.cs:
	* stetic/wrapper/VBox.cs:
	* stetic/wrapper/Table.cs: update for IContextMenuProvider change

2005-01-13  Dan Winship  <danw@novell.com>

	* stetic/WidgetSite.cs (EmptySize): new property to set the site's
	size when empty
	(set_Occupancy): Use that rather than hardcoding 10x10
	(WidgetSite): New ctor to set EmptySize

	* stetic/wrapper/Window.cs: Use the new WidgetSite ctor rather
	than overriding OnSizeRequested

	* stetic/wrapper/Dialog.cs: Use the new WidgetSite ctor

2005-01-13  Dan Winship  <danw@novell.com>

	* stetic/Stetic.cs: Rename the main class from "Stetic" to
	"SteticMain", to work around really annoying C# semantics

	* stetic/WidgetFactory.cs (WindowFactory.OnButtonPressEvent):
	update for that

2005-01-13  Dan Winship  <danw@novell.com>

	* stetic/WidgetFactory.cs (WidgetFactoryAttribute): gone, turned
	into WidgetWrapperAttribute
	(WidgetFactory, WindowFactory): Take a Type directly rather than a
	WidgetFactoryDelegate.

	* stetic/WidgetWrapperAttribute.cs: replaces
	WidgetFactoryAttribute, but basically the same thing

	* stetic/Palette.cs (AddWidgets): Take an Assembly rather than a
	Type, and search for all Types in that Assembly with a
	WidgetWrapperAttribute.

	* stetic/Stetic.cs (Main): Update call to Palette.AddWidgets

	* stetic/wrapper/DefaultWidgets.cs: Gone

	* stetic/wrapper/Dialog.cs: 
	* stetic/wrapper/Notebook.cs: 
	* stetic/wrapper/TextView.cs: 
	* stetic/wrapper/ToggleButton.cs: wrap these

	* stetic/wrapper/*.cs: add WidgetWrapper attributes, make sure
	every class has a no-arg constructor

2005-01-13  Dan Winship  <danw@novell.com>

	* stetic/ContextMenu.cs (IContextMenuProvider): New interface for
	widget wrappers that want to add items to their context menus.
	(ContextMenu): support IContextMenuProvider.

	* stetic/IObjectWrapper.cs (IPropertySensitizer): Make
	InsensitiveProperties a property rather than a method

	* stetic/PropertyDescriptor.cs (PropertyDescriptor): Add a new
	constructor for "proxy" descriptors, which get a ParamSpec from
	the base class, but use the property on the derived class. Also,
	if the passed-in propertyName is invalid, throw an
	ArgumentException with a useful message rather than causing a
	NullArgumentException later.

	* stetic/PropertyGrid.cs (SetupSensitivity): Update for
	InsensitiveProperties change

	* stetic/WidgetSite.cs: Update for ContextMenu ctor change

	* stetic/wrapper/Button.cs: Use a proxy PropertyDescriptor for
	"Label", update InsensitiveProperties.

	* stetic/wrapper/ComboBox.cs: Fix a crasher typo noted by Peter
	Williams.

	* stetic/wrapper/Icon.cs: Use proxy PropertyDescriptors for Stock
	and IconSize.

	* stetic/wrapper/HBox.cs:
	* stetic/wrapper/VBox.cs: Implement IContextMenuProvider, adding
	"Insert Before" and "Insert After" commands.

	* stetic/wrapper/Table.cs: Implement IContextMenuProvider, adding
	"Insert Row/Column Before/After" and "Delete Row/Column". Use
	proxy PropertyDescriptors for NRows and NColumns since the base
	properties won't let you remove non-empty rows/columns. Update
	InsensitiveProperties.

	* stetic/stetic.in: If command-line args are passed, pass them to
	mono (since stetic doesn't take any arguments at the moment, and I
	use mono --trace a lot).

2005-01-12  Dan Winship  <danw@novell.com>

	* stetic/PropertyGrid.cs: Reorganize stuff so that ContainerChild
	classes can override properties and implement IPropertySensitizer
	as well.
	
	* stetic/IDesignTimeContainer.cs:
	* stetic/IObjectWrapper.cs (IContainerWrapper): Move the things
	that used to be in IDesignTimeContainer to IContainerWrapper. Kill
	IDesignTimeContainer.

	* stetic/WidgetSite.cs: Update for that

	* stetic/wrapper/Frame.cs:
	* stetic/wrapper/HBox.cs:
	* stetic/wrapper/HButtonBox.cs:
	* stetic/wrapper/HPaned.cs:
	* stetic/wrapper/VBox.cs:
	* stetic/wrapper/VButtonBox.cs:
	* stetic/wrapper/VPaned.cs:
	* stetic/wrapper/Window.cs: Update

	* stetic/wrapper/Table.cs: Update.
	(TableChild) Subclass Gtk.Table.TableChild with an "AutoSize"
	property saying whether or not to automatically adjust the packing
	of child widgets (defaults to on). Also implement
	IPropertySensitizer.
	(Sync): Update for that.

2005-01-12  Dan Winship  <danw@novell.com>

	* stetic/IObjectWrapper.cs (IContainerWrapper): new interface a la
	IObjectWrapper, but including child properties as well.

	* stetic/PropertyGrid.cs (ChildPropertyGrid): Use IContainerWrapper

	* stetic/wrapper/Box.cs: 
	* stetic/wrapper/ButtonBox.cs: 
	* stetic/wrapper/Paned.cs: add static child PropertyGroups

	* stetic/wrapper/HBox.cs: 
	* stetic/wrapper/HButtonBox.cs: 
	* stetic/wrapper/HPaned.cs: 
	* stetic/wrapper/Table.cs: 
	* stetic/wrapper/VBox.cs: 
	* stetic/wrapper/VButtonBox.cs: 
	* stetic/wrapper/VPaned.cs: Implement IContainerWrapper, add child
	PropertyGroups

	* stetic/wrapper/Frame.cs: 
	* stetic/wrapper/Window.cs: Implement IContainerWrapper, but
	return an empty ChildPropertyGroups

2005-01-11  Dan Winship  <danw@novell.com>

	* stetic/WidgetBox.cs (WidgetBox, OnRealized): Use WidgetFlags
	property instead of Obsolete Flags.
	(ShowHandles, OnRealized, OnExposeEvent): Set the Background of
	the HandleWindow to black when creating it, rather than filling in
	the foreground in OnExposeEvent.
	(OnSizeAllocated): Don't set HandleAllocation here, since the
	window may not have been realized yet, which would make
	TranslateCoordinates not work.
	(ShapeHandles): Figure out HandleAllocation here.
	
2005-01-07  Dan Winship  <danw@novell.com>

	* stetic/wrapper/Image.cs: wrapper for Gtk.Images that show files

	* stetic/wrapper/Icon.cs: wrapper for Gtk.Images that show stock icons

	* stetic/wrapper/SpinButton.cs: wrapper for Gtk.SpinButton
	
	* stetic/wrapper/Frame.cs: 
	* stetic/wrapper/HBox.cs: 
	* stetic/wrapper/HButtonBox.cs: 
	* stetic/wrapper/HPaned.cs: 
	* stetic/wrapper/VBox.cs: 
	* stetic/wrapper/VButtonBox.cs: 
	* stetic/wrapper/VPaned.cs: 
	* stetic/wrapper/Table.cs: 
	* stetic/wrapper/Window.cs: Implement IObjectWrapper on these
	(previously they just implemented IDesignTimeContainer)

	* stetic/wrapper/Box.cs: 
	* stetic/wrapper/ButtonBox.cs: 
	* stetic/wrapper/Paned.cs: static classes that define
	PropertyDescriptors used by their subclasses

	* stetic/wrapper/DefaultWidgets.cs: Update for new wrappers

	* stetic/editor/File.cs: editor for strings that represent filenames

	* stetic/Stetic.cs: Use Gnome.Program rather than Gtk.Application
	now, since we're using Gnome.FileEntry.

2005-01-06  Dan Winship  <danw@novell.com>

	* stetic/IDesignTimeContainer.cs: New name for the old
	IWidgetSite.

	* stetic/WidgetSite.cs (IWidgetSite): Now a "parent" for
	WidgetSite and WindowSite.
	(WidgetSite): Implement IWidgetSite and IDesignTimeContainer.
	(WindowSite): IWidgetSite implementation for toplevel windows.
	Includes the focus-tracking code formerly in
	Stetic.Wrapper.Window.

	* stetic/ContextMenu.cs (ContextMenu):
	* stetic/Stetic.cs (Select):
	* stetic/PropertyGrid.cs (PropertyGrid.Select,
	ChildPropertyGrid.Select): Change WidgetBox and WidgetSite params
	to IWidgetSite. This lets us select and show properties for toplevels.

	* stetic/WidgetFactory.cs (WindowFactory.OnButtonPressEvent):
	Create a WindowSite for the new window and connect to its
	FocusChanged event.

	* stetic/wrapper/*.cs: s/IWidgetSite/IDesignTimeContainer/

	* stetic/wrapper/Window.cs (OnSetFocus): Gone. Handled by
	WindowSite now.

2005-01-05  Dan Winship  <danw@novell.com>

	* stetic/ContextMenu.cs: Menu subclass to use as a WidgetSite's
	context menu. Currently a clone of Glade's context menu, but with
	no widget-specific content, and it doesn't actually implement Cut,
	Copy, or Paste. (Meaning you can do Select or Delete.)

	* stetic/WidgetSite.cs (OnPopupMenu): create a ContextMenu and pop
	it up.
	(OnButtonPressEvent): Call OnPopupMenu() on a right-click.
	(OnKeyReleaseEvent): hand off Delete key handling to Delete()
	(Delete): new public method to delete the site's child.

	* stetic/PropertyDescriptor.cs (PropertyDescriptor): fix a bug in
	the sub-property case

2005-01-05  Dan Winship  <danw@novell.com>

	* stetic/IObjectWrapper.cs (IPropertySensitizer): interface for
	wrapper classes that want to be able to tweak the sensitivity of
	their editors.

	* stetic/Notify.cs: static helper class for the GObject "notify"
	signal, which isn't currently bound by glib-sharp.

	* stetic/PropertyDescriptor.cs (EventInfo, ParamSpec, EditorType):
	Make these be properties of the PropertyDescriptor rather than
	being figured out in PropertyEditors.

	* stetic/PropertyEditor.cs: Renamed from PropertyEditors.cs and
	made into an abstract widget class rather than a static class.
	(MakeEditor): Now returns a PropertyEditor rather than just a
	Widget.
	(BasicEditor, RangeEditor, NoEditor): Now subclasses of
	PropertyEditor, and they implement an Update() method to force the
	editor to sync with the underlying property.

	* stetic/PropertyGrid.cs: Tweak for PropertyDescriptor and
	PropertyEditor changes. Use IPropertySensitizer if the displayed
	widget supports it. Use Stetic.Notify to notice when the user
	interacts with the displayed widget (eg, toggling a checkbox) and
	force the relevant property editor to update itself.

	* stetic/ParamSpec.cs (ParamSpecTypeHack): add an unused private
	subclass of GLib.Object so we can access the static protected
	LookupGType method. (This wouldn't be needed if ParamSpec was in
	glib-sharp, because there's an internal method we could use.)
	(LookupObjectProperty, LookupChildProperty): Take a Type rather
	than a GLib.Object, so we can look up a type's properties without
	needing an instatiated object.

	* stetic/wrapper/Button.cs: Make the UI for the "Stock ID" and
	"Label" properties work more nicely by wrapping both of them at
	the Stetic.Wrapper.Button level, and watching for notifications on
	the UseStock property, and setting the wrapper Label to the stock
	item's Label rather than its Name when setting a stock item (eg,
	"_OK" rather than "gtk-ok"). Also add the UseStock property, and
	implement the IPropertySensitizer interface so that only one of
	Stock ID and Label is sensitive at any time.

	* stetic/editor/StockItem.cs: Remove the "None" option; the editor
	should be desensitized if no stock item is being used.

	* glue/notify.c: glue for Stetic.Notify

	* glue/paramspec.c (stetic_param_spec_for_property,
	stetic_param_spec_for_child_property): Take a GType rather than a
	GObject.

2004-12-20  Dan Winship  <danw@novell.com>

	* stetic/IObjectWrapper.cs: interface for Stetic.Wrapper objects
	to use to allow them to define their properties

	* stetic/PropertyDescriptor.cs: a class describing an editable
	object property

	* stetic/PropertyGrid.cs: Reimplement this using
	PropertyDescriptors and PropertyGroups for the model, and
	Gtk.Expanders for the view.

	* stetic/PropertyEditorAttribute.cs: for Stetic.Editors to use to
	specify the property and/or event to use to interact with them

	* stetic/PropertyEditors.cs: Updated for PropertyDescriptor, the
	Stetic.Editor namespace, etc

	* stetic/ParamSpec.cs: make Minimum, Maximum, Default virtual
	methods on ParamSpec itself, overridden by subclasses.

	* stetic/editor/Boolean.cs: 
	* stetic/editor/Char.cs: 
	* stetic/editor/Enumeration.cs: 
	* stetic/editor/FloatRange.cs: 
	* stetic/editor/IntRange.cs: 
	* stetic/editor/OptIntRange.cs: 
	* stetic/editor/StockItem.cs: 
	* stetic/editor/String.cs: Editors for properties of various types

	* stetic/wrapper/Arrow.cs: 
	* stetic/wrapper/Button.cs: 
	* stetic/wrapper/CheckButton.cs: 
	* stetic/wrapper/ComboBox.cs: 
	* stetic/wrapper/DrawingArea.cs: 
	* stetic/wrapper/Entry.cs: 
	* stetic/wrapper/HScrollbar.cs: 
	* stetic/wrapper/HSeparator.cs: 
	* stetic/wrapper/Label.cs: 
	* stetic/wrapper/RadioButton.cs: 
	* stetic/wrapper/VScrollbar.cs: 
	* stetic/wrapper/VSeparator.cs: IObjectWrapper implementations

	* stetic/wrapper/Misc.cs: 
	* stetic/wrapper/Range.cs: 
	* stetic/wrapper/Widget.cs: static classes defining certain
	PropertyGroups

	* stetic/wrapper/HBox.cs:
	* stetic/wrapper/HPaned.cs:
	* stetic/wrapper/Table.cs:
	* stetic/wrapper/VBox.cs:
	* stetic/wrapper/VPaned.cs:
	* stetic/wrapper/Window.cs: s/Widget/Gtk.Widget/ since there is
	now a Stetic.Wrapper.Widget

	* stetic/wrapper/DefaultWidgets.cs: use the new wrappers

	* stetic/Makefile.am (stetic_exe_SOURCES): update

	* stetic/stetic.in: pass --debug to mono

2004-12-20  Dan Winship  <danw@novell.com>

	* stetic/wrapper: Rename "wrappers" dir to "wrapper", to match the
	namespace

	* stetic/Makefile.am (stetic_exe_SOURCES): update for that

2004-12-15  Dan Winship  <danw@novell.com>

	* stetic/Stetic.cs: 
	* stetic/WidgetSite.cs: 
	* stetic/wrappers/Table.cs: Clean up new mcs warnings

	* stetic/PropertyEditors.cs (Enum): Redo this using ComboBox to
	avoid the warning about OptionMenu being deprecated
	(Flags): Make this a no-op for now. The OptionMenu-based
	implementation wasn't very useful anyway.

2004-12-14  Dan Winship  <danw@novell.com>

	* stetic/*Wrapper.cs: Move these all to stetic/wrappers and rename

	* stetic/DefaultWidgets.cs: Moved out of stetic/WidgetFactory.cs

	* stetic/Makefile.am (stetic_exe_SOURCES): Update

2004-12-13  Dan Winship  <danw@novell.com>

	* stetic/PropertyEditors.cs (Enum, Flags): implement these by
	using private classes rather than anonymous delegates, to work
	around 69614.

	* stetic/TableWrapper.cs: fix a search-and-replace-o ("placesite"
	instead of "placeholder")
	(Sync): Don't adjust expand/fill settings of occupied sites.
	(ChildOccupancyChanged): When a site becomes occupied, reset its
	attach options.

2004-12-10  Dan Winship  <danw@novell.com>

	* stetic/WidgetBox.cs: Always have a GdkWindow, so that the
	background of a container can be clicked on to select it (if any
	background is visible). Fix up coordinate handling accordingly.

	* stetic/WidgetFactory.cs (DefaultWidgets): add VButtonBox and
	HButtonBox.

	* stetic/Makefile.am (stetic_exe_SOURCES): add
	HButtonBoxWrapper.cs, VButtonBoxWrapper.cs
	(stetic.exe): Use -pkg:gtk-sharp-2.0 rather than the output we
	already cached in configure.in, because Miggie says so. :)
	
2004-12-08  Dan Winship  <danw@novell.com>

	* Initial commit

