dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/System/ComponentModel/Design ActiveDe


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System/ComponentModel/Design ActiveDesignerEventArgs.cs,NONE,1.1ActiveDesignerEventHandler.cs,NONE,1.1 CheckoutException.cs,NONE,1.1 CommandID.cs,NONE,1.1 ComponentChangedEventArgs.cs,NONE,1.1 ComponentChangedEventHandler.cs,NONE,1.1 ComponentChangingEventArgs.cs,NONE,1.1 ComponentChangingEventHandler.cs,NONE,1.1 ComponentEventArgs.cs,NONE,1.1 ComponentEventHandler.cs,NONE,1.1 ComponentRenameEventArgs.cs,NONE,1.1 ComponentRenameEventHandler.cs,NONE,1.1 DesignerCollection.cs,NONE,1.1 DesignerEventArgs.cs,NONE,1.1 DesignerEventHandler.cs,NONE,1.1 DesignerTransactionCloseEventArgs.cs,NONE,1.1 DesignerTransactionCloseEventHandler.cs,NONE,1.1 DesignerVerb.cs,NONE,1.1 DesignerVerbCollection.cs,NONE,1.1 DesigntimeLicenseContext.cs,NONE,1.1 DesigntimeLicenseContextSerializer.cs,NONE,1.1 HelpContextType.cs,NONE,1.1 HelpKeywordType.cs,NONE,1.1 IComponentChangeService.cs,NONE,1.1 IDesignerEventService.cs,NONE,1.1 IDesignerFilter.cs,NONE,1.1 IDesignerOptionService.cs,NONE,1.1 IDictionaryService.cs,NONE,1.1 IEventBindingService.cs,NONE,1.1 IExtendedListService.cs,NONE,1.1 IExtenderProviderService.cs,NONE,1.1 IHelpService.cs,NONE,1.1 IMenuCommandService.cs,NONE,1.1 IReferenceService.cs,NONE,1.1 IResourceService.cs,NONE,1.1 IRootDesigner.cs,NONE,1.1 ISelectionService.cs,NONE,1.1ITypeDescriptorFilterService.cs,NONE,1.1 ITypeResolutionService.cs,NONE,1.1 MenuCommand.cs,NONE,1.1 SelectionTypes.cs,NONE,1.1 ServiceContainer.cs,NONE,1.1 StandardCommands.cs,NONE,1.1 StandardToolWindows.cs,NONE,1.1 ViewTechnology.cs,NONE,1.1 DesignerTransaction.cs,1.2,1.3 IDesigner.cs,1.1,1.2 IDesignerHost.cs,1.1,1.2 IServiceContainer.cs,1.2,1.3 Makefile,1.1,1.2 ServiceCreatorCallback.cs,1.1,1.2
Date: Fri, 23 May 2003 20:42:37 -0400

Update of /cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design
In directory subversions:/tmp/cvs-serv8616/System/ComponentModel/Design

Modified Files:
        DesignerTransaction.cs IDesigner.cs IDesignerHost.cs 
        IServiceContainer.cs Makefile ServiceCreatorCallback.cs 
Added Files:
        ActiveDesignerEventArgs.cs ActiveDesignerEventHandler.cs 
        CheckoutException.cs CommandID.cs ComponentChangedEventArgs.cs 
        ComponentChangedEventHandler.cs ComponentChangingEventArgs.cs 
        ComponentChangingEventHandler.cs ComponentEventArgs.cs 
        ComponentEventHandler.cs ComponentRenameEventArgs.cs 
        ComponentRenameEventHandler.cs DesignerCollection.cs 
        DesignerEventArgs.cs DesignerEventHandler.cs 
        DesignerTransactionCloseEventArgs.cs 
        DesignerTransactionCloseEventHandler.cs DesignerVerb.cs 
        DesignerVerbCollection.cs DesigntimeLicenseContext.cs 
        DesigntimeLicenseContextSerializer.cs HelpContextType.cs 
        HelpKeywordType.cs IComponentChangeService.cs 
        IDesignerEventService.cs IDesignerFilter.cs 
        IDesignerOptionService.cs IDictionaryService.cs 
        IEventBindingService.cs IExtendedListService.cs 
        IExtenderProviderService.cs IHelpService.cs 
        IMenuCommandService.cs IReferenceService.cs 
        IResourceService.cs IRootDesigner.cs ISelectionService.cs 
        ITypeDescriptorFilterService.cs ITypeResolutionService.cs 
        MenuCommand.cs SelectionTypes.cs ServiceContainer.cs 
        StandardCommands.cs StandardToolWindows.cs ViewTechnology.cs 
Log Message:


Implement missing classes in the "System.ComponentModel.Design" namespace.


