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.Windows.Forms .cvsignore,NONE


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms .cvsignore,NONE,1.1 AccessibleEvents.cs,NONE,1.1 AccessibleObject.cs,NONE,1.1 AccessibleRole.cs,NONE,1.1 AnchorStyles.cs,NONE,1.1 Application.cs,NONE,1.1 ApplicationContext.cs,NONE,1.1 BindingContext.cs,NONE,1.1 BorderStyle.cs,NONE,1.1 BoundsSpecified.cs,NONE,1.1 Button.cs,NONE,1.1 ButtonBase.cs,NONE,1.1 CheckBox.cs,NONE,1.1 CheckState.cs,NONE,1.1 ColumnClickEventArgs.cs,NONE,1.1 ColumnClickEventHandler.cs,NONE,1.1 ColumnHeaderStyle.cs,NONE,1.1 ComboBoxStyle.cs,NONE,1.1 ContextMenu.cs,NONE,1.1 Control.cs,NONE,1.1 ControlBindingsCollection.cs,NONE,1.1 ControlEventArgs.cs,NONE,1.1 ControlEventHandler.cs,NONE,1.1 ControlStyles.cs,NONE,1.1 ConvertEventArgs.cs,NONE,1.1 ConvertEventHandler.cs,NONE,1.1 CreateParams.cs,NONE,1.1 Cursor.cs,NONE,1.1 DialogResult.cs,NONE,1.1 DockStyle.cs,NONE,1.1 DragAction.cs,NONE,1.1 DragDropEffects.cs,NONE,1.1 DragEventArgs.cs,NONE,1.1 DragEventHandler.cs,NONE,1.1 EventId.cs,NONE,1.1 Form.cs,NONE,1.1 FormBorderStyle.cs,NONE,1.1 FormWindowState.cs,NONE,1.1 Forms.build,NONE,1.1 GiveFeedbackEventArgs.cs,NONE,1.1 GiveFeedbackEventHandler.cs,NONE,1.1 HelpEventArgs.cs,NONE,1.1 HelpEventHandler.cs,NONE,1.1 HorizontalAlignment.cs,NONE,1.1 IContainerControl.cs,NONE,1.1 IDataObject.cs,NONE,1.1 IMessageFilter.cs,NONE,1.1 IWin32Window.cs,NONE,1.1 ImeMode.cs,NONE,1.1 InputLanguage.cs,NONE,1.1 InvalidateEventArgs.cs,NONE,1.1 InvalidateEventHandler.cs,NONE,1.1 ItemActivation.cs,NONE,1.1 ItemChangedEventArgs.cs,NONE,1.1 ItemChangedEventHandler.cs,NONE,1.1 ItemCheckEventArgs.cs,NONE,1.1 ItemCheckEventHandler.cs,NONE,1.1 KeyEventArgs.cs,NONE,1.1 KeyEventHandler.cs,NONE,1.1 KeyPressEventArgs.cs,NONE,1.1 KeyPressEventHandler.cs,NONE,1.1 Keys.cs,NONE,1.1 Label.cs,NONE,1.1 LayoutEventArgs.cs,NONE,1.1 LayoutEventHandler.cs,NONE,1.1 LeftRightAlignment.cs,NONE,1.1 Makefile.am,NONE,1.1 Message.cs,NONE,1.1 MessageBoxButtons.cs,NONE,1.1 MessageBoxDefaultButton.cs,NONE,1.1 MessageBoxIcon.cs,NONE,1.1 MouseButtons.cs,NONE,1.1 MouseEventArgs.cs,NONE,1.1 MouseEventHandler.cs,NONE,1.1 Orientation.cs,NONE,1.1 PaintEventArgs.cs,NONE,1.1 PaintEventHandler.cs,NONE,1.1 PictureBoxSizeMode.cs,NONE,1.1QueryAccessibilityHelpArgs.cs,NONE,1.1 QueryAccessibilityHelpEventHandler.cs,NONE,1.1 QueryContinueDragEventArgs.cs,NONE,1.1 QueryContinueDragEventHandler.cs,NONE,1.1 RightToLeft.cs,NONE,1.1 S.cs,NONE,1.1 ScrollBars.cs,NONE,1.1 TODOAttribute.cs,NONE,1.1 ThreadExceptionEventArgs.cs,NONE,1.1 ThreadExceptionEventHandler.cs,NONE,1.1 ToolBarButton.cs,NONE,1.1 ToolBarButtonClickEventArgs.cs,NONE,1.1 ToolBarButtonClickEventHandler.cs,NONE,1.1 ToolBarButtonStyle.cs,NONE,1.1 TreeNode.cs,NONE,1.1 TreeViewAction.cs,NONE,1.1 TreeViewCancelEventArgs.cs,NONE,1.1 TreeViewCancelEventHandler.cs,NONE,1.1 TreeViewEventArgs.cs,NONE,1.1 TreeViewEventHandler.cs,NONE,1.1 UICues.cs,NONE,1.1 UICuesEventArgs.cs,NONE,1.1 UICuesEventHandler.cs,NONE,1.1 View.cs,NONE,1.1Win32Constants.cs,NONE,1.1
Date: Wed, 11 Jun 2003 03:07:21 -0400

Update of /cvsroot/dotgnu-pnet/pnetlib/System.Windows.Forms
In directory subversions:/tmp/cvs-serv17639/System.Windows.Forms

Added Files:
        .cvsignore AccessibleEvents.cs AccessibleObject.cs 
        AccessibleRole.cs AnchorStyles.cs Application.cs 
        ApplicationContext.cs BindingContext.cs BorderStyle.cs 
        BoundsSpecified.cs Button.cs ButtonBase.cs CheckBox.cs 
        CheckState.cs ColumnClickEventArgs.cs 
        ColumnClickEventHandler.cs ColumnHeaderStyle.cs 
        ComboBoxStyle.cs ContextMenu.cs Control.cs 
        ControlBindingsCollection.cs ControlEventArgs.cs 
        ControlEventHandler.cs ControlStyles.cs ConvertEventArgs.cs 
        ConvertEventHandler.cs CreateParams.cs Cursor.cs 
        DialogResult.cs DockStyle.cs DragAction.cs DragDropEffects.cs 
        DragEventArgs.cs DragEventHandler.cs EventId.cs Form.cs 
        FormBorderStyle.cs FormWindowState.cs Forms.build 
        GiveFeedbackEventArgs.cs GiveFeedbackEventHandler.cs 
        HelpEventArgs.cs HelpEventHandler.cs HorizontalAlignment.cs 
        IContainerControl.cs IDataObject.cs IMessageFilter.cs 
        IWin32Window.cs ImeMode.cs InputLanguage.cs 
        InvalidateEventArgs.cs InvalidateEventHandler.cs 
        ItemActivation.cs ItemChangedEventArgs.cs 
        ItemChangedEventHandler.cs ItemCheckEventArgs.cs 
        ItemCheckEventHandler.cs KeyEventArgs.cs KeyEventHandler.cs 
        KeyPressEventArgs.cs KeyPressEventHandler.cs Keys.cs Label.cs 
        LayoutEventArgs.cs LayoutEventHandler.cs LeftRightAlignment.cs 
        Makefile.am Message.cs MessageBoxButtons.cs 
        MessageBoxDefaultButton.cs MessageBoxIcon.cs MouseButtons.cs 
        MouseEventArgs.cs MouseEventHandler.cs Orientation.cs 
        PaintEventArgs.cs PaintEventHandler.cs PictureBoxSizeMode.cs 
        QueryAccessibilityHelpArgs.cs 
        QueryAccessibilityHelpEventHandler.cs 
        QueryContinueDragEventArgs.cs QueryContinueDragEventHandler.cs 
        RightToLeft.cs S.cs ScrollBars.cs TODOAttribute.cs 
        ThreadExceptionEventArgs.cs ThreadExceptionEventHandler.cs 
        ToolBarButton.cs ToolBarButtonClickEventArgs.cs 
        ToolBarButtonClickEventHandler.cs ToolBarButtonStyle.cs 
        TreeNode.cs TreeViewAction.cs TreeViewCancelEventArgs.cs 
        TreeViewCancelEventHandler.cs TreeViewEventArgs.cs 
        TreeViewEventHandler.cs UICues.cs UICuesEventArgs.cs 
        UICuesEventHandler.cs View.cs Win32Constants.cs 
Log Message:


Initial check-in of a "System.Windows.Forms" implementation (only "Control"
works right now); changes to Xsharp and System.Drawing to support Forms;
new "FormsHello" sample.


--- NEW FILE ---
Makefile
Makefile.in
.deps
*.dll

