* ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 6add6642ff57f314592e6795da42ddaafa820ceb..5b0278bed8057de3c7b10044cd36fac842b0af4c 100644 (file)
@@ -1,5 +1,499 @@
+2006-03-30  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  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:
+       * ListView.cs:
+       * ListViewItem.cs:
+       * Menu.cs: 
+       switch to explicit interface method implementation for some methods
+       corcompare identifies as inconsistent with MS.
+
+2006-03-28  Mike Kestner  <mkestner@novell.com>
+
+       * MainMenu.cs: 
+       * Menu.cs:
+       add a few missing methods from the class status output.
+
+2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
+         correct.
+
+2006-03-28  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
+
+2006-03-27  Mike Kestner  <mkestner@novell.com>
+
+       * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
+       the Hilight state to adapt to Alex's CPDrawBorder3D changes.
+
+2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
+
+2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs:
+         - GroupBox: Inserted a little gap between the text and the lines
+           on the right side
+         - Made the code in CPDrawBorder3D more readable
+         - Corrected the drawing location of the up and down arrows in 
+           CPDrawScrollButton
+
+2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ControlPaint.cs: Corrected line widths in DrawBorder for
+         ButtonBorderStyle Inset and Outset
+
+2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs:
+         - Rewrote the totally broken CPDrawBorder3D method. That was
+           one of the main problems for the terrific ThemeWin32Classic
+           look
+         - Updated and corrected Button drawing
+         - Correct the dimensions of the SizeGrip to match ms ones
+         - Removed a small drawing glitch in DrawComboBoxEditDecorations
+       * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
+         Border3DStyle.Sunken to match ms.
+
+2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: First small part of the "de-uglify
+         ThemeWin32Classic" effort, SizeGrip
+
+2006-03-24  Jackson Harper  <jackson@ximian.com>
+
+       * XplatUIX11.cs: Give a max idle time of one second, this matches
+       MS and forces an Idle event every second when there are no other
+       events in the queue.
+
+2006-03-24  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
+       * ListView.Item.cs: fix layout issues with null image lists and images
+       smaller than checkbox size.
+       * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
+       mode like MS does.  It's weird, but consistent.  ;-)
+       Fixes #77890.
+
+2006-03-24  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: Scroll wheel support for the item control.  Fixes
+       #77839.
+
+2006-03-23  Jackson Harper  <jackson@ximian.com>
+
+       * ScrollableControl.cs: Special case negative sized areas, not
+       zero.
+       * MonthCalendar.cs: Save the rect of the clicked date so we can
+       use it for invalidation.
+       - Try to cut down on the number of invalidates
+       - Invalidate the rect the mouse is over and was over when moving
+       the mouse, so we get the focus box following the cursor.
+
+2006-03-23  Mike Kestner  <mkestner@novell.com>
+
+       * ThemeWin32Classic.cs: fix FullRowSelect selection background and
+       focus rectangle drawing. Fixes #77835.
+
+2006-03-23  Mike Kestner  <mkestner@novell.com>
+
+       * XplatUIX11.cs: rework the fix for #77828 by changing the order of
+       the if and else if and reverting back to the original == check on the
+       None conditional.
+
+2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FontDialog.cs: Update the example panel if the selected index of
+         the fontListBox changes.
+
+2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Make FileDialog remember which directory it was in
+         last in the same execution.
+
+2006-03-22  Mike Kestner  <mkestner@novell.com>
+
+       * FileDialog.cs: make the DropDownMenu on the toolbar display
+       RadioChecks since they are mutually exclusive and that's what MS does.
+
+2006-03-22  Mike Kestner  <mkestner@novell.com>
+
+       * Theme.cs: add Color param to CPDrawMenuGlyph.
+       * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
+       checks and radio marks and arrows are visible on highlighted items.
+       * ControlPaint.cs: update to use new Theme signature.
+
+2006-03-22  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
+       is active. Fixes #77870.
+
+2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
+         to be focused/selected after startup
+
+2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ColorDialog.cs: 
+         - Corrected behaviour of Color, AllowFullOpen, FullOpen,
+           CustomColors and ShowHelp properties
+         - Some internal rewrites to get better results when using the
+           ColorMatrix
+
+2006-03-22  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
+       HoverSelection.  Fixes #77836.
+
+2006-03-22  Mike Kestner  <mkestner@novell.com>
+
+       * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
+       ToggleButtons.  (De)Sensitize the Back button around a stack count of
+       1, not 0.  Update ButtonSize based on a pixel count of the win32
+       control.  Adjust the toolbar size/location for new button size.
+
+2006-03-22  Jackson Harper  <jackson@ximian.com>
+
+       * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
+       true.
+       * ScrollBar.cs: When doing increments and decrements we need to
+       set the Value property so that ValueChanged gets raised. A
+       possible optimization here would be to make an internal SetValue
+       that doesn't invalidate immediately.
+       * ToolTip.cs: Tooltips get added to their container (when
+       supplied) so they get disposed when the container is disposed.
+       - Don't create tooltips for String.Empty. This prevents all these
+       little 2-3 pixel windows from showing up when running nunit-gui
+       and driving me mad.
+       * Form.cs: Don't set topmost when setting the owner if the handles
+       haven't been created yet.  The topmost set will happen when the
+       handles are created.
+
+2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs:
+         - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
+         - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
+           visible (to allow them to recalculate their sizes)
+
+2006-03-21  Mike Kestner  <mkestner@novell.com>
+
+       * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
+       methods. Removed a ton of redundant code.  Still not really happy with
+       the border rendering, but I think that's mainly because of the
+       ControlDarkDark being black instead of a dark grey. Depending on how 
+       close we want to be, we might want to revisit those color choices.
+       Among the new features added during the refactor were DropDownArrow
+       pressed rendering, Disabled image rendering.  Proper flat appearance
+       boundary rendering.  Removed the Divider and Wrapping dividers since I
+       can't figure out any combination of themes and conditions to make the
+       MS control draw a horizontal line on a toolbar despite what the
+       Divider property docs indicate.
+       * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
+       conditions and incorrect layout.  Updated to coding standard.
+       * ToolBarButton.cs: refactored layout and positioning code from
+       ToolBar to here.  Invalidate wherever possible instead of forcing
+       redraws of the whole toolbar. 
+       (Known remaining issues: explicit ButtonSize smaller than provided
+       images.)
+
+2006-03-21  Mike Kestner  <mkestner@novell.com>
+
+       * 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
+       control handle this.
+       * TreeNodeCollection.cs: If we are clearing the root node we need
+       to reset top_node so calcs can still happen.
+       * ThemeWin32Classic.cs: This is a Flags so we need to check
+       properly.
+       
+2006-03-21  Jackson Harper  <jackson@ximian.com>
+
+       * DataGrid.cs: Create columns when the binding context has been
+       changed.
+       * X11Structs.cs: Keysyms are uints.
+       - Add size to fix build.
+
+2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
+         XplatUIOSX.cs: 
+         - Added ResetMouseHover method to allow controls to retrigger
+           hovering if they need it more than once
+         - Implemented MouseHoverTime and MouseHoverSize properties
+       * Timer.cs: Start() must reset the interval
+       * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
+         properties
+
+2006-03-21  Jackson Harper  <jackson@ximian.com>
+
+       * X11Keyboard.cs: improved layout detection. Move the nonchar
+       tables into this file.
+       * KeyboardLayouts.cs: Move the tables into resource files.
+
+2006-03-21  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
+
+2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Mime.cs: Various speed optimizations. Looking up mime types
+         is now 2 times faster than before
+
+2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * CreateParams.cs: Added internal menu field
+       * Control.cs: 
+         - Switched call order for UpdateBounds; now we always call
+           the one that also takes ClientSize, and we're calculating the 
+           client size via driver method in the others. The previous
+           method of tracking client size by difference wasn't working
+           for forms where even the starting client size wouldn't match
+           the overall form size (due to borders) (Part of fix for #77729)
+         - CreateParams(): Do not use parent.Handle unless the handle is
+           already created. Causes havoc with Nexxia and throws off our
+           creation of controls
+       * XplatUIX11.cs:
+         - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
+         - Switched handling of ConfigureNotify over to new PerformNCCalc 
+           method (consolidates code)
+         - Changed RequestNCRecalc to use new PerformNCCalc method
+         - Added calls to RequestNCRecalc when menus and borders are changed
+           to allow app to set NC size. (Part of fix for #77729) This matches
+           when MS send a WM_NCRECALC on Win32 windows.
+         - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
+           (Part of fix for #77729). This matches what MS does, they also
+           send that message when the form is made visible.
+         - XException.GetMessage: Improved usability of X errors by including
+           a translation of the window into Hwnd and Control class
+         - Improved debug info for window creation, reparenting and destruction
+         - Created helper method WindowIsMapped() [Currently not used]
+       * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
+       * Form.cs:
+         - CreateParams: Now setting our menu on the new internal menu field
+         - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
+           avoid calculating the same property twice
+       * Hwnd.cs:
+         - Improved usability of ToString() for debugging purposes
+         - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
+           determine the height of the menu, instead of just the font. This
+           required to also create a graphics context and to keep a bmp 
+           around (for performance reasons)
+
+2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * MenuAPI.cs: Added OnMouseUp method
+       * Form.cs:
+         - Now remembering the requested client size, avoids size errors
+         - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
+           instead of base if the menu is active. This is required due to
+           control now capturing and releasing on down/up and it would
+           prematurely release our menu capture
+
+2006-03-17  Jackson Harper  <jackson@ximian.com>
+
+       * KeyboardLayouts.cs: Add the czech layouts.
+
+2006-03-16  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Use the viewport space when sizing not the controls
+       client size, so things like ScrollableControl that effect the
+       viewport size (when scrollbars are added) are computed correctly.
+       * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
+       of ManagerEntrys.
+       - Handle creating BindingManagers for null data sources.
+       * DataGrid.cs: Bind the cached_currencymgr_events to the real data
+       source, otherwise when rows are added they are added to the 'fake'
+       datasource and we will crash when trying to set the position in
+       those rows.
+       - Use Implicit scrollbars on the datagrid so they arent
+       selectable.
+       
+2006-03-16  Jackson Harper  <jackson@ximian.com>
+
+       * Binding.cs:
+       * InternalWindowManager.cs:
+       * MdiWindowManager.cs:
+       * X11Keyboard.cs: I really want Mike to love me again (fix
+       compiler warnings).
+
+2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * DataGrid.cs:
+         - OnMouseDown: Switch to editing mode when clicking on the cell
+                        even if we're clicking on the cell that's currently 
+                        selected
+         - ProcessGridKey: Left/Right now wrap like MS.Net does
+         - ProcessGridKey: Tab now knows to add a new row when tab is
+                           pressed in the cell of the last column of the 
+                           last row
+         - ProcessGridKey: Enter now adds another row  if pressed in the last
+                           row and selectes the new row, same column cell
+         - ProcessGridKey: Home/End navigate columns, not rows, like 
+                           originally implemented
+         - Broke ProcessKeyPreview code out into an extra Internal method
+           so it can be called from the edit code
+       * DataGridTextBox.cs (ProcessKeyMessage):
+         - Switched to accept Tab keypresses
+         - Added F2 handling to allow jumping to the end of the edited cell
+         - Added logic to allow moving caret left/right inside edited cell
+           and making the edited cell jump when the caret hits cell borders
+         - Tab and Enter are now passed to the datagrid after being handled
+       * TextBoxBase.cs:
+         - Removed capture code now that Control handles it
+         - set_SelectionStart now ensures caret is visible
+
+2006-03-16  Jackson Harper  <jackson@ximian.com>
+
+       * TrackBar.cs: Debackwards the increment/decrement for handling
+       mouse clicks on the bar with vertical trackbars.
+       * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
+       bottom to match MS.
+
+2006-03-16  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: make shift/ctrl keyboard and mouse selection 
+       consistent with the MS control. Fix a bug in
+       SelectedListViewItemCollection.Clear that was pissing me off for the
+       better part of a day because the collection was being altered
+       underneath us as we walked the list.
+
+2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs: Not sure how we could miss this so long, but it seems
+         that MS.Net has Capture set all the way from before calling 
+         OnMouseDown through sending the mouse events until after
+         OnMouseUp. This will fix DataGrid's selection being set to end
+         at the location of the MouseUp.
+
+2006-03-15  Jackson Harper  <jackson@ximian.com>
+
+       * BindingContext.cs: Check the binding after its added so that it
+         can initialize the binding managers and hookup to events.
+       * Binding.cs: Data members seem to sometimes include rows/cols in
+         the format Row.Column we now take this into account.
+         - Hookup to the position changed event so we can update the
+         control when the position has changed in the data set.
+       * CurrencyManager.cs: Take into account the row/col naming
+         convention when creating dataset tables.
+       * BindingContext.cs: Using a newer better way of storing
+         datasource/datamember pairs.  Hopefully this better matches MS for
+          looking up binding managers.
+
+
+2006-03-15  Jackson Harper  <jackson@ximian.com>
+
+       * BindingContext.cs: The currency manager needs the data member
+       name, if the member is a data set we use the name to find the
+       correct table.
+       * CurrencyManager.cs: When creating the list prefer an IList over
+       an IListSource.
+       - Attempt to create a DataTable from a DataSet (TODO: might need
+       some better error checking here, although MS doesn't seem to have much)
+       - If we have a DataTable create a view and use it as our list.
+
+2006-03-15  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: keep a matrix of the icon mode layout to facilitate
+       keyboard navigation. Support Up/Down/Left/Right selection correctly
+       for all 4 View modes.
+       * ListViewItem.cs: add internal row/col fields for icon layouts.
+
 2006-03-15  Jackson Harper  <jackson@ximian.com>
 
+       * TabControl.cs: Redraw the tabs when we resize so their newly
+       calculated sizes are drawn on screen.
+       * X11Keyboard.cs: Begginnings of XIM support.  We also now support
+       composite characters.
+       * XplatUIX11.cs: Keyboard driver needs to know about focus changes
+       - filter events so that composite characters can be created
+       patches by peter
        * X11Structs.cs: Add XIMProperties enum.
 
 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>