--- NEW FILE ---
/*
 * ActiveDesignerEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.ActiveDesignerEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public class ActiveDesignerEventArgs : EventArgs
{
        // Internal state.
        private IDesignerHost oldDesigner;
        private IDesignerHost newDesigner;

        // Constructor.
        public ActiveDesignerEventArgs
                                (IDesignerHost oldDesigner, IDesignerHost 
newDesigner)
                        {
                                this.oldDesigner = oldDesigner;
                                this.newDesigner = newDesigner;
                        }

        // Get this object's properties.
        public IDesignerHost NewDesigner
                        {
                                get
                                {
                                        return newDesigner;
                                }
                        }
        public IDesignerHost OldDesigner
                        {
                                get
                                {
                                        return oldDesigner;
                                }
                        }

}; // class ActiveDesignerEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ActiveDesignerEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.ActiveDesignerEventHandler" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

[Serializable]
public delegate void ActiveDesignerEventHandler
                        (Object sender, ActiveDesignerEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * CheckoutException.cs - Implementation of the
 *              "System.ComponentModel.Design.CheckoutException" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

public class CheckoutException : ExternalException
{
        // Constructors.
        public CheckoutException() : base(S._("Exception_Checkout")) {}
        public CheckoutException(String message) : base(message) {}
        public CheckoutException(String message, int errorCode)
                        : base(message, errorCode) {}

        // Standard exception for canceled checkouts.
        public static readonly CheckoutException Canceled =
                        new 
CheckoutException(S._("Exception_CheckoutCanceled"));

}; // class CheckoutException

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * CommandID.cs - Implementation of the
 *              "System.ComponentModel.Design.CommandID" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public class CommandID
{
        // Internal state.
        private Guid menuGroup;
        private int commandID;

        // Constructor.
        public CommandID(Guid menuGroup, int commandID)
                        {
                                this.menuGroup = menuGroup;
                                this.commandID = commandID;
                        }

        // Get the command identifier's properties.
        public virtual Guid Guid
                        {
                                get
                                {
                                        return menuGroup;
                                }
                        }
        public virtual int ID
                        {
                                get
                                {
                                        return commandID;
                                }
                        }

        // Determine if two objects are equal.
        public override bool Equals(Object obj)
                        {
                                CommandID other = (obj as CommandID);
                                if(other != null)
                                {
                                        return 
menuGroup.Equals(other.menuGroup) &&
                                                   commandID == other.commandID;
                                }
                                else
                                {
                                        return false;
                                }
                        }

        // Get a hash code for this object.
        public override int GetHashCode()
                        {
                                return commandID;
                        }

        // Convert this object into a string.
        public override String ToString()
                        {
                                return menuGroup.ToString() + " : " + 
commandID.ToString();
                        }

}; // class CommandID

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentChangedEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentChangedEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public sealed class ComponentChangedEventArgs : EventArgs
{
        // Internal state.
        private Object component;
        private MemberDescriptor member;
        private Object oldValue;
        private Object newValue;

        // Constructor.
        public ComponentChangedEventArgs(Object component, MemberDescriptor 
member,
                                                                 Object 
oldValue, Object newValue)
                        {
                                this.component = component;
                                this.member = member;
                                this.oldValue = oldValue;
                                this.newValue = newValue;
                        }

        // Get this object's properties.
        public Object Component
                        {
                                get
                                {
                                        return component;
                                }
                        }
        public MemberDescriptor Member
                        {
                                get
                                {
                                        return member;
                                }
                        }
        public Object NewValue
                        {
                                get
                                {
                                        return newValue;
                                }
                        }
        public Object OldValue
                        {
                                get
                                {
                                        return oldValue;
                                }
                        }

}; // class ComponentChangedEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentChangedEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentChangedEventHandler" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Serializable]
[ComVisible(true)]
public delegate void ComponentChangedEventHandler
                        (Object sender, ComponentChangedEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentChangingEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentChangingEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public sealed class ComponentChangingEventArgs : EventArgs
{
        // Internal state.
        private Object component;
        private MemberDescriptor member;

        // Constructor.
        public ComponentChangingEventArgs
                                (Object component, MemberDescriptor member)
                        {
                                this.component = component;
                                this.member = member;
                        }

        // Get this object's properties.
        public Object Component
                        {
                                get
                                {
                                        return component;
                                }
                        }
        public MemberDescriptor Member
                        {
                                get
                                {
                                        return member;
                                }
                        }

}; // class ComponentChangingEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentChangingEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentChangingEventHandler" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Serializable]
[ComVisible(true)]
public delegate void ComponentChangingEventHandler
                        (Object sender, ComponentChangingEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public class ComponentEventArgs : EventArgs
{
        // Internal state.
        private IComponent component;

        // Constructor.
        public ComponentEventArgs(IComponent component)
                        {
                                this.component = component;
                        }

        // Get this object's properties.
        public virtual IComponent Component
                        {
                                get
                                {
                                        return component;
                                }
                        }

}; // class ComponentEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentEventHandler" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Serializable]
[ComVisible(true)]
public delegate void ComponentEventHandler
                        (Object sender, ComponentEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentRenameEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentRenameEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public class ComponentRenameEventArgs : EventArgs
{
        // Internal state.
        private Object component;
        private String oldName;
        private String newName;

        // Constructor.
        public ComponentRenameEventArgs
                                (Object component, String oldName, String 
newName)
                        {
                                this.component = component;
                                this.oldName = oldName;
                                this.newName = newName;
                        }

        // Get this object's properties.
        public Object Component
                        {
                                get
                                {
                                        return component;
                                }
                        }
        public virtual String NewName
                        {
                                get
                                {
                                        return newName;
                                }
                        }
        public virtual String OldName
                        {
                                get
                                {
                                        return oldName;
                                }
                        }

}; // class ComponentRenameEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ComponentRenameEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.ComponentRenameEventHandler" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Serializable]
[ComVisible(true)]
public delegate void ComponentRenameEventHandler
                        (Object sender, ComponentRenameEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerCollection.cs - Implementation of the
 *              "System.ComponentModel.Design.DesignerCollection" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;

public class DesignerCollection : ICollection, IEnumerable
{
        // Internal state.
        private IList list;

        // Constructors.
        public DesignerCollection(IDesignerHost[] designers)
                        {
                                if(designers == null)
                                {
                                        list = new ArrayList();
                                }
                                else
                                {
                                        list = new ArrayList(designers);
                                }
                        }
        public DesignerCollection(IList designers)
                        {
                                list = designers;
                        }

        // Get the number of elements in the collection.
        public int Count
                        {
                                get
                                {
                                        return list.Count;
                                }
                        }

        // Get the designer at a specific index.
        public virtual IDesignerHost this[int index]
                        {
                                get
                                {
                                        return (IDesignerHost)(list[index]);
                                }
                        }

        // Get an enumerator for this collection.
        public IEnumerator GetEnumerator()
                        {
                                return list.GetEnumerator();
                        }

        // Implement the ICollection interface.
        void ICollection.CopyTo(Array array, int index)
                        {
                                list.CopyTo(array, index);
                        }
        int ICollection.Count
                        {
                                get
                                {
                                        return Count;
                                }
                        }
        bool ICollection.IsSynchronized
                        {
                                get
                                {
                                        return false;
                                }
                        }
        Object ICollection.SyncRoot
                        {
                                get
                                {
                                        return this;
                                }
                        }

        // Implement the IEnumerable interface.
        IEnumerator IEnumerable.GetEnumerator()
                        {
                                return GetEnumerator();
                        }

}; // class DesignerCollection

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerEventArgs.cs - Implementation of the
 *              "System.ComponentModel.Design.DesignerEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public class DesignerEventArgs : EventArgs
{
        // Internal state.
        private IDesignerHost host;

        // Constructor.
        public DesignerEventArgs(IDesignerHost host)
                        {
                                this.host = host;
                        }

        // Get this object's properties.
        public IDesignerHost Designer
                        {
                                get
                                {
                                        return host;
                                }
                        }

}; // class DesignerEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerEventHandler.cs - Implementation of the
 *              "System.ComponentModel.Design.DesignerEventHandler" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

[Serializable]
public delegate void DesignerEventHandler
                        (Object sender, DesignerEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerTransactionCloseEventArgs.cs - Implementation of the
 *      "System.ComponentModel.Design.DesignerTransactionCloseEventArgs" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public class DesignerTransactionCloseEventArgs : EventArgs
{
        // Internal state.
        private bool commit;

        // Constructor.
        public DesignerTransactionCloseEventArgs(bool commit)
                        {
                                this.commit = commit;
                        }

        // Get this object's properties.
        public bool TransactionCommitted
                        {
                                get
                                {
                                        return commit;
                                }
                        }

}; // class DesignerTransactionCloseEventArgs

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerTransactionCloseEventHandler.cs - Implementation of
 *              
"System.ComponentModel.Design.DesignerTransactionCloseEventHandler".
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Serializable]
[ComVisible(true)]
public delegate void DesignerTransactionCloseEventHandler
                        (Object sender, DesignerTransactionCloseEventArgs e);

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerVerb.cs - Implementation of the
 *              "System.ComponentModel.Design.DesignerVerb" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public class DesignerVerb : MenuCommand
{
        // Internal state.
        private String text;

        // Constructors.
        public DesignerVerb(String text, EventHandler handler)
                        : base(handler, StandardCommands.VerbFirst)
                        {
                                this.text = text;
                        }
        public DesignerVerb(String text, EventHandler handler, CommandID 
command)
                        : base(handler, command)
                        {
                                this.text = text;
                        }

        // Get the text that describes this verb.
        public String Text
                        {
                                get
                                {
                                        return text;
                                }
                        }

        // Convert this object into a string.
        public override String ToString()
                        {
                                return text + " : " + base.ToString();
                        }

}; // class DesignerVerb

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesignerVerbCollection.cs - Implementation of the
 *              "System.ComponentModel.Design.DesignerVerbCollection" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;
using System.Collections;

[ComVisible(true)]
public class DesignerVerbCollection : CollectionBase
{
        // Constructors.
        public DesignerVerbCollection() {}
        public DesignerVerbCollection(DesignerVerb[] value)
                        {
                                AddRange(value);
                        }

        // Get or set a collection element.
        public DesignerVerb this[int index]
                        {
                                get
                                {
                                        return 
(DesignerVerb)(((IList)this)[index]);
                                }
                                set
                                {
                                        ((IList)this)[index] = value;
                                }
                        }

        // Add an element to this collection.
        public int Add(DesignerVerb value)
                        {
                                return ((IList)this).Add(value);
                        }

        // Add a range of values to this collection.
        public void AddRange(DesignerVerb[] value)
                        {
                                if(value == null)
                                {
                                        throw new 
ArgumentNullException("value");
                                }
                                foreach(DesignerVerb verb in value)
                                {
                                        Add(verb);
                                }
                        }
        public void AddRange(DesignerVerbCollection value)
                        {
                                if(value == null)
                                {
                                        throw new 
ArgumentNullException("value");
                                }
                                foreach(DesignerVerb verb in value)
                                {
                                        Add(verb);
                                }
                        }

        // Determine if a particular element is contained in this collection.
        public bool Contains(DesignerVerb value)
                        {
                                return ((IList)this).Contains(value);
                        }

        // Copy the contents of this collection into an array.
        public void CopyTo(DesignerVerb[] array, int index)
                        {
                                ((IList)this).CopyTo(array, index);
                        }

        // Get the index of a specific collection element.
        public int IndexOf(DesignerVerb value)
                        {
                                return ((IList)this).IndexOf(value);
                        }

        // Insert an element into this collection.
        public void Insert(int index, DesignerVerb value)
                        {
                                ((IList)this).Insert(index, value);
                        }

        // Remove an element from this collection.
        public void Remove(DesignerVerb value)
                        {
                                ((IList)this).Remove(value);
                        }

        // Trap modifications to the collection.  We don't actually
        // need to do anything except just override the methods.
        protected override void OnClear() {}
        protected override void OnInsert(int index, Object value) {}
        protected override void OnRemove(int index, Object value) {}
        protected override void OnSet
                                (int index, Object oldValue, Object newValue) {}
        protected override void OnValidate(Object value) {}

}; // class DesignerVerbCollection

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesigntimeLicenseContext.cs - Implementation of the
 *              "System.ComponentModel.Design.DesigntimeLicenseContext" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Reflection;
using System.Collections;

public class DesigntimeLicenseContext : LicenseContext
{
        // Internal state.
        internal Hashtable keys;

        // Constructor.
        public DesigntimeLicenseContext()
                        {
                                keys = new Hashtable();
                        }

        // Get the license usage mode.
        public override LicenseUsageMode UsageMode
                        {
                                get
                                {
                                        return LicenseUsageMode.Designtime;
                                }
                        }

        // Get the saved form of a license key.
        public override String GetSavedLicenseKey
                                (Type type, Assembly resourceAssembly)
                        {
                                return 
(String)(keys[type.AssemblyQualifiedName]);
                        }

        // Set the license key for a specific type.
        public override void SetSavedLicenseKey(Type type, String key)
                        {
                                keys[type.AssemblyQualifiedName] = key;
                        }

}; // class DesigntimeLicenseContext

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * DesigntimeLicenseContextSerializer.cs - Implementation of the
 *              
"System.ComponentModel.Design.DesigntimeLicenseContextSerializer" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class DesigntimeLicenseContextSerializer
{
        // Cannot instantiate this class.
        private DesigntimeLicenseContextSerializer() {}

        // Serialize a license key to a stream.
        public static void Serialize(Stream o, String cryptoKey,
                                                         
DesigntimeLicenseContext context)
                        {
                                BinaryFormatter formatter = new 
BinaryFormatter();
                                formatter.Serialize
                                        (o, new Object [] {cryptoKey, 
context.keys});
                        }

}; // class DesigntimeLicenseContextSerializer

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * HelpContextType.cs - Implementation of the
 *              "System.ComponentModel.Design.HelpContextType" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public enum HelpContextType
{
        Ambient                         = 0,
        Window                          = 1,
        Selection                       = 2,
        ToolWindowSelection     = 3

}; // enum HelpContextType

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * HelpKeywordType.cs - Implementation of the
 *              "System.ComponentModel.Design.HelpKeywordType" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public enum HelpKeywordType
{
        F1Keyword               = 0,
        GeneralKeyword  = 1,
        FilterKeyword   = 2

}; // enum HelpKeywordType

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IComponentChangeService.cs - Implementation of the
 *              "System.ComponentModel.Design.IComponentChangeService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public interface IComponentChangeService
{
        // Announce that a component has been changed.
        void OnComponentChanged(Object component, MemberDescriptor member,
                                                        Object oldValue, Object 
newValue);

        // Announce that a component is being changed.
        void OnComponentChanging(Object component, MemberDescriptor member);

        // Events for the change service.
        event ComponentEventHandler ComponentAdded;
        event ComponentEventHandler ComponentAdding;
        event ComponentChangedEventHandler ComponentChanged;
        event ComponentChangingEventHandler ComponentChanging;
        event ComponentEventHandler ComponentRemoved;
        event ComponentEventHandler ComponentRemoving;
        event ComponentRenameEventHandler ComponentRename;

}; // interface IComponentChangeService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IDesignerEventService.cs - Implementation of the
 *              "System.ComponentModel.Design.IDesignerEventService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IDesignerEventService
{
        // Get the root designer for the document.
        IDesignerHost ActiveDesigner { get; }

        // Get a collection of all root designers.
        DesignerCollection Designers { get; }

        // Event that is emitted when the root designer changes.
        event ActiveDesignerEventHandler ActiveDesignerChanged;

        // Event that is emitted when the root designer is created.
        event DesignerEventHandler DesignerCreated;

        // Event that is emitted when the root designer is disposed.
        event DesignerEventHandler DesignerDisposed;

        // Event that is emitted when the current design view changes.
        event EventHandler SelectionChanged;

}; // interface IDesignerEventService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IDesignerFilter.cs - Implementation of the
 *              "System.ComponentModel.Design.IDesignerFilter" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;

public interface IDesignerFilter
{
        // Filter a set of attributes before they are used.
        void PreFilterAttributes(IDictionary attributes);

        // Filter a set of attributes after they are used.
        void PostFilterAttributes(IDictionary attributes);

        // Filter a set of events before they are used.
        void PreFilterEvents(IDictionary events);

        // Filter a set of events after they are used.
        void PostFilterEvents(IDictionary events);

        // Filter a set of properties before they are used.
        void PreFilterProperties(IDictionary properties);

        // Filter a set of properties after they are used.
        void PostFilterProperties(IDictionary properties);

}; // interface IDesignerFilter

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IDesignerOptionService.cs - Implementation of the
 *              "System.ComponentModel.Design.IDesignerOptionService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IDesignerOptionService
{
        // Get the value of a specified option.
        Object GetOptionValue(String pageName, String valueName);

        // Set the value of a specified option.
        void SetOptionValue(String pageName, String valueName, Object value);

}; // interface IDesignerOptionService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IDictionaryService.cs - Implementation of the
 *              "System.ComponentModel.Design.IDictionaryService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IDictionaryService
{
        // Get the key that corresponds to a particular value.
        Object GetKey(Object value);

        // Get the value that corresponds to a particular key.
        Object GetValue(Object key);

        // Set a key-value pair.
        void SetValue(Object key, Object value);

}; // interface IDictionaryService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IEventBindingService.cs - Implementation of the
 *              "System.ComponentModel.Design.IEventBindingService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;
using System.Runtime.InteropServices;

[ComVisible(true)]
public interface IEventBindingService
{
        // Create a unique method name.
        String CreateUniqueMethodName(IComponent component, EventDescriptor e);

        // Get the methods that are compatible with a specified event.
        ICollection GetCompatibleMethods(EventDescriptor e);

        // Get the event that is represented by a specific property.
        EventDescriptor GetEvent(PropertyDescriptor property);

        // Convert a set of event descriptors into corresponding properties.
        PropertyDescriptorCollection GetEventProperties
                                (EventDescriptorCollection events);

        // Convert an event into a property descriptor.
        PropertyDescriptor GetEventProperty(EventDescriptor e);

        // Display the user code for the designer.
        bool ShowCode();
        bool ShowCode(int lineNumber);
        bool ShowCode(IComponent component, EventDescriptor e);

}; // interface IEventBindingService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IExtenderListService.cs - Implementation of the
 *              "System.ComponentModel.Design.IExtenderListService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IExtenderListService
{
        // Get the extender providers for the component.
        IExtenderProvider[] GetExtenderProviders();

}; // interface IExtenderListService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IExtenderProviderService.cs - Implementation of the
 *              "System.ComponentModel.Design.IExtenderProviderService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IExtenderProviderService
{
        // Add the specified extender provider.
        void AddExtenderProvider(IExtenderProvider provider);

        // Remove the specified extender provider.
        void RemoveExtenderProvider(IExtenderProvider provider);

}; // interface IExtenderProviderService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IHelpService.cs - Implementation of the
 *              "System.ComponentModel.Design.IHelpService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IHelpService
{
        // Add a context attribute to the document.
        void AddContextAttribute
                        (String name, String value, HelpKeywordType 
keywordType);

        // Clear all context attributes from the document.
        void ClearContextAttributes();

        // Create a local context to manage subcontexts.
        IHelpService CreateLocalContext(HelpContextType contextType);

        // Remove a context attribute
        void RemoveContextAttribute(String name, String value);

        // Remove a local context.
        void RemoveLocalContext(IHelpService localContext);

        // Show the help topic for a specific keyword.
        void ShowHelpFromKeyword(String helpKeyword);

        // Show the help topic that corresponds to a specified URL.
        void ShowHelpFromUrl(String helpUrl);

}; // interface IHelpService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IMenuCommandService.cs - Implementation of the
 *              "System.ComponentModel.Design.IMenuCommandService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public interface IMenuCommandService
{
        // Get an array of designer verbs that are currently available.
        DesignerVerbCollection Verbs { get; }

        // Add a command to the menu.
        void AddCommand(MenuCommand command);

        // Add a verb to the set of all designer verbs.
        void AddVerb(DesignerVerb verb);

        // Find a specific menu command by identifier.
        MenuCommand FindCommand(CommandID commandID);

        // Invoke a menu or verb command indicated by a specific command ID.
        bool GlobalInvoke(CommandID commandID);

        // Remove a command from the menu.
        void RemoveCommand(MenuCommand command);

        // Remove a verb from the set of all designer verbs.
        void RemoveVerb(DesignerVerb verb);

        // Show the context menu at a specific location.
        void ShowContextMenu(CommandID menuID, int x, int y);

}; // interface IMenuCommandService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IReferenceService.cs - Implementation of the
 *              "System.ComponentModel.Design.IReferenceService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public interface IReferenceService
{
        // Get the component for a specific reference.
        IComponent GetComponent(Object reference);

        // Get the component name for a specific reference.
        String GetName(Object reference);

        // Get a reference to a named component.
        Object GetReference(String name);

        // Get references for all project components.
        Object[] GetReferences();

        // Get references for all project components of a specific type.
        Object[] GetReferences(Type baseType);

}; // interface IReferenceService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IResourceService.cs - Implementation of the
 *              "System.ComponentModel.Design.IResourceService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Resources;
using System.Globalization;

public interface IResourceService
{
        // Get a resource reader for a specific culture.
        IResourceReader GetResourceReader(CultureInfo info);

        // Get a resource writer for a specific culture.
        IResourceWriter GetResourceWriter(CultureInfo info);

}; // interface IResourceService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * IRootDesigner.cs - Implementation of the
 *              "System.ComponentModel.Design.IRootDesigner" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public interface IRootDesigner : IDesigner, IDisposable
{
        // Get the set of view technologies supported by this designer.
        ViewTechnology[] SupportedTechnologies { get; }

        // Get a specific view object.
        Object GetView(ViewTechnology technology);

}; // interface IRootDesigner

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ISelectionService.cs - Implementation of the
 *              "System.ComponentModel.Design.ISelectionService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;
using System.Runtime.InteropServices;

[ComVisible(true)]
public interface ISelectionService
{
        // Get the primarily selected object.
        Object PrimarySelection { get; }

        // Get the number of selected objects.
        int SelectionCount { get; }

        // Determine if a component is selected.
        bool GetComponentSelected(Object component);

        // Get a collection of all selected components.
        ICollection GetSelectedComponents();

        // Select the components in a collection.
        void SetSelectedComponents(ICollection components);
        void SetSelectedComponents
                        (ICollection components, SelectionTypes selectionType);

        // Event that is emitted when the selection changes.
        event EventHandler SelectionChanged;

        // Event that is emitted when the selection is about to change.
        event EventHandler SelectionChanging;

}; // interface ISelectionService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ITypeDescriptorFilterService.cs - Implementation of the
 *              "System.ComponentModel.Design.ITypeDescriptorFilterService" 
class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;

public interface ITypeDescriptorFilterService
{
        // Filter the attributes that a component exposes.
        bool FilterAttributes(IComponent component, IDictionary attributes);

        // Filter the events that a component exposes.
        bool FilterEvents(IComponent component, IDictionary events);

        // Filter the properties that a component exposes.
        bool FilterProperties(IComponent component, IDictionary properties);

}; // interface ITypeDescriptorFilterService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ITypeResolutionService.cs - Implementation of the
 *              "System.ComponentModel.Design.ITypeResolutionService" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Reflection;

public interface ITypeResolutionService
{
        // Get an assembly by name.
        Assembly GetAssembly(AssemblyName name);
        Assembly GetAssembly(AssemblyName name, bool throwOnError);

        // Get the path of an assembly.
        String GetPathOfAssembly(AssemblyName name);

        // Get a type with a specific name.
        Type GetType(String name);
        Type GetType(String name, bool throwOnError);
        Type GetType(String name, bool throwOnError, bool ignoreCase);

        // Add a reference to a particular assembly.
        void ReferenceAssembly(AssemblyName name);

}; // interface ITypeResolutionService

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * MenuCommand.cs - Implementation of the
 *              "System.ComponentModel.Design.MenuCommand" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Text;
using System.Runtime.InteropServices;

[ComVisible(true)]
public class MenuCommand
{
        // Internal state.
        private EventHandler handler;
        private CommandID command;
        private int oleStatus;

        // Flag bits in "oleStatus".
        private const int OleStatus_Supported = 1;
        private const int OleStatus_Enabled   = 2;
        private const int OleStatus_Checked   = 4;
        private const int OleStatus_Invisible = 16;

        // Constructor.
        public MenuCommand(EventHandler handler, CommandID command)
                        {
                                this.handler = handler;
                                this.command = command;
                                this.oleStatus = OleStatus_Supported |
                                                                 
OleStatus_Enabled;
                        }

        // Get or set this object's properties.
        public virtual bool Checked
                        {
                                get
                                {
                                        return ((oleStatus & OleStatus_Checked) 
!= 0);
                                }
                                set
                                {
                                        int newStatus;
                                        if(value)
                                        {
                                                newStatus = oleStatus | 
OleStatus_Checked;
                                        }
                                        else
                                        {
                                                newStatus = oleStatus & 
~OleStatus_Checked;
                                        }
                                        if(newStatus != oleStatus)
                                        {
                                                oleStatus = newStatus;
                                                
OnCommandChanged(EventArgs.Empty);
                                        }
                                }
                        }
        public virtual CommandID CommandID
                        {
                                get
                                {
                                        return command;
                                }
                        }
        public virtual bool Enabled
                        {
                                get
                                {
                                        return ((oleStatus & OleStatus_Enabled) 
!= 0);
                                }
                                set
                                {
                                        int newStatus;
                                        if(value)
                                        {
                                                newStatus = oleStatus | 
OleStatus_Enabled;
                                        }
                                        else
                                        {
                                                newStatus = oleStatus & 
~OleStatus_Enabled;
                                        }
                                        if(newStatus != oleStatus)
                                        {
                                                oleStatus = newStatus;
                                                
OnCommandChanged(EventArgs.Empty);
                                        }
                                }
                        }
        public virtual int OleStatus
                        {
                                get
                                {
                                        return oleStatus;
                                }
                        }
        public virtual bool Supported
                        {
                                get
                                {
                                        return ((oleStatus & 
OleStatus_Supported) != 0);
                                }
                                set
                                {
                                        int newStatus;
                                        if(value)
                                        {
                                                newStatus = oleStatus | 
OleStatus_Supported;
                                        }
                                        else
                                        {
                                                newStatus = oleStatus & 
~OleStatus_Supported;
                                        }
                                        if(newStatus != oleStatus)
                                        {
                                                oleStatus = newStatus;
                                                
OnCommandChanged(EventArgs.Empty);
                                        }
                                }
                        }
        public virtual bool Visible
                        {
                                get
                                {
                                        return ((oleStatus & 
OleStatus_Invisible) == 0);
                                }
                                set
                                {
                                        int newStatus;
                                        if(!value)
                                        {
                                                newStatus = oleStatus | 
OleStatus_Invisible;
                                        }
                                        else
                                        {
                                                newStatus = oleStatus & 
~OleStatus_Invisible;
                                        }
                                        if(newStatus != oleStatus)
                                        {
                                                oleStatus = newStatus;
                                                
OnCommandChanged(EventArgs.Empty);
                                        }
                                }
                        }

        // Invoke the menu command.
        public virtual void Invoke()
                        {
                                if(handler != null)
                                {
                                        handler(this, EventArgs.Empty);
                                }
                        }

        // Convert this object into a string.
        public override String ToString()
                        {
                                StringBuilder builder = new StringBuilder();
                                builder.Append(command.ToString());
                                builder.Append(" : ");
                                bool haveItem = false;
                                if((oleStatus & OleStatus_Supported) != 0)
                                {
                                        builder.Append("Supported");
                                        haveItem = true;
                                }
                                if((oleStatus & OleStatus_Enabled) != 0)
                                {
                                        if(!haveItem)
                                        {
                                                builder.Append('|');
                                        }
                                        builder.Append("Enabled");
                                        haveItem = true;
                                }
                                if((oleStatus & OleStatus_Invisible) == 0)
                                {
                                        if(!haveItem)
                                        {
                                                builder.Append('|');
                                        }
                                        builder.Append("Visible");
                                        haveItem = true;
                                }
                                if((oleStatus & OleStatus_Checked) != 0)
                                {
                                        if(!haveItem)
                                        {
                                                builder.Append('|');
                                        }
                                        builder.Append("Checked");
                                        haveItem = true;
                                }
                                return builder.ToString();
                        }

        // Event that is emitted when the command is changed.
        public event EventHandler CommandChanged;

        // Emit the "CommandChanged" event.
        protected virtual void OnCommandChanged(EventArgs e)
                        {
                                if(CommandChanged != null)
                                {
                                        CommandChanged(this, e);
                                }
                        }

}; // class MenuCommand

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * SelectionTypes.cs - Implementation of the
 *              "System.ComponentModel.Design.SelectionTypes" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[Flags]
[ComVisible(true)]
public enum SelectionTypes
{
        Normal          = 0x0001,
        Replace         = 0x0002,
        MouseDown       = 0x0004,
        MouseUp         = 0x0008,
        Click           = 0x0010,
        Valid           = 0x001F

}; // enum SelectionTypes

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ServiceContainer.cs - Implementation of the
 *              "System.ComponentModel.Design.ServiceContainer" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Collections;

public sealed class ServiceContainer : IServiceContainer, IServiceProvider
{
        // Internal state.
        private IServiceProvider parentProvider;
        private Hashtable table;

        // Constructors.
        public ServiceContainer() : this(null) {}
        public ServiceContainer(IServiceProvider parentProvider)
                        {
                                this.parentProvider = parentProvider;
                                this.table = new Hashtable();
                        }

        // Add a service to this container.
        public void AddService(Type serviceType, Object serviceInstance)
                        {
                                AddService(serviceType, serviceInstance, false);
                        }
        public void AddService(Type serviceType, ServiceCreatorCallback 
callback)
                        {
                                AddService(serviceType, callback, false);
                        }
        public void AddService
                                (Type serviceType, Object serviceInstance, bool 
promote)
                        {
                                // Validate the parameters.
                                if(serviceType == null)
                                {
                                        throw new 
ArgumentNullException("serviceType");
                                }
                                if(serviceInstance == null)
                                {
                                        throw new 
ArgumentNullException("serviceInstance");
                                }

                                // Promote the service to the parent if 
necessary.
                                if(promote && parentProvider != null)
                                {
                                        IServiceContainer parent;
                                        parent = 
(IServiceContainer)(parentProvider.GetService
                                                (typeof(IServiceContainer)));
                                        if(parent != null)
                                        {
                                                parent.AddService
                                                        (serviceType, 
serviceInstance, promote);
                                                return;
                                        }
                                }

                                // Add the service to this container.
                                table[serviceType] = serviceInstance;
                        }
        public void AddService
                                (Type serviceType, ServiceCreatorCallback 
callback,
                                 bool promote)
                        {
                                // Validate the parameters.
                                if(serviceType == null)
                                {
                                        throw new 
ArgumentNullException("serviceType");
                                }
                                if(callback == null)
                                {
                                        throw new 
ArgumentNullException("callback");
                                }

                                // Promote the service to the parent if 
necessary.
                                if(promote && parentProvider != null)
                                {
                                        IServiceContainer parent;
                                        parent = 
(IServiceContainer)(parentProvider.GetService
                                                (typeof(IServiceContainer)));
                                        if(parent != null)
                                        {
                                                parent.AddService(serviceType, 
callback, promote);
                                                return;
                                        }
                                }

                                // Add the service to this container.
                                table[serviceType] = callback;
                        }

        // Remove a service from this container.
        public void RemoveService(Type serviceType)
                        {
                                RemoveService(serviceType, false);
                        }
        public void RemoveService(Type serviceType, bool promote)
                        {
                                // Validate the parameters.
                                if(serviceType == null)
                                {
                                        throw new 
ArgumentNullException("serviceType");
                                }

                                // Promote the removal to the parent if 
necessary.
                                if(promote && parentProvider != null)
                                {
                                        IServiceContainer parent;
                                        parent = 
(IServiceContainer)(parentProvider.GetService
                                                (typeof(IServiceContainer)));
                                        if(parent != null)
                                        {
                                                
parent.RemoveService(serviceType, promote);
                                                return;
                                        }
                                }

                                // Remove the service from this container.
                                table.Remove(serviceType);
                        }

        // Get a particular service.
        public Object GetService(Type serviceType)
                        {
                                if(serviceType == typeof(IServiceContainer))
                                {
                                        return this;
                                }
                                else
                                {
                                        Object service = table[serviceType];
                                        if(service == null && parentProvider != 
null)
                                        {
                                                service = 
parentProvider.GetService(serviceType);
                                        }
                                        if(service is ServiceCreatorCallback)
                                        {
                                                ServiceCreatorCallback callback;
                                                callback = 
((ServiceCreatorCallback)service);
                                                return callback(this, 
serviceType);
                                        }
                                        return service;
                                }
                        }

}; // class ServiceContainer

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * StandardCommands.cs - Implementation of the
 *              "System.ComponentModel.Design.StandardCommands" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public class StandardCommands
{
        // Standard command identifiers.
        public static readonly CommandID AlignBottom;
        public static readonly CommandID AlignHorizontalCenters;
        public static readonly CommandID AlignLeft;
        public static readonly CommandID AlignRight;
        public static readonly CommandID AlignToGrid;
        public static readonly CommandID AlignTop;
        public static readonly CommandID AlignVerticalCenters;
        public static readonly CommandID ArrangeBottom;
        public static readonly CommandID ArrangeRight;
        public static readonly CommandID BringForward;
        public static readonly CommandID BringToFront;
        public static readonly CommandID CenterHorizontally;
        public static readonly CommandID CenterVertically;
        public static readonly CommandID Copy;
        public static readonly CommandID Cut;
        public static readonly CommandID Delete;
        public static readonly CommandID Group;
        public static readonly CommandID HorizSpaceConcatenate;
        public static readonly CommandID HorizSpaceDecrease;
        public static readonly CommandID HorizSpaceIncrease;
        public static readonly CommandID HorizSpaceMakeEqual;
        public static readonly CommandID Paste;
        public static readonly CommandID Properties;
        public static readonly CommandID Redo;
        public static readonly CommandID MultiLevelRedo;
        public static readonly CommandID SelectAll;
        public static readonly CommandID SendBackward;
        public static readonly CommandID SendToBack;
        public static readonly CommandID SizeToControl;
        public static readonly CommandID SizeToControlHeight;
        public static readonly CommandID SizeToControlWidth;
        public static readonly CommandID SizeToFit;
        public static readonly CommandID SizeToGrid;
        public static readonly CommandID SnapToGrid;
        public static readonly CommandID TabOrder;
        public static readonly CommandID Undo;
        public static readonly CommandID MultiLevelUndo;
        public static readonly CommandID Ungroup;
        public static readonly CommandID VertSpaceConcatenate;
        public static readonly CommandID VertSpaceDecrease;
        public static readonly CommandID VertSpaceIncrease;
        public static readonly CommandID VertSpaceMakeEqual;
        public static readonly CommandID ShowGrid;
        public static readonly CommandID ViewGrid;
        public static readonly CommandID Replace;
        public static readonly CommandID PropertiesWindow;
        public static readonly CommandID LockControls;
        public static readonly CommandID F1Help;
        public static readonly CommandID VerbFirst;
        public static readonly CommandID VerbLast;
        public static readonly CommandID ArrangeIcons;
        public static readonly CommandID LineupIcons;
        public static readonly CommandID ShowLargeIcons;

        // Initialize the command identifiers.
        static StandardCommands()
                        {
                                Guid guid1;
                                Guid guid2;

                                guid1 = new 
Guid("{5efc7975-14bc-11cf-9b2b-00aa00573819}");
                                guid2 = new 
Guid("{74d21313-2aee-11d1-8bfb-00a0c90f26f7}");

                                AlignBottom                                     
= new CommandID(guid1, 1);
                                AlignHorizontalCenters          = new 
CommandID(guid1, 2);
                                AlignLeft                                       
= new CommandID(guid1, 3);
                                AlignRight                                      
= new CommandID(guid1, 4);
                                AlignToGrid                                     
= new CommandID(guid1, 5);
                                AlignTop                                        
= new CommandID(guid1, 6);
                                AlignVerticalCenters            = new 
CommandID(guid1, 7);
                                ArrangeBottom                           = new 
CommandID(guid1, 8);
                                ArrangeRight                            = new 
CommandID(guid1, 9);
                                BringForward                            = new 
CommandID(guid1, 10);
                                BringToFront                            = new 
CommandID(guid1, 11);
                                CenterHorizontally                      = new 
CommandID(guid1, 12);
                                CenterVertically                        = new 
CommandID(guid1, 13);
                                Copy                                            
= new CommandID(guid1, 15);
                                Cut                                             
        = new CommandID(guid1, 16);
                                Delete                                          
= new CommandID(guid1, 17);
                                Group                                           
= new CommandID(guid1, 20);
                                HorizSpaceConcatenate           = new 
CommandID(guid1, 21);
                                HorizSpaceDecrease                      = new 
CommandID(guid1, 22);
                                HorizSpaceIncrease                      = new 
CommandID(guid1, 23);
                                HorizSpaceMakeEqual                     = new 
CommandID(guid1, 24);
                                Paste                                           
= new CommandID(guid1, 26);
                                Properties                                      
= new CommandID(guid1, 28);
                                Redo                                            
= new CommandID(guid1, 29);
                                MultiLevelRedo                          = new 
CommandID(guid1, 30);
                                SelectAll                                       
= new CommandID(guid1, 31);
                                SendBackward                            = new 
CommandID(guid1, 32);
                                SendToBack                                      
= new CommandID(guid1, 33);
                                SizeToControl                           = new 
CommandID(guid1, 35);
                                SizeToControlHeight                     = new 
CommandID(guid1, 36);
                                SizeToControlWidth                      = new 
CommandID(guid1, 37);
                                SizeToFit                                       
= new CommandID(guid1, 38);
                                SizeToGrid                                      
= new CommandID(guid1, 39);
                                SnapToGrid                                      
= new CommandID(guid1, 40);
                                TabOrder                                        
= new CommandID(guid1, 41);
                                Undo                                            
= new CommandID(guid1, 43);
                                MultiLevelUndo                          = new 
CommandID(guid1, 44);
                                Ungroup                                         
= new CommandID(guid1, 45);
                                VertSpaceConcatenate            = new 
CommandID(guid1, 46);
                                VertSpaceDecrease                       = new 
CommandID(guid1, 47);
                                VertSpaceIncrease                       = new 
CommandID(guid1, 48);
                                VertSpaceMakeEqual                      = new 
CommandID(guid1, 49);
                                ShowGrid                                        
= new CommandID(guid1, 103);
                                ViewGrid                                        
= new CommandID(guid1, 125);
                                Replace                                         
= new CommandID(guid1, 230);
                                PropertiesWindow                        = new 
CommandID(guid1, 235);
                                LockControls                            = new 
CommandID(guid1, 369);
                                F1Help                                          
= new CommandID(guid1, 377);
                                VerbFirst                                       
= new CommandID(guid2, 0x2000);
                                VerbLast                                        
= new CommandID(guid2, 0x2100);
                                ArrangeIcons                            = new 
CommandID(guid2, 0x300A);
                                LineupIcons                                     
= new CommandID(guid2, 0x300B);
                                ShowLargeIcons                          = new 
CommandID(guid2, 0x300C);
                        }

}; // class StandardCommands

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * StandardToolWindows.cs - Implementation of the
 *              "System.ComponentModel.Design.StandardToolWindows" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

public class StandardToolWindows
{
        // Standard tool window identifier.
        public static readonly Guid ObjectBrowser
                        = new Guid("{970d9861-ee83-11d0-a778-00a0c91110c3}");
        public static readonly Guid OutputWindow
                        = new Guid("{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}");
        public static readonly Guid ProjectExplorer
                        = new Guid("{3ae79031-e1bc-11d0-8f78-00a0c9110057}");
        public static readonly Guid PropertyBrowser
                        = new Guid("{eefa5220-e298-11d0-8f78-00a0c9110057}");
        public static readonly Guid RelatedLinks
                        = new Guid("{66dba47c-61df-11d2-aa79-00c04f990343}");
        public static readonly Guid ServerExplorer
                        = new Guid("{74946827-37a0-11d2-a273-00c04f8ef4ff}");
        public static readonly Guid TaskList
                        = new Guid("{4a9b7e51-aa16-11d0-a8c5-00a0c921a4d2}");
        public static readonly Guid Toolbox
                        = new Guid("{b1e99781-ab81-11d0-b683-00aa00a3ee26}");

}; // class StandardToolWindows

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

--- NEW FILE ---
/*
 * ViewTechnology.cs - Implementation of the
 *              "System.ComponentModel.Design.ViewTechnology" class.
 *
 * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace System.ComponentModel.Design
{

#if !ECMA_COMPAT

using System.Runtime.InteropServices;

[ComVisible(true)]
public enum ViewTechnology
{
        Passthrough             = 0,
        WindowsForms    = 1

}; // enum ViewTechnology

#endif // !ECMA_COMPAT

}; // namespace System.ComponentModel.Design

Index: DesignerTransaction.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/DesignerTransaction.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** DesignerTransaction.cs      10 Jan 2003 23:33:31 -0000      1.2
--- DesignerTransaction.cs      24 May 2003 00:42:35 -0000      1.3
***************
*** 1,8 ****
  /*
!  * DesignerTransaction.cs - Implementation of 
!  *                                                    
"System.ComponentModel.Design.DesignerTransaction" 
   *
!  * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
!  * Copyright (C) 2002  Free Software Foundation,Inc.
   *
   * This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  /*
!  * DesignerTransaction.cs - Implementation of the
!  *            "System.ComponentModel.Design.DesignerTransaction" class.
   *
!  * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
***************
*** 21,75 ****
   */
  