--- NEW FILE ---
/*
 * AccessibleEvents.cs - Implementation of the
 *              "System.Windows.Forms.AccessibleEvents" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public enum AccessibleEvents
{
        SystemSound                                     = 1,
        SystemAlert                                     = 2,
        SystemForeground                        = 3,
        SystemMenuStart                         = 4,
        SystemMenuEnd                           = 5,
        SystemMenuPopupStart            = 6,
        SystemMenuPopupEnd                      = 7,
        SystemCaptureStart                      = 8,
        SystemCaptureEnd                        = 9,
        SystemMoveSizeStart                     = 10,
        SystemMoveSizeEnd                       = 11,
        SystemContextHelpStart          = 12,
        SystemContextHelpEnd            = 13,
        SystemDragDropStart                     = 14,
        SystemDragDropEnd                       = 15,
        SystemDialogStart                       = 16,
        SystemDialogEnd                         = 17,
        SystemScrollingStart            = 18,
        SystemScrollingEnd                      = 19,
        SystemSwitchStart                       = 20,
        SystemSwitchEnd                         = 21,
        SystemMinimizeStart                     = 22,
        SystemMinimizeEnd                       = 23,
        DefaultActionChange                     = 32765,
        Create                                          = 32768,
        Destroy                                         = 32769,
        Show                                            = 32770,
        Hide                                            = 32771,
        Reorder                                         = 32772,
        Focus                                           = 32773,
        Selection                                       = 32774,
        SelectionAdd                            = 32775,
        SelectionRemove                         = 32776,
        SelectionWithin                         = 32777,
        StateChange                                     = 32778,
        LocationChange                          = 32779,
        NameChange                                      = 32780,
        DescriptionChange                       = 32781,
        ValueChange                                     = 32782,
        ParentChange                            = 32783,
        HelpChange                                      = 32784,
        AcceleratorChange                       = 32786

}; // enum AccessibleEvents

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * AccessibleObject.cs - Implementation of the
 *                      "System.Windows.Forms.AccessibleObject" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

[TODO]
public class AccessibleObject
{
        // TODO

}; // class AccessibleObject

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * AccessibleRole.cs - Implementation of the
 *                      "System.Windows.Forms.AccessibleRole" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public enum AccessibleRole
{
        Default                         = -1,
        None                            = 0,
        TitleBar                        = 1,
        MenuBar                         = 2,
        ScrollBar                       = 3,
        Grip                            = 4,
        Sound                           = 5,
        Cursor                          = 6,
        Caret                           = 7,
        Alert                           = 8,
        Window                          = 9,
        Client                          = 10,
        MenuPopup                       = 11,
        MenuItem                        = 12,
        ToolTip                         = 13,
        Application                     = 14,
        Document                        = 15,
        Pane                            = 16,
        Chart                           = 17,
        Dialog                          = 18,
        Border                          = 19,
        Grouping                        = 20,
        Separator                       = 21,
        ToolBar                         = 22,
        StatusBar                       = 23,
        Table                           = 24,
        ColumnHeader            = 25,
        RowHeader                       = 26,
        Column                          = 27,
        Row                                     = 28,
        Cell                            = 29,
        Link                            = 30,
        HelpBalloon                     = 31,
        Character                       = 32,
        List                            = 33,
        ListItem                        = 34,
        Outline                         = 35,
        OutlineItem                     = 36,
        PageTab                         = 37,
        PropertyPage            = 38,
        Indicator                       = 39,
        Graphic                         = 40,
        StaticText                      = 41,
        Text                            = 42,
        PushButton                      = 43,
        CheckButton                     = 44,
        RadioButton                     = 45,
        ComboBox                        = 46,
        DropList                        = 47,
        ProgressBar                     = 48,
        Dial                            = 49,
        HotkeyField                     = 50,
        Slider                          = 51,
        SpinButton                      = 52,
        Diagram                         = 53,
        Animation                       = 54,
        Equation                        = 55,
        ButtonDropDown          = 56,
        ButtonMenu                      = 57,
        ButtonDropDownGrid      = 58,
        WhiteSpace                      = 59,
        PageTabList                     = 60,
        Clock                           = 61

}; // enum AccessibleRole

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * AnchorStyles.cs - Implementation of the
 *                      "System.Windows.Forms.AnchorStyles" 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.Windows.Forms
{

[Flags]
public enum AnchorStyles
{
        None    = 0x0000,
        Top             = 0x0001,
        Bottom  = 0x0002,
        Left    = 0x0004,
        Right   = 0x0008

}; // enum AnchorStyles

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Application.cs - Implementation of the
 *                      "System.Windows.Forms.Application" 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.Windows.Forms
{

using Microsoft.Win32;
using System.Globalization;
using System.Threading;
using System.IO;
using System.Drawing.Toolkit;

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

#if !CONFIG_COMPACT_FORMS

        // Internal state.
        [ThreadStatic] private static InputLanguage inputLanguage;
        private static String safeTopLevelCaptionFormat = "{0}";

        // Determine if it is possible to quit this application.
        public static bool AllowQuit
                        {
                                get
                                {
                                        // Returns false for applet usage, 
which we don't have yet.
                                        return true;
                                }
                        }

        // Get the common data path for data shared between all users.
        [TODO]
        public static String CommonAppDataPath
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

#if CONFIG_WIN32_SPECIFICS

        // Get the common registry key for data shared between all users.
        [TODO]
        public static RegistryKey CommonAppDataRegistry
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

#endif

        // Get the company name for this application
        [TODO]
        public static String CompanyName
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

        // Get or set the culture for the current thread.
        public static CultureInfo CurrentCulture
                        {
                                get
                                {
                                        return CultureInfo.CurrentCulture;
                                }
                                set
                                {
                                #if !ECMA_COMPAT
                                        Thread.CurrentThread.CurrentCulture = 
value;
                                #endif
                                }
                        }

        // Get or set the input language for the current thread.
        public static InputLanguage CurrentInputLanguage
                        {
                                get
                                {
                                        return inputLanguage;
                                }
                                set
                                {
                                        inputLanguage = value;
                                }
                        }

        // Get the executable path for this application.
        public static String ExecutablePath
                        {
                                get
                                {
                                        return 
(Environment.GetCommandLineArgs())[0];
                                }
                        }

        // Get the local user application data path.
        [TODO]
        public static String LocalUserAppDataPath
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

        // Determine if a message loop exists on this thread.
        public static bool MessageLoop
                        {
                                get
                                {
                                        return true;
                                }
                        }

        // Get the product name associated with this application.
        [TODO]
        public static String ProductName
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

        // Get the product version associated with this application.
        [TODO]
        public static String ProductVersion
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

        // Get or set the top-level warning caption format.
        public static String SafeTopLevelCaptionFormat
                        {
                                get
                                {
                                        return safeTopLevelCaptionFormat;
                                }
                                set
                                {
                                        safeTopLevelCaptionFormat = value;
                                }
                        }

        // Get the startup path for the executable.
        public static String StartupPath
                        {
                                get
                                {
                                        return 
Path.GetDirectoryName(ExecutablePath);
                                }
                        }

        // Get the user application data path.
        [TODO]
        public static String UserAppDataPath
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

#if CONFIG_WIN32_SPECIFICS

        // Get the registry key for user-specific data.
        [TODO]
        public static RegistryKey UserAppDataRegistry
                        {
                                get
                                {
                                        // TODO
                                        return null;
                                }
                        }

#endif

        // Add a message filter.
        public static void AddMessageFilter(IMessageFilter value)
                        {
                                // We don't use message filters in this 
implementation.
                        }

        // Enable Windows XP visual styles.
        public static void EnableVisualStyles()
                        {
                                // Not used in this implementation.
                        }

        // Exit the message loop on the current thread and close all windows.
        public static void ExitThread()
                        {
                                // We only allow one message loop in this 
implementation,
                                // so "ExitThread" is the same as "Exit".
                                Exit();
                        }

#if !ECMA_COMPAT

        // Initialize OLE on the current thread.
        public static ApartmentState OleRequired()
                        {
                                // Not used in this implementation.
                                return ApartmentState.Unknown;
                        }

#endif

        // Raise the thread exception event.
        public static void OnThreadException(Exception t)
                        {
                                if(ThreadException != null)
                                {
                                        ThreadException(null, new 
ThreadExceptionEventArgs(t));
                                }
                        }

        // Remove a message filter.
        public static void RemoveMessageFilter(IMessageFilter value)
                        {
                                // We don't use message filters in this 
implementation.
                        }

        // Event that is raised when the application is about to exit.
        public static event EventHandler ApplicationExit;

        // Event that is raised when the message loop is entering the idle 
state.
        public static event EventHandler Idle;

        // Event that is raised for an untrapped thread exception.
        public static event ThreadExceptionEventHandler ThreadException;

        // Event that is raised when the current thread is about to exit.
        public static event EventHandler ThreadExit;

#endif // !CONFIG_COMPACT_FORMS

        // The thread that is running the main message loop.
        private static Thread mainThread;

        // Process all events that are currently in the message queue.
        public static void DoEvents()
                        {
                                // Make sure that this thread has a message 
loop running.
                                lock(typeof(Application))
                                {
                                        if(mainThread != Thread.CurrentThread)
                                        {
                                                return;
                                        }
                                }

                                // Process pending events.
                                ToolkitManager.Toolkit.ProcessEvents(false);
                        }

        // Tell the application to exit.
        public static void Exit()
                        {
                                lock(typeof(Application))
                                {
                                        if(mainThread != null)
                                        {
                                                ToolkitManager.Toolkit.Quit();
                                        }
                                }
                        }

        // Inner version of "Run".  In this implementation we only allow a
        // message loop to be running on one of the threads.
        private static void RunMessageLoop()
                        {
                                // Make sure that we are the only message loop.
                                lock(typeof(Application))
                                {
                                        if(mainThread != null)
                                        {
                                                throw new 
InvalidOperationException
                                                        
(S._("SWF_MessageLoopAlreadRunning"));
                                        }
                                        mainThread = Thread.CurrentThread;
                                }

                                // Run the main message processing loop.
                                IToolkit toolkit = ToolkitManager.Toolkit;
                                try
                                {
                                        for(;;)
                                        {
                                                // Process events in the queue.
                                                
if(!toolkit.ProcessEvents(false))
                                                {
                                                #if !CONFIG_COMPACT_FORMS
                                                        // There were no 
events, so raise "Idle".
                                                        if(Idle != null)
                                                        {
                                                                Idle(null, 
EventArgs.Empty);
                                                        }
                                                #endif

                                                        // Block until the next 
event, or quit, arrives.
                                                        
if(!toolkit.ProcessEvents(true))
                                                        {
                                                                break;
                                                        }
                                                }
                                        }
                                }
                                finally
                                {
                                        // Reset the "mainThread" variable 
because there
                                        // is no message loop any more.
                                        lock(typeof(Application))
                                        {
                                                mainThread = null;
                                        }
                                }

                        #if !CONFIG_COMPACT_FORMS

                                // Raise the "ThreadExit" event.
                                if(ThreadExit != null)
                                {
                                        ThreadExit(null, EventArgs.Empty);
                                }

                                // Raise the "ApplicationExit" event.
                                if(ApplicationExit != null)
                                {
                                        ApplicationExit(null, EventArgs.Empty);
                                }

                        #endif
                        }

        // Make the specified form visible and run the main loop.
        // The loop will exit when "Exit" is called.
        [TODO]
        public static void Run(Form mainForm)
                        {
                                // TODO
                                if(mainForm != null)
                                {
                                        mainForm.Show();
                                }
                                RunMessageLoop();
                        }

#if !CONFIG_COMPACT_FORMS

        // Run the main message loop on this thread.
        public static void Run()
                        {
                                RunMessageLoop();
                        }

        // Run the main message loop for an application context.
        [TODO]
        public static void Run(ApplicationContext context)
                        {
                                // TODO
                                RunMessageLoop();
                        }

#endif // !CONFIG_COMPACT_FORMS

}; // class Application

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ApplicationContext.cs - Implementation of the
 *                      "System.Windows.Forms.ApplicationContext" 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.Windows.Forms
{

[TODO]
public sealed class ApplicationContext
{
        // TODO

}; // class ApplicationContext

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * BindingContext.cs - Implementation of the
 *                      "System.Windows.Forms.BindingContext" 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.Windows.Forms
{

public class BindingContext
{
        // TODO

}; // class BindingContext

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * BorderStyle.cs - Implementation of the
 *                      "System.Windows.Forms.BorderStyle" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum BorderStyle
{
        None            = 0,
        FixedSingle = 1,
        Fixed3D         = 2

}; // enum BorderStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * BoundsSpecified.cs - Implementation of the
 *                      "System.Windows.Forms.BoundsSpecified" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

[Flags]
public enum BoundsSpecified
{
        None            = 0x0000,
        X                       = 0x0001,
        Y                       = 0x0002,
        Location        = 0x0003,
        Width           = 0x0004,
        Height          = 0x0008,
        Size            = 0x000C,
        All                     = 0x000F

}; // enum BoundsSpecified

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Button.cs - Implementation of the
 *                      "System.Windows.Forms.Button" 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.Windows.Forms
{

using System.Windows.Forms.Toolkit;

public class Button : ButtonBase
{
        // Internal result.
        private DialogResult result;

        // Contructor.
        public Button() {}

        // Get or set the dialog result associated with this button.
        public virtual DialogResult DialogResult
                        {
                                get
                                {
                                        return result;
                                }
                                set
                                {
                                        result = value;
                                }
                        }

        // Process a button click.
        protected override void OnClick(EventArgs e)
                        {
                                // Notify the form of the dialog result if 
necessary.
                                if(result != DialogResult.None)
                                {
                                        Form form = (TopLevelControl as Form);
                                        if(form != null)
                                        {
                                                form.DialogResult = result;
                                        }
                                }

                                // Perform the default button click behaviour.
                                base.OnClick(e);
                        }

}; // class Button

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ButtonBase.cs - Implementation of the
 *                      "System.Windows.Forms.ButtonBase" 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.Windows.Forms
{

public abstract class ButtonBase : Control
{
        // Contructor.
        internal ButtonBase() {}

}; // class ButtonBase

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * CheckBox.cs - Implementation of the
 *                      "System.Windows.Forms.CheckBox" 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.Windows.Forms
{

using System.Windows.Forms.Toolkit;

public class CheckBox : ButtonBase
{
        // Internal result.
        private bool autoCheck;
        private bool threeState;
        private CheckState state;

        // Contructor.
        public CheckBox() {}

        // Get or set the "auto check" style for this check box.
        public bool AutoCheck
                        {
                                get
                                {
                                        return autoCheck;
                                }
                                set
                                {
                                        if(autoCheck != value)
                                        {
                                                autoCheck = value;
                                        }
                                }
                        }

        // Get or set the "three state" style for this check box.
        public bool ThreeState
                        {
                                get
                                {
                                        return threeState;
                                }
                                set
                                {
                                        if(threeState != value)
                                        {
                                                threeState = value;
                                        }
                                }
                        }

        // Get or set the check box state.
        public CheckState CheckState
                        {
                                get
                                {
                                        return state;
                                }
                                set
                                {
                                        if(state != value)
                                        {
                                                state = value;
                                                
OnCheckStateChanged(EventArgs.Empty);
                                        }
                                }
                        }

        // Get or set the checked state as a simple boolean value.
        public bool Checked
                        {
                                get
                                {
                                        return (CheckState != 
CheckState.Unchecked);
                                }
                                set
                                {
                                        if(value)
                                        {
                                                CheckState = CheckState.Checked;
                                        }
                                        else
                                        {
                                                CheckState = 
CheckState.Unchecked;
                                        }
                                }
                        }

        // Set the check box state - used by the toolkit in response to events.
        internal void SetCheckState(CheckState state)
                        {
                                this.state = state;
                        }

        // Event that is emitted when the check state changes.
        public event EventHandler CheckStateChanged
                        {
                                add
                                {
                                        AddHandler(EventId.CheckStateChanged, 
value);
                                }
                                remove
                                {
                                        
RemoveHandler(EventId.CheckStateChanged, value);
                                }
                        }

        // Emit the CheckStateChanged event.
        protected virtual void OnCheckStateChanged(EventArgs e)
                        {
                                EventHandler handler;
                                handler = 
(EventHandler)(GetHandler(EventId.CheckStateChanged));
                                if(handler != null)
                                {
                                        handler(this, e);
                                }
                        }

}; // class CheckBox

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * CheckState.cs - Implementation of the
 *                      "System.Windows.Forms.CheckState" 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.Windows.Forms
{

public enum CheckState
{
        Unchecked               = 0,
        Checked                 = 1,
        Indeterminate   = 2

}; // enum CheckState

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ColumnClickEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ColumnClickEventArgs" 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.Windows.Forms
{

public class ColumnClickEventArgs : EventArgs
{
        // Internal state.
        private int column;

        // Constructor.
        public ColumnClickEventArgs(int column)
                        {
                                this.column = column;
                        }

        // Get the column that this event applies to.
        public int Column
                        {
                                get
                                {
                                        return column;
                                }
                        }

}; // class ColumnClickEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ColumnClickEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ColumnClickEventHandler" 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.Windows.Forms
{

public delegate void ColumnClickEventHandler
                (Object sender, ColumnClickEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ColumnHeaderStyle.cs - Implementation of the
 *                      "System.Windows.Forms.ColumnHeaderStyle" 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.Windows.Forms
{

public enum ColumnHeaderStyle
{
        None                    = 0,
        Nonclickable    = 1,
        Clickable               = 2

}; // enum ColumnHeaderStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ComboBoxStyle.cs - Implementation of the
 *                      "System.Windows.Forms.ComboBoxStyle" 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.Windows.Forms
{

public enum ComboBoxStyle
{
#if !CONFIG_COMPACT_FORMS
        Simple                  = 0,
        DropDown                = 1,
#endif
        DropDownList    = 2

}; // enum ComboBoxStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ContextMenu.cs - Implementation of the
 *                      "System.Windows.Forms.ContextMenu" 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.Windows.Forms
{

public class ContextMenu
{
        // TODO

}; // class ContextMenu

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Control.cs - Implementation of the
 *                      "System.Windows.Forms.Control" 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
[...4092 lines suppressed...]
        void IToolkitEventSink.ToolkitMouseMove
                                (ToolkitMouseButtons buttons, ToolkitKeys 
modifiers,
                                 int clicks, int x, int y, int delta)
                        {
                                OnMouseMove(new MouseEventArgs
                                        ((MouseButtons)buttons, clicks, x, y, 
delta));
                        }

        // Toolkit event that is emitted for a mouse wheel event.
        void IToolkitEventSink.ToolkitMouseWheel
                                (ToolkitMouseButtons buttons, ToolkitKeys 
modifiers,
                                 int clicks, int x, int y, int delta)
                        {
                                OnMouseWheel(new MouseEventArgs
                                        ((MouseButtons)buttons, clicks, x, y, 
delta));
                        }

}; // class Control

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ControlBindingsCollection.cs - Implementation of the
 *                      "System.Windows.Forms.ControlBindingsCollection" 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.Windows.Forms
{

public class ControlBindingsCollection
{
        // TODO

}; // class ControlBindingsCollection

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ControlEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ControlEventArgs" 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.Windows.Forms
{

public class ControlEventArgs : EventArgs
{
        // Internal state.
        private Control control;

        // Constructor.
        public ControlEventArgs(Control control)
                        {
                                this.control = control;
                        }

        // Get the control that this event applies to.
        public Control Control
                        {
                                get
                                {
                                        return control;
                                }
                        }

}; // class ControlEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ControlEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ControlEventHandler" 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.Windows.Forms
{

public delegate void ControlEventHandler
                (Object sender, ControlEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ControlStyles.cs - Implementation of the
 *                      "System.Windows.Forms.ControlStyles" 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.Windows.Forms
{

[Flags]
public enum ControlStyles
{
        ContainerControl                                = 0x00000001,
        UserPaint                                               = 0x00000002,
        Opaque                                                  = 0x00000004,
        ResizeRedraw                                    = 0x00000010,
        FixedWidth                                              = 0x00000020,
        FixedHeight                                             = 0x00000040,
        StandardClick                                   = 0x00000100,
        Selectable                                              = 0x00000200,
        UserMouse                                               = 0x00000400,
        SupportsTransparentBackColor    = 0x00000800,
        StandardDoubleClick                             = 0x00001000,
        AllPaintingInWmPaint                    = 0x00002000,
        CacheText                                               = 0x00004000,
        EnableNotifyMessage                             = 0x00008000,
        DoubleBuffer                                    = 0x00010000

}; // enum ControlStyles

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ConvertEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ConvertEventArgs" 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.Windows.Forms
{

public class ConvertEventArgs : EventArgs
{
        // Internal state.
        private Object value;
        private Type desiredType;

        // Constructor.
        public ConvertEventArgs(Object value, Type desiredType)
                        {
                                this.value = value;
                                this.desiredType = desiredType;
                        }

        // Get the desired type for conversion.
        public Type DesiredType
                        {
                                get
                                {
                                        return desiredType;
                                }
                        }

        // Get or set the value.
        public Object Value
                        {
                                get
                                {
                                        return value;
                                }
                                set
                                {
                                        this.value = value;
                                }
                        }

}; // class ConvertEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ConvertEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ConvertEventHandler" 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.Windows.Forms
{

public delegate void ConvertEventHandler(Object sender, ConvertEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * CreateParams.cs - Implementation of the
 *                      "System.Windows.Forms.CreateParams" 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.Windows.Forms
{

public class CreateParams
{
        // Internal state.
        private String caption;
        private String className;
        private int classStyle;
        private int exStyle;
        private int height;
        private Object param;
        private IntPtr parent;
        private int style;
        private int width;
        private int x;
        private int y;

        // Constructor.
        public CreateParams() {}

        // Get or set this object's properties.
        public String Caption
                        {
                                get
                                {
                                        return caption;
                                }
                                set
                                {
                                        caption = value;
                                }
                        }
        public String ClassName
                        {
                                get
                                {
                                        return className;
                                }
                                set
                                {
                                        className = value;
                                }
                        }
        public int ClassStyle
                        {
                                get
                                {
                                        return classStyle;
                                }
                                set
                                {
                                        classStyle = value;
                                }
                        }
        public int ExStyle
                        {
                                get
                                {
                                        return exStyle;
                                }
                                set
                                {
                                        exStyle = value;
                                }
                        }
        public int Height
                        {
                                get
                                {
                                        return height;
                                }
                                set
                                {
                                        height = value;
                                }
                        }
        public Object Param
                        {
                                get
                                {
                                        return param;
                                }
                                set
                                {
                                        param = value;
                                }
                        }
        public IntPtr Parent
                        {
                                get
                                {
                                        return parent;
                                }
                                set
                                {
                                        parent = value;
                                }
                        }
        public int Style
                        {
                                get
                                {
                                        return style;
                                }
                                set
                                {
                                        style = value;
                                }
                        }
        public int Width
                        {
                                get
                                {
                                        return width;
                                }
                                set
                                {
                                        width = value;
                                }
                        }
        public int X
                        {
                                get
                                {
                                        return x;
                                }
                                set
                                {
                                        x = value;
                                }
                        }
        public int Y
                        {
                                get
                                {
                                        return y;
                                }
                                set
                                {
                                        y = value;
                                }
                        }

}; // class CreateParams

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Cursor.cs - Implementation of the
 *                      "System.Windows.Forms.Cursor" 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.Windows.Forms
{

[TODO]
public class Cursor
{
        // TODO

}; // class Cursor

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DialogResult.cs - Implementation of the
 *                      "System.Windows.Forms.DialogResult" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum DialogResult
{
        None    = 0,
        OK              = 1,
        Cancel  = 2,
        Abort   = 3,
        Retry   = 4,
        Ignore  = 5,
        Yes             = 6,
        No              = 7

}; // enum DialogResult

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DockStyle.cs - Implementation of the
 *                      "System.Windows.Forms.DockStyle" 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.Windows.Forms
{

public enum DockStyle
{
        None    = 0,
        Top             = 1,
        Bottom  = 2,
        Left    = 3,
        Right   = 4,
        Fill    = 5

}; // enum DockStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DragAction.cs - Implementation of the
 *                      "System.Windows.Forms.DragAction" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public enum DragAction
{
        Continue        = 0,
        Drop            = 1,
        Cancel          = 2

}; // enum DragAction

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DragDropEffects.cs - Implementation of the
 *                      "System.Windows.Forms.DragDropEffects" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

[Flags]
public enum DragDropEffects
{
        None   = 0x00000000,
        Copy   = 0x00000001,
        Move   = 0x00000002,
        Link   = 0x00000004,
        All    = 0x7FFFFFFF,
        Scroll = unchecked((int)0x80000000)

}; // enum DragDropEffects

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DragEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.DragEventArgs" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public class DragEventArgs : EventArgs
{
        // Internal state.
        private IDataObject data;
        private int keyState;
        private int x;
        private int y;
        private DragDropEffects allowedEffect;
        private DragDropEffects effect;

        // Constructor.
        public DragEventArgs(IDataObject data, int keyState,
                                         int x, int y, DragDropEffects 
allowedEffect,
                                         DragDropEffects effect)
                        {
                                this.data = data;
                                this.keyState = keyState;
                                this.x = x;
                                this.y = y;
                                this.allowedEffect = allowedEffect;
                                this.effect = effect;
                        }

        // Get this object's properties.
        public DragDropEffects AllowedEffect
                        {
                                get
                                {
                                        return allowedEffect;
                                }
                        }
        public IDataObject Data
                        {
                                get
                                {
                                        return data;
                                }
                        }
        public DragDropEffects Effect
                        {
                                get
                                {
                                        return effect;
                                }
                        }
        public int KeyState
                        {
                                get
                                {
                                        return keyState;
                                }
                        }
        public int X
                        {
                                get
                                {
                                        return x;
                                }
                        }
        public int Y
                        {
                                get
                                {
                                        return y;
                                }
                        }

}; // class DragEventArgs

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * DragEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.DragEventHandler" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public delegate void DragEventHandler
                (Object sender, DragEventArgs e);

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * EventId.cs - Implementation of the
 *                      "System.Windows.Forms.EventId" 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.Windows.Forms
{

// Internal event identifiers.
internal enum EventId
{
        None,

        // "Control" events.
        BackgroundImageChanged,
        BackColorChanged,
        BindingContextChanged,
        CausesValidationChanged,
        ChangeUICues,
        Click,
        ContextMenuChanged,
        ControlAdded,
        ControlRemoved,
        CursorChanged,
        DockChanged,
        DoubleClick,
        DragDrop,
        DragEnter,
        DragLeave,
        DragOver,
        Enter,
        EnabledChanged,
        FontChanged,
        ForeColorChanged,
        GiveFeedback,
        GotFocus,
        HandleCreated,
        HandleDestroyed,
        HelpRequested,
        ImeModeChanged,
        Invalidated,
        KeyDown,
        KeyPress,
        KeyUp,
        Layout,
        Leave,
        LocationChanged,
        LostFocus,
        MouseDown,
        MouseEnter,
        MouseHover,
        MouseLeave,
        MouseMove,
        MouseUp,
        MouseWheel,
        Move,
        Paint,
        PaintBackground,
        ParentChanged,
        QueryAccessibilityHelp,
        QueryContinueDrag,
        Resize,
        RightToLeftChanged,
        SizeChanged,
        StyleChanged,
        SystemColorsChanged,
        TabIndexChanged,
        TabStopChanged,
        TextChanged,
        Validated,
        Validating,
        VisibleChanged,

        // "CheckBox" events.
        CheckStateChanged,

}; // enum EventId

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Form.cs - Implementation of the
 *                      "System.Windows.Forms.Form" 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.Windows.Forms
{

using System.Drawing.Toolkit;

public class Form : Control
{
        // TODO

        public DialogResult DialogResult
                        {
                                get
                                {
                                        // TODO
                                        return DialogResult.None;
                                }
                                set
                                {
                                        // TODO
                                }
                        }

        // Create the toolkit window underlying this control.
        internal override IToolkitWindow CreateToolkitWindow(IToolkitWindow 
parent)
                        {
                                // TODO: dialog forms
                                CreateParams cp = CreateParams;
                                IToolkitWindow window =
                                        
ToolkitManager.Toolkit.CreateTopLevelWindow
                                                (cp.Width, cp.Height);
                                window.SetTitle(cp.Caption);
                                return window;
                        }

}; // class Form

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * FormBorderStyle.cs - Implementation of the
 *                      "System.Windows.Forms.FormBorderStyle" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum FormBorderStyle
{
        None                            = 0,
        FixedSingle                     = 1,
        Fixed3D                         = 2,
        FixedDialog                     = 3,
        Sizable                         = 4,
        FixedToolWindow         = 5,
        SizableToolWindow       = 6

}; // enum FormBorderStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * FormWindowState.cs - Implementation of the
 *                      "System.Windows.Forms.FormWindowState" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum FormWindowState
{
        Normal          = 0,
#if !CONFIG_COMPACT_FORMS
        Minimized       = 1,
#endif
        Maximized       = 2

}; // enum FormWindowState

}; // namespace System.Windows.Forms

--- NEW FILE ---
<?xml version="1.0"?>
<project name="pnetlib System.Windows.Forms" default="all">
        <target name="all">

                <!-- Build the primary System.Windows.Forms.dll library -->
                <compile output="System.Windows.Forms.dll"
                                 target="library"
                                 unsafe="true"
                                 nostdlib="true"
                                 debug="${CONFIG_DEBUG_LINES}"
                                 optimize="true">

<!--
                        <define name="CONFIG_COMPACT_FORMS" value="true"/>
-->

                        <sources>
                                <includes name="**/*.cs"/>
                        </sources>

                        <references>
                                <file 
