2006-04-14 Alexander Olk <alex.olk@googlemail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 358724be7e97ef52b86fdf19327dac048175eb4e..b539cea0eedf3497bc1d23dbdc4a7b3e2b56bdb4 100644 (file)
@@ -1,3 +1,389 @@
+2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
+         drawing code to reflect the size grip changes
+
+2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ImageListStreamer.cs: fix handling of the mask that follows the main
+       bitmap when deserializing and serialize it properly. The generated mask
+       should better be a 1bpp image, but I'll do that later.
+
+2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Show something in the DirComboBox on *nix if the
+         path doesn't fit into some of our Current.Places
+
+2006-04-13  Jackson Harper  <jackson@ximian.com>
+
+       * ComboBox.cs: Use borders instead of drawing our own decorations,
+       try to obey correct rules for heights.
+       * Theme.cs:
+       * ThemeNice.cs:
+       * ThemeClearLooks.cs:
+       * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
+       this is now handled by borders.
+       - Remove unused DrawListBoxDecorationSize method.
+       
+2006-04-13  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: null guarding for the disbled click check fixes crash
+       reported by Alex.
+
+2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: 
+         - Fixed CPDrawStringDisabled
+         - Corrected drawing of disabled menu items
+         - Fixed drawing of disabled radio buttons (bug #78095)
+         - Draw check in a disabled CheckBox with color ControlDark 
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Form.cs: Use the provided width when calculating the menu size;
+         when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
+         and ClientSize.Width won't be updated yet
+       * Application.cs: Use Visible instead of Show() to make form visible,
+         this way we create the handle later and menusize is considered
+
+2006-04-12  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
+       reporting.
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * TextBox.cs: Implemented context menu
+
+2006-04-12  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: implement box selection. fixes #77838.
+       * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: Added setting of window type when transient window
+         is created (metacity would move it otherwise)
+       * X11Structs.cs: Added WINDOW_TYPE atoms
+       * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
+         background (the control is Opaque but still wants transparent
+         backgrounds)
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: Added OnPaintBackgroundInternal to allow controls
+         that set Opaque but don't mean it (like all ButtonBase-derived
+         controls) to still draw their background
+       * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
+         the background
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs (PaintControlBackground): Set the graphics object
+         on our PaintEvent to null to prevent it from being disposed
+         when the PaintEvent gets disposed
+
+2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
+       * ThemeNice.cs, ThemeClearlooks.cs: fix typo
+
+2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: 
+         - Added transparency check to BackColor property. Transparent
+           backgrounds are only allowed if the control styles permit it
+         - Added recursive painting of parent control background and
+           foreground if a control with a transparent backcolor is drawn
+           (Thanks to Tim Ringenback for providing his 'hack' as a base
+            for this patch) Fixes #77985 and #78026.
+         - Added Opaque style check before calling OnPaintBackground, no
+           need to draw the background if the control is opaque
+         - Removed ControlAccessibleObject owner variable (inherited from
+           base, no need to define again)
+         - Added some documentation links explaining the drawing events
+           and styles
+
+2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
+         that the affected control is the located at the left border of our
+         parent (Fixes #77936)
+
+2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * TextBoxBase.cs: When rendering disabled or readonly controls,
+         draw the background with 'Control' instead of 'Window' color as
+         long as the user hasn't specifically set a color
+
+2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
+         since that won't be updated if the user types text (only if it's
+         programatically set)
+
+2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
+         layout changes do to app-triggered resizes will have the proper
+         display rectangle for layout
+
+2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs:
+         - Make use of the SystemBrushes and SystemPens wherever possible
+         - Corrected some highlight colors
+         - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
+           drawing
+       * Theme.cs: Added Empty field to CPColor struct
+
+2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ScrollabeControl.cs: We need to consider whether or not a scrollbar
+         is displayed when calculating the display rectangle. Thanks to Mike
+         for teaching me the err of my ways.
+
+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
          - Making sure the active control is selected when the control is created
        * CurrencyManager.cs: Removed obsolete TODO
 
->>>>>>> .r58862
 2006-03-29  Mike Kestner  <mkestner@novell.com>
 
        * *.cs: fix remaining corcompare issues for 1.1 API with the exception
        * 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