* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 545a9fb5274236554749e977d47feb1b21e95785..c09a9d2660bae914b1452a752eace67110e43ded 100644 (file)
@@ -1,3 +1,432 @@
+2006-07-25  Jackson Harper  <jackson@ximian.com>
+
+       * UpDownBase.cs: Use an internal class for the textbox so that we
+       can control focus.  the updown control should always have focus,
+       if either the text area or the buttons are clicked.
+       - Send the key messages to the textbox, since it never actually
+       has focus
+       - Activate and decativate the textbox caret.
+
+2006-07-24  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Use the directed select when selecting a control,
+       this way the container controls override will get called and the
+       whole ActiveControl chain will get triggered.  TODO: probably need
+       to make sure this gets done everywhere instead of the old
+       Select(Control).
+       * ContainerControl.cs: Implement the directed Select method to
+       find and activate the correct child control.    
+       
+2006-07-22  Mike Kestner  <mkestner@novell.com>
+
+       * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
+       menu handling code so that clicks without a grab work too.
+       [Fixes #78914]
+
+2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Enable the BackButton when dirstack has one element.
+         Added some small optimizations.
+
+2006-07-21  Matt Hargett  <matt@use.net>
+
+       * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
+
+2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
+         tests pass and match MS in some strange border cases.
+
+2006-07-21  Chris Toshok  <toshok@ximian.com>
+
+       * ThemeWin32Classic.cs: handle drawing of the relation links and
+       parent row buttons.
+
+       * Theme.cs: change args to DataGridPaintParentRow.
+
+       * DataGrid.cs: Don't use controls for the relation links and
+       parent buttons, so we have to handle all their interactions in
+       MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
+       when we're navigating through child tables, so we can reinstate
+       selection, expanded state, current cell, etc.
+
+2006-07-20  Chris Toshok  <toshok@ximian.com>
+
+       * ToolBar.cs: When we redraw a button, for whatever reason,
+       there's no reason to redraw the entire toolbar.  Also, don't call
+       Control.Refresh from within Redraw, as it's much heavier than
+       Invalidate (which is really what we want).
+
+2006-07-20  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
+       DataGridTextBoxColumn.cs, DataGridTextBox.cs,
+       ThemeWin32Classic.cs, ListControl.cs: After staring at stack
+       traces from within a debug IBindingList datasource
+       (in mono/winforms/datagrid) for *days*, I've finally gotten things
+       to work in a similar fashion.
+
+2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: Don't call Sort () when setting 
+       the Sorted property to false (avoid an unnecessary sort).
+
+2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListControl.cs: DataSource should throw an ArgumentException
+       instead of a normal exception when the argument is not of the 
+       correct type.
+
+2006-07-20  Mike Kestner  <mkestner@novell.com>
+
+       * Control.cs: add InternalPreProcessMessage to allow us to steal
+       key events before MWF gets its paws on them.  Adapted from a
+       suggestion by eno.
+       * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
+       up/down/left/right navigation. Override the new internal control
+       method to steal the events since they never make it to WndProc.
+       * ToolBarButton.cs: don't worry about pushed when setting hilight
+       since the drawing code prefers pushed to hilight. Invalidate on 
+       Hilight changes. Fixes #78547 and #78525.
+
+2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
+         the canvas size. Fixes #78868
+
+2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Splitter.cs: Track requested split position until first layout
+         is performed. Fixes #78871
+
+2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Application.cs: Removed code that forces 1.x for the version
+         number if the version started with 0. Not sure why that code was
+         there and I couldn't find any bugs that indicated we needed it.
+         Fixes #78869
+
+2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
+         ResetDefaults(), just write some output to the console until it's
+         implemented. Fixes bug #78907 for now. Eliminated two warnings.
+
+2006-07-19  Jonathan Chambers  <joncham@gmail.com>
+
+       * PropertyGridView.cs: set StartPosition of drop down forms
+       so they appear in correct initial spot.  Fixes #78190.
+
+2006-07-19  Mike Kestner  <mkestner@novell.com>
+
+       * ThemeWin32Classic.cs: use parent background color when drawing
+       flat toolbars.  Restructure the conditionals to make sure non-flat
+       non-Divider toolbars are filled too.  Fixes #78837.
+
+2006-07-19  Mike Kestner  <mkestner@novell.com>
+
+       * ListBox.cs: Sort on collection changes even if the handle
+       isn't created yet.  Fixes #78813.
+
+2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListControl.cs: DisplayMember should never be null,
+       and now we assign String.Empty when null is passed to it (this
+       is the .Net way).
+
+2006-07-17  Mike Kestner  <mkestner@novell.com>
+
+       * ListViewItem.cs: restructure Font and subitem Font handling 
+       to hold a specific font and refer back to owner on null.
+       Fixes #78761.
+
+2006-07-17  Mike Kestner  <mkestner@novell.com>
+
+       * ToolBar.cs: bandaid for side-effect of previous patch which was
+       discarding explicit heights for non-AutoSize toolbars.  Need to
+       extend my format tester to deal with AutoSize=false. Fixes #78864.
+
+2006-07-15  Jackson Harper  <jackson@ximian.com>
+
+       * LabelEditTextBox.cs:
+       * TreeView.cs: Use a new LabelEdit class for node editing, this
+       class automatically 'closes' itself when it gets the enter key or
+       loses focus.
+       - Use the client rectangle when setting the trees scrollbars, so
+       border style is taken into account.
+       
+2006-07-14  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs:
+       * TreeView.cs: Make the editing work similar to MSs, firing the
+       events correctly and ending edits correctly.
+
+2006-07-14  Mike Kestner  <mkestner@novell.com>
+
+       * ToolBarButton.cs:
+       * ToolBar.cs: layout restructuring and redraw enhancements to support
+       formatting changes gracefully, like setting TextAlign, ImageList, 
+       ButtonSize, and Appearance.  Handles explicit button sizing quirks
+       of the MS controls.  Things like flat toolbars ignoring button size
+       but becoming constant sized at the largest button's size.  Normal
+       toolbars with an image set cannot be shrunk smaller than the image,
+       but text can be clipped/ignored.
+       * ThemeWin32Classic.cs: don't draw text if text_rect height or width
+       is zero.  Seems like DrawString should be smart enough to not put
+       anything on screen though. Also trim labels and ellipsize at the char
+       boundary, not word.
+       Fixes #78711 and #78483.
+
+2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FolderBrowserDialog.cs: Disable "New Folder" button and
+         "New Folder" contextmenu menuitem if a folder like "My Computer"
+         is selected.
+
+2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
+       * FolderBrowserDialog.cs:
+         - Use MWFConfig to store and read size and position settings
+         - Added code to create a new folder (button or context menu).
+           Use TreeView labeledit to change the name of the new folder.
+
+2006-07-14  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
+       when the tree is scrolled we end editing.
+
+2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
+         Down arrows
+
+2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
+
+       WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
+       BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
+       BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
+       CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
+       ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
+       ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
+       ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
+       FormClosedEventHandler.cs, FormClosingEventArgs.cs,
+       FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
+       ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
+       ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
+       ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
+       ListViewItemSelectionChangedEventHandler.cs,
+       ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
+       ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
+       MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
+       PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
+       PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
+       RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
+       SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
+       SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
+       TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
+       TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
+       TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
+       ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
+       ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
+       TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
+       TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
+       TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
+       WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
+       WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
+       WebBrowserNavigatingEventHandler.cs, 
+       WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
+
+2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
+
+       MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
+       RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
+       SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
+       TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
+       ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
+       ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
+       ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
+       ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
+       ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
+       ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
+       ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
+       ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
+       TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
+       WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
+       ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
+       AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
+       BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
+       ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
+       FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
+       HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
+       ListViewItemStates.cs, MaskFormat.cs: Added
+
+2006-07-13  Jonathan Chambers  <joncham@gmail.com>
+
+       * PropertyGridView.cs: Fix keyboard navigation of drop down.
+       Patch from eno for bug 78558.
+       
+2006-07-13  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: When an edit is finished make sure that the
+       selected node is visible.
+       - When setting the top/bottom use the scrollbars is_visible, so
+       everything will be set correctly even if the tree isn't visible
+       yet.
+
+2006-07-13  Jackson Harper  <jackson@ximian.com>
+
+       * ComboBox.cs: Revert the item->index part of my previous patch.
+       * TreeView.cs: Use LostFocus instead of Leave for detecting when
+       the edit box has lost focus (duh).
+       - Just make the edit box not visible when we get return, that will
+       take the focus, which will call EndEdit
+       * TreeNode.cs When we start editing, notify the treeview.
+
+2006-07-12  Jackson Harper  <jackson@ximian.com>
+
+       * ComboBox.cs: Clear out old items before setting the item list.
+       This prevents databound controls from having their items added
+       twice.
+       - Switch the combobox to use indices whereever possible instead of
+       using Item's.  This allows usto navigate through lists that have
+       more then one item with the same string value (ie a, b, b, a).
+       - Scroll the listboxes scrollbar when a non visible item is
+       highlighted
+       - Allow keypress to cycle through all the possible values. For
+       example if you have b1, b2, b3 and hold down the B key all the
+       values will be cycled through.
+       
+2006-07-12  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs:
+       * ListView.cs: Don't need to override SETFOCUS anymore, we can do
+       this using the internal methods.
+       * Control.cs: Add OnGotFocusInternal.  A new method that allows
+       controls to "override" OnGotFocus and change focus behavior if
+       needed.
+       - Same thing for LostFocus
+       * ComboBox.cs: Pass off focus to the text control properly.
+
+2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Added GetFoldersOnly to MWFVFS
+       * FolderBrowserDialog.cs: Almost a complete rewrite.
+         - Better support for Environment.Specialfolders
+         - Added support for MWFVFS
+         - Made setting SelectedPath work
+
+2006-07-12  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Optimze getting all the controls.
+
+2006-07-11  Jackson Harper  <jackson@ximian.com>
+
+       * ContainerControl.cs: Override SETFOCUS in the container control,
+       so that it is not selected on mouse click.
+
+2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
+         Hopefully we will have a better way once all of focus is complete.
+
+2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ThemeWin32Classic.cs: Commented out some debug code and fixed
+         a compile error with csc.
+
+2006-07-11  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: When hiding a control only select the next control
+       if the current control was focused.
+       - Don't handle enter/leave when setting/killing focus, this is
+       done by the container control.
+       - Remove is_selected, it's not needed anymore.
+       - Add utility methods for selecting a child control, and for
+       firing the Enter/Leave events.
+       * ContainerControl.cs: When a control is activated fire the
+       enter/leave events.
+       - Don't wrap when processing the tab key, so that focus can be
+       moved outside of the container.
+       - Use the correct active control
+
+2006-07-11  Jackson Harper  <jackson@ximian.com>
+
+       * ComboBox.cs: Remove some debug code that was blinding me.
+       * UpDownBase.cs: These controls actually aren't implicit, they are
+       visible to the user.
+
+2006-07-10  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs: move back to the is_adding boolean field.  god i
+       hate this is_editing/is_adding/is_changing stuff.
+
+2006-07-10  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTableStyle.cs: just check if the property type is bool.
+       if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
+       Don't use CanRenderType.
+
+       * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
+       if our text == NullText.  Remove CanRenderType.
+
+       * DataGridBoolColumn.cs: nuke CanRenderType.
+
+       * DataGrid.cs: reenable some code to end the current edit inside
+       of set_CurrentCell.  This fixes the other 1.1.16 regression.
+       Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
+       Also, remove the visible_row_count arg from CalcRowHeaders, since
+       we don't need to worry about the actual height of the area.
+
+2006-07-10  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
+       mode, just return.
+
+       * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
+       the real sense of the IsInEditOrNavigateMode property (true =
+       navigate, false = edit).  Also, update OnKeyPress to reflect this.
+
+       * DataGridTableStyle.cs (CreateColumnsForTable): even if the
+       column style exists, we still need to set its property descriptor
+       to match up with our list manager.
+
+2006-07-10  Chris Toshok  <toshok@ximian.com>
+
+       * ThemeWin32Classic.cs: implement the new row/header painting
+       approach.  The parent row painting will likely go away and
+       replaced with label controls, but the rest seems to work ok (and
+       efficiently).
+
+       * Theme.cs: change the way we draw datagrid rows.  we don't draw
+       the row headers as a block now.  Instead we draw them in the
+       normal draw-row loop.  Add some calls for drawing parent rows and
+       relation rows.
+
+       * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
+       a default table style.  Set the defaults from ThemeEngine.Current,
+       not SystemColors.  Fix lots of misc issues with property setters.
+
+       * DataGrid.cs: move loads of style information out of this class
+       as it's being duplicated with DataGridTableStyle.  keep track of a
+       special DataGridTableStyle for the properties we used to mirror
+       here.  Switch all the style properties to access this table style
+       instead of instance fields of this class.  Also add a internal
+       class to represent parent rows (more needs to be stored here, like
+       the selection state from the parent table, as well as the
+       expansion state.)  Also, for datasources with relations, do the
+       right thing for collapse/expand, and add support for the
+       navigation/parent row buttons.
+
+       Lastly, fix the crash in the 1.1.16 build.
+
+       * GridTableStylesCollection.cs: make the explicit interface
+       implementations call the class's methods as opposed to duplicating
+       them.
+
+       * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
+       0 so the text doesn't jump around when we move the cursor.
+
 2006-07-10  Jackson Harper  <jackson@ximian.com>
 
        * TextBoxBase.cs:
        to SelectNextControl. (I have unit tests for this).
        - Remove unused var.
 
+2006-07-10  Chris Toshok  <toshok@ximian.com>
+
+       * CurrencyManager.cs: correct one regression, the removal of the
+       finalType field.  Also, add a MonoTODO on CanAddRows, implement
+       Refresh() correctly, and fix some event emission in
+       ListChangedHandler.
+
 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
 
        * FileDialog.cs: Don't use brackets for new folders if they exist