2006-12-07 Alexander Olk <alex.olk@googlemail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index c2c01ff8c832f02d9261d4edf016cefd35ae58fe..66b53f714332bf89cf56dd481beb9e61d10a21eb 100644 (file)
@@ -1,3 +1,361 @@
+2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
+
+       * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
+         not libgdk (though it makes me wonder why I didn't have any
+         problems)
+
+2006-12-07  Chris Toshok  <toshok@ximian.com>
+
+       [ you had to know this was coming after that last commit...]
+       
+       * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
+       XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
+       DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
+       XCopyArea).
+
+2006-12-07  Chris Toshok  <toshok@ximian.com>
+
+       * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
+       DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
+       all the behavior we need for double buffering.
+
+       * XplatUIDriver.cs: implement the 3 double buffer methods using a
+       client side Bitmap, just like the old Control-based double buffer
+       code did.  The methods are virtual, so each XplatUI driver
+       subclass can replace the implementation to use a faster, platform
+       specific approach.
+
+       * Control.cs: make use of the 3 Offscreen XplatUI calls in the
+       double buffer code, and clean things up a bit in the process.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs: reindent WndProc.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       [ I wanna be like BenM when I grow up ]
+       
+       * Hwnd.cs: create a single static Graphics object on the static
+       Bitmap we create.  use this for our text measurements.
+
+       * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
+       This was causing us to allocate a backbuffer for every control,
+       even when it wasn't flagged as double buffered.  Instead use the
+       single graphics instance.  This might have implications for
+       multithreaded applications.  If we run into problems we can switch
+       to creating 1 Graphics per control, on the static Hwnd bitmap.
+
+       this change nets us a 7M savings in private dirty mappings when
+       running FormsTest.exe.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * ToolTip.cs: use Visible instead of is_visible.
+
+       * TreeView.cs: same.
+
+       * ListBox.cs: same.
+
+       * ListView.cs: same.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * ListView.cs: the BackgroundImage override is just to set
+       attributes.  chain up to base.BackgroundImage.
+
+       * RichTextBox.cs: same.
+
+       * ToolBar.cs: same, but we need to also redraw the toolbar when it
+       changes, so instead a handler for BackgroundImageChanged.
+       
+       * Control.cs: make background_image private.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * ScrollBar.cs: change the assignment of cursor to Cursor.  not
+       sure we even need this assignment, but roll with it for now.
+
+       * Control.cs: make the cursor field private.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Form.cs: we don't need to explicitly set ImeMode to
+       ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
+       behavior in the face of ImeMode.Inherit.
+
+       * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
+       change the ctor's assignment to use ImeMode instead of ime_mode.
+
+       * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
+       ImeModeInherit.  Only check for the parent's imemode (and return
+       NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
+       This fixes the button unit test, which sets both ImeMode and
+       DefaultImeMode to ImeMode.Disable.
+
+       also make the ime_mode field private.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs: make control_style private.
+
+       * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
+       setting the styles to true, then setting them to false instead of
+       reverting to their previous values.
+
+       also, call SetStyle on the scrollbars instead of using
+       control_style directly.
+
+2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
+
+       * FormCollection.cs: Implement. [2.0]
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs: make tab_stop private.
+
+       * Label.cs: set TabStop, not tab_stop.  reformat some event
+       add/remove methods to make them more compact.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * RadioButton.cs: fix TabStop handling.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * TextBox.cs: remove the explicit assignments to has_focus.
+       Control does that.
+
+       * ButtonBase.cs: remove the assignment to has_focus.  Control will
+       manage that.
+       
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * ButtonBase.cs: remove all uses of is_enabled from this code.
+       it's always true when any of the code containing the checks is
+       executed.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
+       with different semantics (some are present in both 1.1 and 2.0
+       profiles) so that we match MS's behavior in our unit tests.
+
+2006-12-06  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Make this operation undoable.
+       * TextBoxBase.cs: Factor the border width into the preferred
+       height.
+       - implement Modified as per the spec.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Timer.cs, Control.cs, Menu.cs: make control_tag private.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs: make right_to_left and context_menu fields private.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
+       XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
+       Control.child_controls private.  switch all uses over to
+       Control.Controls.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * System.Windows.Forms/GroupBox.cs,
+       System.Windows.Forms/AccessibleObject.cs,
+       System.Windows.Forms/ErrorProvider.cs,
+       System.Windows.Forms/Control.cs,
+       System.Windows.Forms/UpDownBase.cs,
+       System.Windows.Forms/ScrollBar.cs,
+       System.Windows.Forms/DateTimePicker.cs,
+       System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
+       System.Windows.Forms/ToolTip.cs,
+       System.Windows.Forms/RadioButton.cs,
+       System.Windows.Forms/LinkLabel.cs,
+       System.Windows.Forms/Splitter.cs,
+       System.Windows.Forms/TextBoxBase.cs,
+       System.Windows.Forms/ToolStripTextBox.cs,
+       System.Windows.Forms/ContainerControl.cs,
+       System.Windows.Forms/ThemeWin32Classic.cs,
+       System.Windows.Forms/SizeGrip.cs,
+       System.Windows.Forms/ToolStripDropDown.cs,
+       System.Windows.Forms/ScrollableControl.cs: Make Control.parent
+       private.  switch all uses over to Control.Parent.
+
+2006-12-06  Chris Toshok  <toshok@ximian.com>
+
+       * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
+       Control does this before calling emitting these events.
+
+       * TabControl.cs: same.
+
+       * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
+       Control.client_rect.
+
+       * ButtonBase.cs: use the ClientSize property instead of the
+       client_size field.
+
+       * ScrollableControl.cs: same.
+
+       * Control.cs: another pass at making properties private.  also,
+       move the initialization of tab_stop to the ctor.
+
+2006-12-05  Andreia Gaita <avidigal@novell.com>
+
+       * TabControl.cs: Let the selected index be set freely if the 
+       control handle is not yet created.
+
+2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
+       internal until I can rewrite DefaultLayout.
+       * ToolStrip.cs: Fix build error and some general cleaning.
+       * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
+       Fix build errors caused by making some of Control's fields private.
+
+2006-12-05  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Redo Insert a little so that it use IndexOf
+       instead of Split, this prevents it from messing up on things like
+       \n\n\n. Also more effecient since the split array doesn't need to
+       be created.
+       * TextBoxBase.cs: AppendText doesnt handle multiline and non
+       multiline text differently, this is the first of many fixes that
+       will make multiline/non-multiline the same thing as far as the
+       TextBoxBase is concerned.
+       - Don't split the text and insert lines, this can lose some line
+       endings (like is the last line a soft or hard break). Instead use
+       the new Insert.
+       - Fix an off by one when combining all the lines in the Text
+       getter.
+       - Remove separate multiline handling from the Text getter/setter.
+
+2006-12-05  Chris Toshok  <toshok@ximian.com>
+
+       * ButtonBase.cs: a few changes:
+
+       - don't reinitialize internal Control fields in the ctor when they
+       have the same values as Control sets them.
+
+       - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
+       this before calling those methods.
+
+       - we don't need to call Refresh for anything.  use Invalidate
+       instead.
+
+       - OnEnabledChanged doesn't need to redraw at all - Control.cs
+       calls Refresh in its OnEnabledChanged.
+       
+       - several of the events we were registered for in the ctor to
+       redraw ourselves already include calls to Invalidate in the
+       property setters that raise the events.  remove the extra
+       invalidation.
+
+       - reformat a switch statement that was 83274658 columns wide.
+       
+2006-12-05  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: fix a unit test regression from a TextBox
+       SelectionLength return of -1 when there's no selection.  
+
+2006-12-05  Chris Toshok  <toshok@ximian.com>
+
+       * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
+       ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
+       cleaning up some of the internal Control fields being used by
+       subclasses.
+
+2006-12-05  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
+       listbox after AddImplicit calls since it defaults to hidden. Add a 
+       hack to preserve requested heights across DropDownStyle changes.
+
+2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * PropertyGrid.cs: Hide FindFirstItem method from public API.
+
+2006-12-05  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridView.cs: fix compiler warnings.
+
+       * PrintControllerWithStatusDialog.cs: same.
+
+       * ToolBar.cs: same.
+
+       * FolderBrowserDialog.cs: same.
+
+       * Splitter.cs: same.
+
+       * DataGridViewComboBoxCell.cs: same.
+
+       * XplatUIWin32.cs: same.
+
+       * PictureBox.cs: same.
+
+       * Win32DnD.cs: same.
+
+       * PageSetupDialog.cs: same.
+
+       * FileDialog.cs: same.
+
+       * PrintDialog.cs: same.
+
+       * DataGridTextBoxColumn.cs: same.
+
+       * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
+
+2006-12-05  Chris Toshok  <toshok@ximian.com>
+
+       * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
+       MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
+       System.ComponentModel.EventHandlerList work.
+
+2006-12-05  Jonathan Chambers  <joncham@gmail.com>
+
+       * DrawTreeNodeEventArgs.cs: Added.
+
+2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+       
+       * InternalWindowManager.cs: Remove an unused field.
+       
+2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * InternalWindowManager.cs:
+       - Save the point where the title bar is clicked.
+       
+       * MdiWindowManager.cs:
+       - Only allow moving of the window as long as the 
+       clicked point on the title bar does not get out of
+       MdiClient's rectangle. Fixes #79982.
+       
+       * MdiClient.cs:
+       - Added Horizontal/VerticalScrollbarVisible.
+       - Simplified the scrollbar sizing algorithm.
+       - Cache the difference in scrolled value in
+       H/VBarValueChanged and move the calculation out
+       of the for loop.
+
+2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
+
+       * Control.cs: Make the Console.WriteLine in WndProc 
+       write more info.
+
+2006-12-05  Chris Toshok  <toshok@ximian.com>
+
+       * ToolStripManager.cs, ToolStripButton.cs,
+       ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
+       ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
+       ToolStripSplitButton.cs, ToolStripSeparator.cs,
+       ToolStripRenderer.cs, ToolStripDropDownItem.cs,
+       ToolStripProgressBar.cs, ToolStripContainer.cs,
+       ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
+       to using System.ComponentModel.EventHandlerList.
+
 2006-12-04  Chris Toshok  <toshok@ximian.com>
 
        * LinkLabel.cs: fix up compiler warnings.