- using System;
- 
  namespace System.ComponentModel.Design
  {
  #if !ECMA_COMPAT
!       public abstract class DesignerTransaction: IDisposable
!       {
!               [TODO]
!               public DesignerTransaction()
!               {
!                       throw new NotImplementedException(".ctor");
!               }
! 
!               [TODO]
!               public DesignerTransaction(System.String description)
!               {
!                       throw new NotImplementedException(".ctor");
!               }
! 
!               public abstract void Dispose();
!       
!               void IDisposable.Dispose()
!               {
!                       this.Dispose();
!               }
! 
!               public bool Canceled 
!               {
!                       get
!                       {
!                               throw new NotImplementedException("Canceled");
!                       }
!               }
! 
!               public bool Committed 
!               {
!                       get
!                       {
!                               throw new NotImplementedException("Committed");
!                       }
!               }
! 
!               public String Description 
!               {
!                       get
!                       {
!                               throw new 
NotImplementedException("Description");
!                       }
!               }
! 
!       }
! #endif
! }//namespace
--- 20,117 ----
   */
  
  namespace System.ComponentModel.Design
  {
+ 
  #if !ECMA_COMPAT
! 
! public abstract class DesignerTransaction : IDisposable
! {
!       // Internal state.
!       private String description;
!       private bool canceled;
!       private bool committed;
! 
!       // Constructors.
!       public DesignerTransaction() {}
!       public DesignerTransaction(String description)
!                       {
!                               this.description = description;
!                       }
! 
!       // Destructor.
!       ~DesignerTransaction()
!                       {
!                               Dispose(false);
!                       }
! 
!       // Determine if this transaction has been canceled.
!       public bool Canceled
!                       {
!                               get
!                               {
!                                       return canceled;
!                               }
!                       }
! 
!       // Determine if this transaction has been committed.
!       public bool Committed
!                       {
!                               get
!                               {
!                                       return committed;
!                               }
!                       }
! 
!       // Get the description of this transaction.
!       public String Description
!                       {
!                               get
!                               {
!                                       return description;
!                               }
!                       }
! 
!       // Cancel the transaction.
!       public void Cancel()
!                       {
!                               if(!canceled && !committed)
!                               {
!                                       canceled = true;
!                                       GC.SuppressFinalize(this);
!                                       OnCancel();
!                               }
!                       }
! 
!       // Commit the transaction.
!       public void Commit()
!                       {
!                               if(!canceled && !committed)
!                               {
!                                       committed = true;
!                                       GC.SuppressFinalize(this);
!                                       OnCommit();
!                               }
!                       }
! 
!       // Dispose of this object.
!       void IDisposable.Dispose()
!                       {
!                               Dispose(true);
!                               GC.SuppressFinalize(this);
!                       }
!       protected virtual void Dispose(bool disposing)
!                       {
!                               Cancel();
!                       }
! 
!       // Raise the cancel event.
!       protected abstract void OnCancel();
! 
!       // Raise the commit event.
!       protected abstract void OnCommit();
! 
! }; // class DesignerTransaction
! 
! #endif // !ECMA_COMPAT
! 
! }; // namespace System.ComponentModel.Design