name="../System.Drawing/System.Drawing.dll"/>
                                <file name="../System/System.dll"/>
                                <file name="../DotGNU.SSL/DotGNU.SSL.dll"/>
                                <file name="../runtime/mscorlib.dll"/>
                        </references>

<!--
                        <resources>
                                <includes if="${CONFIG_RUNTIME_INFRA}"
                                        
name="../resources/en_US/System.Windows.Forms/System.Windows.Forms.resources"/>
                        </resources>
-->

                        <arg compiler="cscc" value="-Wno-empty-input"/>
                        <arg compiler="cscc" value="-fminimize-parameters"/>
                        <arg compiler="csc" value="/nowarn:626"/>
                        <arg compiler="csc" value="/nowarn:649"/>
                        <arg compiler="csc" value="/nowarn:168"/>
                        <arg compiler="csc" value="/nowarn:67"/>
                        <arg compiler="csc" value="/nowarn:169"/>
                        <arg compiler="csc" value="/nowarn:679"/>
                </compile>

        </target>
</project>

--- NEW FILE ---
/*
 * GiveFeedbackEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.GiveFeedbackEventArgs" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public class GiveFeedbackEventArgs : EventArgs
{
        // Internal state.
        private DragDropEffects effect;
        private bool useDefaultCursors;

        // Constructor.
        public GiveFeedbackEventArgs(DragDropEffects effect,
                                                                 bool 
useDefaultCursors)
                        {
                                this.effect = effect;
                                this.useDefaultCursors = useDefaultCursors;
                        }

        // Get this object's properties.
        public DragDropEffects Effect
                        {
                                get
                                {
                                        return effect;
                                }
                        }
        public bool UseDefaultCursors
                        {
                                get
                                {
                                        return useDefaultCursors;
                                }
                                set
                                {
                                        useDefaultCursors = value;
                                }
                        }

}; // class GiveFeedbackEventArgs

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * GiveFeedbackEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.GiveFeedbackEventHandler" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public delegate void GiveFeedbackEventHandler
                (Object sender, GiveFeedbackEventArgs e);

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * HelpEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.HelpEventArgs" 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.Windows.Forms
{

using System.Runtime.InteropServices;
using System.Drawing;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public class HelpEventArgs : EventArgs
{
        // Internal state.
        private Point mousePos;
        private bool handled;

        // Constructor.
        public HelpEventArgs(Point mousePos)
                        {
                                this.mousePos = mousePos;
                        }

        // Get this object's properties.
        public Point MousePos
                        {
                                get
                                {
                                        return mousePos;
                                }
                        }
        public bool Handled
                        {
                                get
                                {
                                        return handled;
                                }
                                set
                                {
                                        handled = value;
                                }
                        }

}; // class HelpEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * HelpEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.HelpEventHandler" 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.Windows.Forms
{

public delegate void HelpEventHandler(Object sender, HelpEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * HorizontalAlignment.cs - Implementation of the
 *                      "System.Windows.Forms.HorizontalAlignment" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum HorizontalAlignment
{
        Left    = 0,
        Right   = 1,
        Center  = 2

}; // enum HorizontalAlignment

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * IContainerControl.cs - Implementation of the
 *                      "System.Windows.Forms.IContainerControl" 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.Windows.Forms
{

[TODO]
public interface IContainerControl
{
        // TODO
}; // interface IContainerControl

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * IDataObject.cs - Implementation of the
 *                      "System.Windows.Forms.IDataObject" 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.Windows.Forms
{

[TODO]
public interface IDataObject
{
        // TODO
}; // interface IDataObject

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * IMessageFilter.cs - Implementation of the
 *                      "System.Windows.Forms.IMessageFilter" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public interface IMessageFilter
{
        // Filter a message before it is dispatched.
        bool PreFilterMessage(ref Message m);

}; // interface IMessageFilter

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * IWin32Window.cs - Implementation of the
 *                      "System.Windows.Forms.IWin32Window" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
#if CONFIG_COM_INTEROP
[Guid("458AB8A2-A1EA-4d7b-8EBE-DEE5D3D9442C")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
#endif
public interface IWin32Window
{
        // Get the operating system handle for this window.
        IntPtr Handle { get; }

}; // interface IWin32Window

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ImeMode.cs - Implementation of the
 *                      "System.Windows.Forms.ImeMode" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public enum ImeMode
{
        Inherit                 = -1,
        NoControl               = 0,
        On                              = 1,
        Off                             = 2,
        Disable                 = 3,
        Hiragana                = 4,
        Katakana                = 5,
        KatakanaHalf    = 6,
        AlphaFull               = 7,
        Alpha                   = 8,
        HangulFull              = 9,
        Hangul                  = 10

}; // enum ImeMode

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * InputLanguage.cs - Implementation of the
 *                      "System.Windows.Forms.InputLanguage" 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.Windows.Forms
{

[TODO]
public sealed class InputLanguage
{
        // TODO

}; // class InputLanguage

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * InvalidateEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.InvalidateEventArgs" 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.Windows.Forms
{

using System.Drawing;

public class InvalidateEventArgs : EventArgs
{
        // Internal state.
        private Rectangle invalidRect;

        // Constructor.
        public InvalidateEventArgs(Rectangle invalidRect)
                        {
                                this.invalidRect = invalidRect;
                        }

        // Get the rectangle that this event applies to.
        public Rectangle InvalidRect
                        {
                                get
                                {
                                        return invalidRect;
                                }
                        }

}; // class InvalidateEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * InvalidateEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.InvalidateEventHandler" 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.Windows.Forms
{

public delegate void InvalidateEventHandler
                (Object sender, InvalidateEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ItemActivation.cs - Implementation of the
 *                      "System.Windows.Forms.ItemActivation" 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.Windows.Forms
{

public enum ItemActivation
{
        Standard = 0,
        OneClick = 1,
        TwoClick = 2

}; // enum ItemActivation

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ItemChangedEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ItemChangedEventArgs" 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.Windows.Forms
{

public class ItemChangedEventArgs : EventArgs
{
        // Internal state.
        private int index;
        private bool handled;

        // Constructor.
        internal ItemChangedEventArgs(int index)
                        {
                                this.index = index;
                        }

        // Get the index of the item that changed.
        public int Index
                        {
                                get
                                {
                                        return index;
                                }
                        }

}; // class ItemChangedEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ItemChangedEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ItemChangedEventHandler" 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.Windows.Forms
{

public delegate void ItemChangedEventHandler
                (Object sender, ItemChangedEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ItemCheckEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ItemCheckEventArgs" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public class ItemCheckEventArgs : EventArgs
{
        // Internal state.
        private int index;
        private CheckState newCheckValue;
        private CheckState currentValue;

        // Constructor.
        public ItemCheckEventArgs
                                (int index, CheckState newCheckValue, 
CheckState currentValue)
                        {
                                this.index = index;
                                this.newCheckValue = newCheckValue;
                                this.currentValue = currentValue;
                        }

        // Get the current state of the check box.
        public CheckState CurrentValue
                        {
                                get
                                {
                                        return currentValue;
                                }
                        }

        // Get the index of the item to change.
        public int Index
                        {
                                get
                                {
                                        return index;
                                }
                        }

        // Get or set the new value of the check box.
        public CheckState NewValue
                        {
                                get
                                {
                                        return newCheckValue;
                                }
                                set
                                {
                                        newCheckValue = value;
                                }
                        }

}; // class ItemCheckEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ItemCheckEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ItemCheckEventHandler" 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.Windows.Forms
{

public delegate void ItemCheckEventHandler
                (Object sender, ItemCheckEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * KeyEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.KeyEventArgs" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public class KeyEventArgs : EventArgs
{
        // Internal state.
        private Keys keyData;
        private bool handled;

        // Constructor.
        public KeyEventArgs(Keys keyData)
                        {
                                this.keyData = keyData;
                        }

        // Determine if certain special keys were pressed.
        public virtual bool Alt
                        {
                                get
                                {
                                        return ((keyData & Keys.Alt) != 0);
                                }
                        }
        public bool Control
                        {
                                get
                                {
                                        return ((keyData & Keys.Control) != 0);
                                }
                        }
        public virtual bool Shift
                        {
                                get
                                {
                                        return ((keyData & Keys.Shift) != 0);
                                }
                        }

        // Determine whether this event has been handled yet or not.
        public bool Handled
                        {
                                get
                                {
                                        return handled;
                                }
                                set
                                {
                                        handled = value;
                                }
                        }

        // Get the key code.
        public Keys KeyCode
                        {
                                get
                                {
                                        return (keyData & Keys.KeyCode);
                                }
                        }

        // Get the full key data.
        public Keys KeyData
                        {
                                get
                                {
                                        return keyData;
                                }
                        }

        // Get the key code as an integer.
        public int KeyValue
                        {
                                get
                                {
                                        return (int)(keyData & Keys.KeyCode);
                                }
                        }

        // Get the modifier flags.
        public Keys Modifiers
                        {
                                get
                                {
                                        return (keyData & Keys.Modifiers);
                                }
                        }

}; // class KeyEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * KeyEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.KeyEventHandler" 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.Windows.Forms
{

public delegate void KeyEventHandler(Object sender, KeyEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * KeyPressEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.KeyPressEventArgs" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public class KeyPressEventArgs : EventArgs
{
        // Internal state.
        private char keyChar;
        private bool handled;

        // Constructor.
        public KeyPressEventArgs(char keyChar)
                        {
                                this.keyChar = keyChar;
                        }

        // Determine whether this event has been handled yet or not.
        public bool Handled
                        {
                                get
                                {
                                        return handled;
                                }
                                set
                                {
                                        handled = value;
                                }
                        }

        // Get the key character.
        public char KeyChar
                        {
                                get
                                {
                                        return keyChar;
                                }
                        }

}; // class KeyPressEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * KeyPressEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.KeyPressEventHandler" 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.Windows.Forms
{

public delegate void KeyPressEventHandler
                (Object sender, KeyPressEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Keys.cs - Implementation of the
 *                      "System.Windows.Forms.Keys" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
//TODO [TypeConverter(typeof(KeysConverter))]
#endif
[Flags]
public enum Keys
{
        // No key specified.
        None                            = 0x00000000,

        // Letter keys.
        A                                       = 0x00000041,
        B                                       = 0x00000042,
        C                                       = 0x00000043,
        D                                       = 0x00000044,
        E                                       = 0x00000045,
        F                                       = 0x00000046,
        G                                       = 0x00000047,
        H                                       = 0x00000048,
        I                                       = 0x00000049,
        J                                       = 0x0000004A,
        K                                       = 0x0000004B,
        L                                       = 0x0000004C,
        M                                       = 0x0000004D,
        N                                       = 0x0000004E,
        O                                       = 0x0000004F,
        P                                       = 0x00000050,
        Q                                       = 0x00000051,
        R                                       = 0x00000052,
        S                                       = 0x00000053,
        T                                       = 0x00000054,
        U                                       = 0x00000055,
        V                                       = 0x00000056,
        W                                       = 0x00000057,
        X                                       = 0x00000058,
        Y                                       = 0x00000059,
        Z                                       = 0x0000005A,

        // Digit keys.
        D0                                      = 0x00000030,
        D1                                      = 0x00000031,
        D2                                      = 0x00000032,
        D3                                      = 0x00000033,
        D4                                      = 0x00000034,
        D5                                      = 0x00000035,
        D6                                      = 0x00000036,
        D7                                      = 0x00000037,
        D8                                      = 0x00000038,
        D9                                      = 0x00000039,

        // Number pad keys.
        NumPad0                         = 0x00000060,
        NumPad1                         = 0x00000061,
        NumPad2                         = 0x00000062,
        NumPad3                         = 0x00000063,
        NumPad4                         = 0x00000064,
        NumPad5                         = 0x00000065,
        NumPad6                         = 0x00000066,
        NumPad7                         = 0x00000067,
        NumPad8                         = 0x00000068,
        NumPad9                         = 0x00000069,

        // Function keys.
        F1                                      = 0x00000070,
        F2                                      = 0x00000071,
        F3                                      = 0x00000072,
        F4                                      = 0x00000073,
        F5                                      = 0x00000074,
        F6                                      = 0x00000075,
        F7                                      = 0x00000076,
        F8                                      = 0x00000077,
        F9                                      = 0x00000078,
        F10                                     = 0x00000079,
        F11                                     = 0x0000007A,
        F12                                     = 0x0000007B,
        F13                                     = 0x0000007C,
        F14                                     = 0x0000007D,
        F15                                     = 0x0000007E,
        F16                                     = 0x0000007F,
        F17                                     = 0x00000080,
        F18                                     = 0x00000081,
        F19                                     = 0x00000082,
        F20                                     = 0x00000083,
        F21                                     = 0x00000084,
        F22                                     = 0x00000085,
        F23                                     = 0x00000086,
        F24                                     = 0x00000087,

        // Buttons.
        LButton                         = 0x00000001,
        RButton                         = 0x00000002,
        MButton                         = 0x00000004,
        XButton1                        = 0x00000005,
        XButton2                        = 0x00000006,

        // Special keys.
        Cancel                          = 0x00000003,
        Back                            = 0x00000008,
        Tab                                     = 0x00000009,
        LineFeed                        = 0x0000000A,
        Enter                           = 0x0000000D,
        Return                          = Enter,
        ShiftKey                        = 0x00000010,
        ControlKey                      = 0x00000011,
        Menu                            = 0x00000012,
        Clear                           = 0x00000012,
        Pause                           = 0x00000013,
        Capital                         = 0x00000014,
        CapsLock                        = Capital,
        Escape                          = 0x0000001B,
        Space                           = 0x00000020,
        Prior                           = 0x00000021,
        PageUp                          = Prior,
        Next                            = 0x00000022,
        PageDown                        = Next,
        End                                     = 0x00000023,
        Home                            = 0x00000024,
        Left                            = 0x00000025,
        Up                                      = 0x00000026,
        Right                           = 0x00000027,
        Down                            = 0x00000028,
        Select                          = 0x00000029,
        Print                           = 0x0000002A,
        Execute                         = 0x0000002B,
        PrintScreen                     = 0x0000002C,
        Snapshot                        = PrintScreen,
        Insert                          = 0x0000002D,
        Delete                          = 0x0000002E,
        Help                            = 0x0000002F,
        LWin                            = 0x0000005B,
        RWin                            = 0x0000005C,
        Apps                            = 0x0000005D,
        Multiply                        = 0x0000006A,
        Add                                     = 0x0000006B,
        Separator                       = 0x0000006C,
        Subtract                        = 0x0000006D,
        Decimal                         = 0x0000006E,
        Divide                          = 0x0000006F,
        NumLock                         = 0x00000090,
        Scroll                          = 0x00000091,
        LShiftKey                       = 0x000000A0,
        RShiftKey                       = 0x000000A1,
        LControlKey                     = 0x000000A2,
        RControlKey                     = 0x000000A3,
        LMenu                           = 0x000000A4,
        RMenu                           = 0x000000A5,
        ProcessKey                      = 0x000000E5,
        Attn                            = 0x000000F6,
        Crsel                           = 0x000000F7,
        Exsel                           = 0x000000F8,
        EraseEof                        = 0x000000F9,
        Play                            = 0x000000FA,
        Zoom                            = 0x000000FB,
        NoName                          = 0x000000FC,
        Pa1                                     = 0x000000FD,
        OemClear                        = 0x000000FE,

        // Modifier keys.
        Shift                           = 0x00010000,
        Control                         = 0x00020000,
        Alt                                     = 0x00040000,

        // Masks.
        KeyCode                         = 0x0000FFFF,
        Modifiers                       = unchecked((int)0xFFFF0000),

#if !CONFIG_COMPACT_FORMS

        // Other keys.
        HangulMode                      = 0x00000015,
        HanguelMode                     = HangulMode,
        KanaMode                        = HangulMode,
        JunjaMode                       = 0x00000017,
        FinalMode                       = 0x00000018,
        HanjaMode                       = 0x00000019,
        KanjiMode                       = HanjaMode,
        IMEConvert                      = 0x0000001C,
        IMENonconvert           = 0x0000001D,
        IMEAceept                       = 0x0000001E,
        IMEModeChange           = 0x0000001F,
        BrowserBack                     = 0x000000A6,
        BrowserForward          = 0x000000A7,
        BrowserRefresh          = 0x000000A8,
        BrowserStop                     = 0x000000A9,
        BrowserSearch           = 0x000000AA,
        BrowserFavorites        = 0x000000AB,
        BrowserHome                     = 0x000000AC,
        VolumeMute                      = 0x000000AD,
        VolumeDown                      = 0x000000AE,
        VolumeUp                        = 0x000000AF,
        MediaNextTrack          = 0x000000B0,
        MediaPreviousTrack      = 0x000000B1,
        MediaStop                       = 0x000000B2,
        MediaPlayPause          = 0x000000B3,
        LaunchMail                      = 0x000000B4,
        SelectMedia                     = 0x000000B5,
        LaunchApplication1      = 0x000000B6,
        LaunchApplication2      = 0x000000B7,
        OemSemicolon            = 0x000000BA,
        Oemplus                         = 0x000000BB,
        Oemcomma                        = 0x000000BC,
        OemMinus                        = 0x000000BD,
        OemPeriod                       = 0x000000BE,
        OemQuestion                     = 0x000000BF,
        OemTilde                        = 0x000000C0,
        OemOpenBrackets         = 0x000000DB,
        OemPipe                         = 0x000000DC,
        OemCloseBrackets        = 0x000000DD,
        OemQuotes                       = 0x000000DE,
        Oem8                            = 0x000000DF,
        OemBackslash            = 0x000000E2,

#endif // !CONFIG_COMPACT_FORMS

}; // enum Keys

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Label.cs - Implementation of the
 *                      "System.Windows.Forms.Label" 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.Windows.Forms
{

using System.Drawing;
using System.Windows.Forms.Toolkit;

public class Label : Control
{
        // Internal state.
        private ContentAlignment alignment;

        // Contructor.
        public Label()
                        {
                                this.alignment = ContentAlignment.MiddleLeft;
                        }

        // Get or set the label's text alignment.
        public ContentAlignment TextAlign
                        {
                                get
                                {
                                        return alignment;
                                }
                                set
                                {
                                        if(alignment != value)
                                        {
                                                alignment = value;
                                        }
                                }
                        }

}; // class Label

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * LayoutEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.LayoutEventArgs" 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.Windows.Forms
{

public sealed class LayoutEventArgs : EventArgs
{
        // Internal state.
        private Control affectedControl;
        private String affectedProperty;

        // Constructor.
        public LayoutEventArgs(Control affectedControl,
                                                   String affectedProperty)
                        {
                                this.affectedControl = affectedControl;
                                this.affectedProperty = affectedProperty;
                        }

        // Get this object's properties.
        public Control AffectedControl
                        {
                                get
                                {
                                        return affectedControl;
                                }
                        }
        public String AffectedProperty
                        {
                                get
                                {
                                        return affectedProperty;
                                }
                        }

}; // class LayoutEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * LayoutEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.LayoutEventHandler" 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.Windows.Forms
{

public delegate void LayoutEventHandler(Object sender, LayoutEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * LeftRightAlignment.cs - Implementation of the
 *                      "System.Windows.Forms.LeftRightAlignment" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public enum LeftRightAlignment
{
        Left    = 0,
        Right   = 1

}; // enum LeftRightAlignment

}; // namespace System.Windows.Forms

--- NEW FILE ---

.PHONY: System.Windows.Forms.dll

all-local: System.Windows.Forms.dll

System.Windows.Forms.dll:
        "$(CSANT)" $(CSANT_FLAGS) -f Forms.build all

CLEANFILES = System.Windows.Forms.dll

pnetassembliesdir = $(libdir)/cscc/lib
pnetassemblies_DATA = System.Windows.Forms.dll

--- NEW FILE ---
/*
 * Message.cs - Implementation of the
 *                      "System.Windows.Forms.Message" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public struct Message
{
        // Internal state.
        private IntPtr hWnd;
        private int msg;
        private IntPtr wParam;
        private IntPtr lParam;
        private IntPtr result;

        // Get or set the message parameters.
        public IntPtr HWnd
                        {
                                get
                                {
                                        return hWnd;
                                }
                                set
                                {
                                        hWnd = value;
                                }
                        }
        public int Msg
                        {
                                get
                                {
                                        return msg;
                                }
                                set
                                {
                                        msg = value;
                                }
                        }
        public IntPtr WParam
                        {
                                get
                                {
                                        return wParam;
                                }
                                set
                                {
                                        wParam = value;
                                }
                        }
        public IntPtr LParam
                        {
                                get
                                {
                                        return lParam;
                                }
                                set
                                {
                                        lParam = value;
                                }
                        }
        public IntPtr Result
                        {
                                get
                                {
                                        return result;
                                }
                                set
                                {
                                        result = value;
                                }
                        }

        // Create a message from its raw components.
        public static Message Create(IntPtr hWnd, int msg,
                                                                 IntPtr wparam, 
IntPtr lparam)
                        {
                                Message value;
                                value.hWnd = hWnd;
                                value.msg = msg;
                                value.wParam = wparam;
                                value.lParam = lparam;
                                value.result = IntPtr.Zero;
                                return value;
                        }

        // Determine if two objects are equal.
        public override bool Equals(Object obj)
                        {
                                if(obj is Message)
                                {
                                        Message other = (Message)obj;
                                        return (hWnd == other.hWnd &&
                                                        msg == other.msg &&
                                                        wParam == other.wParam 
&&
                                                        lParam == other.lParam 
&&
                                                        result == other.result);
                                }
                                else
                                {
                                        return false;
                                }
                        }

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

        // Convert the LParam value into an object structure.
        // For security reasons, this doesn't do anything.
        // The control classes decode the "Args" value instead
        // of "LParam", which is safe.
        public Object GetLParam(Type cls)
                        {
                                return null;
                        }

        // Convert this object into a string.
        public override String ToString()
                        {
                                return String.Format
                                        ("hWnd=0x{0:x}, msg=0x{1:x}, 
wparam=0x{2:x}, " +
                                         "lparam=0x{3:x}, result=0x{4:x}",
                                         hWnd.ToInt64(), msg, wParam.ToInt64(),
                                         lParam.ToInt64(), result.ToInt64());
                        }

}; // struct Message

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MessageBoxButtons.cs - Implementation of the
 *                      "System.Windows.Forms.MessageBoxButtons" 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.Windows.Forms
{

public enum MessageBoxButtons
{
        OK                                      = 0,
        OKCancel                        = 1,
        AbortRetryIgnore        = 2,
        YesNoCancel                     = 3,
        YesNo                           = 4,
        RetryCancel                     = 5

}; // enum MessageBoxButtons

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MessageBoxDefaultButton.cs - Implementation of the
 *                      "System.Windows.Forms.MessageBoxDefaultButton" 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.Windows.Forms
{

public enum MessageBoxDefaultButton
{
        Button1 = 0x0000,
        Button2 = 0x0100,
        Button3 = 0x0200

}; // enum MessageBoxDefaultButton

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MessageBoxIcon.cs - Implementation of the
 *                      "System.Windows.Forms.MessageBoxIcon" 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.Windows.Forms
{

public enum MessageBoxIcon
{
        None            = 0x0000,
        Hand            = 0x0010,
        Question        = 0x0020,
        Exclamation     = 0x0030,
        Asterisk        = 0x0040,
#if !CONFIG_COMPACT_FORMS
        Error           = Hand,
        Information     = Asterisk,
        Stop            = Hand,
        Warning         = Exclamation
#endif

}; // enum MessageBoxIcon

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MouseButtons.cs - Implementation of the
 *                      "System.Windows.Forms.MouseButtons" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
[Flags]
public enum MouseButtons
{
        None            = 0x00000000,
        Left            = 0x00100000,
        Right           = 0x00200000,
#if !CONFIG_COMPACT_FORMS
        Middle          = 0x00400000,
        XButton1        = 0x00800000,
        XButton2        = 0x01000000,
#endif

}; // enum MouseButtons

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MouseEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.MouseEventArgs" 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.Windows.Forms
{

using System.Runtime.InteropServices;

#if !ECMA_COMPAT && !CONFIG_COMPACT_FORMS
[ComVisible(true)]
#endif
public class MouseEventArgs : EventArgs
{
        // Internal state.
        private MouseButtons button;
        private int x, y;
#if !CONFIG_COMPACT_FORMS
        private int clicks, delta;
#endif

        // Constructor.
        public MouseEventArgs(MouseButtons button, int clicks,
                                                  int x, int y, int delta)
                        {
                                this.button = button;
                                this.x = x;
                                this.y = y;
                        #if !CONFIG_COMPACT_FORMS
                                this.clicks = clicks;
                                this.delta = delta;
                        #endif
                        }

        // Get this object's properties.
        public MouseButtons Button
                        {
                                get
                                {
                                        return button;
                                }
                        }
        public int X
                        {
                                get
                                {
                                        return x;
                                }
                        }
        public int Y
                        {
                                get
                                {
                                        return y;
                                }
                        }
#if !CONFIG_COMPACT_FORMS
        public int Clicks
                        {
                                get
                                {
                                        return clicks;
                                }
                        }
        public int Delta
                        {
                                get
                                {
                                        return delta;
                                }
                        }
#endif

}; // class MouseEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * MouseEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.MouseEventHandler" 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.Windows.Forms
{

public delegate void MouseEventHandler(Object sender, MouseEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Orientation.cs - Implementation of the
 *                      "System.Windows.Forms.Orientation" 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.Windows.Forms
{

public enum Orientation
{
        Horizontal = 0,
        Vertical   = 1

}; // enum Orientation

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * PaintEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.PaintEventArgs" 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.Windows.Forms
{

using System.Drawing;

public class PaintEventArgs : EventArgs
#if !CONFIG_COMPACT_FORMS
        , IDisposable
#endif
{
        // Internal state.
        private Graphics graphics;
        private Rectangle clipRect;

        // Constructor.
        public PaintEventArgs(Graphics graphics, Rectangle clipRect)
                        {
                                this.graphics = graphics;
                                this.clipRect = clipRect;
                        }

        // Get the clipping rectangle.
        public Rectangle ClipRectangle
                        {
                                get
                                {
                                        return clipRect;
                                }
                        }

        // Get the graphics object that should be used for painting.
        public Graphics Graphics
                        {
                                get
                                {
                                        return graphics;
                                }
                        }

#if !CONFIG_COMPACT_FORMS

        // Destructor.
        ~PaintEventArgs()
                        {
                                Dispose(false);
                        }

        // Dispose of this object.
        public void Dispose()
                        {
                                Dispose(true);
                                GC.SuppressFinalize(this);
                        }
        protected virtual void Dispose(bool disposing)
                        {
                                if(graphics != null)
                                {
                                        graphics.Dispose();
                                        graphics = null;
                                }
                        }

#else // CONFIG_COMPACT_FORMS

        // Dispose of this object.
        internal void Dispose()
                        {
                                if(graphics != null)
                                {
                                        graphics.Dispose();
                                        graphics = null;
                                }
                        }

#endif // CONFIG_COMPACT_FORMS

}; // class PaintEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * PaintEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.PaintEventHandler" 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.Windows.Forms
{

public delegate void PaintEventHandler(Object sender, PaintEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * PictureBoxSizeMode.cs - Implementation of the
 *                      "System.Windows.Forms.PictureBoxSizeMode" 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.Windows.Forms
{

public enum PictureBoxSizeMode
{
        Normal                  = 0,
        StretchImage    = 1,
#if !CONFIG_COMPACT_FORMS
        AutoSize                = 2,
#endif
        CenterImage             = 3

}; // enum PictureBoxSizeMode

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * QueryAccessibilityHelpEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.QueryAccessibilityHelpEventArgs" 
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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public class QueryAccessibilityHelpEventArgs : EventArgs
{
        // Internal state.
        private String helpNamespace;
        private String helpString;
        private String helpKeyword;

        // Constructors.
        public QueryAccessibilityHelpEventArgs()
                        {
                                // Nothing to do here.
                        }
        public QueryAccessibilityHelpEventArgs
                                (String helpNamespace, String helpString, 
String helpKeyword)
                        {
                                this.helpNamespace = helpNamespace;
                                this.helpString = helpString;
                                this.helpKeyword = helpKeyword;
                        }

        // Get or set this object's properties.
        public String HelpNamespace
                        {
                                get
                                {
                                        return helpNamespace;
                                }
                                set
                                {
                                        helpNamespace = value;
                                }
                        }
        public String HelpString
                        {
                                get
                                {
                                        return helpString;
                                }
                                set
                                {
                                        helpString = value;
                                }
                        }
        public String HelpKeyword
                        {
                                get
                                {
                                        return helpKeyword;
                                }
                                set
                                {
                                        helpKeyword = value;
                                }
                        }

}; // class QueryAccessibilityHelpEventArgs

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * QueryAccessibilityHelpEventHandler.cs - Implementation of the
 *                      
"System.Windows.Forms.QueryAccessibilityHelpEventHandler" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public delegate void QueryAccessibilityHelpEventHandler
                (Object sender, QueryAccessibilityHelpEventArgs e);

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * QueryContinueDragEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.QueryContinueDragEventArgs" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

using System.Runtime.InteropServices;

#if !ECMA_COMPAT
[ComVisible(true)]
#endif
public class QueryContinueDragEventArgs : EventArgs
{
        // Internal state.
        private int keyState;
        private bool escapePressed;
        private DragAction action;

        // Constructor.
        public QueryContinueDragEventArgs
                                (int keyState, bool escapePressed, DragAction 
action)
                        {
                                this.keyState = keyState;
                                this.escapePressed = escapePressed;
                                this.action = action;
                        }

        // Get this object's properties.
        public DragAction Action
                        {
                                get
                                {
                                        return action;
                                }
                                set
                                {
                                        action = value;
                                }
                        }
        public bool EscapePressed
                        {
                                get
                                {
                                        return escapePressed;
                                }
                        }
        public int KeyState
                        {
                                get
                                {
                                        return keyState;
                                }
                        }

}; // class QueryContinueDragEventArgs

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * QueryContinueDragEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.QueryContinueDragEventHandler" 
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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public delegate void QueryContinueDragEventHandler
                (Object sender, QueryContinueDragEventArgs e);

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * RightToLeft.cs - Implementation of the
 *                      "System.Windows.Forms.RightToLeft" 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.Windows.Forms
{

public enum RightToLeft
{
        No              = 0,
        Yes             = 1,
        Inherit = 2

}; // enum RightToLeft

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * S.cs - Implementation of string resource handling.
 *
 * Copyright (C) 2002, 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
{

using System.Reflection;
using System.Resources;

// This class provides string resource support to the rest
// of the System.Drawing library assembly.  It is accessed using
// the "S._(tag)" convention.

internal sealed class S
{

#if CONFIG_RUNTIME_INFRA

        // Cached copy of the resources for this assembly and mscorlib.
#if ECMA_COMPAT
        private static ECMAResourceManager ourResources = null;
        private static ECMAResourceManager runtimeResources = null;
#else
        private static ResourceManager ourResources = null;
        private static ResourceManager runtimeResources = null;
#endif

        // Helper for obtaining string resources for this assembly.
        public static String _(String tag)
                        {
                                lock(typeof(S))
                                {
                                        String value;

                                        // Try the resources in this assembly 
first.
                                        if(ourResources == null)
                                        {
                                        #if ECMA_COMPAT
                                                ourResources = new 
ECMAResourceManager
                                                        
("System.Windows.Forms", (typeof(S)).Assembly);
                                        #else
                                                ourResources = new 
ResourceManager
                                                        
("System.Windows.Forms", (typeof(S)).Assembly);
                                        #endif
                                        }
                                        value = ourResources.GetString(tag, 
null);
                                        if(value != null)
                                        {
                                                return value;
                                        }

                                        // Try the fallbacks in the runtime 
library.
                                        if(runtimeResources == null)
                                        {
                                        #if ECMA_COMPAT
                                                runtimeResources = new 
ECMAResourceManager
                                                        ("runtime", 
(typeof(String)).Assembly);
                                        #else
                                                runtimeResources = new 
ResourceManager
                                                        ("runtime", 
(typeof(String)).Assembly);
                                        #endif
                                        }
                                        return runtimeResources.GetString(tag, 
null);
                                }
                        }

#else // !CONFIG_RUNTIME_INFRA

        // We don't have sufficient runtime infrastructure to load resources.
        public static String _(String tag)
                        {
                                return tag;
                        }

#endif // !CONFIG_RUNTIME_INFRA

}; // class S

}; // namespace System

--- NEW FILE ---
/*
 * ScrollBars.cs - Implementation of the
 *                      "System.Windows.Forms.ScrollBars" 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.Windows.Forms
{

public enum ScrollBars
{
        None            = 0,
        Horizontal      = 1,
        Vertical        = 2,
        Both            = 3

}; // enum ScrollBars

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TODOAttribute.cs - Implementation of the "System.TODOAttribute" class.
 *
 * Copyright (C) 2001  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
{

// This is a pseudo attribute which is used to tag classes, methods,
// fields, properties, etc, that are not yet complete.  This allows
// automated tools to scan the resulting binary to provide a list
// of incomplete sections of the code.

[AttributeUsage(AttributeTargets.All, AllowMultiple=false, Inherited=true)]
internal sealed class TODOAttribute : Attribute
{
        public TODOAttribute()
        {
                // Nothing to do here.
        }

}; // class TODOAttribute

}; // namespace System

--- NEW FILE ---
/*
 * ThreadExceptionEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ThreadExceptionEventArgs" 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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public class ThreadExceptionEventArgs : EventArgs
{
        // Internal state.
        private Exception t;

        // Constructor.
        public ThreadExceptionEventArgs(Exception t)
                        {
                                this.t = t;
                        }

        // Get this object's properties.
        public Exception Exception
                        {
                                get
                                {
                                        return t;
                                }
                        }

}; // class ThreadExceptionEventArgs

#endif // !CONFIG_COMPACT_FORMS

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ThreadExceptionEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ThreadExceptionEventHandler" 
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.Windows.Forms
{

#if !CONFIG_COMPACT_FORMS

public delegate void ThreadExceptionEventHandler
                (Object sender, ThreadExceptionEventArgs e);

#endif

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ToolBarButton.cs - Implementation of the
 *                      "System.Windows.Forms.ToolBarButton" 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.Windows.Forms
{

public class ToolBarButton
{
        // TODO

}; // class ToolBarButton

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ToolBarButtonClickEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.ToolBarButtonClickEventArgs" 
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.Windows.Forms
{

public class ToolBarButtonClickEventArgs : EventArgs
{
        // Internal state.
        private ToolBarButton button;

        // Constructor.
        public ToolBarButtonClickEventArgs(ToolBarButton button)
                        {
                                this.button = button;
                        }

        // Get or set the toolbar button that was clicked.
        public ToolBarButton Button
                        {
                                get
                                {
                                        return button;
                                }
                                set
                                {
                                        button = value;
                                }
                        }

}; // class ToolBarButtonClickEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ToolBarButtonClickEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.ToolBarButtonClickEventHandler" 
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.Windows.Forms
{

public delegate void ToolBarButtonClickEventHandler
                (Object sender, ToolBarButtonClickEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * ToolBarButtonStyle.cs - Implementation of the
 *                      "System.Windows.Forms.ToolBarButtonStyle" 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.Windows.Forms
{

public enum ToolBarButtonStyle
{
        PushButton              = 1,
        ToggleButton    = 2,
        Separator               = 3,
        DropDownButton  = 4

}; // enum ToolBarButtonStyle

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeNode.cs - Implementation of the
 *                      "System.Windows.Forms.TreeNode" 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.Windows.Forms
{

public class TreeNode
{
        // TODO

}; // class TreeNode

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeViewAction.cs - Implementation of the
 *                      "System.Windows.Forms.TreeViewAction" 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.Windows.Forms
{

public enum TreeViewAction
{
        Unknown         = 0,
        ByKeyboard      = 1,
        ByMouse         = 2,
        Collapse        = 3,
        Expand          = 4

}; // enum TreeViewAction

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeViewCancelEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.TreeViewCancelEventArgs" 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.Windows.Forms
{

using System.ComponentModel;

public class TreeViewCancelEventArgs
#if CONFIG_COMPONENT_MODEL
        : CancelEventArgs
#else
        : EventArgs
#endif
{
        // Internal state.
        private TreeNode node;
        private TreeViewAction action;

        // Constructor.
        public TreeViewCancelEventArgs
                                (TreeNode node, bool cancel, TreeViewAction 
action)
#if CONFIG_COMPONENT_MODEL
                        : base(cancel)
#endif
                        {
                                this.node = node;
                                this.action = action;
                        }

        // Get the action that caused the event.
        public TreeViewAction Action
                        {
                                get
                                {
                                        return action;
                                }
                        }

        // Get the node that was affected by the event.
        public TreeNode Node
                        {
                                get
                                {
                                        return node;
                                }
                        }

}; // class TreeViewCancelEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeViewCancelEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.TreeViewCancelEventHandler" 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.Windows.Forms
{

public delegate void TreeViewCancelEventHandler
                (Object sender, TreeViewCancelEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeViewEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.TreeViewEventArgs" 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.Windows.Forms
{

using System.ComponentModel;

public class TreeViewEventArgs : EventArgs
{
        // Internal state.
        private TreeNode node;
        private TreeViewAction action;

        // Constructor.
        public TreeViewEventArgs(TreeNode node, TreeViewAction action)
                        {
                                this.node = node;
                                this.action = action;
                        }

        // Get the action that caused the event.
        public TreeViewAction Action
                        {
                                get
                                {
                                        return action;
                                }
                        }

        // Get the node that was affected by the event.
        public TreeNode Node
                        {
                                get
                                {
                                        return node;
                                }
                        }

}; // class TreeViewEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * TreeViewEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.TreeViewEventHandler" 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.Windows.Forms
{

public delegate void TreeViewEventHandler
                (Object sender, TreeViewEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * UICues.cs - Implementation of the
 *                      "System.Windows.Forms.UICues" 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.Windows.Forms
{

[Flags]
public enum UICues
{
        None                    = 0x0000,
        ShowFocus               = 0x0001,
        ShowKeyboard    = 0x0002,
        Shown                   = 0x0003,
        ChangeFocus             = 0x0004,
        ChangeKeyboard  = 0x0008,
        Changed                 = 0x000C

}; // enum UICues

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * UICuesEventArgs.cs - Implementation of the
 *                      "System.Windows.Forms.UICuesEventArgs" 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.Windows.Forms
{

public class UICuesEventArgs : EventArgs
{
        // Internal state.
        private UICues uicues;

        // Constructor.
        public UICuesEventArgs(UICues uicues)
                        {
                                this.uicues = uicues;
                        }

        // Get this object's properties.
        public UICues Changed
                        {
                                get
                                {
                                        return (uicues & UICues.Changed);
                                }
                        }
        public bool ChangeFocus
                        {
                                get
                                {
                                        return ((uicues & UICues.ChangeFocus) 
!= 0);
                                }
                        }
        public bool ChangeKeyboard
                        {
                                get
                                {
                                        return ((uicues & 
UICues.ChangeKeyboard) != 0);
                                }
                        }
        public bool ShowFocus
                        {
                                get
                                {
                                        return ((uicues & UICues.ShowFocus) != 
0);
                                }
                        }
        public bool ShowKeyboard
                        {
                                get
                                {
                                        return ((uicues & UICues.ShowKeyboard) 
!= 0);
                                }
                        }

}; // class UICuesEventArgs

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * UICuesEventHandler.cs - Implementation of the
 *                      "System.Windows.Forms.UICuesEventHandler" 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.Windows.Forms
{

public delegate void UICuesEventHandler
                (Object sender, UICuesEventArgs e);

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * View.cs - Implementation of the
 *                      "System.Windows.Forms.View" 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.Windows.Forms
{

public enum View
{
        LargeIcon       = 0,
        Details         = 1,
        SmallIcon       = 2,
        List            = 3

}; // enum View

}; // namespace System.Windows.Forms

--- NEW FILE ---
/*
 * Win32Constants.cs - Implementation of the
 *                      "System.Windows.Forms.Win32Constants" 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.Windows.Forms
{

internal sealed class Win32Constants
{
        // Class style values.
        public const int CS_BYTEALIGNCLIENT             = 4096;
        public const int CS_BYTEALIGNWINDOW             = 8192;
        public const int CS_KEYCVTWINDOW                = 4;
        public const int CS_NOKEYCVT                    = 256;
        public const int CS_CLASSDC                             = 64;
        public const int CS_DBLCLKS                             = 8;
        public const int CS_GLOBALCLASS                 = 16384;
        public const int CS_HREDRAW                             = 2;
        public const int CS_NOCLOSE                             = 512;
        public const int CS_OWNDC                               = 32;
        public const int CS_PARENTDC                    = 128;
        public const int CS_SAVEBITS                    = 2048;
        public const int CS_VREDRAW                             = 1;
        public const int CS_IME                                 = 0x10000;

        // Window style values.
        public const int WS_BORDER                              = 0x00800000;
        public const int WS_CAPTION                             = 0x00c00000;
        public const int WS_CHILD                               = 0x40000000;
        public const int WS_CHILDWINDOW                 = 0x40000000;
        public const int WS_CLIPCHILDREN                = 0x02000000;
        public const int WS_CLIPSIBLINGS                = 0x04000000;
        public const int WS_DISABLED                    = 0x08000000;
        public const int WS_DLGFRAME                    = 0x00400000;
        public const int WS_GROUP                               = 0x00020000;
        public const int WS_HSCROLL                             = 0x00100000;
        public const int WS_ICONIC                              = 0x20000000;
        public const int WS_MAXIMIZE                    = 0x01000000;
        public const int WS_MAXIMIZEBOX                 = 0x00010000;
        public const int WS_MINIMIZE                    = 0x20000000;
        public const int WS_MINIMIZEBOX                 = 0x00020000;
        public const int WS_OVERLAPPED                  = 0x00000000;
        public const int WS_OVERLAPPEDWINDOW    = 0x00cf0000;
        public const int WS_POPUP                               = 
unchecked((int)0x80000000);
        public const int WS_POPUPWINDOW                 = 
unchecked((int)0x80880000);
        public const int WS_SIZEBOX                             = 0x00040000;
        public const int WS_SYSMENU                             = 0x00080000;
        public const int WS_TABSTOP                             = 0x00010000;
        public const int WS_THICKFRAME                  = 0x00040000;
        public const int WS_TILED                               = 0x00000000;
        public const int WS_TILEDWINDOW                 = 0x00cf0000;
        public const int WS_VISIBLE                             = 0x10000000;
        public const int WS_VSCROLL                             = 0x00200000;

        // Extended window styles.
        public const int WS_EX_ACCEPTFILES              = 0x00000010;
        public const int WS_EX_APPWINDOW                = 0x00040000;
        public const int WS_EX_CLIENTEDGE               = 0x00000200;
        public const int WS_EX_COMPOSITED               = 0x02000000;
        public const int WS_EX_CONTEXTHELP              = 0x00000400;
        public const int WS_EX_CONTROLPARENT    = 0x00010000;
        public const int WS_EX_DLGMODALFRAME    = 0x00000001;
        public const int WS_EX_LAYERED                  = 0x00080000;
        public const int WS_EX_LAYOUTRTL                = 0x00400000;
        public const int WS_EX_LEFT                             = 0x00000000;
        public const int WS_EX_LEFTSCROLLBAR    = 0x00004000;
        public const int WS_EX_LTRREADING               = 0x00000000;
        public const int WS_EX_MDICHILD                 = 0x00000040;
        public const int WS_EX_NOACTIVATE               = 0x08000000;
        public const int WS_EX_NOINHERITLAYOUT  = 0x00100000;
        public const int WS_EX_NOPARENTNOTIFY   = 0x00000004;
        public const int WS_EX_OVERLAPPEDWINDOW = 0x00000300;
        public const int WS_EX_PALETTEWINDOW    = 0x00000188;
        public const int WS_EX_RIGHT                    = 0x00001000;
        public const int WS_EX_RIGHTSCROLLBAR   = 0x00000000;
        public const int WS_EX_RTLREADING               = 0x00002000;
        public const int WS_EX_STATICEDGE               = 0x00020000;
        public const int WS_EX_TOOLWINDOW               = 0x00000080;
        public const int WS_EX_TOPMOST                  = 0x00000008;
        public const int WS_EX_TRANSPARENT              = 0x00000020;
        public const int WS_EX_WINDOWEDGE               = 0x00000100;

}; // class Win32Constants

}; // namespace System.Windows.Forms





reply via email to

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