* FileDialog.cs: Use text of File name combobox to determine what
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 7043ddebc0443f20619fc607879d86a03dccbf68..b4fa5c0bce6544aef7a7a26582ca423956c2291d 100644 (file)
@@ -1,3 +1,789 @@
+2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * FileDialog.cs: Use text of File name combobox to determine what
+       files the user selected. Added tokenizer to parse the file names.
+       Fixes bug #81123.
+
+2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: We can't call SizeFromClientSize in the constructor,
+       but we still need to do the same work, so make an internal version.
+       [Fixes bug #80621]
+
+2007-03-12  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs:
+       * TreeNode.cs:
+       * OpenTreeNodeEnumerator: Match MS better for IsVisible and
+       IsExpanded.
+
+2007-03-12  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: Now that the handles are being created a little
+       later, we need to make sure that the document is recalculated when
+       the handle is created.
+
+2007-03-11  Everaldo Canuto  <everaldo@simios.org>
+
+       * Theme.cs: GetLinkFont abstract method added.
+       
+       * LinkLabel.cs: 
+       - Remove CalcTrimRectangle, no longer needed.
+       - Factor also remove, position issues must be fixed in libgdiplus.
+       - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
+       - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
+       care about font used to draw links.
+       - Set TabStop to true when control is "Selectable", control is selectable
+       when have one or more links. Fixes #80501 (test case is also added).
+       - Set the LinkArea values after links change, LinkArea values must be
+       based in first link position and size, a test case was created.
+       - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
+       the attribute must be true LinkArea.Length > 0. The same was applied to
+       TabStop.
+       
+       * ThemeWin32Classic.cs: 
+       - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
+       in draw method.
+       - Use CPDrawStringDisabled to draw disabled text instead of hard code 
+       color change.
+       - Draw focus rectangle for every parts focused, including parts that 
+       is on another line, its because regions returns various rectangles
+       and not only one. Needed to mimic W32 look.
+       - Uses Graphics.Clip to delimite region painted, it mean that now 
+       complete text is passed to DrawString, with this we solve layout
+       issues without create another text renderer.
+       - Uses Region.Intersect to fix some flickers problems, now only needed
+       parts will redrawed.
+       - This changes fixes #79614 and some other unreported issues, on Linux 
+       some layout problems still remain, the problem is under 
+       MeasureCharacterRanges but it is an libgdiplus bug.
+
+2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * TextBox.cs: Set for foreground color.
+       * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
+       this is already done in Control.
+
+2007-03-10  Jackson Harper  <jackson@ximian.com>
+
+       * TextBox.cs: Set the background color, but reset the
+       backcolor_set flag which is just for the user setting the
+       background color.
+
+2007-03-09  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs: really remove the call to XplatUI.SetVisible from
+       CreateHandle(), like I said I did when I merged the branch.
+
+       * BindingSource.cs: implement some more of this stuff.
+
+2007-03-09  Jackson Harper  <jackson@ximian.com>
+
+       * TextBox.cs: Don't explicitly set our background colors.
+       * TextControl.cs:
+       * TextBoxBase.cs: Draw readonly text.
+       - Need to invalidate when backcolor or readonly are changed.
+       
+2007-03-09  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: Don't set the forecolor until the handle is
+       created.
+       - Do not raise OnPaint, and removed some old debug code.
+
+2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ScrollableControl.cs: Fix mouse wheel scrolling.
+
+2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Wire up MouseDoubleClick event.
+
+2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
+       top or bottom.
+       * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
+       * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
+       item is added.  This logic was moved to ToolStrip.OnItemAdded.
+       [Fixes bug #81090]
+
+2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
+
+2007-03-08  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Show the correct image for selected node (this used
+       to work, not sure how the code got deleted). Also implemented 2.0 feature
+       SelectedImageKey.
+
+2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs:
+       * ListViewItem.cs: Cache index in items when retrieving them
+       in VirtualMode.
+
+2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripItem.cs: Don't return the explicit_size if we are using 
+       AutoSize.  Fixes invalidation issue when user has explicitly set a
+       size and has AutoSize = true.
+
+2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
+
+2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
+
+       * DataGridView.cs: Remove event handler from DataView when a
+       DataTable is used as DataSource.
+
+2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Create internal setter for client_size to allow it to be
+       set without triggering resizing code.
+       * Form.cs: Calculate client_size in constructor, only change client_size
+       in FormBorderStyle property if Handle has been created.
+       [Fixes #80574, #80791]
+
+2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * SystemInformation.cs: Add TerminalServerSession.
+
+2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
+       TreeView code.
+
+2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
+       Handle before we were supposed to.  Now checks ActivateOnShow property
+       in Control.
+       * Control.cs: Add internal ActivateOnShow property.
+       * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
+       for ActivateOnShow.
+       * Hwnd.cs Remove no longer needed no_activate field.
+
+2007-03-07  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Implement owner draw tree nodes.  And a couple more
+       2.0 properties
+       * DrawTreeNodeEventHandler.cs: Add
+       * DrawTreeNodeEventArgs.cs: Correct default value.
+       
+2007-03-07  Chris Toshok  <toshok@ximian.com>
+
+       * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
+       to be called before NativeWindow.WndProc.  Put the HwndCreating
+       magic there to hook up our Hwnd's to handles.
+
+2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * DataGridView.cs: Comment out debug code.
+
+2007-03-07  Chris Toshok  <toshok@ximian.com>
+
+       [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
+       to make the rest of the world happy]
+
+       * Control.cs (CreateHandle): there's no need to call
+       XplatUI.SetVisible here, it's effectively done by
+       XplatUI.CreateWindow on X now, and always was on windows.
+
+       * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
+       shortcircuit out of the loop if we have a message loop running on
+       this thread.
+
+       [Changelog from merge]
+
+       2007-03-05  Chris Toshok  <toshok@ximian.com>
+
+               * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
+               causes handle creation.
+
+       2007-02-28  Chris Toshok  <toshok@ximian.com>
+
+               * ApplicationContext.cs: Add a flag to make sure we only raise the
+               ThreadExit event once (ExitThreadCore can be indirectly called
+               from a few places.)  I don't like the additional flag, but it
+               makes the event ordering/count correct.
+
+               * Application.cs (MWFThread.LoopCount): don't use an enumerator
+               without locking the collection.  An enumerator doesn't give us any
+               protection from modification anyway.  Lock the thread hash and
+               replace the complicated enumerator loop with a foreach.
+               (Application.CloseForms): make internal so it can be called from
+               ApplicationContext.  This should probably be moved to MWFThread.
+               (Application.ExitThread): don't call MWFThread.Current.Exit()
+               here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
+               when the runloop exits (in response to WM_QUIT.)
+               (Application.RunLoop): add a comment (and check) for
+               context.MainForm being null after setting context.MainForm.Visible
+               = true.  This is because you're perfectly free to dispose of a
+               form in VisibilityChanged.  Chalk this up to another case where we
+               need to synchronously generate WM_ACTIVATE from Control.Show.
+               Also, add handling for WM_QUIT here so we'll exit the loop.
+               
+               * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
+               fact that we don't wait if we're only unmapping the whole_window
+               makes me a bit nervous, but it doesn't seem to cause any problems
+               yet.
+
+               also, add a comment about the stupid, broken and wrong resetting
+               of PostQuitState to false in GetMessage().
+
+               In PostQuitMessage, we need to add a WM_QUIT message to the
+               thread's queue.  We use the FosterParent to get the right
+               handle/hwnd/queue.
+
+               Lastly, in SetVisible, we need to unmap both windows, since the
+               waiting only happens when we're unmapping the client window.  So
+               now, the *only* time we unmap just the whole_window is in the hack
+               for resizing a control to 0,0.
+               
+       2007-02-21  Chris Toshok  <toshok@ximian.com>
+
+               * Application.cs (CloseForms): rewrite this so that we don't
+               modify the list while we're traversing it.
+
+       2007-02-20  Chris Toshok  <toshok@ximian.com>
+
+               * ListBox.cs (.ctor): move the Control.AddImplicits here instead
+               of OnHandleCreated.
+               (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
+               handle is created.  otherwise we'll create it here.
+               (VerticalScrollEvent): same here.
+
+               * Application.cs (CloseForms): call Form.Dispose, don't post
+               WM_CLOSE_INTERNAL.
+
+               * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
+               here. Application should Dispose() of the Form's.
+
+               * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
+               WM_DESTROY as well.
+               (MapWindow,UnmapWindow): only actually do the waiting for
+               SHOWWINDOW if the control we're dealing with is a Form.
+               (CreateWindow): if the control isn't a form, SendMessage
+               WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
+
+               * Control.cs (SetVisibleCore): always use is_visible here, not
+               value.  If we use value, we can end up re-setting something
+               visible if, for instance, you do Control.Hide() in a delegate
+               attached to VisibleChanged as we do in FormTest.ShowDialogTest.
+
+       2007-02-20  Chris Toshok  <toshok@ximian.com>
+
+               * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
+               the message we need.  PeekMessage returning false should not be a
+               condition under which we exit the loop.
+
+       2007-02-15  Chris Toshok  <toshok@ximian.com>
+
+               * Control.cs (Refresh): only refresh if we've got a handle and are
+               visible.
+               (CreateAccessibilityInstance): CreateControl() here.
+               (UpdateChildrenZOrder): complicate the code loop even more by
+               taking into account controls that haven't had their handle
+               created, and those that aren't visible.  But on the flip side,
+               simplify the code by splitting it into two loops.  one which
+               builds up the list of child controls we're interested in, and the
+               other that sets the z order of those children.
+
+       2007-02-14  Chris Toshok  <toshok@ximian.com>
+
+               * Control.cs: Control.AccessibilityObject causes the control to be
+               created, not just the handle.
+
+       2007-02-14  Chris Toshok  <toshok@ximian.com>
+
+               * Control.cs: rework UpdateChildrenZOrder to correctly handle the
+               problem on X where a window might have its handle created (and be
+               visible) while the window is unmapped.  calling XConfigureWindow
+               on an unmapped window is bad, and generates X errors.
+
+       2007-02-13  Chris Toshok  <toshok@ximian.com>
+
+               * Control.cs (CreateHandle): don't loop over our children setting
+               their parent here.  do it when in WndProc when we're shown.
+               (UpdateChildrenZOrder): make this internal so we can call it from
+               ScrollableControl.
+               (WndProc): for WM_SHOWWINDOW, reparent the child control after
+               creating its handle.  Also, remove the calls to PerformLayout from
+               here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
+               OnVisibleChanged only seems to be called directly here for the
+               toplevel control.  It's propagated down the window hierarchy by
+               calls to child.OnParentVisibleChanged.
+               (OnVisibleChanged): don't do layout here - it's done (oddly
+               enough, according to a glance at stack traces on ms.net..) in
+               ScrollableControl.
+               
+               * ScrollableControl.cs (OnVisibleChanged): make sure we update the
+               z order of our children before calling PerformLayout.
+
+       2007-02-12  Chris Toshok  <toshok@ximian.com>
+
+               [big change, fixes #80020]
+               
+               * AccessibleObject.cs: we need to make owner internal again to fix
+               some of ControlAccessibleObject.
+
+               * Control.cs: lots of changes here.  add support for WM_CREATE,
+               for which we generate OnHandleCreated.  Remove the OnHandleCreated
+               call from CreateHandle.  Also add support for WM_SHOWWINDOW where
+               we create child controls.  leave the MonoTODO's for the
+               accessibility calls, but fix the exceptions so the tests pass.
+
+               Add the InvalidOperationExceptions to Invoke methods, and remove a
+               couple of InvokeInternal methods we aren't using.
+               
+               Also, add a couple of CreateHandle calls in places where we know
+               the handles are being created but our code doesn't reference
+               .Handle.
+
+               Make SetVisibleCore call OnVisibleChange if the handle isn't
+               created.  If the handle is created, we rely on XplatUI.SetVisible
+               generating the event synchronously.
+               
+               Lastly, make sure we don't use this.Handle inside CreateHandle,
+               because we can call back into client (and that code can dispose of
+               the control).
+
+               * XplatUIStructs.cs: misc/cleanup.
+
+               * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
+               although we don't populate the wParam properly.
+               (CreateWindow): generate WM_CREATE.
+               (MapWindow,UnmapWindow): make these calls synchronous, at great
+               performance expense (particularly in the unmap case), to match
+               win32 behavior.
+
+               * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
+               to call it.
+               (set_MdiParent): don't recreate the handle unless it's been
+               created already.
+               
+               * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
+               it's created.
+
+               * NativeWindow.cs: this is probably the weirdest part of the
+               patch.  We need a way to link up the window being created to the
+               WM_CREATE message.  Since we can only be creating one window at a
+               time on a given thread, we keep track of a per-thread reference so
+               we can dispatch it properly.  We also need to keep track of the
+               Hwnd currently being created so that the win32 backend doesn't
+               have problems.
+               
+               * XplatUIWin32.cs: a similar change to the one we made in
+               NativeWindow.cs.
+
+2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripItem.cs: Make CalculatePreferredSize virtual.
+       * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
+       to draw the menu shortcut string.
+
+2007-03-07  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: Add the 2.0 collapse method.
+
+2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
+
+       * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
+
+2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
+
+       * DataGridView.cs: Change DataSource will clear column and row
+       lists. Call Invalidate() to reflect DataSource change.
+
+2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
+
+       * DataGridView.cs: Add rows when DataSource is System.Data.DataView
+       and a new row is added to it.
+
+2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
+
+       * DataGridView.cs: Add columns when DataSource is en empty list but
+       is a System.Data.DataView (from a System.Data.DataTable).
+
+2007-03-06  Andreia Gaita  <avidigal@novell.com>
+
+       * Label.cs: Implement AutoEllipsis (2.0)
+
+2007-03-06  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Implement 2.0 TopNode setter property.
+       - Use a local var instead of the skipped_nodes field for computing
+       how many nodes to skip.  Otherwise we won't scroll because the
+       valuechanged handler checks if skipped_nodes is equal to the new
+       value.
+       - Implement 2.0 Sort method.
+       - Add useless 2.0 DoubleBuffer property
+       - Implement 2.0 LineColors property.  Lets you change the color of
+       the lines in the tree. Terribly useful for creating non cohesive
+       desktops.
+       - Implement 2.0 image key feature.
+
+2007-03-06  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: We can't get the bounds of the nodes before raising
+       the AfterSelect event, because that event could change the node's
+       bounds (scrolling, font change, etc).
+
+2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
+       * Form.cs: Don't recreate handle when creating FormWindowManager, just
+         update window styles. In CreateParams us VisibleInternal instead of
+         VIsible to get the actual visible flag set for this form.
+       * FormWindowManager.cs: Activate the form whenever the mouse clicks on
+         the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
+         handle the case when the form is already maximized, in which case
+         it should be restored. Fixes #81043.
+
+2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
+
+2007-03-05  Jackson Harper  <jackson@ximian.com>
+
+       * TreeViewHitTestInfo.cs: implement.
+
+2007-03-05  Jackson Harper  <jackson@ximian.com>
+
+       * InternalWindowManager.cs: class status fix.
+
+2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * InternalWindowManager.cs: All windows that have a parent
+       are confined to their parent when they're being moved.
+       Fixes #80822.
+
+2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
+       on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
+
+2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
+         buttons invisible before deciding which ones should be visible
+         (fixes minimize/maximize buttons showing up in toolwindows). Remove
+         an unused variable.
+       * InternalWindowManager.cs: Remove warning.
+
+2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
+       to throw an InvalidOperationException is virtual mode is being used.
+
+2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
+
+       * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
+       ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
+       ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
+       ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
+       ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
+       ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
+
+2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
+         driver.KeyboardDelay from XplatUI.KeyboardDelay 
+       * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
+         (patch by Sergey Volk)
+
+2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * ToolWindowManager.cs: Added, contains logic for
+         tool windows.
+       * CreateParams.cs: Add a few helper methods and an
+         internal variable to know which control the CreateParams belongs
+         to.
+       * Control.cs: Call Form.ChangingParent when the
+         parent is about to be changed.
+       * XplatUIX11.cs: DeriveStyles (): Set
+         caption_height for all windows that have captions and are children.
+         Update to use ToolWindowManager instead of InternalWindowManager
+         for ToolWindows.
+       * XplatUIWin32.cs: Set fake window styles for all
+         windows that have window managers.
+       * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
+         now duplicated for mdi windows when they are
+         maximized, first for the buttons the window itself has, then for
+         the buttons that appear in the menu bar. Makes things a little
+         easier). Updated UpdateWindowDecorations, SetWindowState and the
+         mouse eventhandlers accordingly.
+       * Form.cs: Add ChangingParent (), contains the
+         logic of what should happen when the parent changes. In MdiParent
+         don't set things that ChangingParent () is doing. When handling
+         WM_CLOSE, we can close the form if there are any other modal forms
+         and the current form is a descendent of the modal form.
+       * InternalWindowManager.cs: A lot of refactoring,
+         the title buttons are now extracted to a separate container class
+         that takes care of all button code (clicks, tooltips, etc). Moved
+         Iconic|Maximized|Normal Bounds properties to this class from
+         MdiWindowManager, so that the window state logic can succeed for
+         other than mdi wm's. Implemented general window state change logic.
+         Moved CreateButtons to ThemeWin32Classic, since the theme might
+         override which buttons are available when as well as the exact
+         location.
+       * FormWindowManager.cs: Added, contains logic for
+         normal forms.
+       * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
+         which buttons go where (and if they are at all visible). 
+         Removed special handling of maximized windows, since they aren't special. 
+         In DrawManagedWindowDecorations don't try to draw the text if it is
+         empty.
+       * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
+         use whatever the wm gives us.
+
+2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ButtonBase.cs: Add 2.0 properties.
+       * Button.cs: Override Draw for 2.0.
+       * Control.cs: Add Entered and Selected properties.
+       * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
+       TextRenderer.cs: Make internal for 1.1 to unify drawing code.
+       * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
+       buttons.
+       * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
+
+2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
+
+2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIWin32.cs: Register a new class with Windows each time we get
+       a new ClassStyle.  [Fixes bugs #79432, #80817]
+       * Controls.cs: Set the correct ClassStyle in CreateParams.
+       * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
+
+2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListView.cs: Add fireEvent argument to ReorderColumn since the
+       ColumnReordered event must not be signaled when modifying DisplayIndex
+       of a ColumnHeader. Added internal ReorderColumns method which takes
+       care of drawing, and updating the internal DisplayIndex of the
+       ColumnHeader. Added AddColumn method which is invoked from
+       ColumnHeaderCollection when adding or inserting columns, and which
+       ensures that reorder_columns_indices is kept in sync. Avoid redrawing
+       after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
+       Recalculated dispay indices after removing a ColumnHeader.
+       * ColumnHeader.cs: Save DisplayIndex separately from ListView to
+       match MS. Allows last display index to be returned after ListView
+       is disposed. Update actual location of ColumnHeader when DisplayIndex
+       is modified.
+
+2007-03-01  Everaldo Canuto  <everaldo@simios.org>
+
+       * LinkLabel.cs: Improve CalcTrimRectangle.
+       
+       * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
+
+2007-02-28  Everaldo Canuto  <everaldo@simios.org>
+
+       * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
+       get rectangle as a result value.
+
+2007-02-28  Everaldo Canuto  <everaldo@simios.org>
+
+       * LinkLabel.cs: Theres some diferences between rectangle return from 
+       MeasureCharacterRanges and the area used for DrawString to fix this 
+       CalcMeasurementFactor method was created, it calcules the diferences
+       to be use later to adjust rectangle in draw operations. Fixes #80473.
+       
+       * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
+       to adjust draw rectangle.
+
+2007-02-27  Everaldo Canuto  <everaldo@simios.org>
+
+       * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
+       text and some other changes to reduce and optimize source code.
+
+2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
+
+       * RadioButton.cs: Implement 2.0 event.
+       * RelatedImageListAttribute.cs: Implement new class.
+
+2007-02-27  Everaldo Canuto  <everaldo@simios.org>
+
+       * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
+
+2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
+
+       * CheckBox.cs: Implement 2.0 functionality.
+
+2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Refactor Add and AddRange methods of
+       ListViewItemCollection, to not update the ListView
+       everytime an item is added in AddRange. Also move the update
+       code to a new CollectionChanged method, and call it
+       from other methods that need it as well (this should also fix some
+       bugs when Sorting is used).
+
+2007-02-27  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Try to never let the caret stay in a non-text
+       tag.
+       * TextBoxBase.cs: Update the caret.
+
+2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIStructs.cs: Add some convenience methods for POINT structure.
+       * XplatUIWin32.cs: Add some convenience methods for RECT structure,
+       delete POINT structure, duplicate of one in XplatUIStructs.
+       * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
+
+2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListView.cs: Initialize LabelEditEventArgs after setting Text of
+       edit box since otherwise the Label would immediately be set (even if
+       the user did not modify the label). In OnKeyDown set Handled to true
+       if Return or Escape was pressed. In ColumnHeaderCollection unlink
+       columns that are to be removed. In ListViewItemCollection unlink items
+       that are to be removed.
+
+2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextRenderer.cs: If we set a GDI clip region, we need to clear
+       it when we are done.  [Fixes bug #80949]
+
+2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
+
+2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: I forgot to commit the changes for ListView 
+       in my previous patch.
+
+2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Clipboard.cs: Partially implement an overload of SetDataObject.
+       * Form.cs: Implement ShowWithoutActivation.
+       * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
+
+2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       This is a first set of changes to make the Virtual mode works,
+       by avoiding the retrieval of ListViewItem instances until
+       draw time.
+
+       * ListView.cs: Store item position in the ListView instead of the
+       ListViewItem, this way we don't request the Bounds property of
+       ListViewItem inside the ListView calculations, as well as cache the item
+       size in item_size field. Store indexes instead of ListViewItem
+       instances in the matrix used by icon view. Add a ItemMatrixLocation
+       struct to hold the row and col info of the matrix info.
+
+       * ListViewItem.cs: Don't store the location anymore, and only cache
+       the rectangles for GetBounds. Use the ListView.GetItemLocation
+       method to retrieve the actual location.
+
+2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextRenderer.cs: Add clipping support, thanks to George.
+       [Fixes bug #80949]
+
+2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListViewItem.cs: Cancel label edit when item is removed from 
+       ListView.
+       * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
+       event before the edit textbox is displayed.  Added CancelEdit method
+       which is used end to editing while ignoring the value set by the
+       user. In EndEdit, set focus to ListView to avoid losing focus to
+       other controls. In ListViewItemCollection.Clear, cancel editing of
+       any of the items.  In Remove, cancel editing of item being removed.
+       Avoid udplicate code by modifing RemoveAt to invoke Remove.
+
+2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * FileDialog.cs: Update FSEntry when move is successful. Fixes
+       bug #80948.  
+
+2007-02-23  Everaldo Canuto  <everaldo@simios.org>
+
+       * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
+       compatible with non X11 systems. Fixes #80901.
+
+2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListView.cs: Added bool argument to UpdateMultiSelection to specify
+       whether the item should be unselected and reselect. We do no want this
+       when we're starting to edit the label. Do not fire the 
+       SelectedIndexChanged event from ListView when its already been fired
+       by modifying ListViewItem.Selected. Fixes bug #80943.
+
+2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextRenderer.cs: Previos commit logic was backwards.
+
+2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextRenderer.cs: Don't add padding on MeasureText if we were
+       sent the NoPadding flag.
+
+2007-02-23  Everaldo Canuto  <everaldo@simios.org>
+
+       * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
+       after DrawButton. To prevent image overlaps button borders SetClip and 
+       ResetClip added before and after draw image. Fixes #79129.
+
+2007-02-23  Everaldo Canuto  <everaldo@simios.org>
+
+       * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
+       window size, it fix problem when you run under win32 that theres
+       Size diferent than ClientSize. Also fix controls size and positions
+       to mimic Win32. Fixes #80837.
+
+2007-02-22  Everaldo Canuto  <everaldo@simios.org>
+
+       * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
+       menu area to fix some problems for non X11 systems. Fixes #80613.
+
+2007-02-22  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: When a node is expanded, set its is_expanded flag
+       even if it doesn't have any children.
+
+2007-02-22  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Calculate the top node 'on the fly', this
+       eliminates issues where you need to click on the tree before
+       scrolling it to get the top node computed correctly.
+       * TreeNodeCollection.cs: We don't need to mess with the top node
+       anymore.
+
+2007-02-22  Jackson Harper  <jackson@ximian.com>
+
+       * DataGridViewRow.cs: Fix typo so height can actually be set.
+       Patch by Peter Grimm.
+
+2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * FileDialog.cs: Fixed support for renaming files and directories.
+       * ListView.cs: Do not lose focus when edit is canceled. Process
+       Escape as regular key (to prevent closing of dialogs).
+
+2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
+       spaces. Changed spaces to tabs. Removed unnecessary init of bools.
+
+2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
+       did not modify label.
+       * ListView.cs: Only set LabelEditEventArgs.Label if user actually
+       modified the text. Reset Label when user presses Escape in edit mode.
+       Move focus to ListView after having cancelled or finished editing the
+       label.
+
 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * ComboBox.cs: Removed unnecessary initializations. Marked items field