Index: IDesigner.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/IDesigner.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** IDesigner.cs        7 Nov 2002 11:25:19 -0000       1.1
--- IDesigner.cs        24 May 2003 00:42:35 -0000      1.2
***************
*** 1,7 ****
  /*
   * IDesigner.cs - Implementation of the
!  *            "System.ComponentModel.Design.IDesigner" interface.
   *
!  * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  /*
   * IDesigner.cs - Implementation of the
!  *            "System.ComponentModel.Design.IDesigner" class.
   *
!  * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
***************
*** 25,32 ****
  #if !ECMA_COMPAT
  
! [TODO]
  public interface IDesigner : IDisposable
  {
!       // TODO
  
  }; // interface IDesigner
--- 25,44 ----
  #if !ECMA_COMPAT
  
! using System.Runtime.InteropServices;
! 
! [ComVisible(true)]
  public interface IDesigner : IDisposable
  {
!       // Get the component that this designer is using.
!       IComponent Component { get; }
! 
!       // Get the verbs that were supplied by the designer.
!       DesignerVerbCollection Verbs { get; }
! 
!       // Perform the designer's default action.
!       void DoDefaultAction();
! 
!       // Initialize the designer with a specified component.
!       void Initialize(IComponent component);
  
  }; // interface IDesigner

Index: IDesignerHost.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/IDesignerHost.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** IDesignerHost.cs    26 Dec 2002 10:40:37 -0000      1.1
--- IDesignerHost.cs    24 May 2003 00:42:35 -0000      1.2
***************
*** 1,8 ****
  /*
!  * IDesignerHost.cs - Implementation of 
!  *                                            
"System.ComponentModel.Design.IDesignerHost" 
   *
!  * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
!  * Copyright (C) 2002  Free Software Foundation,Inc.
   *
   * This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  /*
!  * IDesignerHost.cs - Implementation of the
!  *            "System.ComponentModel.Design.IDesignerHost" class.
   *
!  * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
***************
*** 21,58 ****
   */
  
