* X11Dnd.cs: Early implementation to support winforms being a drag
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 3636248387c876253121f8e8369c6b72834d04bb..fa306a1d3793df63e561560de7b75ae3cd818f4e 100644 (file)
@@ -1,3 +1,564 @@
+2005-10-28  Jackson Harper  <jackson@ximian.com>
+
+       * X11Dnd.cs: Early implementation to support winforms being a drag
+       source for data on X11. Also restructured the converters so they
+       can go both ways now.
+       * XplatUIX11.cs: Tie ins to the the Dnd stuff.
+       
+2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
+         clipboard requests
+
+2005-10-27  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: Implement serialization so my DnD examples will work.
+
+2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
+
+       * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
+         TreeView.cs: Don't dispose objects that are not owned.
+         
+2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
+         should retrieve the current cursor and report that, but XplatUI
+         doesn't (yet) have an interface for that (and I'm not sure I even
+         can, on X11)
+       * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
+         until any message loop processing is done (and the WM_SETCURSOR
+         replaces the cursor to the proper one)
+       * XplatUIX11.cs: 
+         - Fixed override behaviour, we can't set the cursor globally on X11, 
+           just for our windows.
+         - Invalidating the System.Drawing X11 display handle when we are
+           shutting down
+       * Control.cs: Fix to make csc happy
+
+2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * TextBoxBase.cs: 
+         - get_Text: Add last line (without trailing newline) to returned
+           value (Fixes 76212)
+         - get_TextLength: Count last line in returned length
+         - ToString: Call Text property instead of duplicating code
+
+2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
+
+       * ImageList.cs: Dispose ImageAttributes objects.
+
+2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
+
+       * ImageList.cs: Use attribute constructors with less arguments where
+         possible.
+
+2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
+
+       * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
+         Use typeof instead of strings when assembly is referenced. Added
+         some more comments.
+
+2005-10-21  Jackson Harper  <jackson@ximian.com>
+
+       * ListView.cs: Raise a double click event. Also tried to somewhat
+       fix when the selectedindexchanged event is raised. Its still
+       broken though.
+
+2005-10-21  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: New method to invalidate the plus minus area of a
+       node without invalidating the whole node (maybe this can be used
+       in some more places).
+       * TreeNodeCollection.cs: When adding to an empty node we need to
+       invalidate its plus minus area so the little block shows up.
+       
+2005-10-21  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Make sure that when we invalidate a node the bounds
+       are big enough to cover the selected box and the focus
+       rectangle. Use a different colour for the lines connecting nodes
+       so they show up with all themes.
+
+2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * NativeWindow.cs: Don't call anything that could call into the driver,
+         we might be on a different thread.
+
+2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs(Dispose): Since Dispose might run on a different thread,
+         make sure that we call methods that could call into the driver via
+         invoke, to avoid thread issues
+
+2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUI.cs: Removed finalizer
+       * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
+         not allowing to be called on the finalizer thread.
+
+2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
+
+       * ImageList.cs:
+         - Reverted r51889 and r51891.
+         - Added ImageListItem class that stores unmodified image items and image
+           properties required to create list images until handle is created.
+         - Added AddItem and moved image creation logic to AddItemInternal.
+         - Added CreateHandle method that creates images based on unmodified items.
+         - Added DestroyHandle that changes state to store unmodified items.
+         - Add and AddStrip methods no more create handle.
+         - ReduceColorDepth has no return value.
+         - Dispose destroys handle.
+         - Modified other methods to reflect the above changes.
+         - Implemented key support.
+         - Added profile 2.0 members and attributes.
+         - Added private Reset and ShouldSerialize methods that provide the same
+           behavior as MS.NET but the Visual Studio .NET designer seems to ignore
+           them as they are private.
+         - Added some more comments about implementation details.
+
+2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
+
+2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
+
+2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * DataGridDrawingLogic.cs: Fixes column hit calcultation
+       * DataGridColumnStyle.cs: Remove debug message
+
+2005-10-20  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: We can always get input keys regardless of whether
+       or not editing is enabled. They are used for navigation.
+
+2005-10-20  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: Use the viewport rect for determining if a node
+       needs to be moved for visibility. Don't use Begin/End edit. This
+       calls a full refresh when its done.
+       * TreeView.cs: New SetBottom works correctly.  Make the viewport
+       rect property internal so the treenodes can see it. When clicking
+       on a node we need to ensure that its visible because it might just
+       be partly visible when clicked.
+
+2005-10-20  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNodeCollection.cs: Remove debug code.
+
+2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Datagrid.cs: Implements column sorting in Datagrid
+       * DataGridColumnStyle.cs: Implements column sorting in Datagrid
+
+2005-10-20  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNodeCollection.cs: Remove items properly. Update the correct
+       area after removing them.
+
+2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Datagrid.cs: Should not call base.OnPaintBackground
+
+2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs (GetMessage):
+         - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
+           window instead of client window
+         - Now properly calculates NC_xBUTTONUP message coordinates
+         - ScreenToMenu now properly calculates it's coordinates of whole 
+           window, since menus are in the whole window, not in the client
+           window
+         - Added WholeToScreen coordinate translation method
+
+2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
+         want to return a message, loop back to the beginning of the function
+         and grab the next real message to process instead.
+
+2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Splitter.cs: Properly set limits if no filler control is used
+
+2005-10-19  Jackson Harper  <jackson@ximian.com>
+
+       * ColorDialog.cs: Don't show the help button if it is not enabled
+       instead of disabling it (this is what MS does). Don't create the
+       panel until the dialog is run, otherwise the vars (such as
+       ShowHelp) are not set yet.
+
+2005-10-19  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
+       are reduced when adding nodes.
+       * TreeNode.cs:
+       * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
+       tree.
+       
+2005-10-19  Jackson Harper  <jackson@ximian.com>
+
+       * FolderBrowserDialog.cs: End editing our treeview so the window
+       actually gets refreshed.
+
+2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
+         Obsoleted handling of WM_ERASEBKGND, now always draws our background
+         inside of WM_PAINT
+
+2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * MenuAPI.cs: Returns after Hidding window
+       * XplatUIX11.cs: Added TODO found while debugging menu issues
+
+2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: Do not re-map the whole window when it's size
+         becomes non-zero unless it's supposed to be actually visible
+
+2005-10-18  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: We don't need to keep a count anymore.
+       * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
+       use the Grow method.
+
+2005-10-18  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNodeCollection.cs: Insert is not supported on arrays, so
+       implement it manually here.
+
+2005-10-18  Jackson Harper  <jackson@ximian.com>
+
+       * ImageList.cs: Dont kill the list when the colour depth is
+       changed, just change the colour depth of all the images.
+       - Same goes for setting the image size. Just resize them all
+       instead of killing the list softly.
+
+2005-10-18  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Don't invalidate empty rectangles.
+
+2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ListViewItem.cs:
+         - Adds checked item to the Checked/Item lists (where empty before)
+         - Do not add items to the Selected lists if they are already present
+       * ListView.cs:
+         - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
+         - When deleting items make sure that we delete them for the Selected
+         and Checked list also.
+
+2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Label.cs: Dispose objects no longer used
+       * ThemeWin32Classic.cs: Dispose objects no longer used
+
+2005-10-18  Jackson Harper  <jackson@ximian.com>
+
+       * TabControl.cs: Don't refresh the whole control when the tabs are
+       scrolled, we just need to refresh the tab area.
+
+2005-10-17  Jackson Harper  <jackson@ximian.com>
+
+       * XplatUIX11.cs: Compress code a little bit. Only calculate the
+       after handle when we need it.
+
+2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: When the parent size changes, recalculate anchor 
+         positions. Partial fix for #76462
+
+2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
+         drawn. Fixes #76462
+
+2005-10-17  Jackson Harper  <jackson@ximian.com>
+
+       * MonthCalendar.cs: Don't create the numeric up down until our
+       handle is created. Otherwise our handle is created in the
+       constructor and we don't know if we are a WS_CHILD or WS_POPUP
+       yet.
+
+2005-10-17  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
+       correctly.
+
+2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
+       * TreeNode.cs : small logical fix (was using local var instead of field)
+       
+2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
+
+2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
+
+2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs: 
+         - Re-implemented anchoring code. My first version was really broken.
+           This fixes bug #76033. Unlike the previous implementation we will
+           no longer have round errors since all numbers are calculated from
+           scratch every time. Removed various anchor-related obsolete vars.
+         - InitLayout no longer causes layout event firing and layout to be 
+           performed
+
+2005-10-16  Jackson Harper  <jackson@ximian.com>
+
+       * Hwnd.cs: Compute invalid area correctly (fixes my last commit
+       which was broken).
+
+2005-10-16  Jackson Harper  <jackson@ximian.com>
+
+       * TabControl.cs: Remove debug code.
+
+2005-10-16  Jackson Harper  <jackson@ximian.com>
+
+       * XEventQueue.cs: Increase the default queue size (very simple
+       apps needed to grow the queue).
+       * Hwnd.cs: No finalizer so we don't need to suppress
+       finalization. Compute the invalid area manually so a new rectangle
+       does not newto be created.
+       * ScrollableControl.cs: Don't set any params (otherwise visibility
+       isn't set correctly).
+       * MdiChildContext.cs: New constructor takes the mdi parent so it
+       doesn't have to be computed and avoids a crash on windows. Draw
+       the window icon properly, and allow the text to be seen.
+       * Form.cs: Use new MdiChildContext constructor. Make sure the
+       child context isn't null in wndproc.
+       * TabControl.cs: Don't set focus, this is muddling keyboard
+       behavoir. Expand the tab rows when a window size increase will
+       allow extra tabs to be seen. Don't allow tabs smaller than the
+       width of a window to be scrolled out of view.
+       * TreeNode.cs:
+       * TreeView.cs: Use measure string to calculate a nodes width, the
+       width is cached and only updated when the text or the font is
+       changed. Don't check for expand/collapse clicks on the first level
+       nodes if root lines are disabled.
+       
+2005-10-16  Ritvik Mayank  <mritvik@novell.com>
+
+       * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
+
+2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * DataGridBoolColumn.cs: fixes warning
+
+2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
+       to match more to match more precisely the MS Net behavior
+
+2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Hwnd.cs: Added field to track if window is mapped
+       * XplatUIX11.cs: 
+         - Unmap windows if they become 0-size, re-map when 
+           they are >0 again; fixes #76035
+         - Re-set our error handler after initializing X11Desktop
+           to override any error handlers Gtk or whatever was called
+           may have set.
+
+2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * CheckedListBox.cs: Removed unused vars
+       * ListView.cs: Fixed signatures
+       * RichTextBox.cs: Removed unused vars
+       * TextBoxBase.cs: Removed unused vars
+       * XplatUIWin32.cs: Removed unused vars
+       * XplatUIX11.cs: Removed unused vars
+       * XplatUI.cs: Updated version and date to latest published
+
+2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Cursor.cs: Added private .ctor to work around a bug in
+         resourceset (Thanks to Geoff Norton for the help on this)
+       * SplitterEventArgs.cs: Made fields accessible so we don't
+         waste boatloads of objects and can reuse the same one
+         in Splitter
+       * XplatUIWin32.cs(DrawReversibleLine): Now also considers
+         any captions and borders when generating screen coordinates
+       * Splitter.cs: Reimplemented control, now fully complete, uses
+         rubberband drawing, supports and obeys all properties, has
+         proper cursors
+
+2005-10-13  Miguel de Icaza  <miguel@novell.com>
+
+       * Form.cs (Form): Setup default values for autoscale and
+       autoscale_base_size;  Make these instance variables, not static
+       variables. 
+
+       (OnLoad): on the first load, adjust the size of the form.
+
+2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
+         width argument to DrawReversibleRectangle()
+       * XplatUIWin32.cs, XplatUIX11.cs: 
+         - Implemented width for DrawReversibleRectangle()
+         - Added logic to DrawReversibleRectangle that recognizes a zero
+           width or height and only draws a line in that situation
+       
+2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
+       * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
+       * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
+         method (it uses our FosterParent window to get a graphics context)
+
+2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
+         and SetWindowBackground methods
+       * Control.cs:
+         - Setting proper ControlStyles
+         - We no longer call XplatUI.SetWindowBackground and XplatUI.
+           EraseWindowBackground, instead we draw the window background
+           ourselves in PaintControlBackground. This behaviour is
+           required to match MS, where, when OnPaintBackground is not
+           called, the background is not drawn.
+         - Removed unneeded Refresh() in set_Text
+       * Hwnd.cs: Dropped the ErasePending support. No longer needed
+       * XplatUIX11.cs:
+         - Created DeriveStyles method to translate from CreateParams to
+           FormBorderStyle and TitleStyle, also handles BorderStyle (which
+           matches FormBorderStyle enum values)
+         - Consolidated SetHwndStyles and CalculateWindowRect border/title
+           style calculations into single DeriveStyles method
+         - Fixed CreateWindow to (finally) use Gravity. This prevents X11
+           from redrawing the whole window on any resize or expose.
+         - Fixed CreateWindow usage of SetWindowValuemask. Before not
+           all styles were applied to our whole/client window appropriately
+         - Removed EraseWindowBackground() and SetWindowBackground() methods
+         - Removed handling of WM_ERASEBKGND message from DefWndProc, we
+           no longer clear/redraw the background through X
+         - Removed handling of erase_pending bit, we have no use for it (or
+           so it seems)
+       * XplatUIOSX.cs:
+         - Removed generation and handling of WM_ERASEBKGND message
+         - Removed EraseWindowBackground() and SetWindowBackground() methods
+         - Removed handling of hwnd.ErasePending flag
+       * XplatUIWin32.cs:
+         - Removed EraseWindowBackground() and SetWindowBackground() methods
+         - We no longer call EraseWindowBackground on PaintEventStart, we 
+           ignore the fErase flag, erasing is handled in Control in the
+           background handler
+       * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
+         LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
+         TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
+         CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
+         DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
+         TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
+         DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
+
+2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
+
+       * PropertyGrids.cs: Get sub properties
+       * PropertyGridView.cs: Fix drawing code
+
+2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ListBox.cs: Fixes 76383
+
+2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * DataGridTextBoxColumn.cs: Sets location and size before attachment
+       * ThemeWin32Classic.cs: Fixes border drawing and calculations
+       * DataGridDrawingLogic.cs: Fixes border drawing and calculations
+
+
+2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ComboBox.cs: Fixes border drawing
+
+2005-10-10  Miguel de Icaza  <miguel@novell.com>
+
+       * MimeIcon.cs: Ignore errors if the file can not be read.
+
+2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
+        - Fixed border calculations
+        - Fixed horizontal scrolling in single column listboxes
+        - Fixed drawing issues
+
+2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
+         FormBorderStyle enum
+       * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
+         code to determine FormBorderStyles from CreateParams
+       * Form.cs:
+         - Fixed bug where we'd set the wrong window styles if we were
+           not creating an MDI window
+         - Added call to XplatUI.SetBorderStyle when form borders are set
+       * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
+       * Hwnd.cs:
+         - Removed obsolete edge style
+         - Switched from BorderStyle to FormBorderStyle
+       
+2005-10-10  Jackson Harper  <jackson@ximian.com>
+
+       * Form.cs: Use the property to get the window handle instead of
+       accessing it directly. Prevents a null reference exception.
+
+2005-10-10  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Don't adjust the rect given to DrawString now that
+       our libgdiplus draws correctly.
+
+2005-10-08  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Don't try to find the clicked on node if there are
+       no nodes in the tree.
+
+2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * RichTextBox.cs:
+
+         restore
+
+2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
+         ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
+         ErrorProvider.cs:
+         Use ResPool for brushes and dispose System.Drawing objects that
+         are not used anymore.
+
+2005-10-07  Jackson Harper  <jackson@ximian.com>
+
+       * MdiChildContext.cs: Use the new borders instead of drawing them
+       ourselves.
+
+2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * Calling UpdateBounds after changing the window's BorderStyle 
+       since the style can change the ClientSize
+
+2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: Made PaintControlBackground virtual
+       * Panel.cs: Overriding PaintControlBackground instead of using paint
+         event; paint event method was interfering with 'real' users of the
+         event.
+
+2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
+
+       * ThemeWin32Classic.cs: remove border drawing since it is handled
+       by the base control class now and was causing double border drawing.
+
+2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Panel.cs: Redraw our background on paint. Not a pretty solution,
+         but it does seem to match MS behaviour. This fixes bug #75324
+
 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
 
        * XplatUIX11.cs: A better DrawReversibleRectangle version, however