2006-04-10 Peter Dennis Bartok <pbartok@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index c485574639d6480b3b2826cfb9c612575901d075..11b63e7499edad4e66bd9bfd08de7f3a967e78c4 100644 (file)
@@ -1,3 +1,369 @@
+2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ScrollableControl.cs:
+         - Rewrote DisplayRectangle code, now returning the proper x/y coords 
+           (instead of 0,0) and we now return the real width/height instead of
+           just the clientrectangle, adjusted for padding. The rectangle is
+           now cached and created by the new CalculateDisplayRectangle method.
+         - Created new CalculateDisplayRectange method, which basically does
+           what get_DisplayRectangle() did originally, but now using the 
+           right edge instead of DisplayRectangle to determine the size of
+           our scrollbars
+         - get_Canvas(): Fixed it to properly calculate canvas for 
+           right/bottom controls which seem to be placed to the right/bottom
+           of any controls that have a fixed location
+         - Removed TODO that's taken care of
+         - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
+           and SetDisplayRectLocation according to new MSDN2 docs
+         - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
+           event when that is called, this is added for compatibility
+         - ScrollControlIntoView(): Implemented.
+         - Switched scrollbars to be implicit, they shouldn't be selectable
+       * ContainerControl: Now that ScrollControlIntoView is implemented, we 
+         call it when the active control is set/changed
+       * ScrollBar.cs: Added support for generating Win32 scrollbar messages
+       * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
+         implicit_control variable (used for native Win32 message generation)
+       * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
+         HorizontalScrollBarHeight and VerticalScrollBarWidth properties
+       * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
+       * XplatUIStructs.cs: Added ScrollBarCommands enum
+
+2006-04-10  Jackson Harper  <jackson@ximian.com>
+
+       * ButtonBase.cs:
+       * CheckedListBox.cs:
+       * ComboBox.cs:
+       * DataGrid.cs:
+       * DataGridView.cs:
+       * Form.cs:
+       * GroupBox.cs:
+       * ListBox.cs:
+       * PrintPreviewControl.cs:
+       * ProgressBar.cs:
+       * PropertyGrid.cs:
+       * Splitter.cs:
+       * StatusBar.cs:
+       * TrackBar.cs:
+       * UpDownBase.cs: Fixup base event overrides.
+       
+2006-04-06  Mike Kestner  <mkestner@novell.com>
+
+       * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
+       all user-initiated value changes to min <= value <= max-thumbsz+1.
+       (set_Value): check for vert/horiz when calculating new thumb position.
+       (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
+       like MS does.
+       (OnMouseMoveSB): refactor the thumb dragging code and refine
+       invalidation logic to reduce flicker.
+       (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
+       (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
+       (UpdateThumbPosition): small code readability cleanup
+
+2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Small UI polishing. Draw borders a little bit
+         different
+
+2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Use a better graphics effect when a button is pressed
+
+2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
+       * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
+         This dramatically reduces the number of Pen.Dispose calls. 
+         Where possible call ResPool methods only once instead of calling it
+         over and over again (for example for the same color).
+
+2006-04-06  Mike Kestner  <mkestner@novell.com>
+
+       * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
+       Also remove an unused private field on the collection. Fixes #77972.
+
+2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Added ToolBar drawing code
+
+2006-04-06  Mike Kestner  <mkestner@novell.com>
+
+       * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
+       I'm assuming that means we need to look up the toplevel for the
+       provided control. Fixes the crash trace in #77911 but exposes another
+       crash in some strange reflection usage in NDocGui.
+
+2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Gave it a little silver touch and added Images
+         method
+       * FontDialog.cs: FontDialog is not resizable
+       * FileDialg.cs: Added SizeGripStyle.Show
+
+2006-04-05  Jackson Harper  <jackson@ximian.com>
+
+       * KeyboardLayouts.cs: Remove warning.
+
+2006-04-05  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Enable OnPaintInternal so we can use it for drawing
+       all of our controls instead of Paint +=.
+       * ListBox.cs:
+       * ListView.cs:
+       * MenuAPI.cs:
+       * MessageBox.cs:
+       * NotifyIcon.cs:
+       * ProgressBar.cs:
+       * ScrollBar.cs:
+       * Splitter.cs:
+       * StatusBar.cs:
+       * TabControl.cs:
+       * TextBoxBase.cs:
+       * ToolBar.cs:
+       * TrackBar.cs:
+       * UpDownBase.cs:
+       * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
+       use OnPaintInternal. Remove Width/Height and Visible checks in
+       paint handler, this is done at a higher level now.
+       * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
+       * PaintEventArgs.cs: Add a handled flag so controls that don't
+       want anymore painting after OnPaintInternal can make sure OnPaint
+       isn't called.
+
+2006-04-05  Mike Kestner  <mkestner@novell.com>
+
+       * Form.cs: fix the menu WndProc hacks to respect the native enabled
+       state of the form, so that we don't process events when Modal dialogs
+       are up. Fixes #77922.
+
+2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
+         checking is done.
+
+2006-04-05  Mike Kestner  <mkestner@novell.com>
+
+       * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
+
+2006-04-05  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs (HeaderMouseMove): null guarding for the over column
+       when setting up the drag_to_index.  Fixes #78015.
+
+2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
+         in the taskbar. Transient windows seem to accomplish that.
+
+2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Form.cs:
+         - Re-enabled CreateParams.X/Y code for FormStartPosition
+         - Added code for manual placement when creating the Control
+         - Incomplete patch to treat MDI forms differently when
+           setting the ClientSizeCore. (Still need to figure out handling
+           x/y coords there)
+       * XplatUIX11.cs:
+         - When we're explicitly setting the X/Y position of a non-Child
+           window, let the WM know. Metacity really wants this.
+
+2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Added CPDrawButton
+
+2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeNice.cs: Changed the color for focused buttons and activated
+         the arrows for small scroll buttons.
+
+2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
+         anymore. Changed some method modifiers to protected (virtual)
+       * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
+         changes
+       * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
+         Updated drawing of menus, buttons and progressbars; added
+         CPDrawBorder3D 
+
+2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ImageListStreamer.cs: implemented serialization/deserialization
+       of the images.
+
+2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs:
+         - Removed all the DrawFrameControl stuff; CPDrawButton,
+           CPDrawCheckBox and CPDrawRadioButton are now handled directly
+           inside the methods
+         - Updated and corrected the drawing code of CPDrawButton,
+           CPDrawCheckBox and CPDrawRadioButton to better match ms
+         - Updated theme checkbox and radiobutton code to use the CP*
+           methods
+
+2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: Enable clipping again now that the libgdiplus
+         bug is fixed
+
+2006-03-31  Jackson Harper  <jackson@ximian.com>
+
+       * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
+       sometimes.
+       * UpDownBase.cs: Don't CreateGraphics manually, use a
+       Refresh. Ideally we would invalidate the correct areas here.
+
+2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: 
+         - We now track the mapping state of windows. If a window (or 
+           one of it's parents) is not mapped we no longer permit
+           WM_PAINT messages to be generated since we'd otherwise get 
+           lots of BadMatch X errors. Jackson did all the work figuring
+           out the problem.
+         - Destroying the caret if the window it's contained in is 
+           destroyed. Can't use regular DestroyCaret method since it
+           might fall into a drawing function (trying to remove the
+           caret) and with that generate new BadMatch errors. Again,
+           Jackson tracked this down.
+         - Changed DestroyChildWindows to SendWMDestroyMessages, we now
+           make sure we send the messages to all windows. (The old code
+           would send the WM_DESTROY to the window, and then all child
+           windows would be 'gone' because the WM_DESTROY handle lookup
+           would no longer find the destroyed window)
+       * Hwnd.cs: Added Mapping property to track mapping state of hwnd
+       * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
+
+2006-03-31  Jackson Harper  <jackson@ximian.com>
+
+       * ScrollableControl.cs: Dont recalc if we are not visible.
+
+2006-03-31  Mike Kestner  <mkestner@novell.com>
+
+       * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
+       the visibility branch.
+
+2006-03-31  Jackson Harper  <jackson@ximian.com>
+
+       * ScrollBar.cs: Cap values when incrementing/decrementing.
+
+2006-03-31  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: setup menu.tracker for popup/context menus.
+       * ToolTip.cs: guard against timer expirations with no active control.
+       Not sure why it happened.
+
+2006-03-31  Mike Kestner  <mkestner@novell.com>
+
+       * ThemeWin32Classic.cs: add some horizontal padding space for the tip
+       text.
+       * ToolTip.cs: Position the tooltip based on where the cursor is at
+       popup time, not at MouseEnter time.  Add a Down state so that we don't
+       redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
+       positioning offset. Lookup DisplaySize at positioning time, since it
+       can theoretically change during invocation.
+       * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
+       * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
+
+2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
+         Fixes behaviour when the Text property of the box is String.Empty
+
+2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: Only send mouseleave for our client windows, not
+         for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
+         a window)
+
+2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Visual enhancement for the popup buttons in 
+         PopupButtonPanel
+
+2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
+         code
+
+2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
+         highlighted menu items to match ms
+
+2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
+
+2006-03-30  Mike Kestner  <mkestner@novell.com>
+
+       * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
+       * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
+       go active to account for HotLight to Selected transition.
+       * MenuItem.cs: add internal Selected prop. Fill out the Status
+       property by calculating it from item info. Add HotLight,
+       NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
+
+2006-03-30  Mike Kestner  <mkestner@novell.com>
+
+       * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
+
+2006-03-29  Jackson Harper  <jackson@ximian.com>
+
+       * Form.cs: Implement TODO.
+
+2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * PrintPreviewDialog.cs: Implemented missing methods and events; still
+         missing proper dialog setup in the constructor
+
+2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ProgressBar.cs: Added 2.0 Style property that apps seem to use
+       * Control.cs:
+         - Implemented CheckForIllegalCrossThreadCalls, removed TODO
+         - Fixed ResetBindings and removed TODO
+         - Added check for cross-thread calls to get_Handle()
+         - Added Marshaller attribute for set_Font to satisfy class status
+       * FontDialog.cs: Removed TODOs that seemed implemented
+       * UpDownBase.cs: Removed unneeded TODO and Fixme
+       * MessageBox.cs: Implemented support for Default button and removed TODO
+       * FileDialog.cs: Removed obsolete TODO
+       * DomainUpDown.cs: Removed obsolete TODO
+       * ButtonBase.cs: Removed obsolete TODO
+       * XplatUIWin32.cs: Removed obsolete TODO
+       * Form.cs:
+         - Removed obsolete TODO
+         - Calling CheckAcceptButton when the acceptbutton is changed to allow
+           internal status updates
+         - Making sure the active control is selected when the control is created
+       * CurrencyManager.cs: Removed obsolete TODO
+
+2006-03-29  Mike Kestner  <mkestner@novell.com>
+
+       * *.cs: fix remaining corcompare issues for 1.1 API with the exception
+       of PrintPreviewDialog and RichTextBox.
+
+2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Theme.cs: Added a little helper to SystemResPool to get the Dark,
+         DarkDark, Light and LightLight colors for a specific color
+       * ThemeWin32Classic.cs:
+         - Use Button drawing code to draw RadioButtons and CheckBoxes with
+           Appearance = Button 
+         - Make use of the new ResPool helper CPColor
+         - Draw ProgressBar and StatusBar with correct 3D borders
+
+2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ColorDialog.cs: Return selected color. Fixes bug #77940.
+
+2006-03-28  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: fix Icon layout to plan for scrollbar widths when
+       calculating col/row counts.
+
 2006-03-28  Mike Kestner  <mkestner@novell.com>
 
        * ColumnHeader.cs:
        * ContextMenu.cs (Show): use the position parameter instead of just
        showing at the MousePosition.
 
->>>>>>> .r58288
 2006-03-21  Jackson Harper  <jackson@ximian.com>
 
        * TabControl.cs: Remove the call to ProcessKeyEventArgs and let