- using System;
- 
  namespace System.ComponentModel.Design
  {
  #if !ECMA_COMPAT
-       public interface IDesignerHost: IServiceProvider, IServiceContainer
-       {
-               void Activate();
  
!               IComponent CreateComponent(Type componentClass);
  
!               IComponent CreateComponent(Type componentClass, String name);
  
!               DesignerTransaction CreateTransaction();
!               
!               DesignerTransaction CreateTransaction(String description);
!               
!               IDesigner GetDesigner(IComponent component);
  
!               Type GetType(String typeName);
  
!               IContainer Container { get; }
  
!               bool InTransaction { get; }
  
!               bool Loading { get; }
  
!               IComponent RootComponent { get; }
  
!               String RootComponentClassName { get; }
  
!               String TransactionDescription { get; }
  
!       }
! #endif
! }//namespace
--- 20,95 ----
   */
  
  namespace System.ComponentModel.Design
  {
+ 
  #if !ECMA_COMPAT
  
! using System.Runtime.InteropServices;
! 
! [ComVisible(true)]
! public interface IDesignerHost : IServiceContainer, IServiceProvider
! {
!       // Get the container for this host.
!       IContainer Container { get; }
! 
!       // Determine if the designer host is currently in a transaction.
!       bool InTransaction { get; }
! 
!       // Determine if the designer host is current loading a document.
!       bool Loading { get; }
! 
!       // Get the root component for the design.
!       IComponent RootComponent { get; }
! 
!       // Get the class name for the root component.
!       String RootComponentClassName { get; }
! 
!       // Get a description of the current transaction.
!       String TransactionDescription { get; }
! 
!       // Activate the designer.
!       void Activate();
! 
!       // Create a new component and add it to the design document.
!       IComponent CreateComponent(Type componentClass);
!       IComponent CreateComponent(Type componentClass, String name);
! 
!       // Create a new transaction.
!       DesignerTransaction CreateTransaction();
!       DesignerTransaction CreateTransaction(String description);
! 
!       // Destroy a component and remove it from the designer container.
!       void DestroyComponent(IComponent component);
! 
!       // Get the designer associated with a specified component.
!       IDesigner GetDesigner(IComponent component);
! 
!       // Get a type.
!       Type GetType(String typeName);
  
!       // Event that is emitted when the designer is activated.
!       event EventHandler Activated;
  
!       // Event that is emitted when the designer is deactivated.
!       event EventHandler Deactivated;
  
!       // Event that is emitted when the document load completes.
!       event EventHandler LoadComplete;
  
!       // Event that is emitted when a transaction is closed.
!       event DesignerTransactionCloseEventHandler TransactionClosed;
  
!       // Event that is emitted when a transaction is closing.
!       event DesignerTransactionCloseEventHandler TransactionClosing;
  
!       // Event that is emitted when a new transaction is opened.
!       event EventHandler TransactionOpened;
  
!       // Event that is emitted when a new transaction is opening.
!       event EventHandler TransactionOpening;
  
! }; // interface IDesignerHost
  
! #endif // !ECMA_COMPAT
  
! }; // namespace System.ComponentModel.Design

