X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FManaged.Windows.Forms%2FSystem.Windows.Forms%2FChangeLog;h=be2ed4a71afa5f2aa8ca721bb2763123e77481d5;hb=cb08f6394279b801dfa731c0147e359b5cd43bac;hp=4399a557f097c4ae3fe0067285d0c9272b942d7c;hpb=1f50b49fecc917aa80b2364356ad13d39824cde1;p=mono.git diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog index 4399a557f09..be2ed4a71af 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog @@ -1,3 +1,587 @@ +2006-06-20 Chris Toshok + + * BindingContext.cs: rewrite the CreateBindingManager code to + handle navigation paths more or less properly. This could + definitely stand some more work, in particular to push the + recursion up to the toplevel. But that relies on fixes in other + places (System.Data comes to mind). + + Also, move to a flat hashtable (and encode the twolevel nature of + the dictionary into the hash key). This lets us implement the + IEnumerable.GetEnumerator method. + + * RelatedCurrencyManager.cs: new class. Update our view based on + our relation and our parent CurrencyManager's position. + + * CurrencyManager.cs: split out some logic from the ctor into + SetView, so it can be called from the new RelatedCurrencyManager + subclass. + + * RelatedPropertyManager.cs: new class. Update our datasource + based on the position of our parent CurrencyManager. + + * PropertyManager.cs: split out some logic from the ctor into + SetDataSource, so it can be called from the new RelatedDataSource + subclass. Also, make the Current getter return the value + of the PropertyDescriptor, not the data_source. + + * Binding.cs: no need to duplicate the string splitting code here. + +2006-06-19 Peter Dennis Bartok + + * Control.cs: + - set_Enabled: OnEnabledChanged is not called if the inherited state + of the control is not altered, even though we might be changing the + internal state of the control (#78458) + - set_Enabled: (Re)Moved the enabling/disabling of the window to + OnEnabledChanged, to allow easy altering of any child window state + - OnEnabledChanged: Added code to enable/disable driver window state + - OnParentEnabledChanged: Instead of firing the event, call + OnEnabledChanged, which will fire the event and also a) set driver + window state and pass the enabled state to any grandchildren (#78458) + +2006-06-19 Jackson Harper + + * InternalWindowManager.cs: We don't set the cursor explicitly + thats done via the response to NCHITTESTs. + - Don't need to adjust for titlebar heights anymore, the + coordinates are coming in the correct coordinates now (see peters + last patch). + + +2006-06-19 Peter Dennis Bartok + + * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly + being translated relative to whole window, instead of client window. + That caused broken offsets on mouseclick (and caused gas for our + InternalWindowManager) + +2006-06-15 Peter Dennis Bartok + + * TextControl.cs: + - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown + - Undo(): Added replay of cursor move on DeleteChars action; added + calling Undo() again if a recorded cursor move is invalid (to + ensure that some action is performed on Undo) + * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482) + +2006-06-16 Jackson Harper + + * MdiClient.cs: Instead of just sizing maximized windows when + there is a resize we also have to adjust the Y of minimized + windows, so they stay pinned to the bottom of the mdi container. + - Eliminate separate tracking of the active control, we can just + get this from the controls collection. + - Paint the decorations for the newly activated titlebar so we get + a pretty blue bar. + * InternalWindowManager.cs: + * ThemeWin32Classic.cs: Minimized windows get all three buttons + even if they are a tool window. + +2006-06-15 Peter Dennis Bartok + + * TextControl.cs (Undo): Handle non-existent cursor locations in the + undo buffer, these can happen when text was deleted and the cursor + was recorded first. Since we will also have a recorded cursor + after the delete this is not an issue. (Fixes #78651) + +2006-06-14 Peter Dennis Bartok + + * AccessibleObject.cs: Remove dependence on Control.is_selected; + instead properly track control states internally (allows us to + remove is_selected from Control) + +2006-06-14 Gonzalo Paniagua Javier + + * ImageListStreamer.cs: correctly generate the 1bpp mask for images + whose width is not a multiple of 8. + +2006-06-13 Jackson Harper + + * MdiClient.cs: Only maximize the next child if the current one + is maximized. + +2006-06-13 Chris Toshok + + * DataGridColumnStyle.cs: Invalidate the column when HeaderText is + modified. Also, guard against grid or grid_drawing being null in + Invalidate. + + * DataGrid.cs: Reformat tons of getters/setters. In the + DataMember setter, just call SetNewDataSource instead of + duplicating some of its functionality. In SetNewDataSource, don't + check ListManager for null, since the property getter creates the + object if needed. + + * DataGridTableStyle.cs: don't set TableStyle or call + SetDataGridInternal on the column here, it's done in + GridColumnStylesCollection.Add. + + * GridColumnStylesCollection.cs: fix all the explicit interface + implementations to just call our methods. Nuke AddInternal() and + move the body of it to Add(). Also, add a call to + column.SetDataGridInternal to Add(). + + * DataGridTextBoxColumn.cs (.ctors): call this() instead of + base()+duplicate code. Also, use the Format property instead of + format to generate an Invalidate ala MS. Lastly, create the + textbox here, unconditionally. + (set_Format): call Invalidate. + (get_TextBox): no need to call EnsureTextBox. + (Commit): remove the message box. + (Edit) remove the call to EnsureTextBox. + (EndEdit): call HideEditBox instead of ReleaseHostedControl. + (EnterNullValue): no need to check textbox for null. + (HideEditBox): no need to check textbox for null. + (SetDataGridInColumn): add the textbox to the grid's controls. + (EnsureTextBox): nuke. + +2006-06-13 Jackson Harper + + * MdiWindowManager.cs: Hook up to the maximized menus paint event + and redraw the buttons when needed. Unhook when the window is + unmaximized. + * MainMenu.cs: Add an internal Paint event, the mdi window manager + needs this so that it can redraw its buttons when the menu is + repainted. + * InternalWindowManager.cs: + * Form.cs: The method order has changed for DrawMaximizedButtons, + so that it can be a PaintEventHandler. + +2006-06-13 Jackson Harper + + * MdiClient.cs: When we close a maximized mdi window, the next mdi + window is activated and maximized, even if it wasn't before. + - When a new window is activated repaint the decorations of the + old one, so that it no longer has the Active "look" (the blue + titlebar). + * InternalWindowManager.cs: Open up CreateButtons to base classes + so they can recreate the buttons on state changes. + - If a window is maximized give it all three buttons + * MdiWindowManager.cs: Create the titlebar buttons when the state + is changed, this is needed because a toolwindow will not have all + three buttons until it is maximized. + +2006-06-13 Atsushi Enomoto + + * ProgressBar.cs : PerformStep() shouldn't exceed Maximum. + Fixed bug #78609. + +2006-06-12 Jackson Harper + + * KeysConverter.cs: Make sure we handle the Ctrl special case + if its the only key. + +2006-06-12 Jackson Harper + + * Theme.cs: Add a method to get the size of a managed window + toolbar button. + * InternalWindowManager.cs: Remove the ButtonSize property, this + should be retrieved from the theme. + * MdiWindowManager.cs: Get the button size from the theme + * ThemeWin32Classic.cs: Make the method to get the managed window + titlebar button size public. + - Handle the different button sizes of maximized toolwindows + (should match any maximized window). + - Get the titlebar height from the theme, not the WM (which gets + it from the theme). + +2006-06-12 Jackson Harper + + * InternalWindowManager.cs: Handle NC Double Clicks, passing the + event down to the mdi window manager. + - Expose some extra stuff to base classes + - Make sure to end the Capture on an NC Mouse up, so that we can + get double clicks properly, and the sizing doens't stick. + - When doing PointToClient contain it in the workable desktop + area, this prevents windows from changing size when the cursor is + pulled outside of the working area while sizing. + * MdiWindowManager.cs: When we get a double click maximize the + window. + - Reset the cursor after handling mode changes. + +2006-06-12 Peter Dennis Bartok + + * XplatUIX11.cs (WorkingArea): Read the actual workarea for the + current desktop, instead of just assuming a 0, 0 origin. This + is needed for our internal window manager, to know the top + margin of the desktop + +2006-06-12 Chris Toshok + + * DataGrid.cs (set_CurrentCell): concede focus as we move around. + we need this to get rid of the selected background in the bool + column. + (CancelEditing): move the ConcedeFocus call to above the Abort + call. Also, set is_changing to false and invalidate the row + header if we were changing before. + (ProcessKeyPreviewInternal): remove, since noone outside this + class calls it anymore. Roll the code into ProcessKeyPreview. + (EndEdit): remove the internal version. + (InvalidateCurrentRowHeader): make private. + + * DataGridBoolColumn.cs: simplify this class a bunch. remove the + Keys.Escape handling (and with it the last call to + DataGrid.EndEdit from outside the class.) + + +2006-06-12 Chris Toshok + + * DataGridTextBox.cs (.ctor): isedit defaults to false. + (OnKeyPress): set isedit to true. + (ProcessKeyMessage): remove Keys.Enter handling from here. it's + already handled by the grid. + + * DataGrid.cs (set_CurrentCell): more work here. it's still not + right. ugh. + (set_DataSource): SetDataSource always returns true, so stop + putting it in an if statement. + (EndEdit): get rid of some {}'s + (ProcessGridKey): return true in case Keys.Escape. + (ProcessKeyPreviewInternal): only handle KEYDOWN messages. + (ConnectListManagerEvents,DisconnectListManagerEvents): connect to + PositionChanged, stopped connecting to CurrentChanged. + (GetDataSource): simplify this a bunch. + (SetDataSource): change return type from bool to void. + (OnListManagerPositionChanged): rename OnListManagerCurrentChanged + to this, and make sure we don't set ListManager.Position inside + set_CurrentCell. + (OnListManagerItemChanged): if we're passed an actual index, + redraw that row. + + * CurrencyManager.cs (set_Position): don't call PullData here. + +2006-06-09 Jackson Harper + + * TreeNode.cs: Recalculate the visible order before doing the + Expand/Collapse Below calls, because those calls generate an + expose. + - Reduce calls to the TreeView property, which is mildly expensive + by using a local var. + * Form.cs: Layout the MDI child windows when creating the parent + form. + - Don't use the internal constructor anymore + * MdiClient.cs: use the parent form width/height (if available) + when laying out the child windows, we do this because the + mdiclient isn't docked yet when the initial layout is done. + - Don't need an internal constructor anymore. + +2006-06-08 Gonzalo Paniagua Javier + + * FileDialog.cs: handle access errors when trying to create a folder + or changing to a directory. No need to initialize out parameters. + +2006-06-08 Alexander Olk + + * FileDialog.cs: Append a number when creating a new folder if the + folder already exists (use parenthesis instead of square brackets) + +2006-06-08 Alexander Olk + + * FileDialog.cs: + - Disabled registry support for windows and added better registry + error checking for other systems (need to investigate why it + works perfectly on my system) + - If a folder already exist show an error MessageBox instead of + trying to create an indexed name. + - Fixed a non intentional typo. + +2006-06-08 Gonzalo Paniagua Javier + + * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null. + +2006-06-08 Alexander Olk + + * FileDialog.cs: When creating a new folder don't crash if the + folder already exists. + +2006-06-08 Alexander Olk + + * FileDialog.cs: Allmost a complete rewrite. + - added a "virtual" file system that handles the differences + between unix and windows file systems (especially the directory + structure). Moved most of the directory and file handling code + into the vfs. + Added vfs classes: MWFVFS, FileSystem, WinFileSystem, + UnixFileSystem and FSEntry. + - Recently used folder/directory, size, location and used file names + (file name ComboBox) are now stored in the registry and get read + before the dialog shows up (fixes part 6 of bug #78446). + - Creation of new folders/directories is now possible (context menu + or ToolBar). Added TextEntryDialog for this that fills in the gap + until ListView.LabelEdit works. + - Fixed cursor handling (bug #78527) and focus handling for + PopupButtonPanel + - Various "Search in" ComboBox enhancements. The content of the + dropdown listbox now almost matches ms. + - Changed the behaviour when the user switches to SpecialFolder + Recent to show the ListView in View.Details. + - Beside using the ToolBar to change the View property of the + file ListView it is now possible to use the context menu too. + +2006-06-08 Alexander Olk + + * ComboBox.cs: Don't create a new ObjectCollection when an item + gets inserted. Just insert the item in the existing object_items + ArrayList. + +2006-06-08 Jackson Harper + + * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so + that the treeview and root node checks are done also, this fixes a + regression i caused in the unit tests. + +2006-06-07 Wade Berrier + + * RichTextBox.cs: More ISO8859-1 -> unicode + +2006-06-07 Mike Kestner + + * ComboBox.cs : use items to hold highlight/selection so that + collection insertions don't require synchronization. + +2006-06-07 Jackson Harper + + * InternalWindowManager.cs: Simplify (and FIX) the window sizing + routine. We now always keep the sized edge at the cursor instead + of computing movement and adjusting rects. There is one buglet + with this method though when the cursor is moved over area that + the window can not expand too (such as the toolbars on the desktop). + +2006-06-07 Gonzalo Paniagua Javier + + * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null + here. Fixes crash on startup in AlbumSurfer. + +2006-06-07 Peter Dennis Bartok + + * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode + values + +2006-06-07 Gonzalo Paniagua Javier + + * XplatUIX11.cs: call XPending and XNextEvent inside the same lock() + statement to avoid calling XNextEvent which will block if another thread + took the event that we were expecting. Fixes bug #78605. + +2006-06-07 Mike Kestner + + * ListView.cs : isolated checkbox clicking from the selection logic. + Toggle check state on item doubleclicks. Really fixes #78454 part2. + +2006-06-06 Carlos Alberto Cortez + + * Form.cs: Check that the value passed to Form.DialogResult + is a valid enum value. + +2006-06-06 Gonzalo Paniagua Javier + + * FileDialog.cs: disable the up button when in 'Recently Used' or 'My + Computer'. Clicking it in the network view goes to 'My Computer'. + Added CIFS filesystem type. Display the mount point of filesystems. + Avoid duplicate mount points (happens for me with CIFS); + +2006-06-06 Jackson Harper + + * InternalWindowManager.cs: Draw the maximized windows buttons + when resizing. + +2006-06-06 Gonzalo Paniagua Javier + + * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for + all other dialogs. Fixes bug #78585. + +2006-06-06 Mike Kestner + + * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too. + Only invalidate checkbox on checkstate changes to avoid flicker. + * ListBox.cs : avoid unselect/select when clicking selected item. + avoid reselection flicker for already multiselected items. + Fixes #78382. + +2006-06-06 Jackson Harper + + * MdiWindowManager.cs: When the window is closed do an NCRecalc on + the parent form so that the menu is removed if needed. + +2006-06-06 Mike Kestner + + * ListBox.cs : add ScrollWindow call to UpdateTopItem. fix + Prev/Next/PrevPage/NextPage/Home/End index calculation. Fixes #78559. + +2006-06-06 Mike Kestner + + * CheckedListBox.cs : rebuild check collection on Add. Fixes #78426. + + +2006-06-06 Jackson Harper + + * Control.cs: Use the property (instead of the field) to get the + default cursor so it is instantiated correctly. + * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with + resizes so we need to manually repaint the window decorations here. + - Set the titlebar button locations as soon as they are created, + otherwise they are not set correctly on win32. + +2006-06-06 Chris Toshok + + * CurrencyManager.cs (set_Position): call PullData before + OnCurrentChanged. + (AddNew): after calling IBindingList.AddNew, update our + listposition, and call OnCurrentChanged/OnPositionChanged (without + calling PullData). + (OnCurrentChanged): remove the call to PullData from here. + (OnItemChanged): remove the call to PushData from here. + (OnPositionChanged): change the test from == null to != null to + match the other methods. + (ListChangedHandler): the grossest part of the patch. Implement + this such that it passes the unit tests in CurrencyManagerTest and + the output more or less matches that of MS's implementation. + +2006-06-06 Mike Kestner + + * ListView.cs : only update check state on single click. + * ThemeWin32Classic.cs : fix focus drawing for details view without + fullrowselect. Fixes #78454. + * XplatUIX11.cs : fix for double click emission. + +2006-06-05 Jonathan Chambers + + * PropertyGridView.cs : Applied Atsushi's patch to fix + font dialog bug (#78197). + +2006-06-05 Jackson Harper + + * TreeNode.cs: Compute the next node for expanding/collapsing + correctly. We now factor in nodes without a NextNode + correctly. (Fixes somes cases in nunit-gui). + * InternalWindowManager.cs: Set the bounds when updating the + virtual position of a tool window. + +2006-06-05 Chris Toshok + + * DataGrid.cs: rename cached_currencymgr to list_manager. + (set_CurrentCell): move SetCurrentCell code here, and clean it up + some. + (CurrentRow, CurrentColumn): single accessors so we can make the + cursor movement code a lot easier to understand. + (CurrentRowIndex): implement this in terms of CurrentRow. + (BeginEdit): clean this up a bit. + (CancelEditing): sort out the is_editing/is_changing/is_adding + stuff a little. + (EndEdit): minor changes. + (OnKeyDown): add a comment about a (most likely) unnecessary + check. + (OnMouseDown): cancel editing when we click on a row header. And + use the CurrentRow setter, not CurrentCell. + (ProcessDialogKey): directly call ProcessGridKey. + (UpdateSelectionAfterCursorMove): factor out this common block of + code (it's used everywhere that we move the cursor by updating row + or column). + (ProcessGridKey): pretty substantial overhaul. Use the + CurrentRow/CurrentColumn properties to make the code a lot more + readable. Only use the CurrentCell property when we have to + modify both row and column at once. Tab behavior is still broken, + and Delete is untested. + (Select): if we have no selected rows, set selection_start to + @row. + (EditCurrentCell): rename EditCell this. It was only ever invoked + with CurrentCell as the arg, so drop the arg and rename it. + + * DataGridColumnStyle.cs: clean up the constructors a little, and + drop CommonConstructor(). + + * DataGridTextBox.cs (.ctor): set accepts_return to true so we + actually get notified when the user hits it. + (ProcessKeyMessage): *substantially* simplify this method. + There's no reason (that I can see) for the textbox to be making + calls into the datagrid at all. Remove all of them but the ones + for Enter handling. those will take some more work. + + * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by + calling HideEditBox. + (HideEditBox): if we have an active textbox, render it invisible + without causing a re-layout of the datagrid. + +2006-06-05 Mike Kestner + + * ListView.cs : fix NRE crasher when focuseditem is cleared by + collection changes by resetting it to Items[0]. Fixes #78587. + +2006-06-05 Gonzalo Paniagua Javier + + * MessageBox.cs: if the height of the text is larger than the icon_size, + use that. Fixes bug #78575. + +2006-06-05 Jackson Harper + + * TreeView.cs: Fix line drawing when scrolling. To do this each + node is basically responsible for drawing its entire horizontal + area. When drawing a node it draws its parent node lines if + needed. + - Adjust the clip area to the viewport rectangle + - Fix Left/Right key handling to match MS. (It expand/collapses + and moves to parents/first child but does not move selection to + sibling nodes). + - Fix SetTop to work with new bound calculation code + - When scrollbars are no longer needed we need to reset scrolling + vars and recalculate the visible order so the redraw is correct + * TreeNode.cs: We can't expand/collapse nodes with no children. + +2006-06-03 John Luke + + * X11DesktopColors.cs: dllimport the exact gtk and gdk versions + so the colors work without dev packages + +2006-06-02 Peter Dennis Bartok + + * Control.cs + - Select: Implemented to just use activate. Seems to match MS + behaviour closest. Documented to only do actual control walking + based on it's parameters if in a container control so I moved + the code there. + - Removed selection check logic from our internal Select() method + * ContainerControl.cs: + - Select: Moved selection logic from Control here, since MS documents + that containers obey the bool arguments. No longer calling base + +2006-06-02 Jackson Harper + + * TreeView.cs: If the selected node isn't changed when we get + focus update the previously selected node so that we see the + selection box. + +2006-06-02 Mike Kestner + + * ComboBox.cs: restructure grab and general mouse event handling. + Make the composite control raise mouse events like it was a single + control for leaves/enters/motion/up/down events. fix dropdown list + coordinate mangling and refactor it into the scrollbar subclass to + reduce code duplication. Fixes #78282 #78361 and #78457. + +2006-06-02 Mike Kestner + + * ScrollBar.cs: remove Capture setting/clearing, as it happens + automatically in the Control.WndProc. + +2006-06-01 Gonzalo Paniagua Javier + + * FileDialog.cs: fix crash when running SharpChess, which sets the + FilterIndex to 2 with only one Filter. + +2006-06-01 Gonzalo Paniagua Javier + + * ToolBar.cs: add SizeSpecified property. + * ToolBarButton.cs: when the ButtonSize is calculated by the container, + try to figure out our real size, otherwise fallback to what the + container says. + +2006-06-01 Peter Dennis Bartok + + * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up + * Control.cs (WndProc): MS always calls the DefWndProc to pass + up the event + 2006-06-01 Mike Kestner * ListView.cs: revamp the focus management in ListView. It still