Index: IServiceContainer.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/IServiceContainer.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** IServiceContainer.cs        10 Jan 2003 23:33:31 -0000      1.2
--- IServiceContainer.cs        24 May 2003 00:42:35 -0000      1.3
***************
*** 1,8 ****
  /*
!  * IServiceContainer.cs - Implementation of 
!  *                                                    
"System.ComponentModel.Design.IServiceContainer" 
   *
!  * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
!  * Copyright (C) 2002  Free Software Foundation,Inc.
   *
   * This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  /*
!  * IServiceContainer.cs - Implementation of the
!  *            "System.ComponentModel.Design.IServiceContainer" class.
   *
!  * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
***************
*** 21,44 ****
   */
  
- using System;
- 
  namespace System.ComponentModel.Design
  {
  #if !ECMA_COMPAT
!       public interface IServiceContainer: IServiceProvider
!       {
!               void AddService(Type serviceType,Object serviceInstance);
!               
!               void AddService(Type serviceType, ServiceCreatorCallback 
callback);
!               
!               void AddService(Type serviceType, Object serviceInstance, bool 
promote);
!               
!               void AddService(Type serviceType, ServiceCreatorCallback 
callback, 
!               bool promote);
!               
!               void RemoveService(Type serviceType);
! 
!               void RemoveService(Type serviceType, bool promote);
!       }
! #endif
! }//namespace
--- 20,47 ----
   */
  
  namespace System.ComponentModel.Design
  {
+ 
  #if !ECMA_COMPAT
! 
! using System.Runtime.InteropServices;
! 
! [ComVisible(true)]
! public interface IServiceContainer : IServiceProvider
! {
!       // Add a service to this container.
!       void AddService(Type serviceType, Object serviceInstance);
!       void AddService(Type serviceType, ServiceCreatorCallback callback);
!       void AddService(Type serviceType, Object serviceInstance, bool promote);
!       void AddService
!                       (Type serviceType, ServiceCreatorCallback callback, 
bool promote);
! 
!       // Remove a service from this container.
!       void RemoveService(Type serviceType);
!       void RemoveService(Type serviceType, bool promote);
! 
! }; // interface IServiceContainer
! 
! #endif // !ECMA_COMPAT
! 
! }; // namespace System.ComponentModel.Design

Index: Makefile
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** Makefile    26 Dec 2002 10:40:37 -0000      1.1
--- Makefile    24 May 2003 00:42:35 -0000      1.2
***************
*** 1,3 ****
  
  all:
!       (cd ..;make)
--- 1,4 ----
  
  all:
!       (cd ../..;make)
!       (cd ../..;make phase-two)

Index: ServiceCreatorCallback.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/System/ComponentModel/Design/ServiceCreatorCallback.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ServiceCreatorCallback.cs   26 Dec 2002 10:40:37 -0000      1.1
--- ServiceCreatorCallback.cs   24 May 2003 00:42:35 -0000      1.2
***************
*** 1,8 ****
  /*
!  * ServiceCreatorCallback.cs - Implementation of 
!  *                                    
"System.ComponentModel.Design.ServiceCreatorCallback" 
   *
!  * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
!  * Copyright (C) 2002  Free Software Foundation,Inc.
   *
   * This program is free software; you can redistribute it and/or modify
--- 1,7 ----
  /*
!  * ServiceCreatorCallback.cs - Implementation of the
!  *                    "System.ComponentModel.Design.ServiceCreatorCallback" 
class.
   *
!  * Copyright (C) 2003  Southern Storm Software, Pty Ltd.
   *
   * This program is free software; you can redistribute it and/or modify
***************
*** 21,31 ****
   */
  
- using System;
- 
  namespace System.ComponentModel.Design
  {
  #if !ECMA_COMPAT
!       public delegate Object ServiceCreatorCallback (IServiceContainer 
container,
!                                                                               
                        Type serviceType);
! #endif
! }//namespace
--- 20,35 ----
   */
  
  namespace System.ComponentModel.Design
  {
+ 
  #if !ECMA_COMPAT
! 
! using System.Runtime.InteropServices;
! 
! [ComVisible(true)]
! public delegate Object ServiceCreatorCallback
!                       (IServiceContainer container, Type serviceType);
! 
! #endif // !ECMA_COMPAT
! 
! }; // namespace System.ComponentModel.Design





reply via email to

[Prev in Thread] Current Thread [Next in Thread]