* System.Windows.Forms/DataGridView.cs: Only do a full column/row
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2
3         * DataGridView.cs: Only do a full column/row selection if a header was
4           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
5           isn't pressed, deselect everything before selecting something.
6
7 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8
9         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
10           behaviour according to bug #81075 - they are returned in the order they
11           are selected. Fix HitTest to check if the point is within any of the
12           headers. Allow for row/column selection when in ColumnHeader or
13           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
14           the row and column to call when their selected state changes, and
15           updated selected_[rows|columns] whenever SetSelected* is called.
16         * DataGridViewBand.cs: Initialize isRow correctly. Call
17           SetSelected[Row|Column]CoreInternal when the selected state changes, and
18           add a SelectedInternal to avoid StackOverflows.
19         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
20           ReadOnly no matter what.
21         * DataGridViewSelectedColumnCollection.cs,
22           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
23           the items in reverse order (just as MS does...)
24
25 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
26
27         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
28         itself, not part of a mnemonic.  [Fixes bug #82378]
29
30 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
31
32         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
33         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
34           the DGV, the column, the row, or the cell itself is readonly.
35
36 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
37
38         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
39         OSVersion.Platform.
40         * FileDialog.cs: Same.
41         * TextRendered.cs: Same.
42         * FolderBrowserDialog.cs: Same.
43         * TextBoxBase.cs: Same.
44         * Application.cs: Same.
45         * Cursors.cs: Same.
46         * ThemeClearLooks.cs: Same.
47
48 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
49
50         * XplatUI.cs: Added RunningOnUnix property to be used by controls
51         instead of duplicating these checks everywhere.
52         * FileDialog.cs: Use case-insensitive comparison for populating the
53         DirComboBox when not running on unix. Fixes bug #82385.
54         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
55         "Look in".
56
57 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
58
59         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
60           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
61           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
62           cell and column selection with ctrl and shift pressed. Call the correct
63           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
64           the corresponding virtual method (PaintBackground to paint background,
65           etc).
66         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
67           either the column, row or the cell itself is selected.
68         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
69           OnRowsAdded.
70         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
71           here. When the row is selected, don't select all cells. Each cell now
72           queries the row to see if the row is selected.
73
74 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
75
76         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
77           SelectionMode.
78
79 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
80
81         * ListView.cs: In ListViewItemsCollection check that owner is
82         not null before trying to access it (this happens quite often
83         using Groups). Also don't duplicate calls by calling CollectionChanged
84         method.
85
86 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
87
88         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
89         when we are dismissed to clear keyboard mnemonics.
90         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
91         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
92         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
93         was activated by keyboard or the OS tells us to always draw them.
94         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
95         [Fixes bugs #82376, #82377]
96
97 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
98
99         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
100         shot at having it because Alt was pressed.
101         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
102         the first real menu item.
103         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
104         a mnemonic if Text is null.
105         [Fixes bug #82374]
106
107 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
108
109         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
110         search do check whether the item is already contained in the
111         collection or not; instead check if the owner of the item is the same
112         as ours. Also, remove a redundant check in the same method. 
113
114 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
115
116         * Control.cs: Allow the clip region to be set back to null.
117         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
118         [Fixes button still showing up in bug #82370 when Show Through is turned off]
119
120 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
121
122         * GridEntry.cs: Add a null check.
123         * PropertyGrid.cs: When checking for existing grid entries, ignore category
124           entries. Fixes #82297.
125
126 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
127
128         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
129         for 2.0.
130
131 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
132
133         * ListBox.cs: Implement ScaleControl.
134
135 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
136
137         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
138           have a menu strip.
139         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
140           parent has a menu strip. Fixes #81689.
141
142 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
143
144         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
145           moments, so apply some fuzzy logic to determine if the mouse is still
146           inside a control or not. Fixes #82288 (for the third time).
147
148 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
149
150         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
151           Don't create the child if it has been disposed already (may happen if
152           the user closes the form the Load event).
153
154 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
155
156         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
157           #82288.
158
159 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
160
161         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
162           might call us after we've been destroyed, in which case our own private
163           parent field is null. Fixes #82326.
164
165 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
166
167         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
168         check for setting the dropdown's owner.
169
170 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
171
172         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
173         before removing system menu items.
174
175 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
176
177         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
178         folding.
179         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
180         folding.
181         * ToolStrip.cs: Add a null check to mnemonics.
182         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
183         no ConnectedArea.
184         [Fixes most of bug #81689]
185
186 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
187
188         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
189
190 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
191
192         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
193
194 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
195
196         * DataGridViewCell.cs: EditType: returns
197           DataGridViewTextBoxEditingControl always.
198
199 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
200
201         * TextRenderer.cs: Remove the LineLimit string format flag from the
202         DrawString fallback method so that things like buttons that aren't
203         tall enough to draw a full line will still draw part of the text.
204         [Fixes part of bug #82272]
205
206 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
207
208         * DataGridView.cs: Implemented AutoResizeColumn(s).
209         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
210           according to the Alignment.
211         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
212           Implement alignment and padding when painting.
213         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
214           exists.
215         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
216           way.
217         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
218           a column is added.
219
220 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
221
222         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
223         which is internal.
224
225 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
226
227         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
228         hide GetPreferredSize from public API.
229         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
230         * ToolStripItem.cs: Stub out drag and drop methods and events.
231         * ToolStripManager.cs: Stub out Save/LoadSettings.
232         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
233         * ToolStripPanel.cs: Fix corcompare error.
234         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
235         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
236         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
237
238 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
239
240         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
241         bounds height instead of PreferredHeight.  Puts things back the way 
242         they were for height while still fixing the width.  Fixes broken unit
243         tests.
244
245 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
246
247         * Binding.cs: Implement 2.0 constructors and add a null check.
248
249 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
250
251         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
252           and fix row index (off by one).
253
254 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
255
256         * PropertyGridView.cs: Remove debug output.
257
258 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
259
260         * Control.cs: We need to reset the is_created flags when the handle is
261           destroyed. Fixes #82187.
262         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
263           client coordinates if the window doesn't have a parent.
264           Win32GetParent returns the parent or the owner, and for top-level
265           windows with no parent (but with an owner) we were calculating the
266           location from the location of the owner.
267         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
268           form has been disposed.
269         * MdiClient.cs: Add a null-check.
270
271 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
272
273         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
274         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
275         so we can provide an implementation that returns the current width
276         and preferred height.  Allows anchor = right to work with TextBox 2.0.
277         [Fixes bug #82233]
278
279 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
280
281         * ListView.cs: Add support for navigating items in Groups mode, by
282         creating a big matrix containing all rows and cols of all groups. When
283         are in other mode than Details, pressing Up should have a similar
284         behaviour as that one of Down (moving to the next available column if
285         current one doesn't have an item in the requested row). Also, don't
286         proceed to use groups if ShowGroups is false.
287         * ListViewGroup.cs: Add an internal int field to store the starting
288         row of the group (used by the big matrix used for navigating the
289         ListView).
290         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
291         false.
292
293 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
294
295         * ToolStripDropDown.cs: When we do Show, start with the 
296         DefaultDropDownDirection, but if our popup menu is going to off-screen,
297         modify the direction to keep it on screen.  [Fixes bug #82210]
298
299 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
300
301         * FileDialog.cs: Accept any FilterIndex value, and store it
302         unmodified. When FilterIndex is less than 1, or greater than number
303         of filters, then default to first filter. Only add filter extension to
304         file if user did not specifiy an extension. When type of dialog is
305         OpenFileDialog and DefaultExt is set, then only use filter extension
306         if: CheckFileExists is true and no file wih the default extension
307         exists, or CheckFileExists is false, and user specified file does not
308         exist. When CheckFileExists is true, then add first extension of 
309         selected filter that matches existing file. Perform checks for
310         existing file, overwrite and create after extension has been added to
311         file name. When CheckFileExists is true and type is SaveFileDialog,
312         then only consider first filter extension if DefaultExt is set.
313         When CheckFileExists is true, then ignore DefaultExt if file with that
314         extension does not exist. Also perform check for existing file when
315         type is SaveFileDialog. Changed some field to constants.
316
317 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
318
319         * ListView.cs: Take into account the region used by header
320         control when doing the vertical scroll (this way we invalidate
321         the precise area, and don't get any dirty one).
322
323 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
324
325         * FileDialog.cs: Check for valid filterIndex on button open/save. 
326         Fixes #82184.
327
328 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
329
330         * ListView.cs: Update some layout calculations in details view
331         and clean the code in a pair of assignations.
332
333 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
334
335         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
336         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
337         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
338         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
339
340 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
341
342         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
343         performance of thread-safe Graphic methods.  (Thanks rolf!)
344
345 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
346
347         * ListView.cs: When doing the layout calculations, don't calculate
348         scroll bars before handle is created. This is unnecessary and also
349         calculating them before handle creation item causes a number of random
350         bugs (which begin to appear after Chris' big patch for handle creation
351         fixes). 
352
353 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
354
355         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
356         for things that don't have a Graphics object.  Currently, things just use
357         the static Hwnd.bmp_g which is not thread safe.
358
359 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
360
361         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
362           dialog. Fixes #82187.
363
364 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
365
366         * DataGridViewElement.cs: Initialize state.
367         * DataGridView.cs: Forward a few Mouse events to cells. Add
368           GetRowInternal and GetCellInternal that doesn't unshare rows.
369           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
370           don't use the index, but look it up. Add
371           DataGridViewControlCollection.RemoveInternal to remove controls
372           that Remove won't remove (scrollbars, edit control).
373         * DataGridViewColumn.cs: Initialize State correctly.
374         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
375           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
376           implementing this.
377         * DataGridViewRowCollection.cs: Implemented shared rows.
378         * DataGridViewRow.cs: Throw exceptions as MS do.
379         * DataGridViewCell.cs: A few properties are implemented by a
380           Get<Property> method, so move implementation there and remove the
381           NIEX in the method. Add a bunch of OnXInternal that DataGridView
382           calls when necessary.
383         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
384           complicates matters.
385         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
386           unshare any rows.
387
388 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
389
390         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
391         the children controls.  Instead, we will just set up the proper docking for the
392         children controls so we don't have to worry about it.  [Fixes bug #82188]
393
394 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
395
396         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
397         canceling and correct Before/AfterLabelEdit properties as layed out in bug
398         81847.  [Fixes bug #81847]
399
400 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
401
402         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
403         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
404         an explicit size based on the design-time size of the text.  Since our fonts
405         may not match this explicit size, we tend to cut off the ends of people's labels.
406
407 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
408
409         * Menu.cs: Add some missing methods to MenuItemCollection.
410
411 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
412
413         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
414         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
415         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
416         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
417         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
418         * DataGridViewElement.cs: State defaults to Visible.
419         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
420         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
421
422 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
423
424         * Control.cs: Minor 1.1 corcompare fix.
425
426 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
427
428         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
429         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
430
431 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
432
433         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
434           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
435           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
436           DataGridViewSelectedColumnCollection.cs,
437           DataGridViewSelectedRowCollection.cs: Corcompare work.
438
439 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
440
441         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
442         it is autoset by VS2005 designer and the effect is barely noticeable.
443
444 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
445
446         * TreeView.cs: Implement HitTest.
447
448 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
449
450         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
451           manually adding and removing the control from the Controls
452           collecftion.
453         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
454           EditingControlInternal property that tracks the editing control.
455           Always keeping the scrollbars in the Controls collection, as MS
456           testing confirms is the right behaviour.
457
458 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
459
460         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
461           according to MSDN and new test.
462
463 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
464
465         * TreeNode.cs: Implement ToolTipText.
466         * TreeView.cs: Implement tooltips, NodeMouse* events.
467
468 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
469
470         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
471
472 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
473
474         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
475         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
476
477 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
478
479         * Control.cs, Form.cs, ContainerControl.cs,
480         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
481         for misc properties.
482
483 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
484
485         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
486         * TreeView.cs: Implement StateImageList.
487
488 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
489
490         * Form.cs: Don't check if the current form is the active form before
491           activating it. Fixes #81904.
492
493 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
494
495         * Form.cs: Don't check if the current form is the active form before
496           activating it. Fixes #81904.
497
498 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
499
500         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
501
502 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
503
504         * Form.cs: Don't try to position the form after loading if the form was
505           disposed. Fixes #81969.
506
507 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
508
509         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
510           properties. Had to change ToolBar into ToolStrip, which required a
511           few #ifs.
512
513 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
514
515         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
516           resized, fixes part of #79829 (vertical lines in toolbar).
517           PropertyGrid: Refactored Populate* to something that's easier to
518           follow at least for me, as well as splitting it up into several new
519           methods, required to update only subitems when something has
520           changed by a popup editor or listbox. Don't use events to check
521           when any values are changed, since the events are unreliable (we're
522           changing the objects the events are registered with, and if the
523           event handling requires the objects to be immutable (objects stored
524           in hashtables for instance), the events will never be raised).
525         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
526           everytime we change a value, since events are unreliable.
527           DropDownButtonClicked: For the same reason don't compare objects to
528           check if it has changed or not, it would require all objects to
529           derive Equals. Fix dialog location on windows, MS is doing weird
530           things when creating parented forms.
531         * GridEntry.cs: Add a SelectedObject setter.
532
533 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
534
535         * TreeNode.cs: Add some corcompare attributes.
536         * TreeNodeCollection.cs: Implement 2.0 stuffs.
537         * TreeView.cs: Implement some 2.0 stuffs.
538
539 2007-07-18  Andreia Gaita  <avidigal@novell.com>
540
541         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
542         for moma.
543
544 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
545
546         * ListBox.cs: Implement custom tab offsets.
547
548 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
549
550         * ToolStripContentPanel.cs: Support System renderer.
551         * ToolStripControlHost.cs: Set RightToLeft to default to No.
552
553 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
554
555         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
556
557 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
558
559         * CheckBox.cs: Chain TextAlign to base implementation instead of
560         maintaining another one.
561
562 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
563
564         * ButtonBase.cs: Fix an incorrect string constant.
565
566 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
567
568         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
569         of creating one for measuring strings.
570
571 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
572
573         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
574         Implement MaxItemSize.
575
576 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
577
578         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
579         for DeviceContext.  Instead, use the static one available in Hwnd.
580         Informal tests show this saves about 500k on formtest.exe.
581
582 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
583
584         * ContainerControl.cs: Implement 2.0 AutoScaling.
585
586 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
587
588         * ComboBox.cs: Work around bug #82120 (bug in mcs).
589
590 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
591
592         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
593         Darken the focus color.
594
595 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
596
597         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
598         for the checkbox.
599         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
600         X, Y instead of a rect for drawing text.
601         - For ControlPaint.DrawCheckBox, center the check a little better when the
602         checkbox is odd width.  When drawing a flat checkbox, use a white background
603         when state != inactive.
604         [Fixes bugs #82097, 82100]
605
606 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
607
608         * ListControl.cs: When changing CurrencyManager, disconnect event
609         handlers from previous one. Fixes bug #81771. Code formatting.
610
611 2007-07-15  Andreia Gaita <avidigal@novell.com>
612
613         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
614         full preview invalidation from layout invalidation, and only invalidate
615         the layout when setting zoom or other properties. Invalidation should
616         always be done even when resetting properties with the same values as
617         what is there. Fixes #81744 and #79830.
618
619 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
620
621         * ListView.cs: Implement initial support for Groups. Split some of the
622         LayoutIcons code to render a partial list of the items (needed by
623         items contained in ListViewGroup instances). Let the
624         ListViewItemsCollection.ListView property be modifiable (needed when
625         using Groups, too).
626         * ListViewGroup.cs: Use a Bounds property rather than a Location
627         one. Also invalidate the bounds when they get changed.
628         * ThemeWin32Classic.cs: When drawing items, also draw the group header
629         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
630         method as well.
631
632 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
633
634         * ListView.cs: When space gets pressed and CheckBoxes is true, 
635         don't invoke the Begin and EndUpdate methods. We are generating 
636         a redraw of the entire control without need to do so.
637
638 2007-07-13  William Holmes <billholmes54@gmail.com> 
639
640         * Control.cs: Changing logic in FindFlatForward and 
641           FindFlatBackward to handle multiple Controls with 
642           the same TabIndex.  
643           This fixes bug 81687.
644
645 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
646
647         * OSFeature.cs: Enable IsPresent.
648
649 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
650
651         * Control.cs: Don't do anything in WmShowWindow if the control has been
652           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
653           control is created, put on a form, the control is disposed (the
654           form is never shown), and then we get a MapNotify, triggering a
655           WM_SHOWWINDOW.
656         * Form.cs: Exclude the current form when sending Deactivate to all
657           MdiChildren.
658         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
659           there was a race condition because assigning the handle raises
660           events, we can get more messages, therefore trying to assign the
661           handle again, which would fail if any of those event handlers
662           closed/disposed the control.
663
664 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
665
666         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
667
668 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
669
670         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
671         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
672
673 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
674
675         * DateTimePicker.cs: If there's no part format specifier, return an
676           empty string.
677
678 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
679
680         * FlatButtonAppearance.cs: Throw NotSupportedException for a
681         Transparent BorderColor.
682
683 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
684
685         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
686           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
687           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
688           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
689           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
690           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
691           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
692           Remove warnings.
693         * X11Structs.cs: Remove warnings, add ToString implementations.
694
695 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
696
697         * XplatUIX11.cs: Translate min/max size according to the actual min/max
698           size, and not the current size. Fixes #81798.
699
700 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
701
702         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
703           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
704           to the control yet).
705
706 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
707
708         * PropertyGridTextBox.cs: Add a method that sends any forwarded
709           mousedowns to the contained textbox.
710         * X11Structs.cs: More ToString implementation.
711         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
712           #81791.
713
714 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
715
716         * PropertyGridView.cs: Add a null-check, fixes a few tests.
717
718 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
719
720         * TableLayoutPanelCellPosition.cs: TypeConverter.
721
722 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
723
724         [ Fixes #79761]
725         
726         * PropertyGridTextBox.cs: Propagate any color changes to all contained
727           controls.
728         * PropertyGridView.cs: A few color fixes.
729
730 2007-07-10  Jackson Harper  <jackson@ximian.com>
731
732         * TextControl.cs: Remove some old unused text formatting stuff.
733
734 2007-07-10  Jackson Harper  <jackson@ximian.com>
735
736         * TreeView.cs: Update full row select invalidation to match the
737         newer DrawSelection... method.
738         - Make sure to invalidate the entire width when selecting a new
739         node, if we have full row selection enabled.
740
741 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
742
743         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
744           display of properties again.
745
746 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
747
748         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
749         to existing collections.
750
751 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
752
753         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
754         that changed between 1.1 and 2.0.
755
756 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
757
758         * PowerStatus.cs: Added.  This is just a data class, it is filled
759         in by SystemInformation.
760
761 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
762
763         * Message.cs: Add op_Equality and op_Inequality.
764
765 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
766
767         * MenuStrip.cs: Finish corcompare work.
768
769 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
770
771         * LinkArea.cs: Add op_Equality and op_Inequality.
772
773 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
774
775         * Application.cs: Add MessageLoopCallback delegate.
776
777 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
778
779         * ListBox.cs: First set of 2.0 stuffs.
780
781 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
782
783         * Control.cs: Make an internal Height property we can override
784         without messing up the public API.
785         * ListBox.cs: Override HeightInternal to always return the size
786         the user set.  [Fixes bug #80466]
787
788 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
789
790         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
791         paint cell borders if we haven't calculated where they go yet.
792         [Fixes bugs #82040 and #82041]
793
794 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
795
796         * ListView.cs: In Details view, set the location of item_control
797         in the (0,0) position (and the header_control is thus on the
798         item_control). This way the Bounds of the Items are relative to the
799         ListView control (before this, they had a Bounds value without the
800         header_control offset, which wasn't matching .Net). Fixes #82004.
801
802 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
803
804         * ListControl.cs: When DataSource is set to null, pass an empty
805         array of object to SetItemsCore. This is done to clean the items
806         in the ListContol children. Fixes #81788.
807
808 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
809
810         * ListControl.cs: Add 2.0 stuffs.
811
812 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
813
814         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
815         Refresh is overkill for just about every repaint request.
816
817 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
818
819         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
820         so remove my custom Get method and fix the property getter.
821
822 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
823
824         * Label.cs: DefaultMargin for 2.0.
825
826 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
827
828         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
829         reported issue where other controls with mnemonics would steal strokes
830         from a selected ComboBox.
831
832 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
833
834         * ScrollOrientation.cs: Make internal for 1.1.
835         * ScrollEventArgs.cs: Add 2.0 stuffs.
836
837 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
838
839         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
840         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
841         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
842
843 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
844
845         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
846
847 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
848
849         * ListView.cs: Implement the so-incredibly broken 2.0 
850         VirtualItemsSelectionRangeChanged event.
851
852 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
853
854         * ListView.cs: When enter is pressed and selection is non empty,
855         an OnItemActivate event must be fired.
856
857 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
858
859         * ListView.cs: Store the FocusedItem information as an
860         int instead of a ListViewItem (needed by VirtualMode).
861         Update the calls to SetFocusedItem to pass an index instead of
862         an item.
863         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
864         the Focused state from the owner ListView. 
865
866 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
867
868         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
869         property. Also, invalidate previous focused item in the mentioned
870         property (match .Net).
871
872 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
873
874         * ListView.cs: Implement 2.0 FocusedItem property setter.
875
876 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
877
878         * ListView.cs: Implement 2.0 TopItem property setter.
879
880 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
881
882         * StatusStrip.cs: The default renderer is System.
883         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
884         if the user specifies it.
885         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
886         if we are ManagerRenderMode.
887         * ToolStripMenuItem.cs: Calculate our text color better.
888         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
889         from Professional to the base class based off working with the System renderer.
890         * ToolStripSystemRenderer.cs: Added.
891
892 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
893
894         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
895
896 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
897
898         * ToolTip.cs: Implement 2.0 Tag property.
899
900 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
901
902         * ListView.cs: Implement 2.0 HitTest methods.
903
904 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
905
906         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
907         item is under the pointer or not (sugar). Also remove the TODO
908         regarding to the cursor changes in OneClick activation.
909         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
910         the subitems use the parent's HotFont if UseItemStyleForSubItems is
911         true; otherwise don't show the underline style.
912
913 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
914
915         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
916         the code to retrieve the item at position only one time. Also
917         change cursor when Activation is ItemActivation.OneClick as well
918         as invalidate the item if HotTracking is true (to show/hide the
919         underline style). Add an internal HotItemIndex property to retrieve
920         the current hot item's index.
921         * ListViewItem.cs: Add an internal HotFont property to cache the
922         font used when HotTracking is true and the pointer moves within the
923         item's borders.
924         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
925         HotFont depending on the hot state of the item.
926
927 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
928
929         * ListView.cs: Implement 2.0 HotTracking property.
930
931 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
932
933         * ToolStripControlHost.cs: If our hosted control never got created,
934         don't try to dispose it.  [Fixes bug #81909]
935
936 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
937
938         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
939
940 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
941
942         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
943
944 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
945
946         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
947         Details view.
948         * DrawListViewColumnHeaderEventArgs.cs:
949         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
950         using the DrawText () methods.
951
952 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
953
954         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
955         background which got erased in my changes yesterday.
956
957 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
958
959         * ListViewItem.cs: Actually set bounds for subitems in Details view
960         (2.0 feature).
961         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
962         can invoke from the owner draw routines if we need it. Also, add
963         support for Owner draw in Details view.
964
965 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
966
967         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
968         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
969         ShowImageMargin setting, properly align text in a ToolStripLabel
970         hosted on a ToolStripDropDown.
971
972 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
973
974         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
975         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
976
977 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
978
979         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
980
981 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
982
983         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
984         location to match ToolStripMenuItems.
985
986 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
987
988         * DrawListViewColumnHeaderEventArgs.cs:
989         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
990         column headers in ListView. 
991
992 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
993
994         * UserControl.cs: Implement AutoSize.
995
996 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
997
998         * DrawListViewItemEventArgs.cs:
999         * ListView.cs:
1000         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
1001         ListView.
1002
1003 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
1004
1005         * ToolStripDropDownItemAccessibleObject.cs: Added.
1006         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
1007         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
1008         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
1009         ToolStripTextBox.cs: corcompare work.
1010
1011 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
1012
1013         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
1014         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
1015         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
1016                 corcompare.
1017
1018 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
1019
1020         * OSFeature.cs: Add IsPresent.
1021         * PrintPreviewControl.cs: Add RightToLeft.
1022         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
1023         * SplitterPanel.cs: Add AutoSizeMode.
1024
1025 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
1026
1027         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
1028         * MdiClient.cs: Add 2.0 ScaleControl.
1029         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
1030         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
1031
1032 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
1033
1034         * Form.cs: Implement some scaling methods, stub some RTL methods,
1035         corcompare work.
1036
1037 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
1038
1039         * Control.cs: corcompare work.
1040         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
1041
1042 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
1043
1044         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
1045         ControlPaint 2.0 stuffs.
1046
1047 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1048
1049         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
1050
1051 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1052
1053         * UpDownBase.cs: Add 2.0 stuffs.
1054
1055 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1056
1057         * NumericUpDown.cs: Add 2.0 stuffs.
1058
1059 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1060
1061         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
1062
1063 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1064
1065         * ErrorProvider.cs: Implement 2.0 stuffs.
1066
1067 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1068
1069         * DomainUpDown.cs: Implement 2.0 stuffs.
1070
1071 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1072
1073         * CheckedListBox.cs: Fix RefreshItems signature.
1074
1075 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
1076
1077         * PictureBox.cs: Implement 2.0 stuffs.
1078
1079 2007-06-12  Andreia Gaita  <avidigal@novell.com>
1080         
1081         * TabControl.cs: Check if there are tabpages before checking
1082         the selected index - fix #81802 (font changes raise a ResizeTabs
1083         call on controls.add, which blew up nicely with no tabpages)
1084
1085 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1086
1087         * ListView.cs:
1088         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
1089
1090 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1091
1092         * ListView.cs:
1093         * ListViewItem.cs: In VirtualMode the selection information
1094         resides in the ListView, rather than in the Items. Also, throw
1095         InvalidOperationExceptions when VirtualMode is being used and
1096         CheckedItemCollection is accessed.
1097
1098 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
1099
1100         * ComboBox.cs: Add ScaleControl.
1101
1102 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
1103
1104         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
1105
1106 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
1107
1108         * GroupBox.cs: Add 2.0 stuffs.
1109
1110 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
1111
1112         * Panel.cs: Add autosize properties/event.
1113
1114 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
1115
1116         * Control.cs:
1117         - When we remove a control, remove it from the collection before performing the layout.
1118         - Setup an internal property for explicit_bounds.
1119         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
1120         - Perform a layout when we set a new AutoSizeMode.
1121
1122 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
1123
1124         * ScrollableControl.cs: Add 2.0 stuffs.
1125
1126 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1127
1128         * ScrollBar.cs: Add 2.0 stuffs.
1129
1130 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1131
1132         * Splitter.cs: Add 2.0 stuffs.
1133
1134 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1135
1136         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
1137         to have BindingContext simply use base implementation.
1138
1139 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1140
1141         * ColumnHeader.cs: corcompare fix.
1142
1143 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1144
1145         * Button.cs: corcompare fixes.
1146         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
1147
1148 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
1149
1150         * Button.cs: Override GetPreferredSizeCore.
1151         * ButtonBase.cs: PerformLayout after changing properties that can affect
1152         AutoSize.  Simplify some mouse/keyboard code.
1153         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
1154         * MouseEventArgs.cs: Make Location internal for 1.1.
1155         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
1156         * Theme.cs: Add CalculateButtonAutoSize.
1157         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
1158
1159 2007-06-05  Miguel de Icaza  <miguel@novell.com>
1160
1161         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
1162
1163 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1164
1165         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
1166         since we can get different item instances every time we retrieve it.
1167
1168 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1169
1170         * ListView.cs: Work around for #81602, since an unkown an pretty
1171         infrequent condition appears only in some systems (old linux boxes, it
1172         seems).
1173
1174 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
1175
1176         * Button.cs: Completely reformat and a little refactor to bring
1177         this closer to Mono circa 2007.
1178
1179 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
1180
1181         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
1182         to be ButtonBase.Invalidate.
1183
1184 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
1185
1186         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
1187
1188 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
1189
1190         * ButtonBase.cs: Completely reformat and a little refactor to bring
1191         this closer to Mono circa 2007.
1192
1193 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
1194
1195         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
1196         values for autosize. Fixes #80137.
1197
1198 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
1199
1200         * Control.cs: Don't perform layout when AutoSize changes.
1201         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
1202         directly when autosizing, use SetBounds with BoundsSpecified.None.
1203         Fixes unit tests my last commit broke.
1204
1205 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
1206
1207         * Control.cs: Perform layout when AutoSize changes.
1208         * Form.cs: Implement AutoSizing.
1209
1210 2007-06-01  Chris Toshok  <toshok@ximian.com>
1211
1212         * DataGrid.cs: remove the XXX'ed check at the top of
1213         ProcessGridKey.  fixes #80464.
1214
1215 2007-06-01  Chris Toshok  <toshok@ximian.com>
1216
1217         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
1218         adding idempotent (add/remove in Edit()), and also make sure we
1219         don't add it until after we set the text, so it's not tripped in
1220         Edit().  Fixes unit test regression.
1221
1222 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
1223
1224         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
1225         change is user explicit, not when the layout engine moves stuff.  Fixes
1226         anchoring to bottom and right.  [Fixes bug #81790]
1227
1228 2007-06-01  Andreia Gaita  <avidigal@novell.com>
1229
1230         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
1231
1232 2007-06-01  Andreia Gaita  <avidigal@novell.com>
1233
1234         * ContainerControl.cs: 
1235         Fire enter event for common ancestor if it is not a ContainerControl.
1236         Send focus to the active_control and not the 'value', the active 
1237         control might have been changed in one of the events fired.     
1238         Definitely fixes #80159.
1239
1240 2007-06-01  Andreia Gaita  <avidigal@novell.com>
1241
1242         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
1243
1244 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1245
1246         * PropertyGrid.cs: Anchor the help description to the bottom of the
1247           help panel and refactor SelectGridItem into a
1248           SelectGridItemInternal that can be set to null (and update it to
1249           clear the help texts when it is set to null). Set root item to null
1250           when there's no SelectedObject. Fixes #80438.
1251         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
1252           when we're recalculating after a resize (only).
1253
1254 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1255
1256         * ListView.cs: Implement 2.0 RedrawItems method.
1257
1258 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1259
1260         * ListControl.cs: Disconnect PositionChanged and ItemChanged
1261         handlers from previous data manager when DataSource is set to
1262         null. Fixes #81771.
1263
1264 2007-05-31  Jackson Harper  <jackson@ximian.com>
1265
1266         * TextBoxBase.cs: These seem to be the correct values.
1267
1268 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
1269
1270         * FileDialog.cs: When close dialog with ok set filterindex using combobox
1271         value. Fixes #81784.
1272
1273 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
1274
1275         * Control.cs: Implement 2.0 scaling methods.
1276
1277 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1278
1279         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
1280           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
1281           corcompare issues.
1282
1283 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1284
1285         * ProgressBar.cs: Implemented missing 2.0 members.
1286
1287 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1288
1289         * Control.cs: Corcompare issues.
1290         * MessageBox.cs: Implemented missing 2.0 functions.
1291
1292 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1293
1294         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
1295           Implemented more 2.0 members.
1296
1297 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1298
1299         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
1300           null (strange, but it seems to happen when running unit tests).
1301
1302 2007-05-30  Andreia Gaita  <avidigal@novell.com>
1303
1304         * ContainerControl.cs: Set active_control even earlier, before 
1305         firing any events, and undo it if validation returns false.
1306
1307 2007-05-30  Andreia Gaita  <avidigal@novell.com>
1308
1309         * ContainerControl.cs: Raise Validation and Enter/Leave events
1310         even if there is no Form and set active_control earlier, just
1311         before firing Enter events (toshok's patches). Fixes #80647.
1312
1313 2007-05-30  Jackson Harper  <jackson@ximian.com>
1314
1315         * TextControl.cs: Redid the pageup/pagedown a little to simplify
1316         things and fix bug #81311.
1317
1318 2007-05-30  Jackson Harper  <jackson@ximian.com>
1319
1320         * X11Dnd.cs: Now that we have our own event loop, we need to
1321         cancel when we get a mouseup but it won't be accepted.
1322
1323 2007-05-30  Chris Toshok  <toshok@ximian.com>
1324
1325         * DataGrid.cs (set_CurrentCell): guard against negative
1326         column/row.
1327
1328         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
1329         array index syntax instead of looping over the property names.
1330
1331         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
1332         and set IsInEditOrNavigateMode to false there.
1333
1334 2007-05-30  Jackson Harper  <jackson@ximian.com>
1335
1336         * TreeView.cs: Make sure we don't get a bad visible order when
1337         setting to the top node.  Fixes some misc crashing in
1338         ControlInspector.
1339
1340 2007-05-30  Andreia Gaita  <avidigal@novell.com>
1341
1342         * UserControl.cs: Add 2.0 AutoSizeMode
1343
1344 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
1345
1346         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
1347
1348 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
1349
1350         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
1351         lines. Fixes #80285. 
1352
1353 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
1354
1355         * DataGridColumnStyle.cs: Add char trimming column header text format. 
1356
1357 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
1358
1359         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
1360         Fixes #80147.
1361
1362 2007-05-29  Jackson Harper  <jackson@ximian.com>
1363
1364         * TreeNode.cs: Fix off by one on calculating whether or not a node
1365         is visible.
1366
1367 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
1368
1369         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
1370         * ScrollableControl.cs: Force an UpdateDistances when we move the
1371         scrollbars.
1372         [Fixes bug #80605]
1373
1374 2007-05-29  Andreia Gaita  <avidigal@novell.com>
1375
1376         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
1377         update the page setup screen.
1378
1379 2007-05-29  Andreia Gaita  <avidigal@novell.com>
1380
1381         * PageSetupDialog.cs: Fix landscape mode.
1382
1383 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1384
1385         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
1386         IconSizeHorizontalSpacing.
1387
1388 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1389
1390         * ListView.cs: The declaration of prev_tooltip_item should be inside
1391         a NET_2_0 conditional (avoid a warning).
1392
1393 2007-05-28  Andreia Gaita  <avidigal@novell.com>
1394
1395         * PageSetupDialog.cs: Implement PrintPreview control to display
1396         the preview thumbnail. Change unit conversion to use 
1397         PrinterUnitConvert methods.
1398         
1399         Note: there is a huge bug in ms.net where the default margins are 
1400         interpreted as centimeters (?), when in fact they are set in inches. When 
1401         loading the page setup dialog initially (ms.net), the default margins 
1402         are set to 1 inch, and the dialog shows them with value 10, when in fact 
1403         it should be 25 (properly converted). Our dialog doesn't have this bug.
1404         
1405         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
1406         RectangleF.
1407         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
1408
1409 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1410
1411         * ListView.cs:
1412         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
1413         items.
1414
1415 2007-05-28  Andreia Gaita  <avidigal@novell.com>
1416
1417         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
1418         an IntPtr on csc (it builds fine on mcs, could it be a compiler
1419         bug?), convert the ptr to Int32 first.
1420
1421 2007-05-28  Jackson Harper  <jackson@ximian.com>
1422
1423         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
1424         recieved, we will exit the dnd tracking loop.
1425
1426 2007-05-28  Jackson Harper  <jackson@ximian.com>
1427
1428         * X11Dnd.cs: Keep tracking until the xdnd finished event is
1429         recieved. TODO: I should probably stick a timer on the dropped
1430         event, and finish the drag if the XDND Finished event never shows
1431         (because some apps don't seem to send it).
1432
1433 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
1434
1435         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
1436         #81733.
1437
1438 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1439
1440         * MonthCalendar.cs: Only mark the keypresses we actually handle as
1441           handled.
1442
1443 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1444
1445         * MonthCalendar.cs: Set the size after initializing all the relevant
1446           variables. Fixes #81742.
1447
1448 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1449
1450         * KeyEventArgs.cs: Fix typo.
1451
1452 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
1453
1454         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
1455         to match MS. Fixed MinDate to only accept value less than or equal
1456         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
1457         Removed TODO's that are now verified by unit tests.
1458
1459 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
1460
1461         * TreeNodeCollection.cs: Minor corrections to exceptions to match
1462         MS.
1463
1464 2007-05-25  Jackson Harper  <jackson@ximian.com>
1465
1466         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
1467         it's own message loop.
1468         * XplatUIX11.cs: Remove some of the dnd hooks
1469
1470 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
1471
1472         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
1473         instead of MinimizedWindowSize.
1474
1475 2007-05-25  Jackson Harper  <jackson@ximian.com>
1476
1477         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
1478
1479 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1480
1481         * KeyEventArgs.cs: Added SuppressKeyPress.
1482         * Control.cs: Added support for SuppressKeyPress.
1483
1484 2007-05-24  Andreia Gaita  <avidigal@novell.com>
1485
1486         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
1487         problems with PieChart. suppress_validation should not be a counter,
1488         if there are several BeginInit calls, the first EndInit will 
1489         activate validation. Fix exceptions thrown by set_Value.
1490         * UpDownBase.cs: ValidateText only if it's the user editing it.
1491
1492 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1493
1494         * ListControl.cs: FilterItemOnProperty should return the filtered
1495         item proeprty even if DataSource is null. The same applies for
1496         GetItemText. Fixes #80427.
1497
1498 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
1499
1500         * Control.cs: If a control doesn't have a parent when it's Dock is
1501         set, but it has children, it needs to do a layout.  Fixes some nested
1502         controls issues.  [Fixes bug #81199]
1503
1504 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1505
1506         * ComboBox.cs: If there are few items in the drop down list, make it
1507           the exact size the items need, no bigger. Fixes #81612.
1508
1509 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
1510
1511         * Application.cs: When we have captured the keyboard for a menu,
1512         check for mouse down events in case we need to close the menu.
1513         * Control.cs, Form.cs: Remove mouse down checks for menus.
1514
1515 2007-05-24  Jackson Harper  <jackson@ximian.com>
1516
1517         * TextControl.cs: Handle tabs in non multiline mode a little
1518         differently.
1519
1520 2007-05-24  Jackson Harper  <jackson@ximian.com>
1521
1522         * TextControl.cs: We need to manually break apart tabbed text and
1523         move the tabs, since the system.drawing tabbing mechanism relies
1524         on tab stops.
1525         * TextBoxBase.cs: Move the caret properly when the user enters a
1526         tab.
1527
1528 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
1529
1530         * ContainerControl.cs: Don't check CanSelect before calling
1531         ProcessMnemonic.
1532         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
1533         release a KeyboardActive on click if it's not ours.
1534
1535 2007-05-23  Andreia Gaita  <avidigal@novell.com>
1536
1537         * ColumnHeader.cs: Add TypeConverter
1538
1539 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1540
1541         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
1542
1543 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1544
1545         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
1546
1547 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1548
1549         * LinkLabel.cs: Implement public Padding property.
1550
1551 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1552
1553         * LinkLabel.cs: Implement public FlatStyle.
1554
1555 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
1556
1557         * Control.cs: Apply patch from George to call parent.PerformLayout
1558         when Visible is changed.  [Fixes bugs #81118, 81718]
1559
1560 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1561
1562         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
1563
1564 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1565
1566         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
1567
1568 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
1569
1570         * ContextMenu.cs: Implement Collapse.
1571
1572 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
1573
1574         * ToolBarButton.cs: Implement Name.
1575
1576 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
1577
1578         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
1579         use current_item, it prevents some NRE. Fixes #81675.  
1580
1581 2007-05-22  Andreia Gaita  <avidigal@novell.com>
1582
1583         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
1584         without updating the text.
1585
1586 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
1587
1588         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
1589         without calling DeleteObject.  [Should fix bug #81709]
1590
1591 2007-05-22  Jackson Harper  <jackson@ximian.com>
1592
1593         * RichTextBox.cs: Set the line endings correctly, when flushing
1594         RTF text.
1595
1596 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
1597
1598         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
1599          {Width=0,Height=0}.
1600
1601 2007-05-22  Jackson Harper  <jackson@ximian.com>
1602
1603         * TreeView.cs: Setting top with a null node should set to the very
1604         top.
1605
1606 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1607
1608         * Form.cs: ShowDialog: destroy the handle when message loop is
1609           finished, matches MS behaviour. Refactor parts of WmClose into
1610           RaiseCloseEvents, that only raises events if they haven't already
1611           been raised. Fixes #81688 and #81521.
1612         * Application.cs: Don't call close on the form when exiting a modal
1613           loop, it will raise all the (Form)Closed/Closing events again if
1614           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
1615           which doesn'r raise any events it they have been raised before.
1616
1617 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
1618
1619         * Control.cs: Add OnPrint.
1620         * ToolStrip.cs: Add GetChildAtPoint.
1621         * ToolStripContainer.cs: Add OnRightToLeftChanged.
1622         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
1623
1624 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
1625
1626         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
1627
1628 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1629
1630         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
1631           isn't visible anymore. Fixes #81651.
1632
1633 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1634
1635         * Control.cs: WmShowWindow: Update children's z-order after setting
1636           their parent. SetParent may show the window, thereby corrupting
1637           z-order, since the window will be shown on top.
1638         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
1639           multiple (and redundant) WM_SHOWWINDOW messages.
1640         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
1641           event has already been raised.
1642         * Form.cs: Change is_changing_visible_state to a counter, since
1643           SetVisibleCore can be called recursively. CreateHandle: when
1644           creating mdi children, send (De)Activated events.
1645         * MdiClient.cs: Update use of is_changing_visible_state.
1646         * Application.cs: OnThreadException: Surround exception handling with
1647           try/finally to ensure we always reset the error-handling state
1648           before leaving.
1649
1650 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1651
1652         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
1653           (#81704).
1654
1655 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1656
1657         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
1658         SmallIcon views, now that we have a standarized horizontal spacing.
1659
1660         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
1661         4, just like the other views (Match .Net).
1662
1663 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
1664
1665         * Control.cs: Delay calculating anchor distances until we actually layout.
1666         Always query the WM for the actual size and location it put us at instead of
1667         only when we send negative values.
1668         [Fixes bugs #81694, 81695]
1669
1670 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1671
1672         * Application.cs: Avoid a possible stack overflow when trying to exit
1673           the application.
1674
1675 2007-05-19  Marek Safar  <marek.safar@gmail.com>
1676
1677         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
1678         enum value.
1679
1680 2007-05-19  Andreia Gaita  <avidigal@novell.com>
1681
1682         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
1683         * NumericUpDownAcceleration.cs, 
1684           NumericUpDownAccelerationCollection.cs: Added 2.0
1685           implementation.
1686
1687 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
1688
1689         * RichTextBox.cs: Recalculate the document after the ScrollBars
1690         property is changed. Fixes bug #81681.
1691
1692 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
1693
1694         * DataObject.cs: Implement 2.0 methods.
1695
1696 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1697
1698         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
1699         in the center of the checkbox, not in the left-top corner. 
1700         Fixes #80037.
1701
1702 2007-05-18  Jackson Harper  <jackson@ximian.com>
1703
1704         * RichTextBox.cs: Recalculate the document after the scrollbars
1705         property is changed.
1706         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
1707         81486.
1708
1709 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1710
1711         * CreateParams.cs: Make HasWindowManager marginally faster.
1712         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
1713           into Hwnd so that other drivers can use it as well.
1714         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
1715           the default location from Hwnd. Fixes MDI client windows always
1716           showing up at (0,0) in Windows (Win32 won't set the default
1717           location since the window styles aren't correct).
1718
1719 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
1720
1721         * TreeView.cs: Modified DoubleBuffered to just use the base
1722         implementation.
1723
1724 2007-05-18  Jackson Harper  <jackson@ximian.com>
1725
1726         * TreeView.cs: Set the top node to the last child node when
1727         expanding all
1728         - When we get focus, if there is no selected node, use the top
1729         node.
1730
1731 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
1732
1733         * KeysConverter.cs: Add CanConvertTo.
1734         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
1735         * LinkConverter.cs: Added.
1736
1737 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
1738
1739         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
1740         it prevents error when file dont have write access. Fixes #81669 and #81667.  
1741
1742 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
1743
1744         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
1745         button text. Fixes #79640.  
1746
1747 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
1748
1749         * Control.cs: According to MSDN controls created in the designer theres 
1750         keyboard accelerators visible by default. So included check for design
1751         in ShowKeyboardCuesInternal.  
1752
1753 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
1754
1755         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
1756         text. Fixes #81621.  
1757
1758 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
1759
1760         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
1761         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
1762
1763 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
1764
1765         * Control.cs: Finish implementation of UI State using WmChangeUIState
1766         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
1767         in some controls to check for show_keyboard_cues to draw accell keys "_".  
1768
1769 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1770
1771         * ListBox.cs: When calculating the horizontal scrollbar
1772         in single column mode, don't use values less than 0 for
1773         Maximum. Fixes #81474.
1774
1775 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1776
1777         * ListBox.cs: Throw the some missing exceptions in
1778         ListBox.ObjectCollection methods.
1779
1780 2007-05-17  Jackson Harper  <jackson@ximian.com>
1781
1782         * TextBoxBase.cs: Recalculate the document when the word wrap
1783         value has changed. This fixes 81488.
1784
1785 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
1786
1787         * Clipboard.cs: Implement missing GetText overload.
1788
1789 2007-05-17  Chris Toshok  <toshok@ximian.com>
1790
1791         * Control.cs (CheckDataBindings): remove the binding_context arg
1792         to binding.Check.
1793
1794         * CurrencyManager.cs (OnItemChanged): fix this now that
1795         BindingManagerBase is fixed. also remove the comment telling where
1796         the fix should go.  We set transfering_data to true/false around
1797         the call to PushData to keep UpdateIsBinding from being called.
1798         (ListChangedHandler): remove the extra OnMetaDataChanged call for
1799         PropertyDescriptorAdded in the 1.1 case.  The extra call is
1800         actually generated by System.Data generating 2 metadata changed
1801         events of its own per column add.  The fix should go there.  Add a
1802         comment to that affect in our test's Assert.Ignore.
1803
1804         * BindingManagerBase.cs: Rework PullData and PushData slightly.
1805         we keep a boolean flag (transfering_data) that keeps us from
1806         calling UpdateIsBinding multiple times if we re-enter either of
1807         them.
1808
1809         * ControlBindingsCollection.cs (AddCore): remove the
1810         binding_context arg to binding.Check.
1811
1812         * Binding.cs (IsBinding): don't check if we're binding here, just
1813         return our cached value.  we update it in UpdateIsBinding.
1814         (Check): don't take the binding_context arg, we'll just use our
1815         control's.  Also, for some reason MS doesn't use the data member
1816         field when getting the bindingmanager for this binding.  it just
1817         uses the datasource.  Make this method callable multiple times,
1818         and only do the is_null_desc stuff if manager.Position != -1 (so
1819         we don't get an exception accessing manager.Current).
1820         (UpdateIsBinding): move the code from IsBinding here.
1821         (PositionChangedHandler): call Check here to we can initialize
1822         things that require a non- -1 position.
1823
1824 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
1825
1826         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
1827         control.
1828
1829 2007-05-17  Andreia Gaita  <avidigal@novell.com>
1830
1831         * TabControl.cs: Add 2.0 methods and events, including
1832         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
1833         * TabPage.cs: Add 2.0 methods
1834
1835 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
1836
1837         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
1838         keyboard_cues is properly handled by message method.  
1839
1840 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
1841
1842         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
1843
1844 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
1845
1846         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
1847
1848 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
1849
1850         * Control.cs: 
1851         - WmUpdateUIState added to handle state changes, it make call to
1852         OnChangeUICues event.
1853         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
1854         SystemInformation.
1855
1856 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
1857
1858         * ImageKeyConverter.cs: Added.
1859         * TreeViewImageKeyConverter.cs: Added.
1860
1861 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1862         
1863         * ToolTips.cs: Update Text if SetToolTip is called for a control
1864         already showing the tooltip, as well as restarting its timer; show
1865         tooltip if we are inside the control bounds by the time of calling
1866         SetToolTip. Inside ShowTooltip remove the check to not show the 
1867         tooltip again for the active control (it is allowed by .Net to 
1868         show the tooltip on the same control multiple times).
1869
1870 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1871
1872         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
1873
1874 2007-05-16  Andreia Gaita <avidigal@novell.com> 
1875
1876         * ContainerControl.cs: only process tab key if there are no 
1877         modifier keys present, otherwise the control does the 
1878         tab processing, if it needs to. Fixes #81622
1879         * TabControl.cs: Fixes calculation for which tab to select on
1880         shift+ctrl+tab.
1881
1882 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1883
1884         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
1885
1886 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
1887
1888         * Control.cs: Make IsInputCharInternal to allow controls to
1889         override it and still match MS API.
1890         * TextBoxBase.cs: Override IsInputCharInternal and always
1891         return true.
1892         [Fixes bug #81616]
1893
1894 2007-05-15  Jackson Harper  <jackson@ximian.com>
1895
1896         * TextBox.cs: Disable some of the menu options when using a
1897         readonly textbox.
1898
1899 2007-05-15  Jackson Harper  <jackson@ximian.com>
1900
1901         * TextBox.cs:
1902         * TextBoxBase.cs:
1903         * RichTextBox.cs: Some new 2.0 methods
1904
1905 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
1906
1907         * FileDialog.cs: On 1.0 profile, do not support multidotted 
1908         extensions.
1909
1910 2007-05-14  Jackson Harper  <jackson@ximian.com>
1911
1912         * TextBoxBase.cs: Implement some of the new 2.0 methods.
1913         * RichTextBox.cs: We need to override these methods on 2.0.
1914         * MaskedTextBox.cs: These are implemented now
1915         * TextControl.cs: This was off by one.
1916
1917 2007-05-14  Jackson Harper  <jackson@ximian.com>
1918
1919         * TextControl.cs: Because the line endings are including in the
1920         text, we don't need to add them in anymore.
1921
1922 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1923
1924         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
1925         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
1926
1927 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1928
1929         * ToolBar.cs: Adjust size to default size when button theres no text and
1930         image, it fixes remaining issues from #81524.
1931
1932 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1933
1934         * ToolBar.cs: 
1935         - When not flat call redraw to recalculate sizes on creare handle to match
1936         win32 behavior.
1937         - Revert 77220 because it causes some regressions in toobar
1938         button.
1939
1940 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1941
1942         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
1943           now actually enters a usable state.
1944
1945 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1946
1947         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
1948         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
1949         3 buttons.
1950
1951 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1952
1953         * ToolBar.cs: Save default_size on create handle to use later for buttons
1954         without text, needed to mimic win32 behavior.
1955
1956 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
1957
1958         * ToolBar.cs: Fix button layour to best fit width or height according to
1959         vertical or not. Fixes #81524.
1960
1961 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
1962
1963         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
1964         toolbar size info because different styles theres different sizes.
1965         Fixes #81522.
1966
1967 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1968
1969         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
1970         if we are using checkboxes, checked is true, and we have less
1971         than two images in StateImageList; for the 1.1 in the same scenario
1972         draw the first image if we have at least one image in StateImageList.
1973         Fixes part of #81191.
1974
1975 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
1976
1977         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
1978         the owner's Items collection on merge.
1979
1980 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
1981
1982         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
1983         * ToolStripItemCollection.cs: Lots of fixes to when events get called
1984         and parent/owner gets changed based on gert's unit tests.
1985
1986 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1987
1988         * MaskedTextBox.cs: Started implementing parts of it.
1989
1990 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1991
1992         * ListView.cs: When clicking the checkbox on the items
1993         take into account the double clicks even if we have only
1994         one image in StateImageList (only for 1.0/1.1). Also 
1995         generate an extra change of checked state when we receive
1996         the second click on checkbox (match .Net behaviour). 
1997         Fixes part of #81191.
1998
1999 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
2000
2001         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
2002
2003 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
2004
2005         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
2006         even if OnLoad is overriden and base.OnLoad is not called.
2007         [Fixes bug #81582]
2008
2009 2007-05-10  Andreia Gaita  <avidigal@novell.com>
2010
2011         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
2012         shame. (I blame my ever-persisting and annoying cold)
2013
2014 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
2015
2016         * ListView.cs: Don't eat navigation keys.  Let them flow through to
2017         KeyDown/KeyPress routines.  [Fixes bug #81569]
2018
2019 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
2020
2021         * ListView.cs: When handling keys for selecting the item based off
2022         keyboard input, do not consider keys pressed with Alt or Control.  Also,
2023         correctly handle keys when the Shift key is down. [Fixes bug #81578]
2024
2025 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
2026
2027         * Control.cs: When using UseWaitCursor, we have to store the requested
2028         Cursor to use when UseWaitCursor is turned off.
2029
2030 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
2031
2032         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
2033         to false.
2034         * Application.cs: Use PreProcessControlMessage instead of
2035         PreProcessMessage.
2036         * PreProcessControlMessage.cs: Make internal for 1.1.
2037
2038 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2039
2040         * Control.cs: Add InternalContains focus property, which hast the same
2041         functionality of ContainsFocus, but also including implicit controls.
2042         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
2043         since we need to know if the focus is contained in our implicit
2044         ItemControl when calculating Layout. Fixes part of #80888.
2045
2046 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
2047
2048         * ToolTip.cs: Remove center form string alignment as it must be align to
2049         left.
2050
2051 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
2052
2053         * ToolStripItemCollection.cs: Set the new item's parent and owner
2054         in Insert like we do in Add.  [Fixes bug #81568]
2055
2056 2007-05-08  Jackson Harper  <jackson@ximian.com>
2057
2058         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
2059         - Off by one error in SetTop
2060         - Disable DoubeBuffering
2061         
2062 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2063
2064         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
2065           control as much as necessary in order to make it entirely visible,
2066           instead of centering the control in the container (matches MS
2067           behaviour). CalculateCanvasSize: we need to take the current scroll
2068           position into account when calculating the maximum canvas,
2069           otherwise the following scenario will fail: resize so that the
2070           scrollbars appear, use the scrollbars to scroll, resize again
2071           smaller, and now the canvas size is too small. Recalculate: when
2072           showing scrollbars make sure they start off at 0, and try to scroll
2073           the active control into view. Fixes #79540. HandleScrollBar: don't
2074           scroll anywhere if the scrollbar isn't visible.
2075
2076 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2077
2078         * ListView.cs: When focus changed, call Layout/Invalidate
2079         in the focused item to update the selected state (should show
2080         entire label when ListView is focused, and a part of it if is not).
2081         * ListViewItem.cs: When doing layout for LargeIcon, take into account
2082         for displaying the entire label not only the Focused state of the
2083         item, but also the Focused state of the ListView (match .Net
2084         behaviour).
2085
2086 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2087
2088         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
2089         Implement UseWaitCursor. 
2090
2091 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2092         Applying contributed patch from Sergey Volk.
2093
2094         * Clipboard.cs: Implement SetDataObject retry logic and new overload
2095         of SetDataObject.
2096         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
2097
2098 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2099
2100         * Control.cs: Implement DrawToBitmap.
2101
2102 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2103         Applying contributed patch from Stefan Noack.
2104         
2105         * Control.cs: Add [Get|Set]AutoSizeMode.
2106
2107 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2108
2109         * MdiClient.cs: Unmerge menus when the last child is closed.
2110
2111 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
2112
2113         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
2114         * ToolStripManager.cs: Call Merge on DropDowns.
2115         [Fixes bug #81477]
2116
2117 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2118
2119         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
2120           uints.
2121         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
2122           visibility. We can't create forms visible, since we have to set the
2123           owner before making the form visible (otherwise Win32 will do
2124           strange things with task bar icons). The problem is that we set the
2125           internal is_visible to true before creating the control, so
2126           is_changing_visible_state is the only way of determining if we're
2127           in the process of creating the form due to setting Visible=true -
2128           this works because SetVisibleCore explicitly makes the form
2129           visibile afterwards anyways. Fixes #80775.
2130
2131 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2132
2133         * ThemeWin32Classic.cs: When drawing ListViewItems,
2134         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
2135         or LargeIcon _and_ item is not focused (match .Net behaviour).
2136
2137 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
2138
2139         * Control.cs, Form.cs: Fix some obsolete method warnings.
2140
2141 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
2142
2143         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
2144         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
2145
2146 2007-05-04  Andreia Gaita  <avidigal@novell.com>
2147
2148         * ContainerControl.cs: Fix active_control attribution when going
2149         up the parent chain so that the first parent container gets the control
2150         and the rest of the parent containers get the child containers (skips
2151         non-containers). Fixes #80729
2152
2153 2007-05-04  Randolph Chung  <tausq@debian.org>
2154
2155         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
2156         [Fixes bug #81499]
2157
2158 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2159
2160         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
2161           takes a size parameter, since the CreateParam's size isn't true for
2162           minimized forms. Fixes #81518,
2163
2164 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2165
2166         * Form.cs: Add OnDeactivateInternal.
2167         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
2168
2169 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2170
2171         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
2172           accessing the parent. Fixes #81508.
2173
2174 2007-05-03  Chris Toshok  <toshok@ximian.com>
2175
2176         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
2177         2.0 block, pass listposition + 1 to ChangeRecordState when a row
2178         was added before the current listposition.  Fixes the
2179         TestInsertRowBeforeCurrent unit test.
2180
2181 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
2182
2183         * Application.cs: Add RaiseIdle.
2184         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
2185         XplatUIX11.cs: Implement RaiseIdle.
2186
2187 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
2188         corcompare work: N - Z
2189         * NotifyIcon.cs
2190         * ProgressBar.cs
2191         * RadionButton.cs
2192         * ScrollableControl.cs
2193         * SplitContainer.cs
2194         * SplitterPanel.cs
2195         * StatusBar.cs
2196         * SystemInformation.cs
2197         * TabControl.cs
2198         * TableLayoutControlCollection.cs
2199         * TableLayoutPanel.cs
2200         * TabPage.cs
2201         * ToolBar.cs
2202         * ToolBarButton.cs
2203         * ToolStrip.cs
2204         * ToolStripComboBox.cs
2205         * ToolStripContainer.cs
2206         * ToolStripContentPanel.cs
2207         * ToolStripDropDown.cs
2208         * ToolStripDropDownItem.cs
2209         * ToolStripDropDownMenu.cs
2210         * ToolStripItem.cs
2211         * ToolStripItemCollection.cs
2212         * ToolStripMenuItem.cs
2213         * ToolStripPanel.cs
2214         * ToolStripSplitButton.cs
2215         * ToolTip.cs
2216         * TreeNode.cs
2217         * TreeNodeCollection.cs
2218         * TreeNodeMouseHoverEventArgs.cs
2219         * TreeView.cs
2220
2221 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
2222
2223         * ContextMenu.cs: Add public method Show with alignment property to 2.0
2224         stuff. Thanks aatdark for the patch. 
2225
2226 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
2227
2228         * GridItem.cs: Implement 2.0 Tag property.
2229
2230 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
2231
2232         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
2233         count instead of Nodes.Length.  [Fixes bug #81448]
2234
2235 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
2236
2237         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
2238         [Fixes bug #81506]
2239
2240 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
2241         corcompare work: A - M
2242         * BindingNavigator.cs
2243         * Button.cs
2244         * ButtonBase.cs
2245         * CheckBox.cs
2246         * Control.cs
2247         * FlowLayoutPanel.cs
2248         * Form.cs
2249         * Label.cs
2250         * LinkLabel.cs
2251         * ListView.cs
2252
2253 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
2254
2255         * Application.cs: Give toolstrips a chance to process mnemonics.
2256         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
2257         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
2258         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
2259
2260 2007-05-01  Jackson Harper  <jackson@ximian.com>
2261
2262         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
2263         wider area too.
2264         - Don't set the BoundsSpecified
2265
2266 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
2267
2268         * Application.cs: When using the toolstrip shortcut mechanism, allow the
2269         message to pass through to a regular control if it hosted by a toolstrip.
2270         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
2271         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
2272
2273 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
2274
2275         * TextRenderer.cs: Use the flags argument when using the MeasureString
2276         fallback algorithm.
2277
2278 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
2279
2280         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
2281         the MDI menu item.  [Fixes bug #81483]
2282
2283 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
2284
2285         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
2286         string. When setting Name to null, use zero-length string instead.
2287
2288 2007-04-29  Andreia Gaita  <avidigal@novell.com>
2289
2290         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
2291         DeselectTab). Implement missing 2.0 TabPageCollection methods
2292         (Add, ContainsKey, RemoveByKey, IndexOfKey)
2293
2294 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
2295
2296         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
2297
2298 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
2299
2300         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
2301         Fixes bug #81479. Include details of exception when LoadFile fails.
2302
2303 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
2304
2305         * DrawListViewSubItemEventArgs.cs: Added missing setter
2306
2307 2007-04-27  Andreia Gaita  <avidigal@novell.com>
2308
2309         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
2310         Hide methods (not complete). Implement missing 2.0 OnPopup event.
2311
2312 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2313
2314         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
2315         removed in ly last commit (it was breaking the Label edit feature).
2316
2317         * ThemeWin32Classic.cs: When drawing a ListViewItem use
2318         StringAlignment.Near for LineAlignment (match .Net).
2319
2320 2007-04-27  Andreia Gaita  <avidigal@novell.com>
2321
2322         * TabControl.cs: Change SetTab so it adds the tabpage to the list
2323         of controls if it isn't already there - was blowing up when doing
2324         tabcontrol.TabPages[i]=new TabPage(). 
2325         SetTab now does a replace by removing the page at the index. 
2326         Add a new InsertTab method that inserts a page in a given index 
2327         instead of replacing. 
2328         Implements TabPageCollection.Insert(int, TabPage).
2329
2330 2007-04-27  Chris Toshok  <toshok@ximian.com>
2331
2332         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
2333         internal handler that can be invoked from our subclasses.)  Also,
2334         add a comment to PushData about how we need to fix it.
2335
2336         * CurrencyManager.cs: tons of changes here.  trying to get things
2337         matching the behavior of .net wrt event orders (ItemChanged,
2338         CurrentChanged, PositionChanged.)  I've implemented a private .net
2339         symbol (ChangeRecordState) that appears in stack traces because
2340         it's actually easier to do this than to effective inline all its
2341         various behaviors at every call site.
2342
2343         * RelatedPropertyManager.cs: guard against an exception here by
2344         not using parent.Current if the position is set to -1 (if the
2345         parent datasource is cleared, for instance).
2346
2347         * Binding.cs: don't parse data in PushData (this might be wrong,
2348         but it jives with MS's behavior.)  Also, don't call PushData when
2349         we get a CurrentChanged event.
2350
2351 2007-04-27  Andreia Gaita  <avidigal@novell.com>
2352
2353         * WebBrowser.cs,
2354           WebBrowserBase.cs,
2355           WebBrowserSiteBase.cs,
2356           HtmlDocument.cs: Added stubbed out classes, no real implementations 
2357           yet.
2358
2359 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
2360
2361         * MainMenu.cs: In draw method without parameters call draw method with 
2362         PaintEvent, another one (just rect) adjust rectangle and we dont need it
2363         as Rect property is already adjusted. Fixes #80694.
2364
2365 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
2366
2367         * Application.cs: Need to handle keyboard menu deselection here.
2368         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
2369         navigation, allowing keyboard to work on X11.
2370         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
2371
2372 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
2373
2374         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
2375         menu bar. It fixes some drawing issues in menu bar.
2376
2377 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
2378
2379         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
2380         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
2381         when <alt> key is pressed.
2382
2383 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
2384
2385         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
2386         example just set visible to false and make this prevent from other problems.
2387         In SystrayAdd always remove pending expose. Fixes #81072.
2388
2389 2007-04-26  Marek Safar  <marek.safar@gmail.com>
2390
2391         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
2392         value is set.
2393
2394 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
2395
2396         * ListView.cs: Added three missing 2.0 events and corresponding
2397         EventHandlers. Added the OwnerDraw property.
2398         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
2399
2400 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
2401
2402         * DrawListViewItemEventArgs.cs
2403         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
2404
2405 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
2406
2407         * TextControl.cs: Fixed typo in constructor
2408
2409 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
2410
2411         * Application.cs: Create a shortcut path so that currently selected
2412         MenuStrips can intercept keyboard events without having focus.
2413         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
2414         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
2415         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
2416         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
2417         generate WM_SYSCOMMAND message in X11 for other platforms.
2418         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
2419         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
2420         * ToolStripSplitButton.cs: Add DefaultItem property.
2421         
2422 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
2423
2424         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
2425         fixes some menu draw problem on Windows with border diferent from default
2426         it also fixes #81403.
2427
2428 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2429
2430         * Form.cs: Refactor WndProc into separate methods, just like Control is
2431           doing it.
2432
2433 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2434
2435         * Control.cs: set_Text: move the call to the driver into a seperate
2436           virtual method so that Form can override it.
2437         * MaskedTextBox.cs: Corcompare fixes.
2438         * Form.cs: Override UpdateWindowText and only update the styles if the
2439           form has been shown (fixes #81405).
2440
2441 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
2442
2443         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
2444         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
2445         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
2446         the form lost focus or another control was clicked.
2447
2448 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
2449
2450         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
2451         fixed.
2452
2453 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2454
2455         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
2456           DrawListViewItemEventHandler.cs,
2457           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
2458           Added.
2459         * X11Structs.cs: More ToString implementation.
2460
2461 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
2462
2463         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
2464         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
2465
2466 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2467
2468         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
2469           handle.
2470         * FormCollection.cs: Don't add a form if it's already in the
2471           collection.
2472         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
2473           according to behaviour and MSDN. The ownerWin32 is the active
2474           window at the moment when we call ShowDialog, not the context's
2475           main form (the context's main form may open another form that opens
2476           a form with ShowDialog, the win32 owner is the second form). Add
2477           and remove forms to the Application.OpenForms in other places to
2478           better match MS behaviour. Add an IsActive property that raises
2479           On(de)Activated only if the active state has changed (we were
2480           raising OnDeactivated before OnActivated while creating forms).
2481         * Application.cs: Refactor Enabling/Disabling of windows for modal
2482           dialog loops out to separate methods, and restore the thread
2483           context when we quit the method. Fixes #81407.
2484
2485 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2486
2487         * ListView.cs: In ItemControl.HandleClicks, also fire 
2488         2.0 MouseClick or MouseDoubleClick events on the parent,
2489         not only the Click/DoubleClick events.
2490
2491 2007-04-24  Andreia Gaita  <avidigal@novell.com>
2492
2493         * TableLayoutSettings.cs: 
2494         - Added a GetControls method and a support structure to help the 
2495         TypeConverter to enumerate the controls for     serialization. 
2496         - Added a new serialization constructor. 
2497         - Added a isSerialized flag initialized to true on the 
2498         serialization constructor so that the TableLayoutPanel.LayoutSettings 
2499         setter does not throw the designed NotSupportedOperation exception
2500         when the object is built through deserialization.
2501         - Implemented GetObjectData
2502         
2503         * TableLayoutPanel.cs: Added check on LayoutSettings.
2504
2505 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2506
2507         * ListView.cs: Report Click and DoubleClick events to the parent
2508         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
2509         from breaking the click count state when using dialog forms (Control
2510         reports the clicks in a similar fashion). In the previous behaviour
2511         the last WM_LBUTTONUP message in a  double click was sent to the
2512         ListView's form, instead of the ListView, which was breaking the click
2513         count for it. Fixes #80387.
2514
2515 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
2516
2517         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
2518
2519 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
2520
2521         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
2522         us from created dropdowns for menu items that do not have subitems.
2523         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
2524         Check HasDropDownItems before calling DropDown so a dropdown will not be
2525         created if it isn't needed.
2526
2527 2007-04-24  Jackson Harper  <jackson@ximian.com>
2528
2529         * TreeView.cs: Set the first node to the selected node when we get
2530         focus if there is no selected node.
2531
2532 2007-04-24  Andreia Gaita  <avidigal@novell.com>
2533
2534         * MimeIcon.cs: remove using blocks so that image streams are
2535         not disposed of. Fixes #80151
2536
2537 2007-04-24  Jackson Harper  <jackson@ximian.com>
2538
2539         * TextBoxBase.cs: Fixup the height of textboxes when the control
2540         is created.
2541
2542 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
2543
2544         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
2545         for each ToolStripItem when the parent's RightToLeftChanged is called.
2546
2547 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2548
2549         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
2550           Fixes #80163.
2551         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
2552           property, so that the setter can be overriden too.
2553         * TextBox.cs: Change GetContextMenuInternal() to use
2554           ContextMenuInternal.
2555
2556 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2557
2558         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
2559           #81406.
2560
2561 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2562
2563         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
2564           #81406.
2565
2566 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2567
2568         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
2569           avoid duplicate work. Mostily skeleton code, it's not working at
2570           all yet.
2571
2572 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
2573
2574         * NotifyIcon.cs : stub for MouseClick event
2575         * Application.cs: stub for SetUnhandledExceptionMode
2576
2577 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
2578
2579         * BindingNavigator.cs : Initial (partial) implementation
2580
2581 2007-04-23  Jackson Harper  <jackson@ximian.com>
2582
2583         * TreeView.cs: Do not create the treeview's handle when setting
2584         the scroll position.
2585         - ExpandAll needs to compute the scrollbars so it knows which
2586         position to set the bar too.
2587         * TreeNode.cs: 
2588         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
2589
2590 2007-04-23  Jackson Harper  <jackson@ximian.com>
2591
2592         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
2593         key. Fixes #81408.
2594
2595 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
2596
2597         * ToolStripItem.cs: Make GetImageSize internal.
2598         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
2599         need to draw an item.  Fixes a reported issue where images on menus
2600         that were not 16x16 were drawing incorrectly.
2601
2602 2007-04-21  Miguel de Icaza  <miguel@novell.com>
2603
2604         * Padding.cs: Use the converter, fixes the resgen2 issue with
2605         XMLNotePad. 
2606
2607 2007-04-21  Jackson Harper  <jackson@ximian.com>
2608
2609         * TreeView.cs: Dont try to unhighlight the selected node if there
2610         isn't a selected node.
2611
2612 2007-04-21  Jackson Harper  <jackson@ximian.com>
2613
2614         * UpDownBase.cs:
2615         * TextBoxBase.cs:
2616         * ListView.cs:
2617         * ListBox.cs:
2618         * TreeView.cs: Use the InternalBorderStyle property to set the
2619         initial border style, this forces the client rectangle to be sized
2620         correctly.
2621
2622 2007-04-20  Jackson Harper  <jackson@ximian.com>
2623
2624         * TreeView.cs: Simplify scrolling to the last node after expanding
2625         all.
2626         - Fix some off by ones with setting the bottom.
2627
2628 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
2629
2630         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
2631         that.  We were incorrectly doing it the other way around.  Also,
2632         update ClientSize if we change the BorderStyle before the control
2633         is created.
2634
2635 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
2636
2637         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
2638         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
2639         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
2640         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
2641         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
2642         Caption to CaptionHeight.
2643         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
2644         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
2645         and FixedFrameBorderSize to return value from current XplatUI driver.
2646         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
2647         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
2648         and FixedFrameBorderSize using win32 API. Renamed Caption to
2649         CaptionHeight.
2650         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
2651         * SystemInformation.cs: Fixed typo in BorderSize.
2652
2653 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
2654
2655         * XplatUI.cs: Added MenuAccessKeysUnderlined.
2656         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
2657         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
2658         returning false.
2659         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
2660         value from XplatUI driver.
2661         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
2662         SystemParametersInfo.
2663         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
2664         override.
2665         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
2666         returning false.
2667
2668 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2669
2670         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
2671
2672 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2673
2674         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
2675
2676 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
2677
2678         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
2679         MenuStrips that contain ToolStripSeparators.
2680
2681 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2682
2683         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
2684           DefineStdCursorBitmap.
2685         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
2686           has been created off a standard cursor. This is used to get a
2687           bitmap of the standard cursor when Draw or DrawStretched is called
2688           in order to draw the cursor.
2689         * X11Structs.cs: Added XcursorImage and XcursorImages.
2690         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
2691           DefineStdCursorBitmap.
2692         * Cursors.cs: Update all relevant creations of Cursor to use the new
2693           internal constructor.
2694
2695 2007-04-19  Jackson Harper  <jackson@ximian.com>
2696
2697         * TextBox.cs: Move the has_been_focused into the base control, so
2698         some of the text adding methods can manipulate it (probably time
2699         for a better name for this flag too).
2700         - Call a new version of selectall that doesn't scroll
2701         * TextBoxBase.cs: When we append text, if the document is empty,
2702         don't scroll.  If the document has text already, we scroll to the
2703         end of the appended text.
2704         - When the text is changed, we reset the has_been_focused, so the
2705         next time the control gets focused, all the text is selected.
2706
2707 2007-04-19  Jackson Harper  <jackson@ximian.com>
2708
2709         * TextControl.cs: Move the margins to the document, add a method
2710         so the margin sizes can be updated.
2711         * TextBoxBase.cs: When the border style is changed, update the
2712         border sizes.
2713
2714 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
2715
2716         * Control.cs: Respect DefaultPadding.
2717         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
2718         padding into account.
2719         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
2720
2721 2007-04-19  Jackson Harper  <jackson@ximian.com>
2722
2723         * TextControl.cs: Oops, we need to use the ClientRect not the
2724         bounds here.
2725
2726 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2727
2728         * ListView.cs: In ItemControl.ItemsMouseDown, take into
2729         account the double clicks when CheckBoxes are used and
2730         the pointer is inside the checkbox. Fixes part of #81191.
2731
2732 2007-04-18  Jackson Harper  <jackson@ximian.com>
2733
2734         * TextControl.cs: Pressing the end key shouldn't move the caret
2735         past the line ending.
2736         * TextBoxBase.cs: We can still delete if we are in the line
2737         ending and the combine will just kill the existing line ending.
2738
2739 2007-04-18  Jackson Harper  <jackson@ximian.com>
2740
2741         * TextControl.cs: We can't move lines, then invalidate their
2742         bounds, we need to get the old bounds and combine that with the
2743         new bounds.
2744         * TextBoxBase.cs: Before combining two lines for a delete, we need
2745         to invalidate the area of the old line, since that will be moved
2746         in the combine operation.
2747
2748 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
2749
2750         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
2751         with transparent background. Fixes #80482.
2752
2753 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
2754
2755         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
2756         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
2757         [Fixes bug #81391]
2758
2759 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2760
2761         * CreateParams.cs: Add a couple of helper methods and do a less string
2762           concatenation in ToString.
2763         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
2764           overload that takes a Control parameter, since this method may be
2765           called before a control is assigned to the hwnd (from
2766           CreateWindow), and update CreateWindow to use the new overload. In
2767           GetMenuOrigin subtract the title bar from the y position if the
2768           form has a window manager (since we're painting it and not X).
2769         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
2770           CreateParams to calculate the origin (since border sizes may vary).
2771           In ScreenToMenu only subtract the title height if we actually have
2772           a title.
2773         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
2774           mdi children never have menus of themselves.
2775         * InternalWindowManager.cs: Implement menu handling like form does.
2776           Added GetMenuOrigin to calculate the menu origin, can't use the
2777           CreateParams from the form like normally since it's lying.
2778         * Hwnd.cs: Implement GetBorderSize better (in the sense more
2779           windows-like) and add Inflate and comparison operators to the
2780           Borders type. When calculating MenuOrigin and it's a form with a
2781           window manager, use the window manager to calculate it.
2782
2783 2007-04-17  Chris Toshok  <toshok@ximian.com>
2784
2785         * Control.cs (CreateControl): turns out in 2.0 we don't need this
2786         OnBindingContextChanged thing here.  It's only generated from
2787         ContainerControl.OnCreateControl.  Fixes a newly written unit test
2788         - BindingTest.BindingContextChangedTest4.
2789         
2790 2007-04-17  Jackson Harper  <jackson@ximian.com>
2791
2792         * ScrollBar.cs: When setting values, make sure the current
2793         position stays within the new values range.
2794
2795 2007-04-17  Chris Toshok  <toshok@ximian.com>
2796
2797         * Control.cs (CreateControl): talk about a bizarre corner case.
2798         Don't emit OnBindingContextChanged here if we're a parentless
2799         control (i.e. if we're a form.).  Fixes
2800         BindingTest.BindingContextChangedTest2.
2801
2802 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
2803
2804         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
2805         from win32. Fixes #81255.
2806
2807 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
2808
2809         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
2810         already present in CalculateButtonTextAndImageLayout.
2811
2812 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2813
2814         * XplatUIX11.cs: When setting min/max size for a window we need to
2815           translate the coordinates to x coordinates. Create an overload of
2816           SetWindowMinMax that takes a CreateParams handling this, and change
2817           SetWMStyles to call this function (can't use Control.FromHandle in
2818           the SetWindowMinMax to get the control/CreateParams from the handle
2819           because the handle might not have been assigned to the control
2820           yet). Fixes #81371.
2821
2822 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2823
2824         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
2825         if StateImageList is non-null and it has less than two items (match MS
2826         behaviour). Also, in HandleNavKeys handle the Space key, calling
2827         the new ToggleItemsCheckState method, which tries to change the
2828         checked state of the selected items. Fixes part of #81191.
2829
2830 2007-04-16  Jackson Harper  <jackson@ximian.com>
2831
2832         * RichTextBox.cs: namespace cleanup.
2833
2834 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
2835
2836         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
2837
2838 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
2839
2840         [Fixes #79447]
2841         * Control.cs: Call invalidate in set_Region.
2842
2843         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
2844         it dont works here.
2845
2846 2007-04-16  Jackson Harper  <jackson@ximian.com>
2847
2848         * TextBoxBase.cs: When enter is pressed, we need to update all
2849         lines below the current.
2850
2851 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
2852
2853         * MdiClient.cs: Implement implicit menu merging for MDI
2854         children.  When a child form is active, if it has a menustrip
2855         and the parent form has a MainMenuStrip, automatically merge
2856         the menus.
2857
2858 2007-04-15  Andreia Gaita  <avidigal@novell.com>
2859
2860         * TabControl.cs: Refactored sizing methods to not repeat
2861         code all over the place. Tab bounds are now calculated
2862         as if alignment is top and single line, and only when 
2863         setting the bounds are the positions adjusted according
2864         to alignment. Replaced hardcoded positions, spacings and
2865         paddings by getting the values the ThemeEngine. 
2866         Fixes #79619.
2867         
2868         * Theme.cs: Change TabControl properties and methods so
2869         that all start with TabControl*. Added more properties
2870         to help remove hardcoded values on tabcontrol.
2871         Add CPDrawBorder3D declaration so the Theming classes
2872         can access it.
2873         
2874         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
2875
2876         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
2877         on the Theming namespace, and call the appropriate methods here.
2878         Change CPDrawBorder3D to public.
2879
2880 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2881
2882         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
2883         the control after firing the OnMouseUp event, instead of sending
2884         the message before the mentioned event. This is so we can match the
2885         MS behaviour. Fixes part of #80385.
2886
2887 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
2888
2889         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
2890         RightToLeft property.
2891
2892 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
2893
2894         * ToolStrip.cs: Add properties and internal methods to support merging.
2895         * ToolStripItem.cs: Add MergeAction and MergeIndex.
2896         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
2897         not trigger reparenting or layouts.
2898         * ToolStripManager.cs: Add Merge and RevertMerge methods.
2899         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
2900         is hosting the overflow menu.
2901
2902 2007-04-13  Jackson Harper  <jackson@ximian.com>
2903
2904         * TextControl.cs: Set the line ending correctly for the first
2905         inserted line.
2906
2907 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
2908
2909         * Theme.cs: Update GetMethod to get the new definition for 
2910         KnownColors.Update (and fix theme color updates).
2911
2912 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
2913
2914         * MessageBox.cs: Fix some test and button position.
2915
2916 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2917
2918         * Form.cs: Consider the implicit controls in
2919         GetRealChildAtPoint. We need it since this method
2920         is called on Form when handling the some messages in
2921         WndProc, and need to consider those implicit ones too.
2922         Fixes #80385.
2923
2924 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
2925
2926         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
2927         if there are no ShortcutKeys set.
2928         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
2929         set, use it when painting.
2930
2931 2007-04-12  Jackson Harper  <jackson@ximian.com>
2932
2933         * TextControl.cs: Fix some off-by-one issues in line duplication
2934         and insertion in the undo manager. Also, overwrite the first tag
2935         of a line on insert, if it is just a zero lengthed tag. This
2936         prevents us from getting an extra stranded tag at the beginning of
2937         the first line.
2938
2939 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
2940
2941         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
2942         to calculated proper size including when handle was not created yet.
2943
2944 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2945
2946         * MdiWindowManager.cs: When moving a form, allow the form to be moved
2947           when the mouse is outside of it's parent's client rectangle. Fixes
2948           #79982 (take 3, part 2).
2949
2950 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2951
2952         * X11Structs.cs: Add a few ToString() overrides.
2953         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
2954           the window location in a window-manager independent way. Reworked
2955           FrameExtents, it now actually works. Reworked AddConfigureNotify
2956           and ReparentNotify handling to use GetTopLevelWindowLocation
2957           instead of the earlier, more hacky solution. Reworked SetWMStyles,
2958           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
2959           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
2960           for all other windows (fixes #81281 part 1), a toolwindow is hidden
2961           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
2962           and generally refactored to do as few calculations as possible
2963           inside the lock.
2964
2965 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
2966
2967         * Theme.cs: Change "reflective-contract" between MWF and SD to 
2968         minimize # of calls, avoid Color serialization and avoid updating 
2969         every "known colors" each time a single one is updated.
2970
2971 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
2972
2973         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
2974         when not readonly and the text is explicitly set. Code style updates.
2975         * DataGridTableStyle.cs: Removed extra line.
2976         * DataGrid.cs: Code style updates. Removed extra whitespace.
2977         * DataGridColumnStyle.cs: Code style updates. Removed extra 
2978         whitespace.
2979
2980 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2981
2982         * XplatUIX11.cs: Added comment that "fixes" #80021.
2983
2984 2007-04-09  Jackson Harper  <jackson@ximian.com>
2985
2986         * TextControl.cs: We don't need this -1 on the line count anymore.
2987
2988 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
2989
2990         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
2991         entered value to underlying type, and convert it back to a string to
2992         apply formatting. Modified GetFormattedValue to use TypeConverter
2993         if available.
2994
2995 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
2996
2997         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
2998         Use SubItems property when we want to ensure there's at least one
2999         subitem. Modified SubItems property to ensure there's always at least
3000         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
3001         the NRE's reported by MS.
3002
3003 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
3004
3005         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
3006         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
3007         Spaces to tabs. Removed extra tabs.
3008
3009 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
3010
3011         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
3012         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
3013
3014 2007-04-06  Jackson Harper  <jackson@ximian.com>
3015
3016         * TextBoxBase.cs: When a delete removes a line, recalculate all
3017         lines below that line (they need to get offsets setup correctly)
3018         and invalidate.
3019
3020 2007-04-05  Jackson Harper  <jackson@ximian.com>
3021
3022         * TextControl.cs: We need to invalidate across the width of the
3023         document when we are invalidating multiple lines.
3024         * TextBoxBase.cs: Don't delete into the line ending.
3025
3026 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3027
3028         * ListView.cs: Restore the check for the MouseHover event
3029         in ListView. It looks like the ListView fires more than one MouseHover
3030         event when HoverSelection is true  _only_ in weird-corner scenarios, but
3031         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
3032         event.
3033
3034 2007-04-05  Mike Kestner  <mkestner@novell.com>
3035
3036         * ListView.cs : raise MouseDown before updating selection.
3037         [Fixes #80373 tab 1&3]
3038
3039 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
3040
3041         * ToolStripRenderer.cs: Add static method to mirror image.
3042         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
3043         and RightToLeftAutoMirrorImage.
3044         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
3045
3046 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
3047
3048         * ToolStripSplitStackLayout.cs: Support Alignment property.
3049         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
3050
3051 2007-04-05  Jackson Harper  <jackson@ximian.com>
3052
3053         * TextControl.cs: Move around the line endings when crossing line
3054         boundaries.
3055         - When combining lines, strip the ending text off the first line.
3056
3057 2007-04-05  Jackson Harper  <jackson@ximian.com>
3058
3059         * TextControl.cs:
3060         * TextBoxBase.cs: Try to never move the cursor into the line
3061         ending.
3062         
3063 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
3064
3065         * ToolStripItem.cs: Make sure we aren't firing mouse events when
3066         the item is disabled.  Also add a few missing methods.
3067
3068 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3069
3070         * ListView.cs: We don't need the MouseEnter/MouseLeave check
3071         to fire just one MouseHover event when HoverSelection is true, since
3072         .Net does fire more than one MouseHover event in that scenario. Also,
3073         fix the selection in HoverSelection, by invoking UpdateMultiSelect
3074         if MultiSelect is true, instead of only setting ListViewItem.Selected.
3075         Finally, we need to reset the Hover logic in MouseMove, even when we
3076         don't have a selected item.
3077
3078 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
3079
3080         * ToolStrip.cs: Add several missing methods, properties, and events.
3081
3082 2007-04-04  Chris Toshok  <toshok@ximian.com>
3083
3084         * DataGridTextBoxColumn.cs: set the bounds of the text box to
3085         (0,0,0,0) in Commit, as MS does.
3086
3087         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
3088         make sure we set CurrentRow on a row header click *before* calling
3089         Select.  This moves the current cell (and the textbox) to the new
3090         row.  The call to Select then hides the textbox, giving us the
3091         correct behavior.  Fixes #80362.
3092
3093         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
3094         (ListChangedHandler): reorder the position/current changed events,
3095         and call UpdateIsBinding in the ItemAdded case.
3096
3097         * GridColumnStylesCollection.cs: add some columns events, one of
3098         which raises the CollectionChanged event.
3099
3100 2007-04-04  Jackson Harper  <jackson@ximian.com>
3101
3102         * TextControl.cs: When we delete multiple selection lines
3103         invalidate the selection area, don't need to do that for single
3104         lines because the final update view will handle it.
3105
3106 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
3107
3108         * Control.cs: When we CreateControl, we need to also create all of the
3109         control's children.  The child's OnLoad must also fire before the parent's
3110         OnLoad.  Fixes the toolbox size in PDN.
3111
3112 2007-04-04  Jackson Harper  <jackson@ximian.com>
3113
3114         * TextBoxBase.cs: When the user presses enter, insert a line
3115         ending into the text. (Maybe this would be a good spot for
3116         Environment.NewLine).
3117         * TextControl.cs: Remove undo manager hack, line endings get
3118         inserted properly now.
3119         
3120 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
3121
3122         * MenuAPI.cs: 
3123         - Remove unneeded parameters in UpdateCursor.
3124         - Fix UpdateCursor to check if menu is active.
3125         - Call UpdateCursor when menu deactivate my click.
3126         [Fixes remaining issues from #80410]
3127
3128 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
3129
3130         * Control.cs: GetRealChildAtPoint method added, it make an
3131         recursive child control search for the point. 
3132
3133         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
3134         menu.
3135
3136         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
3137
3138 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
3139
3140         * Form.cs: Fix mouse position when send back mouse event after closes
3141         menu.
3142
3143 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
3144
3145         * Form.cs: Simplify the BUTTONDOWN for active tracker.
3146
3147 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
3148
3149         * Control.cs: Fix an issue where if a user resized a control inside
3150         a sizing method like OnResize, we would overwrite their explicit
3151         value.  Also, only call DefaultSize once in the constructor instead
3152         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
3153         nothing actually changed.
3154
3155 2007-04-03  Jackson Harper  <jackson@ximian.com>
3156
3157         * TextControl.cs: Don't attempt to copy text for lines with no
3158         text in them (technically this shouldn't happen, but we aren't
3159         always inserting line endings when we should be).
3160
3161 2007-04-03  Jackson Harper  <jackson@ximian.com>
3162
3163         * TextBoxBase.cs: Calculate the scrollbars before calculating the
3164         document, because this sets some of the document size properties
3165         that are needed.
3166
3167 2007-04-03  Jackson Harper  <jackson@ximian.com>
3168
3169         * TextBoxBase.cs: We need to calculate maximums even if this is
3170         not a multiline control, because the maxs are used for scrolling.
3171         - Display the caret after doing a page up/down, we need to
3172         manually display it because a proper CaretMoved event isn't
3173         triggered (this is because of the way the math is done to
3174         determine how far to scroll).
3175
3176 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
3177
3178         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
3179         (ToolBar was relying on SetBoundsCore to default the values sent 
3180         base off of BoundsSpecified.)
3181
3182 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3183
3184         * DateTimePicker.cs: Change Text so that when a null value or empty
3185           string is assigned to the test we always raise ValueChanged and
3186           TextChanged (earlier implementation would only raise ValueChanged
3187           if the current date value was different from DateTime.Now).
3188
3189 2007-04-03  Andreia Gaita <avidigal@novell.com> 
3190
3191         * ButtonBase: Call update after invalidation, fixes #80194
3192
3193 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3194
3195         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
3196           #79335.
3197
3198 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3199
3200         * XplatUIX11.cs: SetWMStyles: If the control is a form with
3201           FormBorderStyle = None, don't give the window any decorations.
3202           Fixes #81276.
3203
3204 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3205
3206         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
3207         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
3208           to check for is a mix of several styles (such as WS_CAPTION for
3209           instance).
3210         * Control.cs: Don't paint an area bigger than the client area when
3211           painting the background colour. Add an internal GetCreateParams.
3212           Update calls to XplatUI.CalculateWindowRect due to API change.
3213         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
3214           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
3215           the size if it hasn't been handled by any windows. When creating
3216           and moving windows, X wants the location of the entire window, but
3217           the size of the client window, so add
3218           TranslateClientRectangleToXClientRectangle,
3219           TranslateWindowSizeToXWindowSIze and
3220           TranslatedXWindowSizeToWindowSize to cope with this, and call them
3221           before every window creation and move. Update CalculateWIndowRect
3222           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
3223           In AddConfigureNotify don't do anything if the hwnd is a zombie
3224           (fixes the BadWindow we were getting while running the tests),
3225           always calculate the offsets when it's a parentless window, not
3226           only when reparented, and translate the window size, since we're
3227           getting the client size of the whole window, excluding entire
3228           window.
3229         * Theme.cs: Added BorderSizableSize.
3230         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
3231           anymore. Update calls to XplatUI.CalculateWindowRect due to API
3232           chang
3233         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
3234           change. Fake the window styles here instead of in XplatUIWin32 so
3235           that all back-ends get the same window styles (and it's Form that's
3236           deciding when to use wm, not the Win32 backend anyways)
3237         * Hwnd.cs: Completely reworked GetWindowRectangle and
3238           GetClientRectangle - they are now passed a CreateParams and they
3239           only use Style and ExStyle to determine the rectangles (they should
3240           now work just like Win32AdjustWindowRectEx - though quite a few
3241           special cases are probably missing). They should also be 100%
3242           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
3243           == rect), and all numbers (borders, menu sizes) are taken from the
3244           current theme. Added a GetBorders helper function that will return
3245           the borders for any given CreateParams (including captions and
3246           menus), and GetBorderSize that returns the given border size only.
3247         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
3248           Hwnd.GetClientRectangle.
3249
3250 2007-04-02  Chris Toshok  <toshok@ximian.com>
3251
3252         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
3253         logic between the values we present to the user and the values
3254         which are stored in the column's property.  Also, don't call
3255         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
3256
3257 2007-04-02  Jackson Harper  <jackson@ximian.com>
3258
3259         * TextBoxBase.cs: Scroll faster!
3260
3261 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
3262
3263         * StatusStrip.cs: Layout fixes for PDN.
3264         * ToolStrip.cs: Set item's available to true, and placement to main when
3265         added.
3266         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
3267         changing in setter before doing any work, add InternalVisible.
3268         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
3269         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
3270         infinite loop.
3271
3272 2007-04-02  Jackson Harper  <jackson@ximian.com>
3273
3274         * TextBox.cs: LBUTTON does not make the textbox select all of it's
3275         text on focus.
3276
3277 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3278
3279         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
3280           Makes ToolStripComboBoxes show up again.
3281
3282 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3283
3284         * ListView.cs: Add a hover_pending field in ListView
3285         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
3286         cycle (we are resetting the MouseHover logic in XplatUI
3287         to handle HoverSelection). Fixes #80429.
3288
3289 2007-04-02  Jackson Harper  <jackson@ximian.com>
3290
3291         * TextControl.cs: Make sure the attributes get set on the last
3292         tag.
3293         - Still have to do the end tag if we have stepped all the ways to
3294         the end.
3295
3296 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
3297
3298         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
3299         on an internal libgdiplus call when the information is already 
3300         available via the public API.
3301
3302 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3303
3304         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
3305           control is removed from a control collecftion.
3306         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
3307           Fixes FormPropertyTest (failed on rare occasions).
3308         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
3309           of Win32SetParent (when changing from no parent to a parent it
3310           might add the new parent's location in screen coordinates to this
3311           window's location).
3312         * Form.cs: Rework ChangingParent once again, now the handle is
3313           recreated whenever a FormWindowManager is added or removed (that is
3314           whenever a normal form is parented or abandoned). Also change
3315           CreateParams so that all non-toplevel windows always get the
3316           specified sice (StartupPosition is never considered for
3317           non-TopLevel forms).
3318         * ContainerControl.cs: Add ChildControlRemoved, the container control
3319           needs to be notified when a control is removed from it's
3320           collection, in the case the removed control is the active control.
3321
3322 2007-04-02  Jackson Harper  <jackson@ximian.com>
3323
3324         * RichTextBox.cs: Use the new methods for setting the font and
3325         color, these methods set the specified attribute without
3326         overriding the other attributes.
3327
3328 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
3329
3330         * ToolStripPanel.cs: Fixes for better layouts in PDN.
3331
3332 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
3333
3334         * TextBox.cs: Added internal ChangeBackColor method to special-case
3335         Color.Empty. Added check for invalid ScrollBars value.
3336         * TextBoxBase.cs: Added internal ChangeBackColor method.
3337         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
3338         internal ChangeBackColor method to special-case Color.Empty. Added
3339         check for invalid ScrollBars value.
3340
3341 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
3342
3343         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
3344
3345 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
3346
3347         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
3348         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
3349         [Based on submitted patch from Olivier Duff.]
3350
3351 2007-03-30  Jackson Harper  <jackson@ximian.com>
3352
3353         * TextBox.cs: Only select all on initial focus if the user has not
3354         specified a selection area.
3355
3356 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
3357
3358         * UserControl.cs: Override CreateParams.
3359
3360 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3361
3362         [ Fixes #80995 ]
3363
3364         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
3365         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
3366           check for is a mix of several styles (such as WS_CAPTION for instance).
3367         * Control.cs: Don't paint an area bigger than the client area when painting
3368           the background colour. Add an internal GetCreateParams. Update calls to
3369           XplatUI.CalculateWindowRect due to API change.
3370         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
3371           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
3372           hasn't been handled by any windows. When creating and moving windows, X
3373           wants the location of the entire window, but the size of the client
3374           window, so add TranslateClientRectangleToXClientRectangle,
3375           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
3376           to cope with this, and call them before every window creation and move.
3377           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
3378           removing DeriveStyles). In AddConfigureNotify don't do anything if the
3379           hwnd is a zombie (fixes the BadWindow we were getting while running the
3380           tests), always calculate the offsets when it's a parentless window, not
3381           only when reparented, and translate the window size, since we're getting
3382           the client size of the whole window, excluding entire window.
3383         * Theme.cs: Added BorderSizableSize.
3384         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
3385           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
3386         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
3387           Fake the window styles here instead of in XplatUIWin32 so that all
3388           back-ends get the same window styles (and it's Form that's deciding when
3389           to use wm, not the Win32 backend anyways)
3390         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
3391           they are now passed a CreateParams and they only use Style and ExStyle
3392           to determine the rectangles (they should now work just like
3393           Win32AdjustWindowRectEx - though quite a few special cases are probably
3394           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
3395           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
3396           sizes) are taken from the current theme. Added a GetBorders helper
3397           function that will return the borders for any given CreateParams
3398           (including captions and menus), and GetBorderSize that returns the given
3399           border size only.
3400         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
3401           Hwnd.GetClientRectangle.
3402
3403 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3404
3405         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
3406           layout of the mdi children is handled by CreateParams. Fixes
3407           #79964,
3408
3409 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
3410
3411         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
3412         processed.
3413
3414         * Form.cs: When active tracker mouse down is not processed, send event 
3415         back to control inside mouse position. [Fixes #81227]
3416
3417 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
3418
3419         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
3420         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
3421         stealing focus from the active form on Windows.  (Control will be made
3422         visible in ShowWindow.)
3423
3424 2007-03-29  Mike Kestner  <mkestner@novell.com>
3425
3426         * ImageList.cs : add internal Changed event.
3427         * ListView.cs : hook up to StateImageList.Changed to perform
3428         invalidations when the the state icon list changes. [Fixes #81191]
3429
3430 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
3431
3432         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
3433         to prevent tooltips from stealing focus from the active form on Windows.
3434
3435 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
3436
3437         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
3438
3439         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
3440
3441 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
3442
3443         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
3444         balloons.
3445
3446 2007-03-29  Jackson Harper  <jackson@ximian.com>
3447
3448         * TextControl.cs: When deleting text from non multiline textboxes,
3449         we need to update the entire document, because line offsets will
3450         be shifting.
3451
3452 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
3453
3454         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
3455         added to theme, now we can create themes that uses diferent notify engines
3456         like notification-daemon from galago project or growl for Mac OS.
3457
3458 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
3459
3460         * NotifyIcon.cs: Prevent Balloon to show in task bar.
3461
3462 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
3463
3464         * XplatUIX11.cs: Prevent system to open more than one balloon.
3465
3466         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
3467         some compiler warning messages.
3468
3469 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
3470
3471         [Fixes #79149]
3472
3473         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
3474
3475         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
3476         implemented, this methods is used by NotifyIcon.BalloonWindow class.
3477
3478         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
3479         systems.
3480
3481 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3482
3483         * ListViewItem.cs: Forgot to make Invalidate internal.
3484
3485 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3486
3487         * ListView.cs: Add a InvalidateSelection method to
3488         invalidate methods which are currently selected, and call
3489         it when setting FullRowSelect and HideSelection, instead of
3490         calling Redraw.
3491
3492 2007-03-28  Chris Toshok  <toshok@ximian.com>
3493
3494         * XplatUIX11.cs (UnmapWindow): reindent this block.
3495
3496         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
3497         the selection_start if we're moving the selection (that is, not
3498         extending it). Fixes bug #80461.
3499
3500 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
3501
3502         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
3503         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
3504         create private ControlCollection.
3505
3506 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
3507
3508         * Control.cs: We need to call OnVisibleChanged for our implicit
3509         children as well as our normal children.  Fixes scrollbars in
3510         comboboxes not showing up.
3511
3512 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
3513
3514         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
3515         the check for IsHandleCreated first.  The check in CreateHandle is not
3516         good enough because CreateHandle can be overriden, and the override 
3517         should not be called if the handle is already created.
3518
3519 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
3520
3521         * ToolStrip.cs: Remove MonoTODO for tooltips.
3522         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
3523         * ToolStripContainer.cs: Add custom ControlCollection class.
3524         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
3525         * ToolStripDropDown.cs: Add some missing properties/methods.
3526         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
3527         * ToolStripItem.cs: Remove MonoTODO for tooltips.
3528         * ToolStripManager.cs: Add IsShortcutDefined.
3529         * ToolStripOverflow.cs: Override LayoutEngine.
3530         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
3531         * ToolStripSeparator.cs: Add ImageKey.
3532
3533 2007-03-28  Jackson Harper  <jackson@ximian.com>
3534
3535         * TextControl.cs: If a char delete removes a line ending, we need
3536         to update the ending style.
3537         - Make sure the line ending calcs get called.
3538
3539 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3540
3541         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
3542           it was making the new code not work. Fixed a typo in the new code
3543           as well. Fixes #79826.
3544
3545 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
3546
3547         * XplatUIWin32.cs:
3548         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
3549         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
3550         - SystrayBalloon method implemented.
3551         [Add support for notifyicon balloon on win32, #79149]
3552
3553 2007-03-27  Mike Kestner  <mkestner@novell.com>
3554
3555         * ThemeWin32Classic.cs : update StateImageList selection to mirror
3556         the ms behavior when only one image is added to the list.
3557         [Fixes #81191]
3558
3559 2007-03-27  Jackson Harper  <jackson@ximian.com>
3560
3561         * TextControl.cs: Improvements to non multiline line ending
3562         drawing/measuing.
3563
3564 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
3565
3566         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
3567
3568 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
3569
3570         * NotifyIcon.cs: 
3571         - Balloon message handling added.
3572         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
3573
3574         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3575         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
3576         to SystrayBalloon to me like other Systray method, also a
3577         handle parameter added.
3578
3579 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3580
3581         * ListView.cs: Show scrollbars even when items.Count == 0
3582         but the columns Width is bigger than the ListView.Width.
3583         Also, when columns.Count == 0 set layout_wd and layout_ht
3584         to the ClientRectangle values, so we don't show any scrollbar
3585         in that case.
3586
3587 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
3588
3589         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
3590
3591 2007-03-27  Jackson Harper  <jackson@ximian.com>
3592
3593         * RichTextBox.cs: The RTF library decodes the text properly for us
3594         now.
3595
3596 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3597
3598         * ListView.cs: Display HeaderControl even when columns.Count == 0.
3599         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
3600         ListView header (HeaderControl), instead of Control.BackColor.
3601
3602 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
3603
3604         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
3605         Fixes tab control issues where controls would not show up because they
3606         never received their OnVisibleChanged call.
3607
3608 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
3609
3610         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
3611         BalloonTipShown).
3612
3613 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
3614
3615         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
3616         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
3617         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
3618         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
3619         the handle.  Fix WindowState by using the internal variable until we are 
3620         sure that we've been shown.
3621         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
3622         max or min.
3623         [Fixes bug #81198]
3624
3625 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3626
3627         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
3628           (at least borders). Fixes #79386 on Linux (with a small difference
3629           in behaviour: when trying to resize a caption-less window metacity
3630           shows the sysmenu. Resizing is still possible though).
3631         * XplatUIWin32.cs: When setting window styles send request an extra
3632           WM_NCCALCSIZE when it's a form without title (due to no text and no
3633           caption), since Win32 seems to calculate it wrong the first time we
3634           get the message, though the second time things work as they should.
3635         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
3636           newly reparented window might show up unparented. Update
3637           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
3638           there's no title text. Fixes #79386.
3639
3640 2007-03-27  Mike Kestner  <mkestner@novell.com>
3641
3642         * ListBox.cs : don't perform invalidations if the handle hasn't been
3643         created.  [Fixes #80753]
3644
3645 2007-03-27  Mike Kestner  <mkestner@novell.com>
3646
3647         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
3648         [Fixes #80428]
3649
3650 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
3651
3652         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
3653         needed to implement Balloon.
3654
3655 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3656
3657         * ListViewItem.cs: In the constructors that take
3658         an array of strings, don't use ListViewSubItemCollection.AddRange
3659         method to add items, since we need to have a different behaviour (in
3660         the constructors we add an item for each null string, opposed to
3661         the behaviour of AddRange, which adds nothing).
3662
3663 2007-03-26  Andreia Gaita  <avidigal@novell.com>
3664
3665         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
3666
3667 2007-03-26  Jackson Harper  <jackson@ximian.com>
3668
3669         * TextControl.cs: Draw and measure line endings when in non
3670         multiline mode.
3671         - When searching the text, count the end of the last line as a
3672         word boundary.
3673
3674 2007-03-26  Jackson Harper  <jackson@ximian.com>
3675
3676         * RichTextBox.cs: The selection_start and selection_end don't
3677         really track the correct tags for the selection. So we'll manually
3678         compute the correct tag here.
3679
3680 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3681
3682         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
3683           and Continuous styles. Fixes #79469.
3684
3685 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
3686
3687         * ToolStrip.cs: Implement Tooltips.
3688         * ToolStripItem.cs: Create internal method for determining tooltip.
3689
3690 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
3691
3692         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
3693
3694 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
3695
3696         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
3697         it prevents a problem thak keeps icon visible after application 
3698         closes on win32.
3699
3700 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
3701
3702         * NotifyIcon.cs: Balloon properties and methods created.
3703
3704         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
3705         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
3706
3707 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
3708
3709         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
3710
3711 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
3712
3713         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
3714         parameter indicates which aspects were explicit/user-set.
3715         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
3716
3717 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
3718
3719         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
3720         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
3721         SmallChange, and Value (2.0).
3722         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
3723
3724 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3725
3726         * ListView.cs: Always set item_control.Width in LayoutDetails
3727         if View is Details. Setting it later in CalculateScrollBars
3728         in a not-so-corner scenario (the sum of columns width is
3729         not bigger than the ListView width when handle is created, and then
3730         that sum gets bigger by increasing the width of the columns)
3731         causes a very weird recursion path (which shouldn't be happening,
3732         since header_control sets it in CalculateScrollBars too). This bug
3733         appeared after Chris' fixes for handle created issues, so probably
3734         it's related to some handle-creation time.
3735
3736 2007-03-23  Chris Toshok  <toshok@ximian.com>
3737
3738         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
3739         case where there's an add row, just so we don't end up in a case
3740         where it's not displayed (this happens when the row is partially
3741         obscured).  Fixes bug #79574.
3742
3743 2007-03-23  Jackson Harper  <jackson@ximian.com>
3744
3745         * TextControl.cs:
3746         * TextBoxBase.cs:
3747         * RichTextBox.cs: Preserve line endings in the lines text buffer,
3748         also added an enum that represents the line ending type. 
3749
3750 2007-03-23  Andreia Gaita  <avidigal@novell.com>
3751
3752         * NumericUpDown.cs: Fix logic so Text and Value properties are not
3753         messed with in every method call, but only from DownButton, 
3754         UpButton, UpdateEditText() and ValidateText. Fixes #80346
3755
3756 2007-03-23  Chris Toshok  <toshok@ximian.com>
3757
3758         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
3759         format objects if the format spec is "".  Fixes bug #80889.
3760
3761 2007-03-22  Miguel de Icaza  <miguel@novell.com>
3762
3763         * ToolStripPanel.cs (Join): added stubs to build PDN3
3764
3765         * Control.cs (AutoScrollOffset): Add.
3766
3767         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
3768         property, its only implemented for Win32, on X11 it defaults to
3769         some hardcoded value.
3770
3771         * ToolStripItem.cs (AllowDrop): Add property
3772
3773 2007-03-22  Mike Kestner  <mkestner@novell.com>
3774
3775         * ListView.cs : in FullRowSelect Details mode, only enable box
3776         selection if the user clicks over the "item" column outside of the
3777         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
3778
3779 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3780
3781         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
3782           handle is not created yet.
3783         * Form.cs: Select: Don't call CreateHandle if the handle is already
3784           created, avoids a stack overflow on Windows when we are recreating
3785           controls.
3786         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
3787           they are made visible, and override AfterTopMostControl to keep
3788           them on top when other controls are brought to front.
3789           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
3790           or force_*scroll_visible is true (old implementation always shows
3791           scrollbars when needed, no matter what auto_scroll was set to).
3792         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
3793           IsHandleCreated check.
3794
3795 2007-03-22  Andreia Gaita  <avidigal@novell.com>
3796
3797         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
3798         row or col separator.
3799         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
3800
3801 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
3802
3803         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
3804
3805 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
3806
3807         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
3808         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
3809         every time. Fixes #80410.
3810
3811 2007-03-22  Chris Toshok  <toshok@ximian.com>
3812
3813         * BindingSource.cs (AddNew): partially implement.
3814
3815         remove a couple of NotImplementedException's
3816         to get bug #81148 closed.
3817
3818 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
3819
3820         [Fixes #80380]
3821         
3822         * Control.cs:
3823         - UpdateCursor method added to update the screen cursor.
3824         - GetAvailableCursor method added to return cursor for enabled tree,
3825         it searches for cursor on control and it's parent's for enabled control.
3826         - Call UpdateCursor method on setter of Cursor property.
3827         - On setter of Enabled call UpdateCursor when it is false, we need to
3828         change cursor to normal (or to this parent cursor) because cursor 
3829         setting theres no effect to disabled controls.
3830         - Some minor source changes to follow the coding style guidelines.
3831
3832         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
3833         controls.
3834
3835 2007-03-22  Chris Toshok  <toshok@ximian.com>
3836
3837         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
3838         generates.
3839
3840 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3841
3842         * XplatUIX11.cs: Implement default locations for forms.
3843         * Form.cs: Completely rework startup location for forms. Fixes #79964.
3844         * Hwnd.cs: Add previous_child_startup_location (to track the current
3845           startup location for any child forms of the current form) and
3846           previous_main_startup_location (to track the startup location for
3847           the current toplevel form).
3848
3849 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
3850
3851         * Control.cs: Don't trigger a layout if an implicit control is added
3852         that isn't visible.  Also, don't notify the owner when an implicit control
3853         is added.  (Owners shouldn't even know about their implicit controls.)
3854
3855 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
3856
3857         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
3858         to save some re-layouts.
3859
3860 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
3861
3862         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
3863         [Fixes #81203]
3864
3865 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
3866
3867         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
3868         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
3869
3870 2007-03-21  Mike Kestner  <mkestner@novell.com>
3871
3872         * ListView.cs : disable selection update for non-left button clicks
3873         with mods and over selected items.  [Fixes #80524]
3874
3875 2007-03-20  Jackson Harper  <jackson@ximian.com>
3876
3877         * TextControl.cs:
3878         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
3879         \r\r\n, \n.
3880
3881 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3882
3883         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
3884           very probably a more complicated calculation there. Update the
3885           textbox' ForeColor and BackColor when the ComboBox' colors are
3886           changed. Change the border change in LayoutComboBox to only affect
3887           the textbox, not all the calculations there. Seems to fix most of
3888           #79436.
3889
3890 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3891
3892         * ComboBox.cs: Handle Home and End keys as well as all combinations of
3893           modifiers + navigation keys as input keys, enables advanced text
3894           selection in the combobox (like Shift+Left Arrow for instance).
3895           ComboTextBox now overrides Focused and returns whatever
3896           ComboBox.Focused returns, since it really should be focused
3897           whenever the ComboBox is. Fixes #80795. Also make the border around
3898           the text box one pixel bigger, as mentioned in #79436.
3899
3900 2007-03-20  Jackson Harper  <jackson@ximian.com>
3901
3902         * TreeView.cs: Don't offset the images, this was causing some
3903         artifacts when expanding/collapsing with images that were the
3904         exact height of the treenode.
3905
3906 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3907
3908         * TrackBar.cs: Query the theme for the correct value when the mouse
3909           moves and the thumb is pressed. 
3910         * Theme.cs: Added TrackBarValueFromMousePosition
3911         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
3912           implementation was updating the trackbar value when drawing, now
3913           the drawing methods only draw. Fixes #80900. Refactored the
3914           calculations out to TrackBarValueFromMousePosition and
3915           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
3916           according to the mouse position whenever it wants to. Changed the
3917           light coloured pen when drawing the thumb from ControlLight to
3918           ControlLightLight, because the ControlLight is the same colour as
3919           the background so the 3D effect is lost. 
3920
3921 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
3922
3923         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
3924         defined. Fixes #80784.
3925
3926 2007-03-20  Marek Habersack  <mhabersack@novell.com>
3927
3928         * ContextMenuStrip.cs: align with the change introduced in
3929         revision 74664.
3930
3931 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
3932
3933         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
3934         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
3935         in SetTopmost.
3936
3937 2007-03-19  Chris Toshok  <toshok@ximian.com>
3938
3939         * Control.cs (WmPaint): don't make use of the Handle property
3940         after an event is emitted, as the user could have closed the
3941         form/destroyed the control.  Store the Handle in a local variable
3942         and make use of that.  Fixes bug #80768.
3943
3944 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
3945
3946         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
3947         behavior in X11 environments.
3948
3949 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
3950
3951         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
3952         because on setter of topmost we dont call SetTopmost when handle is not
3953         created.
3954
3955 2007-03-20  Jackson Harper  <jackson@ximian.com>
3956
3957         * TextControl.cs: Need to use SelectionLength () not
3958         selection_length, since that var is reset to -1.
3959         - Draw the caret when we don't have focus.
3960         * TextBox.cs: The selectall actually doesn't occur until the first
3961         focus.
3962         * TextBoxBase.cs: Need to update the caret position after a
3963         selectall.
3964         
3965 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3966
3967         * ListView.cs: Enable scrolling when using Tile view.
3968
3969 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
3970
3971         [Fixes #80902]
3972
3973         * XplatUIDriver.cs: Abstract SetOwner method created.
3974
3975         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
3976         must be implemented and was masked as todo.
3977
3978         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
3979         GWL_HWNDPARENT.
3980
3981         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
3982         cheking for null owner to remove transient. The SetTopmost will be change
3983         on a decond step.
3984
3985         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
3986         SetTopmost. Now owned forms will work properly in win32 and X11.
3987
3988 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3989
3990         * MdiWindowManager.cs: Update function name.
3991         * Form.cs: After closing a form MdiParent is always null.
3992         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
3993           better what it should do: necessary book-keeping when the form is
3994           closed, it should not close the form itself.
3995
3996 2007-03-19  Andreia Gaita  <avidigal@novell.com>
3997
3998         * ListViewItem.cs: Fix back and fore color. The subitems only
3999         use their own colors if they are set, otherwise use the listview's
4000         colors. Don't set default colors on constructor for subitem.
4001         Fixes #79315.
4002
4003 2007-03-19  Mike Kestner  <mkestner@novell.com>
4004
4005         * ListView.cs : make box selection for Details views with 
4006         FullRowSelect conform to MS behavior when clicking in the "item" 
4007         column and clicking outside the defined columns.
4008         [Fixes case 5-6 of #80374]
4009
4010 2007-03-19  Chris Toshok  <toshok@ximian.com>
4011
4012         * ScrollableControl.cs: create the controls from within the ctor,
4013         but don't actually add them until our handle is created.  this
4014         fixes a NRE possibility jpobst found (if you override OnLayout in
4015         a subclass, it's called before your ctor).  Also, add a
4016         IsHandleCreated guard to UpdateSizeGripVisibility as well.
4017
4018 2007-03-19  Jackson Harper  <jackson@ximian.com>
4019
4020         * TextBox.cs: Reduce the amount of invalidation we do.
4021         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
4022         some of them are true by default on MS.
4023         - Add some functions to reduce the amount of invalidates we do.
4024         * TextControl.cs: Less invalidation.
4025
4026 2007-03-19  Chris Toshok  <toshok@ximian.com>
4027
4028         [ Fixes #81773, and *seems* to fix #81553 as well ]
4029
4030         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
4031         AccumulateDestroyedHandles.  We need to do it *after* we send
4032         WM_DESTROY, as the user's code can access Control.Handle in
4033         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
4034         move the WM_DESTROY/zombie handling to before the call to
4035         XDestroyWindow.  For some reason without this ordering
4036         FormTest.RecreateHandle hangs.  This ordering is semantically
4037         equivalent, however, as XDestroyWindow is async anyway.
4038
4039 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
4040
4041         * RichTextBox.cs: Reset backcolor_set after setting default.
4042
4043 2007-03-19  Chris Toshok  <toshok@ximian.com>
4044
4045         * ScrollableControl.cs: the scroll position should not effect the
4046         canvas size.  commit patch from georgegiolfan@yahoo.com, which
4047         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
4048         
4049 2007-03-19  Chris Toshok  <toshok@ximian.com>
4050
4051         * ScrollableControl.cs: clean this up a bit.  create the
4052         scrollbars in the ctor and just show/hide them as needed.  Also,
4053         make hscroll_visible/vscroll_visible internal to Recalculate, and
4054         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
4055         everywhere else.  This seems to fix the scrollbars appearing
4056         beneath the content for me (i have *no* idea why that is,
4057         however.)
4058
4059 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
4060
4061         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
4062         some redundacy for stuff in Anchor and Dock that base will take care of.
4063         [Fixes #80762]
4064
4065 2007-03-19  Mike Kestner  <mkestner@novell.com>
4066
4067         * ListView.cs : make box selection for Details views without 
4068         FullRowSelect dependent on the text bounds, not item bounds.
4069         * ListViewItem.cs : add an internal property to obtain the TextBounds
4070         in Details view.  [Fixes case 1-4 of #80374]
4071
4072 2007-03-19  Andreia Gaita  <avidigal@novell.com>
4073
4074         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
4075         we're < 2.0. #78448 && #80316
4076
4077 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
4078
4079         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
4080         have the same style available as the previously selected one.  Also,
4081         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
4082
4083 2007-03-19  Jackson Harper  <jackson@ximian.com>
4084
4085         * TextControl.cs: Add an alignment property that all new lines
4086         will be given.
4087         - Make sure to use the align shift when calculating the line's X
4088         position.
4089         * TextBox.cs: Set the alignment on the document as well as on all
4090         the document lines.
4091
4092 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4093
4094         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
4095           throw if setting the parent of an mdichild that already has an
4096           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
4097           AssemblyProductAttribute in the assembly, use the type's namespace (as
4098           MS seems to do). CreateControl: don't create the handle if the control
4099           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
4100           create handle if the control is not a form. Change FocusInternal to
4101           virtual so that it can be overriden by Form.
4102         * TextBox.cs: Update call to FocusInternal.
4103         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
4104           form is not a toplevel form when it's a mdi child, so update is_toplevel
4105           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
4106           hasn't been created. Show (IWin32Window): Don't allow this overload for
4107           toplevel windows. CenterToParent/CenterToScreen/Select: create the
4108           handle as MS does. SetVisibleCore: if called on a MdiChild and the
4109           parent isn't visible yet, save the visibility and restore it when the
4110           parent is made visible.
4111         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
4112           methods, since the visibility of the scrollbars can be changed from
4113           several places, not only from AutoScroll.
4114           [Fixes #81179]
4115
4116 2007-03-19  Jackson Harper  <jackson@ximian.com>
4117
4118         * RichTextBox.cs: Enable shortcuts by default.
4119         * TextBoxBase.cs: Add conditional shortcuts.  
4120
4121 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
4122
4123         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
4124
4125 2007-03-19  Chris Toshok  <toshok@ximian.com>
4126
4127         [ Fixes bug #80604]
4128         
4129         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
4130         swallow the message we're waiting on, instead of delivering it, as
4131         this is only used for the WM_SHOWWINDOW raised from
4132         MapWindow/UnmapWindow, and the message needs to be generated
4133         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
4134         before doing the Map/Unmap.  Also make sure that the Hwnd is still
4135         alive after the message has been handled.
4136
4137         *before* the window is shown.
4138
4139         * Control.cs (CreateControl): guard a few more things inside the
4140         if (!is_created) block, as we might end up being called again -
4141         yay .net.
4142         (WmShowWindow): call CreateControl if we're showing the control.
4143
4144 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4145
4146         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
4147           controls without a handle if they have any parent with a handle. In
4148           Dispose add a check whether the handle is created or not before
4149           calling BeginInvoke, this removes the need of the extra disposing
4150           parameter (which was bogus anyway since it didn't prevent the
4151           invoke from happening, it only skipped the check for an existing
4152           handle, meaning that the invoke would call on an inexistent
4153           handle).
4154
4155 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
4156
4157         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
4158         appears in taskbar.
4159
4160 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
4161
4162         * MessageBox.cs:
4163         - Fixed a problem that dont show help button for messages with 3 buttons.
4164         - Refactory button size and position calculations, now dont use fixed 
4165         values, also fixed button sizes (#80043) and form's border space.
4166         - AddButton method created, now all other AddButton methods call this one.
4167         - Some other source code cosmetic changes.
4168
4169 2007-03-18  Jackson Harper  <jackson@ximian.com>
4170
4171         * RichTextBox.cs: Don't do this all fonts must match check if
4172         there is only one char selected.
4173
4174 2007-03-18  Jackson Harper  <jackson@ximian.com>
4175
4176         * TreeView.cs: ScrollWindow works properly now, so we don't need
4177         to screw around with the scroll area.  This fixes some artifacts
4178         when expanding and collapsing.
4179
4180 2007-03-18  Jackson Harper  <jackson@ximian.com>
4181
4182         * TextBoxBase.cs: Allow updating the selection position when the
4183         cursor is outside the textarea, but we have a capture.
4184         * TextControl.cs: A special case for when the cursor is outside
4185         the bounds of the TB.
4186         
4187 2007-03-18  Jackson Harper  <jackson@ximian.com>
4188
4189         * TextBoxBase.cs: Remove image pasting code for now.  There is no
4190         way to get an image on the clipboard right now anyways.
4191         * TextControl.cs:
4192         * RichTextBox.cs: Use the new RTF Picture class for pictures.
4193
4194 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
4195
4196         * MessageBox.cs:
4197         - Set window properties in constructor intead of on CreateParams.
4198         - Remove topmost from Window ExStyle.
4199         - Set ShowInTaskbar to false.
4200         - Set form border to FixedDialog.
4201         - Some cosmetic changes and remove unneeded comments.
4202         - It fixes itens 2,3 and 4 of bug #80043.
4203
4204 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
4205
4206         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
4207         none was explicitly set. Fixes part of bug #79949.
4208
4209 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
4210
4211         * ToolStripComboBox.cs: Add AutoComplete*.
4212
4213 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
4214
4215         * ToolStripComboBox.cs: Add FlatStyle.
4216
4217 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
4218
4219         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
4220         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
4221
4222 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4223
4224         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
4225           CheckBox.cs, RadioButton.cs, BindingSource.cs,
4226           DataGridColumnStyle.cs: Remove warnings.
4227
4228 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4229
4230         * Menu.cs: MergeMenu: Check menu argument for null before looping over
4231           it.
4232         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
4233           visibility of mdi child forms. FormSizeChangedHandler: update the
4234           maximized size if size has changed while maximized.
4235         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
4236           creating the handle.
4237         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
4238           avoid creating the handle if not created.
4239         * XplatUI.cs: Update debug output.
4240         * XplatUIStructs.cs: Added ToString's for a couple of structs.
4241
4242 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
4243
4244         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
4245         ProcessCmdKey().
4246         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
4247         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
4248         Implement keyboard shortcuts.
4249
4250 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
4251
4252         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
4253         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
4254         ColorDialog and all derived classes.
4255
4256 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
4257
4258         [ Fixes bug #79828 ]
4259
4260         * ToolBar.cs:
4261         - Rename ToolBarButtonInfor to ToolBarItem.
4262         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
4263         - Maintain an array of ToolBarItem, used instead of ToolBarButton
4264         collection to be able add same button more than one time on a toolbar.
4265         - Refactory all properties and methods to use ToolBarItem. 
4266
4267         * ToolBarButton.cs: 
4268         - Remove all propeties and methods that is now in ToolBarItem.
4269         - Rectangle propery now gets the rectangle from first ToolBarItem to
4270         mimic win32 behavior.
4271         - Size calculation and layout methods also removed.
4272
4273         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
4274         ToolBarItem instead of ToolBarButton to right drawing buttons when
4275         same button/separator was added more than one time to ToolBar.
4276
4277         * ThemeNice.cs: Same as above. 
4278
4279 2007-03-15  Andreia Gaita  <avidigal@novell.com>
4280
4281         * XplatUIX11.cs: Fire extra MouseMove events right after
4282         MouseDown and MouseUp, emulating win32's <censored> behaviour
4283         for apps that rely on it.
4284
4285 2007-03-15  Jackson Harper  <jackson@ximian.com>
4286
4287         * TextControl.cs:
4288         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
4289         it is drawn on the controls client window and there is no NC
4290         area.
4291         - Set the background color to gray on 2.0 when we are readonly.
4292
4293 2007-03-15  Chris Toshok  <toshok@ximian.com>
4294
4295         [ Fixes bug #81144 ]
4296         
4297         * XplatUIX11.cs: implement VirtualScreen independently of
4298         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
4299         property.
4300
4301 2007-03-15  Chris Toshok  <toshok@ximian.com>
4302
4303         * Hwnd.cs: add an internal field for the cached_window_state.
4304
4305         * XplatUIX11.cs: cache the window state, invalidating the cache
4306         (and thus re-querying the X server) only when we see an update to
4307         the _NET_WM_STATE property.
4308
4309 2007-03-15  Chris Toshok  <toshok@ximian.com>
4310
4311         * BindingSource.cs: get a lot of the unit tests working.
4312
4313 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
4314
4315         * Control.cs: Modify UpdateStyles to store distances when bounds >=
4316         0 instead of just bounds > 0.  [Fixes bug #80912]
4317
4318 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
4319
4320         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
4321         and methods.
4322
4323 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
4324         
4325         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
4326         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
4327         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
4328         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
4329
4330 2007-03-15  Chris Toshok  <toshok@ximian.com>
4331
4332         [ Fixes #81101 ]
4333         
4334         * Control.cs: add Ivan's fix for 81101, with a slight modification
4335         - you can set control.Target to null.
4336
4337 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
4338
4339         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
4340         HideDropDown, use Hide instead to prevent an NRE.
4341         [Fixes bug #81147]
4342
4343 2007-03-14  Jackson Harper  <jackson@ximian.com>
4344
4345         * TextBoxBase.cs: Mess with the creation stuff a little. We need
4346         to calculate the document before the handle is created, in some
4347         cases. (Actually just one case).
4348
4349 2007-03-14  Jackson Harper  <jackson@ximian.com>
4350
4351         * TextBoxBase.cs: Need to display the caret after letting the base
4352         wndproc handle the focus methods, because the caret display
4353         methods check the focus state.
4354         - Try to display the caret after updating it's position with SelectWord.
4355         - Don't need to do an immediate update on this recalc, since there
4356         will be an invalidate anyways.
4357
4358 2007-03-14  Jackson Harper  <jackson@ximian.com>
4359
4360         * TreeView.cs: Some workarounds so that we can match event order a
4361         little better.
4362
4363 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
4364
4365         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
4366         #80803. Avoid NullReferenceException when Control does not have
4367         parent. Fixed different blinkstyle issues. Only subscribe to Tick
4368         event a single time. Only draw error icon when control is created and
4369         visible. Fixes failing unit tests.
4370
4371 2007-03-14  Andreia Gaita  <avidigal@novell.com>
4372
4373         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
4374         Selecting events. Fire Leave and Enter events when changing tabs.
4375
4376 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
4377
4378         * TreeView.cs: Add TreeViewNodeSorter.
4379         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
4380
4381 2007-03-14  Chris Toshok  <toshok@ximian.com>
4382
4383         * Form.cs: go ahead and remove the RecreateHandles that jpobst
4384         removed earlier and I had him add back it.  It turns out metacity
4385         *does* in fact handle the MOTIF_WM_HINTS property changing, it
4386         just doesn't redraw the window titlebar until you resize the
4387         window.  This also means we aren't recreating the entire window
4388         hierarchy on X when you change this property.  And it looks better
4389         on windows, too.
4390
4391 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4392
4393         * ListViewItem.cs:
4394         * ListView.cs: Collecting selection information
4395         is now done in SelectedIndexCollection rather than in
4396         SelectedListViewItemCollection. This is done so we can
4397         have the selection information code in one single place
4398         (virtual mode selection information entirely depends on
4399         SelectedIndexCollection).
4400
4401 2007-03-13  Miguel de Icaza  <miguel@novell.com>
4402
4403         * ErrorProvider.cs: Add stubs for ISupportInitialize
4404
4405 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4406
4407         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
4408         in the right order with the right values, from the Checked property, 
4409         just as MS does (instead of triggering them from ListView).
4410
4411         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
4412
4413 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4414
4415         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
4416         the correct handler in OnItemCheck method (ItemCheckEventHandler 
4417         instead of EventHandler). This used to throw an InvalidCastException.
4418
4419 2007-03-13  Jackson Harper  <jackson@ximian.com>
4420
4421         * TextBoxBase.cs: Calculate the document before the handle is
4422         created, so there isn't an extra invalidate called.
4423
4424 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
4425
4426         * Form.cs: Don't set owner in ShowDialog until we are sure
4427         that we aren't going to throw an exception.  [Fixes bug #80773]
4428
4429 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
4430
4431         * TreeView.cs: Make it compile.
4432
4433 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
4434
4435         * Control.cs: Another place we don't call SizeFromClientSize.
4436         * Form.cs: Another place we don't call SizeFromClientSize.
4437         [Fixes bug #81125]
4438
4439 2007-03-12  Jackson Harper  <jackson@ximian.com>
4440
4441         * TreeView.cs: Basically emulating some strangness here with
4442         exanding nodes and setting node positions when windows aren't
4443         created.
4444         - Also attempting to walk the node tree less than previously, and
4445         just use visible order calculations for determining offsets.
4446         - oops made scrolling backwards.
4447         * TreeNode.cs: We need to start nodes with a zero visible order,
4448         because the order calcs are based on the first nodes order.
4449
4450 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
4451
4452         * Form.cs: Don't exit the program if RecreateHandle is called on
4453         the main form.
4454
4455 2007-03-12  Chris Toshok  <toshok@ximian.com>
4456
4457         * XEventQueue.cs: remove the use of PostQuitState.
4458
4459         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
4460         WM_QUIT message in GetMessage, return false (and if we're in the
4461         nested WaitForHwndMessage, repost the WM_QUIT message).
4462
4463 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
4464
4465         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
4466         or the MaximizeBox properties.  [Part of bug #80640]
4467
4468 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
4469
4470         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
4471         no links.
4472
4473 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
4474
4475         * ToolStripItem.cs: Fix some tests I broke by checking Visible
4476         instead of visible.
4477
4478 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
4479
4480         * FileDialog.cs: Use text of File name combobox to determine what
4481         files the user selected. Added tokenizer to parse the file names.
4482         Fixes bug #81123.
4483
4484 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
4485
4486         * Control.cs: We can't call SizeFromClientSize in the constructor,
4487         but we still need to do the same work, so make an internal version.
4488         [Fixes bug #80621]
4489
4490 2007-03-12  Jackson Harper  <jackson@ximian.com>
4491
4492         * TreeView.cs:
4493         * TreeNode.cs:
4494         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
4495         IsExpanded.
4496
4497 2007-03-12  Jackson Harper  <jackson@ximian.com>
4498
4499         * TextBoxBase.cs: Now that the handles are being created a little
4500         later, we need to make sure that the document is recalculated when
4501         the handle is created.
4502
4503 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
4504
4505         * Theme.cs: GetLinkFont abstract method added.
4506         
4507         * LinkLabel.cs: 
4508         - Remove CalcTrimRectangle, no longer needed.
4509         - Factor also remove, position issues must be fixed in libgdiplus.
4510         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
4511         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
4512         care about font used to draw links.
4513         - Set TabStop to true when control is "Selectable", control is selectable
4514         when have one or more links. Fixes #80501 (test case is also added).
4515         - Set the LinkArea values after links change, LinkArea values must be
4516         based in first link position and size, a test case was created.
4517         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
4518         the attribute must be true LinkArea.Length > 0. The same was applied to
4519         TabStop.
4520         
4521         * ThemeWin32Classic.cs: 
4522         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
4523         in draw method.
4524         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
4525         color change.
4526         - Draw focus rectangle for every parts focused, including parts that 
4527         is on another line, its because regions returns various rectangles
4528         and not only one. Needed to mimic W32 look.
4529         - Uses Graphics.Clip to delimite region painted, it mean that now 
4530         complete text is passed to DrawString, with this we solve layout
4531         issues without create another text renderer.
4532         - Uses Region.Intersect to fix some flickers problems, now only needed
4533         parts will redrawed.
4534         - This changes fixes #79614 and some other unreported issues, on Linux 
4535         some layout problems still remain, the problem is under 
4536         MeasureCharacterRanges but it is an libgdiplus bug.
4537
4538 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
4539
4540         * TextBox.cs: Set for foreground color.
4541         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
4542         this is already done in Control.
4543
4544 2007-03-10  Jackson Harper  <jackson@ximian.com>
4545
4546         * TextBox.cs: Set the background color, but reset the
4547         backcolor_set flag which is just for the user setting the
4548         background color.
4549
4550 2007-03-09  Chris Toshok  <toshok@ximian.com>
4551
4552         * Control.cs: really remove the call to XplatUI.SetVisible from
4553         CreateHandle(), like I said I did when I merged the branch.
4554
4555         * BindingSource.cs: implement some more of this stuff.
4556
4557 2007-03-09  Jackson Harper  <jackson@ximian.com>
4558
4559         * TextBox.cs: Don't explicitly set our background colors.
4560         * TextControl.cs:
4561         * TextBoxBase.cs: Draw readonly text.
4562         - Need to invalidate when backcolor or readonly are changed.
4563         
4564 2007-03-09  Jackson Harper  <jackson@ximian.com>
4565
4566         * TextBoxBase.cs: Don't set the forecolor until the handle is
4567         created.
4568         - Do not raise OnPaint, and removed some old debug code.
4569
4570 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
4571
4572         * ScrollableControl.cs: Fix mouse wheel scrolling.
4573
4574 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
4575
4576         * Control.cs: Wire up MouseDoubleClick event.
4577
4578 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
4579
4580         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
4581         top or bottom.
4582         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
4583         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
4584         item is added.  This logic was moved to ToolStrip.OnItemAdded.
4585         [Fixes bug #81090]
4586
4587 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4588
4589         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
4590
4591 2007-03-08  Jackson Harper  <jackson@ximian.com>
4592
4593         * TreeView.cs: Show the correct image for selected node (this used
4594         to work, not sure how the code got deleted). Also implemented 2.0 feature
4595         SelectedImageKey.
4596
4597 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4598
4599         * ListView.cs:
4600         * ListViewItem.cs: Cache index in items when retrieving them
4601         in VirtualMode.
4602
4603 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
4604
4605         * ToolStripItem.cs: Don't return the explicit_size if we are using 
4606         AutoSize.  Fixes invalidation issue when user has explicitly set a
4607         size and has AutoSize = true.
4608
4609 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
4610
4611         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
4612
4613 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
4614
4615         * DataGridView.cs: Remove event handler from DataView when a
4616         DataTable is used as DataSource.
4617
4618 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
4619
4620         * Control.cs: Create internal setter for client_size to allow it to be
4621         set without triggering resizing code.
4622         * Form.cs: Calculate client_size in constructor, only change client_size
4623         in FormBorderStyle property if Handle has been created.
4624         [Fixes #80574, #80791]
4625
4626 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
4627
4628         * SystemInformation.cs: Add TerminalServerSession.
4629
4630 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
4631
4632         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
4633         TreeView code.
4634
4635 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
4636
4637         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
4638         Handle before we were supposed to.  Now checks ActivateOnShow property
4639         in Control.
4640         * Control.cs: Add internal ActivateOnShow property.
4641         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
4642         for ActivateOnShow.
4643         * Hwnd.cs Remove no longer needed no_activate field.
4644
4645 2007-03-07  Jackson Harper  <jackson@ximian.com>
4646
4647         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
4648         2.0 properties
4649         * DrawTreeNodeEventHandler.cs: Add
4650         * DrawTreeNodeEventArgs.cs: Correct default value.
4651         
4652 2007-03-07  Chris Toshok  <toshok@ximian.com>
4653
4654         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
4655         to be called before NativeWindow.WndProc.  Put the HwndCreating
4656         magic there to hook up our Hwnd's to handles.
4657
4658 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
4659
4660         * DataGridView.cs: Comment out debug code.
4661
4662 2007-03-07  Chris Toshok  <toshok@ximian.com>
4663
4664         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
4665         to make the rest of the world happy]
4666
4667         * Control.cs (CreateHandle): there's no need to call
4668         XplatUI.SetVisible here, it's effectively done by
4669         XplatUI.CreateWindow on X now, and always was on windows.
4670
4671         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
4672         shortcircuit out of the loop if we have a message loop running on
4673         this thread.
4674
4675         [Changelog from merge]
4676
4677         2007-03-05  Chris Toshok  <toshok@ximian.com>
4678
4679                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
4680                 causes handle creation.
4681
4682         2007-02-28  Chris Toshok  <toshok@ximian.com>
4683
4684                 * ApplicationContext.cs: Add a flag to make sure we only raise the
4685                 ThreadExit event once (ExitThreadCore can be indirectly called
4686                 from a few places.)  I don't like the additional flag, but it
4687                 makes the event ordering/count correct.
4688
4689                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
4690                 without locking the collection.  An enumerator doesn't give us any
4691                 protection from modification anyway.  Lock the thread hash and
4692                 replace the complicated enumerator loop with a foreach.
4693                 (Application.CloseForms): make internal so it can be called from
4694                 ApplicationContext.  This should probably be moved to MWFThread.
4695                 (Application.ExitThread): don't call MWFThread.Current.Exit()
4696                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
4697                 when the runloop exits (in response to WM_QUIT.)
4698                 (Application.RunLoop): add a comment (and check) for
4699                 context.MainForm being null after setting context.MainForm.Visible
4700                 = true.  This is because you're perfectly free to dispose of a
4701                 form in VisibilityChanged.  Chalk this up to another case where we
4702                 need to synchronously generate WM_ACTIVATE from Control.Show.
4703                 Also, add handling for WM_QUIT here so we'll exit the loop.
4704                 
4705                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
4706                 fact that we don't wait if we're only unmapping the whole_window
4707                 makes me a bit nervous, but it doesn't seem to cause any problems
4708                 yet.
4709
4710                 also, add a comment about the stupid, broken and wrong resetting
4711                 of PostQuitState to false in GetMessage().
4712
4713                 In PostQuitMessage, we need to add a WM_QUIT message to the
4714                 thread's queue.  We use the FosterParent to get the right
4715                 handle/hwnd/queue.
4716
4717                 Lastly, in SetVisible, we need to unmap both windows, since the
4718                 waiting only happens when we're unmapping the client window.  So
4719                 now, the *only* time we unmap just the whole_window is in the hack
4720                 for resizing a control to 0,0.
4721                 
4722         2007-02-21  Chris Toshok  <toshok@ximian.com>
4723
4724                 * Application.cs (CloseForms): rewrite this so that we don't
4725                 modify the list while we're traversing it.
4726
4727         2007-02-20  Chris Toshok  <toshok@ximian.com>
4728
4729                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
4730                 of OnHandleCreated.
4731                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
4732                 handle is created.  otherwise we'll create it here.
4733                 (VerticalScrollEvent): same here.
4734
4735                 * Application.cs (CloseForms): call Form.Dispose, don't post
4736                 WM_CLOSE_INTERNAL.
4737
4738                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
4739                 here. Application should Dispose() of the Form's.
4740
4741                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
4742                 WM_DESTROY as well.
4743                 (MapWindow,UnmapWindow): only actually do the waiting for
4744                 SHOWWINDOW if the control we're dealing with is a Form.
4745                 (CreateWindow): if the control isn't a form, SendMessage
4746                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
4747
4748                 * Control.cs (SetVisibleCore): always use is_visible here, not
4749                 value.  If we use value, we can end up re-setting something
4750                 visible if, for instance, you do Control.Hide() in a delegate
4751                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
4752
4753         2007-02-20  Chris Toshok  <toshok@ximian.com>
4754
4755                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
4756                 the message we need.  PeekMessage returning false should not be a
4757                 condition under which we exit the loop.
4758
4759         2007-02-15  Chris Toshok  <toshok@ximian.com>
4760
4761                 * Control.cs (Refresh): only refresh if we've got a handle and are
4762                 visible.
4763                 (CreateAccessibilityInstance): CreateControl() here.
4764                 (UpdateChildrenZOrder): complicate the code loop even more by
4765                 taking into account controls that haven't had their handle
4766                 created, and those that aren't visible.  But on the flip side,
4767                 simplify the code by splitting it into two loops.  one which
4768                 builds up the list of child controls we're interested in, and the
4769                 other that sets the z order of those children.
4770
4771         2007-02-14  Chris Toshok  <toshok@ximian.com>
4772
4773                 * Control.cs: Control.AccessibilityObject causes the control to be
4774                 created, not just the handle.
4775
4776         2007-02-14  Chris Toshok  <toshok@ximian.com>
4777
4778                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
4779                 problem on X where a window might have its handle created (and be
4780                 visible) while the window is unmapped.  calling XConfigureWindow
4781                 on an unmapped window is bad, and generates X errors.
4782
4783         2007-02-13  Chris Toshok  <toshok@ximian.com>
4784
4785                 * Control.cs (CreateHandle): don't loop over our children setting
4786                 their parent here.  do it when in WndProc when we're shown.
4787                 (UpdateChildrenZOrder): make this internal so we can call it from
4788                 ScrollableControl.
4789                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
4790                 creating its handle.  Also, remove the calls to PerformLayout from
4791                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
4792                 OnVisibleChanged only seems to be called directly here for the
4793                 toplevel control.  It's propagated down the window hierarchy by
4794                 calls to child.OnParentVisibleChanged.
4795                 (OnVisibleChanged): don't do layout here - it's done (oddly
4796                 enough, according to a glance at stack traces on ms.net..) in
4797                 ScrollableControl.
4798                 
4799                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
4800                 z order of our children before calling PerformLayout.
4801
4802         2007-02-12  Chris Toshok  <toshok@ximian.com>
4803
4804                 [big change, fixes #80020]
4805                 
4806                 * AccessibleObject.cs: we need to make owner internal again to fix
4807                 some of ControlAccessibleObject.
4808
4809                 * Control.cs: lots of changes here.  add support for WM_CREATE,
4810                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
4811                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
4812                 we create child controls.  leave the MonoTODO's for the
4813                 accessibility calls, but fix the exceptions so the tests pass.
4814
4815                 Add the InvalidOperationExceptions to Invoke methods, and remove a
4816                 couple of InvokeInternal methods we aren't using.
4817                 
4818                 Also, add a couple of CreateHandle calls in places where we know
4819                 the handles are being created but our code doesn't reference
4820                 .Handle.
4821
4822                 Make SetVisibleCore call OnVisibleChange if the handle isn't
4823                 created.  If the handle is created, we rely on XplatUI.SetVisible
4824                 generating the event synchronously.
4825                 
4826                 Lastly, make sure we don't use this.Handle inside CreateHandle,
4827                 because we can call back into client (and that code can dispose of
4828                 the control).
4829
4830                 * XplatUIStructs.cs: misc/cleanup.
4831
4832                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
4833                 although we don't populate the wParam properly.
4834                 (CreateWindow): generate WM_CREATE.
4835                 (MapWindow,UnmapWindow): make these calls synchronous, at great
4836                 performance expense (particularly in the unmap case), to match
4837                 win32 behavior.
4838
4839                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
4840                 to call it.
4841                 (set_MdiParent): don't recreate the handle unless it's been
4842                 created already.
4843                 
4844                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
4845                 it's created.
4846
4847                 * NativeWindow.cs: this is probably the weirdest part of the
4848                 patch.  We need a way to link up the window being created to the
4849                 WM_CREATE message.  Since we can only be creating one window at a
4850                 time on a given thread, we keep track of a per-thread reference so
4851                 we can dispatch it properly.  We also need to keep track of the
4852                 Hwnd currently being created so that the win32 backend doesn't
4853                 have problems.
4854                 
4855                 * XplatUIWin32.cs: a similar change to the one we made in
4856                 NativeWindow.cs.
4857
4858 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
4859
4860         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
4861         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
4862         to draw the menu shortcut string.
4863
4864 2007-03-07  Jackson Harper  <jackson@ximian.com>
4865
4866         * TreeNode.cs: Add the 2.0 collapse method.
4867
4868 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
4869
4870         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
4871
4872 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
4873
4874         * DataGridView.cs: Change DataSource will clear column and row
4875         lists. Call Invalidate() to reflect DataSource change.
4876
4877 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
4878
4879         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
4880         and a new row is added to it.
4881
4882 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
4883
4884         * DataGridView.cs: Add columns when DataSource is en empty list but
4885         is a System.Data.DataView (from a System.Data.DataTable).
4886
4887 2007-03-06  Andreia Gaita  <avidigal@novell.com>
4888
4889         * Label.cs: Implement AutoEllipsis (2.0)
4890
4891 2007-03-06  Jackson Harper  <jackson@ximian.com>
4892
4893         * TreeView.cs: Implement 2.0 TopNode setter property.
4894         - Use a local var instead of the skipped_nodes field for computing
4895         how many nodes to skip.  Otherwise we won't scroll because the
4896         valuechanged handler checks if skipped_nodes is equal to the new
4897         value.
4898         - Implement 2.0 Sort method.
4899         - Add useless 2.0 DoubleBuffer property
4900         - Implement 2.0 LineColors property.  Lets you change the color of
4901         the lines in the tree. Terribly useful for creating non cohesive
4902         desktops.
4903         - Implement 2.0 image key feature.
4904
4905 2007-03-06  Jackson Harper  <jackson@ximian.com>
4906
4907         * TreeView.cs: We can't get the bounds of the nodes before raising
4908         the AfterSelect event, because that event could change the node's
4909         bounds (scrolling, font change, etc).
4910
4911 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4912
4913         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
4914         * Form.cs: Don't recreate handle when creating FormWindowManager, just
4915           update window styles. In CreateParams us VisibleInternal instead of
4916           VIsible to get the actual visible flag set for this form.
4917         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
4918           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
4919           handle the case when the form is already maximized, in which case
4920           it should be restored. Fixes #81043.
4921
4922 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4923
4924         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
4925
4926 2007-03-05  Jackson Harper  <jackson@ximian.com>
4927
4928         * TreeViewHitTestInfo.cs: implement.
4929
4930 2007-03-05  Jackson Harper  <jackson@ximian.com>
4931
4932         * InternalWindowManager.cs: class status fix.
4933
4934 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4935
4936         * InternalWindowManager.cs: All windows that have a parent
4937         are confined to their parent when they're being moved.
4938         Fixes #80822.
4939
4940 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
4941
4942         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
4943         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
4944
4945 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4946
4947         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
4948           buttons invisible before deciding which ones should be visible
4949           (fixes minimize/maximize buttons showing up in toolwindows). Remove
4950           an unused variable.
4951         * InternalWindowManager.cs: Remove warning.
4952
4953 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4954
4955         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
4956         to throw an InvalidOperationException is virtual mode is being used.
4957
4958 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
4959
4960         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
4961         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
4962         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
4963         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
4964         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
4965         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
4966
4967 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4968
4969         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
4970           driver.KeyboardDelay from XplatUI.KeyboardDelay 
4971         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
4972           (patch by Sergey Volk)
4973
4974 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4975
4976         * ToolWindowManager.cs: Added, contains logic for
4977           tool windows.
4978         * CreateParams.cs: Add a few helper methods and an
4979           internal variable to know which control the CreateParams belongs
4980           to.
4981         * Control.cs: Call Form.ChangingParent when the
4982           parent is about to be changed.
4983         * XplatUIX11.cs: DeriveStyles (): Set
4984           caption_height for all windows that have captions and are children.
4985           Update to use ToolWindowManager instead of InternalWindowManager
4986           for ToolWindows.
4987         * XplatUIWin32.cs: Set fake window styles for all
4988           windows that have window managers.
4989         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
4990           now duplicated for mdi windows when they are
4991           maximized, first for the buttons the window itself has, then for
4992           the buttons that appear in the menu bar. Makes things a little
4993           easier). Updated UpdateWindowDecorations, SetWindowState and the
4994           mouse eventhandlers accordingly.
4995         * Form.cs: Add ChangingParent (), contains the
4996           logic of what should happen when the parent changes. In MdiParent
4997           don't set things that ChangingParent () is doing. When handling
4998           WM_CLOSE, we can close the form if there are any other modal forms
4999           and the current form is a descendent of the modal form.
5000         * InternalWindowManager.cs: A lot of refactoring,
5001           the title buttons are now extracted to a separate container class
5002           that takes care of all button code (clicks, tooltips, etc). Moved
5003           Iconic|Maximized|Normal Bounds properties to this class from
5004           MdiWindowManager, so that the window state logic can succeed for
5005           other than mdi wm's. Implemented general window state change logic.
5006           Moved CreateButtons to ThemeWin32Classic, since the theme might
5007           override which buttons are available when as well as the exact
5008           location.
5009         * FormWindowManager.cs: Added, contains logic for
5010           normal forms.
5011         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
5012           which buttons go where (and if they are at all visible). 
5013           Removed special handling of maximized windows, since they aren't special. 
5014           In DrawManagedWindowDecorations don't try to draw the text if it is
5015           empty.
5016         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
5017           use whatever the wm gives us.
5018
5019 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
5020
5021         * ButtonBase.cs: Add 2.0 properties.
5022         * Button.cs: Override Draw for 2.0.
5023         * Control.cs: Add Entered and Selected properties.
5024         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
5025         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
5026         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
5027         buttons.
5028         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
5029
5030 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
5031
5032         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
5033
5034 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
5035
5036         * XplatUIWin32.cs: Register a new class with Windows each time we get
5037         a new ClassStyle.  [Fixes bugs #79432, #80817]
5038         * Controls.cs: Set the correct ClassStyle in CreateParams.
5039         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
5040
5041 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
5042
5043         * ListView.cs: Add fireEvent argument to ReorderColumn since the
5044         ColumnReordered event must not be signaled when modifying DisplayIndex
5045         of a ColumnHeader. Added internal ReorderColumns method which takes
5046         care of drawing, and updating the internal DisplayIndex of the
5047         ColumnHeader. Added AddColumn method which is invoked from
5048         ColumnHeaderCollection when adding or inserting columns, and which
5049         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
5050         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
5051         Recalculated dispay indices after removing a ColumnHeader.
5052         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
5053         match MS. Allows last display index to be returned after ListView
5054         is disposed. Update actual location of ColumnHeader when DisplayIndex
5055         is modified.
5056
5057 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
5058
5059         * LinkLabel.cs: Improve CalcTrimRectangle.
5060         
5061         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
5062
5063 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
5064
5065         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
5066         get rectangle as a result value.
5067
5068 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
5069
5070         * LinkLabel.cs: Theres some diferences between rectangle return from 
5071         MeasureCharacterRanges and the area used for DrawString to fix this 
5072         CalcMeasurementFactor method was created, it calcules the diferences
5073         to be use later to adjust rectangle in draw operations. Fixes #80473.
5074         
5075         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
5076         to adjust draw rectangle.
5077
5078 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
5079
5080         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
5081         text and some other changes to reduce and optimize source code.
5082
5083 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
5084
5085         * RadioButton.cs: Implement 2.0 event.
5086         * RelatedImageListAttribute.cs: Implement new class.
5087
5088 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
5089
5090         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
5091
5092 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
5093
5094         * CheckBox.cs: Implement 2.0 functionality.
5095
5096 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5097
5098         * ListView.cs: Refactor Add and AddRange methods of
5099         ListViewItemCollection, to not update the ListView
5100         everytime an item is added in AddRange. Also move the update
5101         code to a new CollectionChanged method, and call it
5102         from other methods that need it as well (this should also fix some
5103         bugs when Sorting is used).
5104
5105 2007-02-27  Jackson Harper  <jackson@ximian.com>
5106
5107         * TextControl.cs: Try to never let the caret stay in a non-text
5108         tag.
5109         * TextBoxBase.cs: Update the caret.
5110
5111 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
5112
5113         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
5114         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
5115         delete POINT structure, duplicate of one in XplatUIStructs.
5116         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
5117
5118 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
5119
5120         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
5121         edit box since otherwise the Label would immediately be set (even if
5122         the user did not modify the label). In OnKeyDown set Handled to true
5123         if Return or Escape was pressed. In ColumnHeaderCollection unlink
5124         columns that are to be removed. In ListViewItemCollection unlink items
5125         that are to be removed.
5126
5127 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
5128
5129         * TextRenderer.cs: If we set a GDI clip region, we need to clear
5130         it when we are done.  [Fixes bug #80949]
5131
5132 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
5133
5134         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
5135
5136 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5137
5138         * ListView.cs: I forgot to commit the changes for ListView 
5139         in my previous patch.
5140
5141 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
5142
5143         * Clipboard.cs: Partially implement an overload of SetDataObject.
5144         * Form.cs: Implement ShowWithoutActivation.
5145         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
5146
5147 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5148
5149         This is a first set of changes to make the Virtual mode works,
5150         by avoiding the retrieval of ListViewItem instances until
5151         draw time.
5152
5153         * ListView.cs: Store item position in the ListView instead of the
5154         ListViewItem, this way we don't request the Bounds property of
5155         ListViewItem inside the ListView calculations, as well as cache the item
5156         size in item_size field. Store indexes instead of ListViewItem
5157         instances in the matrix used by icon view. Add a ItemMatrixLocation
5158         struct to hold the row and col info of the matrix info.
5159
5160         * ListViewItem.cs: Don't store the location anymore, and only cache
5161         the rectangles for GetBounds. Use the ListView.GetItemLocation
5162         method to retrieve the actual location.
5163
5164 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
5165
5166         * TextRenderer.cs: Add clipping support, thanks to George.
5167         [Fixes bug #80949]
5168
5169 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
5170
5171         * ListViewItem.cs: Cancel label edit when item is removed from 
5172         ListView.
5173         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
5174         event before the edit textbox is displayed.  Added CancelEdit method
5175         which is used end to editing while ignoring the value set by the
5176         user. In EndEdit, set focus to ListView to avoid losing focus to
5177         other controls. In ListViewItemCollection.Clear, cancel editing of
5178         any of the items.  In Remove, cancel editing of item being removed.
5179         Avoid udplicate code by modifing RemoveAt to invoke Remove.
5180
5181 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
5182
5183         * FileDialog.cs: Update FSEntry when move is successful. Fixes
5184         bug #80948.  
5185
5186 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
5187
5188         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
5189         compatible with non X11 systems. Fixes #80901.
5190
5191 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
5192
5193         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
5194         whether the item should be unselected and reselect. We do no want this
5195         when we're starting to edit the label. Do not fire the 
5196         SelectedIndexChanged event from ListView when its already been fired
5197         by modifying ListViewItem.Selected. Fixes bug #80943.
5198
5199 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
5200
5201         * TextRenderer.cs: Previos commit logic was backwards.
5202
5203 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
5204
5205         * TextRenderer.cs: Don't add padding on MeasureText if we were
5206         sent the NoPadding flag.
5207
5208 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
5209
5210         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
5211         after DrawButton. To prevent image overlaps button borders SetClip and 
5212         ResetClip added before and after draw image. Fixes #79129.
5213
5214 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
5215
5216         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
5217         window size, it fix problem when you run under win32 that theres
5218         Size diferent than ClientSize. Also fix controls size and positions
5219         to mimic Win32. Fixes #80837.
5220
5221 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
5222
5223         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
5224         menu area to fix some problems for non X11 systems. Fixes #80613.
5225
5226 2007-02-22  Jackson Harper  <jackson@ximian.com>
5227
5228         * TreeNode.cs: When a node is expanded, set its is_expanded flag
5229         even if it doesn't have any children.
5230
5231 2007-02-22  Jackson Harper  <jackson@ximian.com>
5232
5233         * TreeView.cs: Calculate the top node 'on the fly', this
5234         eliminates issues where you need to click on the tree before
5235         scrolling it to get the top node computed correctly.
5236         * TreeNodeCollection.cs: We don't need to mess with the top node
5237         anymore.
5238
5239 2007-02-22  Jackson Harper  <jackson@ximian.com>
5240
5241         * DataGridViewRow.cs: Fix typo so height can actually be set.
5242         Patch by Peter Grimm.
5243
5244 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
5245
5246         * FileDialog.cs: Fixed support for renaming files and directories.
5247         * ListView.cs: Do not lose focus when edit is canceled. Process
5248         Escape as regular key (to prevent closing of dialogs).
5249
5250 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
5251
5252         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
5253         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
5254
5255 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
5256
5257         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
5258         did not modify label.
5259         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
5260         modified the text. Reset Label when user presses Escape in edit mode.
5261         Move focus to ListView after having cancelled or finished editing the
5262         label.
5263
5264 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
5265
5266         * ComboBox.cs: Removed unnecessary initializations. Marked items field
5267         private. Clear textbox when Text is set to null and SelectedIndex is
5268         already -1.
5269         * FileDialog.cs: Removed unnecessary initializations. Removed 
5270         workarounds for ComboBox bugs that are now fixed. Modified
5271         DefaultExt, InitialDirectory and Title property to change null to
5272         zero-length string in getters. Avoid directly accessing fields.
5273
5274 2007-02-20  Jackson Harper  <jackson@ximian.com>
5275
5276         * TextControl.cs: Remove RecalAlignments call, that was some
5277         debugging leftovers.
5278         - Don't use the line indent when we shouldn't.
5279         * RichTextBox.cs: Add support for paragraph left indents.
5280
5281 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5282
5283         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
5284         Seems like the class status pages doesn't catch params differences.
5285
5286 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
5287
5288         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
5289
5290 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
5291
5292         * ComboBox.cs: Setting Text should have no effect if item text of
5293         selected item exactly matches value. First lookup text using
5294         case-sensitive comparison, and fallback to case-insensitive comparison.
5295         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
5296         allow startIndex to be last index. Changed ArgumentOutOfRangeException
5297         paramname to match MS. Restart from first item if string is not found
5298         after startIndex. Fixed paramname of ArgumentNullException that is
5299         thrown for null value in ObjectCollection.Contains.
5300
5301 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
5302
5303         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
5304
5305 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5306
5307         * ListControl.cs: In SelectedValue use value.Equals to compare for
5308         equality instead of ==, otherwise it will fail for strings.
5309         Fixes #80794.
5310
5311 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5312         
5313         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
5314         since the caret won't show up unless ShowSelection is true. 
5315         Fixes #80795.
5316
5317 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5318
5319         * Application.cs: When disabling all forms but the main form, do not
5320           disable any descendants of the main form (such as mdi children or
5321           other parented forms). Fixes #80822 on Windows.
5322         * Form.cs: If we have a parent, set the WS_CHILD style.
5323         * Control.cs: Update the window styles if the control whose parent has
5324           changed is a form (the WS_CHILD style has to be switched).
5325
5326 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
5327
5328         * XplatUIStructs.cs: MsgUIState structure added.
5329
5330 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
5331
5332         * FileDialog.cs: Removed need for separate fileName field. On 2.0
5333         profile, do not check filename(s) for illegal character if filename(s)
5334         were set non-interactively but always check on 1.0 profile. Fixed NRE
5335          in DefaultExt and only strip off first leading dot. Improve exception
5336         message when invalid Filter is set. Do not ignore InitialDirectory if
5337         it does no exist. Store specified Title, and if empty use default
5338         title (depending on type of dialog). Added an internal DialogTitle 
5339         property for retrieving dialog title. Fixed logic of displayed dir to
5340         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
5341         string as its buggy.
5342         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
5343         FileName is a zero-length string (it can never be null). Override 
5344         DialogTitle property to set default title of dialog box.
5345         * SaveFileDialog.cs: Override DialogTitle property to set default
5346         title of dialog box.
5347
5348 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
5349
5350         * FileDialog.cs: Modify default text of filename and filetype labels
5351         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
5352         after we've updated the SelectedIndex. Fixes part of bug #80887.
5353         * SaveFileDialog.cs: Set text of filetype label.
5354
5355 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5356
5357         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
5358         label field. Needed by latest Jackson's fixes for ListView.
5359
5360 2007-02-16  Andreia Gaita  <avidigal@novell.com>
5361
5362         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
5363         print preview images.
5364
5365 2007-02-16  Jackson Harper  <jackson@ximian.com>
5366
5367         * ListView.cs: Make AfterLabelEdit work correctly.
5368         * FileDialog.cs: After changing the name of the folder, we have to
5369         make sure that it is created, or that we pop up an error because
5370         it already exists.
5371
5372 2007-02-16  Jackson Harper  <jackson@ximian.com>
5373
5374         * X11Dnd.cs: Implement aliases on mime handlers, so things like
5375         System.String are mapped to text.
5376         - Handle dataobjects, getting all the possible formats out of them
5377         - We dont need the drag event args before we give feedback. This
5378         allows feedback cursors to be immediate before selections have
5379         been converted.
5380
5381 2007-02-16  Jackson Harper  <jackson@ximian.com>
5382
5383         * TextBoxBase.cs: Modified the method for inserting images to
5384         taking a line and position instead of tag and position.
5385         * RichTextBox.cs: Handle PngBlip data by inserting the png image
5386         into the RTF file.
5387         * TextControl.cs: Allow images to be inserted as the first tag of
5388         a line.
5389         - Fix some off by one issues when we assume the first tag is a
5390         text tag, not an image tag.
5391
5392 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5393
5394         * ListView.cs: Set focus to ListView when ItemControl gets a
5395         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
5396         Fixes part of #80467.
5397
5398 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5399
5400         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
5401           validate Text input (if null or empty string reset Value to default
5402           value). Fixes #80830.
5403
5404 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5405
5406         * ListView.cs: Set owner as null for columns and items when
5407         Dispose is invoked. Fixes #80607.
5408
5409 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
5410
5411         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
5412         showing DropDowns, don't show a Grip when doing Flow layout.
5413         [This fixes the toolbox in PDN 2.72.]
5414         * ToolStripItem.cs: Add Anchor property and some internal properties to
5415         reduces needed changes to FlowLayout.
5416         * ToolStripOverflow.cs: Remove unused variable.
5417         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
5418         use it in the layout calculations.
5419
5420 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
5421
5422         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
5423         reported in #79640.
5424         
5425         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
5426         size calculation.
5427
5428 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
5429
5430         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
5431         MeasureString format, it can make button very large in some cases, it is
5432         strange but is what win32 do.
5433
5434 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
5435
5436         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
5437         size calculation.
5438
5439         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
5440         rendering, the value is based on MenuAccessKeysUnderlined.
5441
5442 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
5443
5444         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
5445         for most themes.
5446         
5447         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
5448         
5449         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
5450         and use MenuAccessKeysUnderlined instead.
5451
5452 2007-02-13  Andreia Gaita  <avidigal@novell.com>
5453
5454         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
5455         A selected control would not get a Focus call if:
5456                 - the default active control of the container is the same as
5457                   the one that was selected
5458                 - we are switching from one container to another
5459         Under these conditions, the container being selected already has
5460         an active_control, which is the same as the one being activated, 
5461         so set_ActiveControl would always return and not send the Focus
5462         call. Fix to check if the currently active control of the container
5463         is actually focused.
5464
5465 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
5466
5467         * StatusStrip.cs: Implement the spring layout.
5468         * ToolStripControlHost.cs: Make sure the hosted control's visibility
5469         always matches the host.
5470         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
5471         and TextAfterImage.
5472
5473 2007-02-13  Andreia Gaita  <avidigal@novell.com>
5474
5475         * Control.cs: Code reorganization only.
5476           - Reorganize the WndProc cases so that each case has it's own handling method, 
5477           to help with the no-line-numbering stack traces.
5478           - Formatting changes (it's vstudio's fault, really :p)
5479
5480 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5481
5482         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
5483           Thread.CurrentUICulture to match DateTimePicker's (and MS)
5484           behaviour.
5485
5486 2007-02-12  Jackson Harper  <jackson@ximian.com>
5487
5488         * RichTextBox.cs:
5489         * TextBox.cs: By default we have a non multiline document
5490         - use the multiline property instead of the internal variable
5491         * TextBoxBase.cs: Treat multiline and non multiline the same in
5492         most places.
5493         - Use the documents multiline flag instead of tracking it ourself
5494         * TextControl.cs: Attempt at getting multiline to match MS
5495         behavior.  Lines now track an offset, which is either their X or Y
5496         offset depending on whether or not we are in multiline mode.
5497         - Update all the methods to understand that lines have an X value.
5498         - Fix crash in Undo::Duplicate when empty lines are deleted.
5499
5500 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
5501
5502         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
5503         code moved to properties PreferredHeight and PreferredWidth. It solve the
5504         all problems when preferred sizes must be recalculated. Fixes #80801.
5505
5506 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
5507
5508         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
5509         font height when compatible_text_rendering is false. Partially fix #80801.
5510
5511 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
5512
5513         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
5514
5515 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
5516
5517         * Form.cs: Improved exception messages in ShowDialog.
5518
5519 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
5520
5521         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
5522         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
5523         if not set. Fixes bug #80764. Avoid accessing current_settings field
5524         directly.
5525
5526 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
5527
5528         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
5529         false.
5530
5531         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
5532         public in 2.0 and for easy maintenance and dont break compatibility it is 
5533         internal in 1.1.
5534         
5535 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
5536
5537         * ToolStripItem.cs: Implement using images from ImageList.
5538
5539 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5540
5541         * DateTimePicker.cs: Change default date-formatting culture from
5542           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
5543           seems to be the way MS does it.
5544
5545 2007-02-08  Andreia Gaita  <avidigal@novell.com>
5546
5547         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
5548         (the 6 was cut off on the right side)
5549
5550 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
5551
5552         * Form.cs: Tell MenuStrips to close when the form is clicked.
5553         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
5554         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
5555         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
5556         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
5557         support for Overflow, where items that do not fit are automatically
5558         reparented to a drop down menu.
5559         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
5560         Also: fixes bug #80747.
5561
5562 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5563
5564         * ComboBox.cs: Remove warning (unused code).
5565         * ScrollableControl.cs: Remove warning for 1.1 profile.
5566
5567 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5568
5569         * Form.cs: Remove a warning.
5570
5571 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5572
5573         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
5574           'g' specifier, not documented anywhere, but seems to always show up
5575           as a single space (might have something to do with the DateTime 'g'
5576           specifier, which is the era format, but since DateTimePicker can't
5577           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
5578           won't crash if the format has an unmatched quote. Now shows
5579           single-character formats correctly. Fixes #80744.
5580
5581 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
5582
5583         * StatusStrip.cs: Stretch property needs to call base.Stretch,
5584         not this.Stretch to fix stack overflow. [Fixes bug #80760]
5585
5586 2007-02-07  Chris Toshok  <toshok@ximian.com>
5587
5588         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
5589         background color.  it overwrites the background image we've
5590         already painted.  Fixes #80599.
5591
5592 2007-02-07  Chris Toshok  <toshok@ximian.com>
5593
5594         * DataGrid.cs: return immediately from Edit() when there are no
5595         columns.  Fixes #80662.
5596
5597 2007-02-07  Chris Toshok  <toshok@ximian.com>
5598
5599         * MessageBox.cs: fix #80625.  don't always show the Help button in
5600         2.0.  use the displayHelpButton parameter to determine if we
5601         should show it. Also, make the internal show_help field private.
5602
5603 2007-02-07  Chris Toshok  <toshok@ximian.com>
5604
5605         * Control.cs (SetVisibleCore): check in the proposed patch for
5606         80604, and set is_visible before calling CreateControl.
5607
5608 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
5609
5610         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
5611         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
5612         on it.
5613
5614 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
5615
5616         * MenuAPI.cs: hotkey_active internal field added, it is required because
5617         we need to know when hotkeys must be draw, before this change a keystate
5618         Navigating was used but we can have menu in navigating state without
5619         hotkeys. Fixes #80694.
5620         
5621         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
5622
5623 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5624
5625         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
5626           corresponding events and methods to be internal for 1.1 profile and
5627           public for 2.0 profile (required by SizeGrip).
5628         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
5629           implicit control list). Don't set the size nor the location of the
5630           SizeGrip anymore as it's not needed.
5631         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
5632           draw directly on the captured control (fixes #80656). Removed
5633           ShowGrip (it wasn't used anywhere), redraw (always true), added
5634           GetDefaultSize and GetDefaultRectangle to calculate defaults.
5635         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
5636           be called from SizeGrip.
5637
5638 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5639
5640         * Timer.cs: Throw ArgumentException if Interval <= 0.
5641
5642 2007-02-05  Jackson Harper  <jackson@ximian.com>
5643
5644         * TreeView.cs: We need to check scrollbar visibility when window
5645         visibility is updated, because non visible trees don't ever add
5646         scrollbars.
5647         * Cursor.cs: We want the override cursor to be reset to NULL when
5648         we set current cursor to the default cursor.
5649
5650 2007-02-05  Jackson Harper  <jackson@ximian.com>
5651
5652         * TextControl.cs: Don't have crlfs when we are non multiline.
5653         - Consolidate the line position.
5654
5655 2007-02-05  Jackson Harper  <jackson@ximian.com>
5656
5657         * X11Keyboard.cs: BACK+CTRL gets a special char code.
5658
5659 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5660
5661         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
5662           handling LeaveNotify->NotifyUngrab in order to send
5663           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
5664           after calling XUngrabPointer, so we call WindowUngrabbed directly
5665           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
5666         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
5667           MouseCaptureChanged correctly. Also create handles if changing
5668           Capture (matches MS behaviour).
5669
5670 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5671
5672         * SizeGrip.cs: Make the last change 2.0 only.
5673
5674 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5675
5676         * SizeGrip.cs: If resizing and the capture is lost, revert any size
5677           changes to initial size (fixes #80597).
5678
5679 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5680
5681         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
5682
5683 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
5684
5685         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
5686           background) and only allow dragging if enabled. This way the
5687           sizegrip can be used to fill the open square that otherwise would
5688           have been shown in the bottom right corner of ScrollableControl
5689           when ScrollableControl is not suppose to support sizing.
5690         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
5691           sizegrip is shown and enabled, and hook up with necessary events.
5692
5693 2007-02-01  Chris Toshok  <toshok@ximian.com>
5694
5695         * DataGridTextBoxColumn.cs: clean up the
5696         GetFormattedString/GetColumnValueAtRow combination of functions.
5697         Also fix UpdateUI, and the initial state of
5698         IsInEditOrNavigateMode.
5699
5700         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
5701         aren't supposed to scroll the textbox here, we're supposed to
5702         scroll the datagrid.
5703
5704 2007-02-01  Chris Toshok  <toshok@ximian.com>
5705
5706         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
5707         setting the position.
5708
5709 2007-02-01  Chris Toshok  <toshok@ximian.com>
5710
5711         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
5712         here, since the most recent focus fixes keep us from generating
5713         the Leave event when our textbox gets focus.
5714         (Edit): we should be passing null for the column style's
5715         instantText parameter.
5716         
5717 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
5718
5719         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
5720         raised.  Fixes menu text/icons not showing up in PDN.
5721
5722 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5723
5724         * Control.cs: Remove code in constructor that makes every
5725         control with WS_CHILD set have initial location -1, -1.
5726
5727 2007-01-31  Jackson Harper  <jackson@ximian.com>
5728
5729         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
5730         XplatUIX11.
5731         * XplatUIX11.cs: Give teh keyboard to teh dnd.
5732
5733 2007-01-31  Jackson Harper  <jackson@ximian.com>
5734
5735         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
5736         - Remove some debug code.
5737
5738 2007-01-31  Jackson Harper  <jackson@ximian.com>
5739
5740         * XplatUIX11.cs: If you set the override cursor during a grab, it
5741         should actually override the grab cursor.  This comes into play
5742         when you are setting custom cursors in a DND feedback method.
5743
5744 2007-01-31  Jackson Harper  <jackson@ximian.com>
5745
5746         * X11Dnd.cs: Add support for handling the QueryContinue and
5747         GiveFeedback events.
5748         - Cancel drag and drop actions when the escape key is clicked.
5749         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
5750         can handle the ESCAPE key.
5751         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
5752         done when dnd events are continued after the button is released.
5753         - Add a new helper method so that dnd can translate key events.
5754
5755 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
5756
5757         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
5758         make it more obvious what is happening.
5759
5760 2007-01-30  Jackson Harper  <jackson@ximian.com>
5761
5762         * XplatUIX11.cs: Don't break when handling button release in drag
5763         and drop operations. We need that BUTTONUP message to get through
5764         so capture is released.
5765         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
5766         this is handled automatically when the mouse is down.
5767
5768 2007-01-30  Jackson Harper  <jackson@ximian.com>
5769
5770         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
5771         is closed, so we need to make sure that we aren't changing the
5772         dialog result when the OK (Open or Save) button has been clicked
5773         and we are closing the window ourselves.  Note we don't need to
5774         worry about the cache being written in this case, because it was
5775         already done in the previous FilOk call.
5776
5777 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5778         
5779         * DateTimePicker.cs: Remove a warning.
5780         * ComboBox.cs: Remove a couple of warnings.
5781
5782 2007-01-29  Chris Toshok  <toshok@ximian.com>
5783
5784         * XplatUIX11.cs: don't crash, and remove the icon if the user has
5785         set one, if SetIcon is passed a null icon.
5786
5787 2007-01-29  Andreia Gaita  <avidigal@novell.com>
5788
5789         * TextBox.cs: Redraw when the password characters changes
5790         * TextControl.cs: Check if textbox has a password char and draw 
5791         a line of password chars instead of the text in the line. LineTag gets 
5792         an extra Draw() method which allows document.Draw to override the text 
5793         that will be drawn. Removes 1024 char limitation on length of passworded 
5794         lines.
5795
5796 2007-01-29  Jackson Harper  <jackson@ximian.com>
5797
5798         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
5799         single chars is not.
5800
5801 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
5802
5803         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
5804         one pixel.  Fix a StackOverflowException caused by an overload wrongly
5805         calling itself.
5806
5807 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
5808
5809         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
5810         also remove ProcessArrowKey and put the code inside ProcessKeys.
5811
5812 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
5813
5814         * PaddingConverter.cs: Added.
5815
5816 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5817         
5818         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
5819         ShowPanels is false (fixes #80600). Only draw up to 127 characters
5820         of text (fixes #80601). For panels clip the text to draw to the
5821         panel (fixes #80603).
5822
5823 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5824
5825         * ComboBox.cs: Fixed implementation of ResetText.
5826
5827 2007-01-25  Jackson Harper  <jackson@ximian.com>
5828
5829         * TextControl.cs: For the last char of a line we need to use the
5830         line size, not that chars width, since it won't actually be
5831         computed since the right side of a char is based on the start of
5832         the left side of the next char, and the next char does not exist.
5833
5834 2007-01-25  Chris Toshok  <toshok@ximian.com>
5835
5836         * Splitter.cs: fix the new unit tests, and reindent some switch
5837         statements.
5838
5839 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5840
5841         * ComboBox.cs: Implemented 2.0 methods and events.
5842         * TextBoxBase.cs: Added OnTextUpdate, so that
5843         ComboBox.ComboTextBox can inform ComboBox of it.
5844
5845 2007-01-25  Jackson Harper  <jackson@ximian.com>
5846
5847         * TextControl.cs: Respect ShowSelection when deciding whether or
5848         not to display the caret, this allows comboboxes to have carets
5849         when the combotextbox does not have focus.
5850
5851 2007-01-25  Jackson Harper  <jackson@ximian.com>
5852
5853         * TextControl.cs: Add a Suspend/Resume for updating, basically the
5854         same as the Suspend/Resume for recalc, except this will do actual
5855         Invalidates.
5856         - New Undo manager, works much like the MS version.
5857         - Implemented Redo
5858         * TextBoxBase.cs: The Cut operation is undoable.
5859
5860 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5861         
5862         * TextBoxBase.cs: Don't antialias text. Makes it look way better
5863         on Windows (no difference on Linux).    
5864
5865 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5866
5867         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
5868         we don't want to activate any windows. Fixes #79433.
5869
5870 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
5871
5872         - ButtonBase.cs: Fix capitalization of parameter: disposing.
5873         [Fixes bug #80609]
5874
5875 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
5876
5877         * FileDialog.cs:
5878         - Move to using System.ComponentModel.EventHandlerList
5879         - Replace Refresh with Invalidate
5880         - Clear the mime filecache on closing
5881         - Some other memory reducing work. After beeing closed FD now uses
5882           only about 300 KB for the fdo mime stuff plus the memory of the
5883           cached icons.
5884         * Mime.cs: Changed coding style and removed unnecessary commented
5885         code. Some more memory memory reducing work.
5886
5887 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5888
5889         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
5890         a few other missing 2.0 properties.
5891         * Theme.cs: Added DrawFlatStyleComboBox.
5892         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
5893
5894 2007-01-24  Chris Toshok  <toshok@ximian.com>
5895
5896         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
5897         wake_waiting flag, not just when there's data to be read.  if we
5898         don't, then future wakeup's won't reach us and we'll be doomed to
5899         wait for the entire 1 second timeout forever (unless there are X
5900         events to be had).
5901
5902 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
5903
5904         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
5905         until you pass Items.Count, not Items.Count - 1 like 1.1.
5906
5907 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
5908
5909         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
5910
5911 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
5912
5913         * ToolStripContainer.cs: The recent Dock fix exposed that I was
5914         adding the panels in the wrong order.
5915
5916 2007-01-24  Jackson Harper  <jackson@ximian.com>
5917
5918         * TextBoxBase.cs: When we move the caret we also need to move the
5919         selection, this fixes some random crashing after doing select
5920         text, unselect, delete a char, paste.
5921
5922 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5923
5924         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
5925
5926 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
5927
5928         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
5929         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
5930         * ToolBar.cs: Force redraw in BackgroundImageChanged.
5931
5932 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
5933
5934         * ToolBar.cs:
5935         - Implement support for vertical toolbars. Fixes #80539;
5936         - Call LayoutToolBar when resize, it fix some other problems in layout.
5937         - Rename requested_height to requested_size, as we can have width on it
5938         when toolbar is vertical.
5939         - Create a private property "Vertical" that uses Dock to verify when 
5940         toolbar is vertical or not.
5941         - Set ControlStyles when change Dock property.
5942         - Refactory in LayoutToolBar to have better variables names and to support
5943         vertical toolbars.
5944         - Fixes default value for ButtonSize when button count is equal zero, size
5945         must be (39, 36) test case writed.
5946
5947 2007-01-23  Chris Toshok  <toshok@ximian.com>
5948
5949         * Control.cs: fix the checks so that they work correctly for mdi
5950         parents/children.
5951
5952 2007-01-23  Chris Toshok  <toshok@ximian.com>
5953
5954         * Control.cs: ControlCollection seems to have super-secret
5955         abstraction breaking knowledge of Mdi containers.  allow MdiClient
5956         to add toplevel controls.
5957
5958 2007-01-23  Chris Toshok  <toshok@ximian.com>
5959
5960         * Control.cs: throw an ArgumentException if a toplevel control is
5961         added to our control collection from ControlCollection.Add, as
5962         well as from ControlCollection.IList.Add.  This fixes the
5963         ControlSetTopLevelTest.TestTopLevelAdd unit test.
5964
5965         Also, in ControlCollection.IList.Add, don't through an
5966         ArgumentNullException, throw an ArgumentException, when value ==
5967         null.  This matches MS.
5968
5969 2007-01-23  Chris Toshok  <toshok@ximian.com>
5970
5971         * BindingSource.cs: initial, incomplete, implementation of
5972         BindingSource.
5973
5974 2007-01-23  Jackson Harper  <jackson@ximian.com>
5975
5976         * TextControl.cs:
5977         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
5978         that I can fix a broken unit test (TextBoxTest::ClearUndo)
5979         
5980 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
5981
5982         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
5983
5984 2007-01-23  Andreia Gaita  <avidigal@novell.com>
5985
5986         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
5987         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
5988         IndexOfKey() for 2.0
5989
5990 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5991
5992         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
5993         to prevent it from changing z-order.
5994         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
5995         leave UI updates in MdiWindowManager.
5996         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
5997         1 sized (NC handling goes weird on Linux otherwise).
5998         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
5999         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
6000         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
6001         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
6002         and SetWindowState(s) to allow for changing the size of an activated child
6003         before activating it (reduces a lot of flicker).
6004
6005 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
6006
6007         * Form.cs: Changing FormBorderStyle has different semantics based
6008         on whether the Form is visible or not.  If not visible, don't change
6009         the Size.  But InvalidateNC needs to be called to force the window
6010         to pick up the changes and redraw itself.  [Fixes bug #80574]
6011
6012 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
6013
6014         [Moma work]
6015         * ContainerControl.cs: ProcessCmdKey.
6016         * ErrorProvider.cs: new constructor.
6017         * Form.cs: fix AutoValidateEvent compiler warning.
6018         * Label.cs: fix OnAutoSizeChanged compiler warning.
6019         * MenuStrip.cs: fix CanOverflow compiler warning.
6020         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
6021         * TextBox.cs: Dispose.
6022         * ToolStrip.cs: CanOverflow, re-enable double buffering.
6023         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
6024         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
6025         * ToolStripItem.cs: Overflow, RightToLeft properties.
6026
6027 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6028
6029         * Form.cs: Move the layout of the main form to MdiWindowManager.
6030         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
6031         do a layout of the main window to update MdiClient's client area to
6032         the right area. Fixes #80533. Remove the calculation of nc size, 
6033         it was just wrong and the correct one is the same as for 
6034         InternalWindowManager. 
6035
6036 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
6037
6038         * Control.cs: Setting Anchor or Dock needs to reset the other
6039         to its default.  [Fixes bug #80556]
6040
6041 2007-01-20  Chris Toshok  <toshok@ximian.com>
6042
6043         * CheckedListBox.cs: class status changes.
6044
6045         * ScrollableControl.cs: same.
6046
6047         * RichTextBox.cs: same.
6048
6049         * ContainerControl.cs: same.
6050
6051         * ListView.cs: same.
6052
6053         * NotifyIcon.cs: same.
6054
6055         * MenuStrip.cs: same.
6056
6057         * RadioButton.cs: same.
6058
6059         * CheckBox.cs: same.
6060
6061         * PrintPreviewDialog.cs: same.
6062
6063         * Form.cs: same.
6064
6065 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
6066
6067         * TreeNode.cs: Apply Alan's patch for Name property.
6068
6069 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6070         
6071         * Form.cs: Implemented SizeGripStyle.
6072         * SizeGrip.cs: Check for minimum and maximum size for the
6073         control being resized and only resize if size has actually
6074         changed.
6075
6076 2007-01-19  Chris Toshok  <toshok@ximian.com>
6077
6078         * DataGridColumnStyle.cs: stop setting _readonly in the
6079         PropertyDescriptor setter.  fixes a unit test failure.
6080
6081         also, rename ParentReadOnly to TableStyleReadOnly, and have it
6082         just consult our table style (if we have one).  We don't need to
6083         consult the datagrid readonly attribute because that's passed in
6084         as the _ro arg to Edit.  this simplifies things a little.
6085         
6086         * DataGrid.cs: use CurrentColumn instead of
6087         current_cell.ColumnNumber just to simplify some of the code.
6088
6089         switch the order of some things in the CurrentCell setter to keep
6090         the previous cell from getting a textbox again -
6091         EnsureCellVisibility causes scrolling to happen, which calls Edit.
6092         So we need to set the new cell before calling it.
6093         
6094         call Edit in OnEnter, as does Microsoft.
6095         
6096         also, make sure the current table style isn't the one we create
6097         initially when checking to see if it's different than the one
6098         we're setting it to in BindColumns (this fixes #80421).
6099
6100         * GridTableStylesCollection.cs: table styles can have "" for a
6101         mapping name.  part of the fix for #80421.
6102
6103         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
6104         Edit significantly.
6105
6106 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6107
6108         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
6109         and less GDI object leaky-er.
6110
6111 2007-01-18  Andreia Gaita  <avidigal@novell.com>
6112
6113         * LinkLabel.cs: Add opaque control style
6114
6115 2007-01-18  Jackson Harper  <jackson@ximian.com>
6116
6117         * TextControl.cs: Calculate width properly.
6118         - Don't store the tag's X offset, this can be figured out very
6119         easily.
6120         - When getting the caret tag make sure to get the last empty tag.
6121
6122 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6123
6124         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
6125         [Fixes bug #79959]
6126
6127         * Control.cs: Color.Empty shouldn't count for previous transparent
6128         redraw changes.
6129
6130 2007-01-18  Jackson Harper  <jackson@ximian.com>
6131
6132         * TextBox.cs:
6133         * RichTextBox.cs:
6134         * TextControl.cs: Starting to merge in some pieces of my older
6135         undo work.  Basically just some slight cleanup of the undo API.
6136
6137 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6138
6139         * TrackBar.cs: Fix signature of RightToLeftLayout.
6140         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
6141         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
6142         * Application.cs: Implemented UseWaitCursor.
6143
6144 2007-01-18  Jackson Harper  <jackson@ximian.com>
6145
6146         * TextControl.cs: We can't skip tags if any part of the tag is
6147         visible.
6148
6149 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6150
6151         * ContainerControl.cs: Override OnLayout.
6152
6153 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6154
6155         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
6156
6157         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
6158         everything else.
6159
6160 2007-01-18  Chris Toshok  <toshok@ximian.com>
6161
6162         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
6163         (leftover from the container_selected days, I'd wager).  fixes bug
6164         #80546.
6165
6166 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6167
6168         * Control.cs: Apply patch from George to fix the new testcase on
6169         bug #80451.  We can't just check for Color.Transparent, we need 
6170         to check if the back color's alpha channel is < 255.
6171
6172 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
6173
6174         * Form.cs: Move setting show_icon = true to before the constructor
6175         so that the base constructor has that information when it calculates
6176         the form's size.  Was causing forms to be (6, 6) bigger than they
6177         were supposed to be.  Thanks for catching this Rolf!
6178
6179 2007-01-18  Jackson Harper  <jackson@ximian.com>
6180
6181         * TextControl.cs: When replacing a selection we need to invalidate
6182         from the initial selection start, because selection start is moved
6183         to the end of the replacement.
6184
6185 2007-01-18  Andreia Gaita  <avidigal@novell.com>
6186
6187         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
6188
6189 2007-01-18  Chris Toshok  <toshok@ximian.com>
6190
6191         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
6192         I just added.
6193
6194 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
6195
6196         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
6197         layout methods and properties from ToolBarButton must be available
6198         into ToolBarButtonInfo.
6199
6200 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
6201
6202         * Control.cs: If the control has a transparent background, we
6203         need to refresh it when it moves and when it's parent's background
6204         image changes.  [Fixes bug #80451]
6205
6206 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
6207
6208         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
6209
6210 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
6211
6212         * XplatUIWin32.cs: Implement proper double buffering for Windows.
6213         [Fixes bug #80447, and probably speeds up things as well]
6214
6215 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6216
6217         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
6218         * XplatUIWin32.cs: We need to recalculate NC size after changing 
6219         window style to toolwindow (otherwise the client rectangle will be
6220         3 pixels to small for some reason).
6221         * MdiWindowManager.cs: Revert NC size calculations to match how
6222         they are calculated only based on window styles (to match
6223         Win32AdjustWindowRectEx, since otherwise when setting size or 
6224         location, Control will call Win32AdjustWindowRectEx to update client 
6225         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
6226         calculate a different value of client size causing another paint 
6227         (and flickering))
6228         * InternalWindowManager.cs: When moving or resizing a window only
6229         update size or location if they actually changed.
6230         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
6231         (seems to match Windows behaviour better). Cleaned up 
6232         ManagedWindowDecorations to draw what's needed and nothing else
6233         (was drawing borders and lines where they shouldn't be)
6234         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
6235         (style = 0xFFFF) and takes into account caption height when 
6236         calculating window rectangle.   
6237
6238 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
6239
6240         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
6241         can be added to toolbar multiple times, we need to maintain a list of 
6242         button information for each positions.
6243
6244 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
6245
6246         * ToolBar.cs: Some small stetic changes.
6247
6248 2007-01-16  Jackson Harper  <jackson@ximian.com>
6249
6250         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
6251         that allow us to have nested recalc = false blocks.
6252         - Add paste support for images in the RichTextBox
6253         * RichTextBox.cs: flush the text after the color is changed, so
6254         the change takes effect.
6255         - Use SuspendRecalc
6256         - Some extra debugging info
6257         * TextControl.cs: Tags no longer track their length, it is just
6258         computed from the next tags length, this makes things a little
6259         simpler and reduces places that we have to track length changes.
6260         - Refactored the linetag class a little so we could make it
6261         a base class for different kinds of tags
6262         - Created a image tag, a tag that can have a single image inserted
6263         into it
6264         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
6265         that we can call suspend multiple times.
6266         - Add some debugging methods
6267
6268 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6269
6270         * MdiClient.cs: Add ActivatePreviousChild for 
6271         mdi child window navigation.
6272         * Form.cs: Use MdiClient.ActivateNextChild/
6273         ActivatePreviousChild instead of Form.SelectNextControl
6274         to select the next/previous child since 
6275         SelectNextControl doesn't do it in the same order
6276         as mdi children should do it.
6277
6278 2007-01-16  Chris Toshok  <toshok@ximian.com>
6279
6280         * Control.cs: remove container_selected field.
6281
6282 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6283
6284         * MdiClient.cs: Update main form's ActiveChild when
6285         updating keyboard focus for the mdi child.
6286
6287 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
6288
6289         * Control.cs: PreferredSize fix.
6290
6291         * Form.cs: Add several 2.0 events, properties, and methods.
6292
6293 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
6294
6295         * Form.cs: Provide meaningful message when MdiParent is assigned a
6296         Form that is not an MdiContainer.
6297
6298 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6299
6300         * MdiClient.cs: Update main form's ActiveChild when
6301         activating a mdi child.
6302
6303 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6304
6305         * MdiWindowManager.cs: Fix NRE when merging menus and main form
6306         doesn't have a menu.
6307
6308         * Form.cs: Request NCRecalc after creating a mdi child window.
6309         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
6310         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
6311         
6312         * MdiClient.cs: Add new method SendFocusToActiveChild that either
6313         sends keyboard focus to the active child, or to the MdiClient
6314         if there are no child forms.
6315         
6316 2007-01-15  Chris Toshok  <toshok@ximian.com>
6317
6318         * ListView.cs: drop the *Internal overrides, just do our work in
6319         ItemControl's WndProc instead.
6320
6321         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
6322         of the various controls, and forward the events properly (in the
6323         same manner as MS) from the textbox to the UpDown.  Also the
6324         ActiveControl of the UpDownBase gets set properly now.  Finally,
6325         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
6326
6327         * NumericUpDown.cs: set Text in the ctor.
6328
6329         * DomainUpDown.cs: call UpdateEditText in the ctor.
6330         
6331         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
6332         so even a Selectable = false textbox can be focused if you click
6333         in it.  Go figure.
6334
6335         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
6336         just add their handling in their respective WndProc's.  Also add
6337         an explicit FocusInternal method that doesn't consult CanFocus
6338         before calling Select(this).
6339
6340         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
6341         do our work in WndProc instead.
6342
6343         * TabControl.cs: same.
6344
6345         * ComboBox.cs: same.
6346
6347 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
6348
6349         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
6350         Fixes #80006.
6351
6352 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
6353
6354         * ListViewItem.cs:
6355         * ThemeWin32Classic.cs: Don't draw the item text outside
6356         item bounds in Details view, as well as use trimming.
6357         Fixes bug #80376.
6358
6359 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
6360
6361         * Form.cs: Implement Form.ShowIcon.
6362         
6363         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
6364         null, which when combined with the DlgModalFrame window style removes
6365         the icon from the title bar.
6366
6367 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
6368
6369         * Control.cs: Call OnMouseClick after OnClick. (2.0)
6370
6371 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
6372
6373         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
6374         menu when mdi child windows theres a menu, uses insert to get icon
6375         at first position. Partially fix #80006.
6376
6377 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
6378
6379         * Clipboard.cs: Implement 2.0 methods.
6380
6381 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
6382
6383         * Menu.cs: Implement Insert method of MenuItemCollection class
6384         to fix MenuMerge.
6385
6386 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6387
6388         * ListView.cs: Implement 2.0 FindItemWithText method.
6389
6390 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
6391
6392         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
6393         to calculate menu bar size. Fixes #80290.
6394
6395 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
6396
6397         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
6398
6399 2007-01-11  Chris Toshok  <toshok@ximian.com>
6400
6401         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
6402         initial form.
6403
6404 2007-01-11  Chris Toshok  <toshok@ximian.com>
6405
6406         * LinkLabel.cs: make sure to call base.Select in our Select method
6407         if it turns out we're going to be selected (i.e. if we have a link
6408         that is going to receive focus).  That way our container's
6409         ActiveControl is updated properly.
6410
6411 2007-01-11  Chris Toshok  <toshok@ximian.com>
6412
6413         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
6414         they have 1 or more links.  this fixes the crash gert reported.
6415
6416 2007-01-11  Andreia Gaita  <avidigal@novell.com>
6417
6418         * ContainerControl.cs: Remove ContainerSelected flag, not needed
6419         anymore.
6420
6421         * Control.cs (Controls.Add): Check if control to be added to the collection
6422         is a top level control, and throw an ArgumentException if it is.
6423         Remove ContainerSelectedFlag, not needed anymore.
6424
6425         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
6426         top most control doesn't activate the form. This fixes a problem in the
6427         MessageBox, where the default button wouldn't get focus because the form
6428         was activated before being Loaded - when the Owner is set, SetTopMost is
6429         called, and it would activate it.
6430
6431 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
6432
6433         * Button.cs: When clicked and setting the parent form's DialogResult,
6434         use FindForm instead of Parent, since parent could be a container
6435         control and not the Form.  Fixes bug #80495.
6436
6437 2007-01-10  Chris Toshok  <toshok@ximian.com>
6438
6439         * Form.cs: move the call to SendControlFocus into the same
6440         is_loaded check.
6441
6442 2007-01-10  Chris Toshok  <toshok@ximian.com>
6443
6444         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
6445         It breaks in the face of the new ActiveControl stuff, and should
6446         be unnecessary.
6447
6448         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
6449         activecontrol's focus if it's not already set, after we set
6450         ActiveControl, but before we call OnActivated.  Re-fixes #79667
6451         after the previous focus/active control fixes regressed it.
6452
6453         * Control.cs: reindent some code.
6454         
6455 2007-01-10  Chris Toshok  <toshok@ximian.com>
6456
6457         * Splitter.cs: clearing some outstanding changes from my tree.
6458         Replace all accesses (not writes) to the internal dock_style field
6459         with the Dock property.
6460
6461 2007-01-10  Chris Toshok  <toshok@ximian.com>
6462
6463         * Control.cs: make FireEnter, FireLeave, FireValidating, and
6464         FireValidated virtual.
6465
6466         * Form.cs: override and don't chain up calls to FireEnter and
6467         FireLeave.
6468
6469 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6470
6471         * ListView.cs: Add more text padding space when using
6472         auto resize for columns (the previous value didn't work fine).
6473
6474         * ThemeWin32Classic.cs: Update text position inside columns,
6475         to match the appeareance of .Net.
6476
6477         * ColumnHeader.cs: When using auto resize, only the Width should
6478         depend on the sub items, not the Height. Also, set width after
6479         auto resizing (the value of Width should never remain as -1 or -2).
6480
6481 2007-01-10  Chris Toshok  <toshok@ximian.com>
6482
6483         * Application.cs: fix compilation errors when debug is enabled.
6484
6485 2007-01-10  Chris Toshok  <toshok@ximian.com>
6486
6487         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
6488         add some nice ascii art pictures and explanation of the process).
6489         (GetMostDeeplyNestedActiveControl): new utility function we need
6490         because our ActiveControl can refer to a child container with its
6491         own ActiveControl.
6492
6493         * Form.cs (OnActivated): remove the call to SelectActiveControl
6494         from here, since you can override this method and not chain up,
6495         and winforms still sets the active control.
6496         (OnCreateControl): also remove the unnecessary SelectActiveControl
6497         call from here.
6498         (WndProc): it's actually called from the WM_ACTIVATE block, just
6499         before calling OnActivated.
6500
6501         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
6502         inside the else.  the ActiveControl setter will end up setting
6503         focus on @control.  This keeps us from setting it again (and
6504         generating an extra LostFocus/GotFocus pair).
6505         (Select (bool, bool)): reindent.
6506
6507 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
6508
6509         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
6510         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
6511         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
6512         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
6513         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
6514         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
6515         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
6516         ToolStripTextBox.cs: Another wave of corcompare work.
6517
6518 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6519
6520         * ColumnHeader.cs: Implement 2.0 AutoResize method using
6521         the Width property.
6522
6523         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
6524         methods by callling Column.AutoResize method on columns.
6525
6526 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
6527
6528         * Control.cs: Provide proper implementations of PreferredSize
6529         and GetPreferredSize (2.0).
6530
6531 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
6532
6533         * Form.cs: Remove one character (!) to make my previous OnClosing
6534         stuff work for modal windows like MessageBox.
6535
6536 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6537
6538         * ListView.cs:
6539         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
6540         ListView.Columns to get the last displayed column. Fixes #80452.
6541
6542 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
6543
6544         * Label.cs, LinkLabel.cs: Source code identation fixes.
6545
6546 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
6547
6548         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
6549         we dont need to invalidate only borders because when we invalidate four
6550         border lines the invalidate's generates a complete redraw of button, 
6551         because it now invalidate a complete rect some other redraws operations
6552         are fixed. Fixes #80196.
6553         
6554         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
6555         Remove ToolBarInvalidateEntireButton as it is not used.
6556
6557 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
6558         
6559         * Form.cs: Make sure that both OnClosing and OnFormClosing are
6560         called for 2.0 profile.
6561         * CloseReason.cs: Make class internal for 1.1.
6562
6563 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
6564
6565         * ToolStripManager.cs: Implement FindToolStrip functionality.
6566         * ToolStrip.cs: Register and unregister with ToolStripManager.
6567
6568 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
6569
6570         * Control.cs: This was messy.  2.0 moves much of ControlCollection
6571         to ArrangedElementCollection.  Implemented this with as few #if's as 
6572         possible (which is still too many).
6573
6574 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
6575
6576         * Control.cs: Implement SizeFromClientSize() [2.0].
6577
6578 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
6579
6580         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
6581         use Theme.BorderSize to calculate area instead of static value 1, 
6582         by the way use new BorderStaticSize instead     Border3DSize when 
6583         border_static is true. Fixes #79537.
6584         
6585         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
6586         
6587         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
6588         it is not needed.
6589
6590 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
6591
6592         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
6593
6594 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
6595
6596         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
6597         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
6598         
6599         * Hwnd.cs: 
6600         - border_static field added, it will used to define when a control 
6601         theres 3D border but it must be static (thin).
6602         - In GetWindowRectangle use Theme.BorderSize to calculate area 
6603         instead of static value 1, by the way use new BorderStaticSize instead
6604         Border3DSize when border_static is true.
6605
6606         * XplatUIX11.cs, XplatUIOSX.cs: 
6607         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
6608         
6609         * Theme.cs: BorderStaticSize field added.
6610
6611 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
6612
6613         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
6614
6615 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
6616
6617         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
6618         mimic same behavior than win32 that set border only in CreateParams,
6619         it fix problems under CreateParams overrides. Fix #79442 and partial
6620         fix #79537.
6621         
6622         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
6623         of thi control you must call recreate handle. 
6624         
6625         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
6626         need to do anything as RecreateHangle will take care about borders.
6627
6628 2007-01-05  Mike Kestner  <mkestner@novell.com>
6629
6630         * ListView.cs: hack to eliminate Lost/Got focus notifications on
6631         cycles between the ItemControl and parent.  Fixes #80388.
6632
6633 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
6634
6635         * Control.cs: Lazy init layout engine. Do not directly use 
6636         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
6637
6638 2007-01-05  Chris Toshok  <toshok@ximian.com>
6639
6640         * DataGrid.cs: don't forceably rebind columns in SetDataSource
6641         unless our list manager has changed (i.e. unless we have reason to
6642         believe our columns have changed).  Fixes #80422.
6643         
6644         also, disable the call do BindColumns in
6645         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
6646         1.1 the event isn't raised in response to a column addition on a
6647         table.)
6648
6649 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
6650
6651         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
6652         that inheritors can not call it if they choose.  Fixes bug #80456.
6653
6654 2007-01-05  Andreia Gaita  <avidigal@novell.com>
6655
6656         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
6657         doesn't blow up with a null exception on marshalling.
6658         
6659 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
6660
6661         * Control.cs: Implement several 2.0 protected properties and methods.
6662         Ensure that all necessary events are being called when properties
6663         are set.
6664
6665 2007-01-05  Mike Kestner  <mkestner@novell.com>
6666
6667         * ListView.cs: implement PgUp/PgDn for Details view.  Also
6668         fixes First/LastVisibleIndex to use the item_control.ClientRect 
6669         instead of the parent control.  Fixes #80378.
6670
6671 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
6672
6673         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
6674           determine whether to use yard-pound or not (bug #78399).
6675
6676 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
6677
6678         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
6679         problems. So it is time to bring back the old popupbutton colors.
6680
6681 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6682
6683         * ColumnHeader.cs:
6684         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
6685         property by using the internal information of the
6686         columns order in ListView.
6687
6688 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
6689
6690         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
6691         Add 2.0 Tag properties.
6692
6693         * LinkArea.cs: Add 2.0 ToString method.
6694
6695 2007-01-03  Chris Toshok  <toshok@ximian.com>
6696
6697         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
6698         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
6699         when we're editing, which fixes #80047.
6700
6701 2007-01-03  Chris Toshok  <toshok@ximian.com>
6702
6703         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
6704         #80404.
6705
6706 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
6707
6708         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
6709         property and implementation.
6710
6711         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
6712         for MdiWindowListItem property.
6713
6714         * ToolStripDropDown.cs: Don't consider hidden menu items while
6715         laying out the menu.
6716
6717 2007-01-03  Andreia Gaita  <avidigal@novell.com>
6718
6719         * SendKeys.cs: window handle is not needed in win32, so just
6720         get the active window for X after parsing keys and don't use
6721         it when building the message; it is passed by parameter to the 
6722         Xplat method and used there to build the message instead. Also,
6723         wait for events to be processed on SendWait, as opposed to Send,
6724         which doesn't wait :) Playing with threads and Send() completely 
6725         hangs on ms.net, only SendWait() works.
6726         
6727         XplatUIX11.cs
6728         X11Display.cs: Check for valid window handle.
6729
6730 2007-01-03  Jackson Harper  <jackson@ximian.com>
6731
6732         * TextControl.cs: Need to prevent wrap calculations when replacing
6733         text (this was there before i removed it accidently).
6734         - Don't update the cursor during the positioning, just set it to
6735         selection_start at the end of the operaion.
6736
6737 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6738
6739         * Control.cs:
6740         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
6741         
6742 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6743
6744         * MonthCalendar.cs: Added Click and DoubleClick events again,
6745         but this time they only hide Control's Click and DoubleClick.
6746         
6747 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
6748
6749         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
6750         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
6751
6752 2007-01-02  Jackson Harper  <jackson@ximian.com>
6753
6754         * TextBoxBase.cs: We move the caret with the split now, so we
6755         don't need to explicitly move the caret after splitting.  This
6756         fixes the caret bumping down an extra line on Enter.
6757
6758 2007-01-02  Miguel de Icaza  <miguel@novell.com>
6759
6760         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
6761         2.72). 
6762
6763         * ScrollableControl.cs: Add Scroll event.
6764
6765 2007-01-02  Mike Kestner  <mkestner@novell.com>
6766
6767         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
6768         to fix all hdr height padding codepaths.  Fixes #80207.
6769
6770 2007-01-02  Chris Toshok  <toshok@ximian.com>
6771
6772         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
6773         setting it to the Control defaults anyway, and it being after the
6774         Dock set was screwing up layout.
6775         (set_Dock): don't short circuit out of setting base.Dock.  Also,
6776         no need to call UpdateStatusBar here, as it'll be re-layed out if
6777         it needs to be.
6778
6779 2007-01-02  Mike Kestner  <mkestner@novell.com>
6780
6781         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
6782         to header height for width == -1. Fixes the rest of #80207.
6783
6784 2007-01-02  Mike Kestner  <mkestner@novell.com>
6785
6786         * ListView.cs: rework the mouse event forwarding everaldo added
6787         to translate the coordinates to the parent control not
6788         raise the parent events until after we've done our work. Hover
6789         needs more work, in the case where HoverSelection is on, because
6790         the item control receives more than one MouseHover per Enter
6791         event, so we need to ensure only the "first" hover gets forwarded.
6792         Opening a minor bug for that.
6793
6794 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
6795
6796         * CheckedListBox.cs: Fixed SelectionMode to match MS.
6797         * ListControl.cs: Implemented AllowSelection property. Removed extra
6798         tabs.
6799         * ListBox.cs: Implemented AllowSelection property.
6800
6801 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
6802
6803         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
6804         SelectedItem, it prevent for errors when you must disable item
6805         before perform click. Fixes #80409.
6806
6807 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
6808
6809         * MenuAPI.cs: Prevent second level and beyond submenus to close
6810         until first level when move out side of popup.
6811         
6812 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
6813
6814         * MenuAPI.cs:
6815         - Down submenu positin in three pixels.
6816         - Closes sub menu when mouse leaves from menu. Fixes #80402.
6817
6818 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
6819
6820         * ThemeWin32Classic.cs:
6821         - Fix popup menu size adding one pixel on the top.
6822         - Down menu item border from two to one to mimic Win32.
6823         - Some source identation fixes. 
6824
6825 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
6826
6827         * ThemeWin32Classic.cs: Use float numbers to calculate size and
6828         position of menu arrows, it fix wrong arrow size.
6829
6830 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
6831
6832         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
6833         instead of line, it simplify draw operation and fix it using 3D
6834         borders to mimic Win32.
6835
6836 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
6837
6838         * StatusStrip.cs: Add implementation of the sizing grip.
6839
6840         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
6841         StatusStrip rendering.
6842
6843 2006-12-31  Chris Toshok  <toshok@ximian.com>
6844
6845         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
6846         override the layout style (anchor/dock) of the control.  assign to
6847         Dock instead.  Fixes bug #80416.
6848
6849         * ToolStrip.cs: same.
6850
6851 2006-12-31  Andreia Gaita  <avidigal@novell.com>
6852
6853         * ContainerControl.cs: Use ContainerSelected flag to check if 
6854         a Container is directly selected, or if Select is called on a 
6855         non-container. If a container is directly selected, focus events 
6856         should not be raised.
6857         Apply #80411 patch to throw exception on set_ActiveControl if 
6858         control is the same as the current one.
6859         
6860         * Control.cs: Use ContainerSelected flag (see above).
6861         Add invalidation check to raise event but not invalidate if 
6862         dimensions are 0.       
6863         Apply #80411 patch.
6864         
6865
6866 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
6867
6868         * MenuAPI.cs: After click, dont close popup menu when menu is
6869         ContextMenu. Fixes #80399.
6870
6871 2006-12-30  Chris Toshok  <toshok@ximian.com>
6872
6873         * ContainerControl.cs: make sure we throw the exception if the
6874         container control doesn't contain the control we're setting
6875         ActiveControl to.
6876
6877 2006-12-30  Chris Toshok  <toshok@ximian.com>
6878
6879         * Control.cs (SetTopLevel): fix the exception raised by
6880         SetTopLevel for child controls.
6881         (set_Anchor): call UpdateDistances when setting the anchor type.
6882         This fixes bug #80336.
6883
6884 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
6885
6886         * Theme.cs: For now, revert back to 8pt font.
6887
6888 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
6889
6890         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
6891         Fixes #80395.
6892
6893 2006-12-29  Chris Toshok  <toshok@ximian.com>
6894
6895         * Control.cs: reorder the code in OnResize to give the same event
6896         ordering as MS.
6897
6898 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6899
6900         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
6901         TileHorizontally and TileVertically.
6902         
6903 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
6904
6905         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
6906         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
6907         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
6908         Corrected copyright and email adress.
6909
6910 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
6911
6912         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
6913         of Exception in FullPath property if no TreeView is associated with
6914         the TreeNode.
6915
6916 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
6917
6918         * Theme.cs: Marked default_font as private, and initialize it in ctor
6919         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
6920         on 2.0 profile.
6921         * ThemeGtk.cs: Removed default_font intialization.
6922         * ThemeWin32Classic.cs: Removed default_font initialization.
6923
6924 2006-12-28  Chris Toshok  <toshok@ximian.com>
6925
6926         * Control.cs: fix a couple of place where we were creating handles
6927         more aggressively than we should be.  Fixes ControlRefresh unit
6928         tests.
6929
6930 2006-12-28  Chris Toshok  <toshok@ximian.com>
6931
6932         * Control.cs: contrary to what the comment said, Control.Dock does
6933         not supercede Control.Anchor - the last one you assign to decides
6934         the layout behavior.  so we need to keep track of which was the
6935         last set.  Also, fix some of the affected property arguments in
6936         PerformLayout calls, and remove an redundant parent.PerformLayout
6937         call in OnResized.
6938
6939         Add a VisibleInternal property, which returns is_visible.  We
6940         can/should get rid of all the usage of this field elsewhere.
6941
6942 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6943         
6944         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
6945         control style, not DoubleBuffer. Added UseDoubleBuffering property
6946         that indicates whether doublebuffering is enabled and supported.
6947         (comment from and code based on Gert Driesen's patch in #80324).
6948         Fixes #80324.
6949
6950 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6951         
6952         * Control.cs: Fixed a NRE.
6953
6954 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6955
6956         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
6957         for 2.0.
6958
6959 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6960
6961         * Control.cs: Rewrote double buffering, now a seperate
6962         class handles all the buffering, no Graphics is disposed of
6963         until the painting is finished (earlier implementation 
6964         would crash if the control was resized in the OnPaint, 
6965         since it would cause the double buffer to be recreated
6966         and the old one disposed), a separate Graphics is 
6967         created for every paint (MS behaviour and anyways the state
6968         of the Graphics would have to be saved and restored otherwise)
6969         
6970         * XplatUIDriver.cs: 
6971         * XplatUIX11.cs:
6972         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
6973         so that we can get the graphics for the back buffer without
6974         having to create a new one and remove the offscreen_dc parameter
6975         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
6976         
6977 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6978
6979         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
6980         Also make virtual all the key-related methods.
6981
6982         * ListViewItem.cs: Make virtual the key related methods for
6983         ListViewSubItemCollection.
6984
6985 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6986
6987         * ListView.cs:
6988         * ListViewItem.cs:
6989         * ThemeWin32Classic.cs:
6990         * Theme.cs: Initial support for Tile view in ListView,
6991         as well as the implementation of the required bits for it (Item
6992         and Subitem).
6993
6994 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
6995
6996         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
6997         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
6998         Provide useful exception messages.
6999
7000 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7001
7002         * TrackBar.cs: Remove a warning.
7003         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
7004         when used by DateTimePicker, fixes #80287. This also requires that 
7005         MonthCalendar implements it's own drawing for the yearly updown control,
7006         otherwise the Capture tracking would be too complicated. Removed the Click 
7007         and DoubleClick events (according to comments they were hiding the base class
7008         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
7009         raise these events, not that they cannot be raised. It is possible to raise 
7010         them by calling OnClick and OnDoubleClick). Added two internal fields in 
7011         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
7012         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
7013         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
7014         event, no longer needed.
7015         
7016 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
7017
7018         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
7019         true if new value differs from current value.
7020
7021 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
7022
7023         * Control.cs: ControlCollection.Count must be public. Fixed build of
7024         unit tests.
7025
7026 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
7027
7028         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
7029
7030 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
7031
7032         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
7033
7034 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
7035
7036         * Control.cs: Invalidates control including when Width and Height is 
7037         equal zero or is not visible, only Paint event must be care about 
7038         this. Fixes #79913.
7039
7040 2006-12-26  Chris Toshok  <toshok@ximian.com>
7041
7042         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
7043         more corcompare work.
7044
7045         * DataGridView.cs: fix compiler warning.
7046
7047         * ColumnHeader.cs: some corcompare work, and also take the
7048         opportunity to make the internal fields private.
7049
7050         * ListView.cs: fix the fallout from the above field change.
7051
7052 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
7053
7054         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
7055         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
7056         ToolStripTextBox.cs: Fixes to events and corcompare.
7057
7058 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
7059
7060         * ListView.cs: Call owner.OnMousexx event to propagate events from
7061         item to ListView. Fixes #80367.
7062
7063 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
7064
7065         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
7066         if value is less than one. ItemHeight should not be set to a value
7067         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
7068         Removed extra tabs.
7069
7070 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
7071
7072         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
7073         * ToolStripStatusLabel.cs: Add Spring for Moma.
7074
7075 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
7076
7077         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
7078         Fixed code formatting. Removed debug code.
7079         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
7080
7081 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
7082
7083         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
7084         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
7085         ArgumentOutOfRangeException if ColumnCount is negative. In 
7086         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
7087         less than 4 or higher than 32768.
7088         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
7089         Fixed FormatProvider to return CurrentCulture unless explicitly set.
7090         Fixed IsFormatProviderDefault to return true if FormatProvider has
7091         not been explicitly set.
7092
7093 2006-12-25  Chris Toshok  <toshok@ximian.com>
7094
7095         * Application.cs: add a couple of 2.0 events.
7096
7097 2006-12-25  Chris Toshok  <toshok@ximian.com>
7098
7099         * Control.cs: fix compiler warning.
7100
7101         * AxHost.cs: corcompare fixes.
7102
7103         * ApplicationContext.cs: corcompare fixes.
7104
7105 2006-12-25  Chris Toshok  <toshok@ximian.com>
7106
7107         * Control.cs: only update dist_right/dist_bottom if the
7108         width/height is > 0.  this fixes anchored controls being resized
7109         smaller until they disappear and then resized larger again.
7110
7111 2006-12-25  Chris Toshok  <toshok@ximian.com>
7112
7113         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
7114         since they're nothing more than X/Left and Y/Top, respectively.
7115
7116         Also, move back to a per-control Bitmap/Graphics for
7117         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
7118         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
7119         Height.
7120
7121 2006-12-25  Miguel de Icaza  <miguel@novell.com>
7122
7123         * MessageBox.cs: Implemented overload that takes a new "bool
7124         displayHelpButton" by adding a new internal field "show_help".
7125         When clicked this will raise the HelpRequested on the owner or the
7126         main form. 
7127
7128         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
7129         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
7130
7131         * ListView.cs: Add support ColumnWidthChanged and
7132         ColumnWidthChanging. 
7133
7134         Add support for ColumnReordered event.
7135         (ReorderColumn): Add NET_2_0 specific support for cancelling the
7136         reorder.
7137
7138         Very nice codebase!
7139
7140         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
7141
7142         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
7143
7144 2006-12-24  Chris Toshok  <toshok@ximian.com>
7145
7146         * GridTablesFactory.cs: 2.0 corcompare work.
7147
7148         * ToolStripContainer.cs: add "override" to
7149         ContextMenuStripChanged, and remove the local event object.
7150
7151         * ToolStripDropDown.cs: same with a couple properties.
7152
7153         * ToolStripPanel.cs: same with AutoSizeChanged event.
7154
7155         * TextBoxBase.cs: add "override" to AutoSizeChanged.
7156
7157         * Form.cs: add the remaining 2.0 events, and do some corcompare
7158         attribute work.
7159
7160         * DateTimePicker.cs: add "new" to padding.
7161
7162         * ButtonBase.cs: use Control's use_compatible_text_rendering.
7163
7164         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
7165
7166         * DataGridView.cs: PaddingChanged is overridden.
7167
7168 2006-12-24  Chris Toshok  <toshok@ximian.com>
7169
7170         * Control.cs: corecompare work here too.
7171
7172         * DataGridViewElement.cs, DataGridView.cs,
7173         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
7174         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
7175         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
7176         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
7177         work.
7178
7179 2006-12-24  Miguel de Icaza  <miguel@novell.com>
7180
7181         * Control.cs: Switched the error message on the console for a
7182         todo.  A review of the code will have to cope with this anyways
7183         (since its a large feature, it is in our radar) and it was
7184         producing too much output when running PDN.
7185
7186         * ToolStripComboBox.cs: Set the text when the SelectedIndex
7187         changes.  Applications depend on this (PDN 2.72)
7188
7189 2006-12-23  Chris Toshok  <toshok@ximian.com>
7190
7191         * TableLayoutSettings.cs: finish up the corcompare work for this
7192         class.
7193
7194 2006-12-23  Chris Toshok  <toshok@ximian.com>
7195
7196         * Control.cs: make SetImplicitBounds internal, do some futzing
7197         with LayoutEngine so that it's available in 1.1, and remove the
7198         entire duplicated code mess from PerformLayout.  Use
7199         System.Windows.Forms.Layout.DefaultLayout instead.
7200
7201         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
7202
7203 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
7204
7205         * Form.cs: Add MainMenuStrip property.
7206
7207 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
7208
7209         * Control.cs: Add ContextMenuStrip property and implementation.
7210         Fix ContextMenu implementation to show menu centered on control when
7211         activated using the keyboard instead of showing at screen (0,0).
7212
7213         * ToolStripDropDown.cs: Fix needed overload of Show ().
7214
7215 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
7216
7217         * Menu.cs: Name property added for 2.0 profile.
7218         
7219 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
7220
7221         * Menu.cs: Update information about FindMenuItem, method to be
7222         implemented soon.
7223
7224 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
7225
7226         * MenuAPI.cs: When deselect items deselect also selected subitems.
7227         
7228 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
7229
7230         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
7231         FindSubItemByCoord to found itens that is not active, also an
7232         cheking added to FindSubItemByCoord to search for items only 
7233         in visible popup windows. Fixes #80274.
7234
7235 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
7236
7237         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
7238         internal property, it be care about change ExStyle. 
7239
7240 2006-12-22  Andreia Gaita  <avidigal@novell.com>
7241
7242         * ContainerControl.cs: set activeControl for parent forms up the 
7243         tree when the new activecontrol is a container.
7244         When validating the active control, if it is a container, also
7245         raise up the validation for it's active control. Fixes #80280
7246         
7247         * Control.cs: Add internal property flag and check to prevent
7248         Focus events from getting raised when Select() is called for
7249         a ContainerControl. There are still too many focus events being
7250         raised at the moment though.
7251         Cleaned up the code a bit.
7252
7253 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7254
7255         * Control.cs: Added all missing 2.0 events.and
7256         fixed a couple of corcompare issues.
7257         * TrackBar.cs: Implemented missing 2.0 bits.
7258         * MonthCalendar.cs, 
7259         * DateTimePicker.cs, 
7260         * MdiClient.cs: Fixed some corcompare issues.
7261
7262 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
7263
7264         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
7265         SplitterPanel.cs: corecompare work.
7266
7267 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
7268
7269         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
7270         Clean up warnings for BackgroundImageChanged and PaddingChanged
7271         events now that they are implemented in Control.cs.
7272
7273 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
7274
7275         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
7276         
7277         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
7278         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
7279         of TableLayoutPanel and supporting cast.
7280
7281 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7282
7283         * XplatUIWin32.cs: 
7284         - GrabWindow now confines the mouse pointer to the confine window.
7285         - Added Win32ClipCursor and Win32GetClipCursor.
7286
7287         * Control.cs: 
7288         - Added CaptureWithConfine to be able to capture and confine 
7289         mouse pointer.
7290         
7291         * InternalWindowManager.cs: 
7292         - Call CaptureWithConfine instead of Capture if we're an
7293         MdiChild (fixes #79982).
7294
7295 2006-12-21  Chris Toshok  <toshok@ximian.com>
7296
7297         * DataGrid.cs: guard against the initial state of selection, where
7298         selection_start == -1.  make sure we only select from index >= 0.
7299         Fixes bug #80291.
7300
7301 2006-12-21  Chris Toshok  <toshok@ximian.com>
7302
7303         * Control.cs: we don't need to be so draconian with
7304         UpdateDistances, and we thusly don't need to call it before
7305         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
7306
7307 2006-12-21  Daniel Nauck  <dna@mono-project.de>
7308
7309         * ComboBox.cs,
7310         TextBox.cs: Implemented AutoComplete properties.
7311
7312 2006-12-20  Chris Toshok  <toshok@ximian.com>
7313
7314         * DataGridView*.cs: some corecompare work.
7315
7316 2006-12-20  Jackson Harper  <jackson@ximian.com>
7317
7318         * XplatUIX11.cs: We need to hide the caret when deleting it,
7319         otherwise you get carets left lying around everywhere.
7320         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
7321         prevents getting some weird half drawn caret tracers when
7322         scrolling.
7323         * TextControl.cs: Attempt to reduce the number of times we need to
7324         recreate the caret.
7325
7326 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
7327
7328         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
7329
7330 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7331
7332         * DateTimePicker.cs:
7333         - Implemented missing 2.0 bits.
7334         - Changed some default values to match MS.
7335         
7336 2006-12-20  Jackson Harper  <jackson@ximian.com>
7337
7338         * TextBoxBase.cs: When changing the font across the document we
7339         can't recalculate after changing each line, since that will cahnge
7340         the line count.
7341         - PreferredHeight is a little different than i thought.
7342         - When backspacing, move the caret before we do the actual char
7343         delete, because when that delete crosses a wrap boundary the
7344         positional information will change.
7345
7346 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7347
7348         * Control.cs: Added some missing 2.0 bits: 
7349         BackgroundImageLayout, BackgroundImageLayoutChanged, 
7350         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
7351         add IBindableComponent and IDropTarget implementation.
7352         
7353         * MonthCalendar.cs: 
7354         - Added all missing 2.0 features:
7355         BackgroundImageLayout, RightToLeftLayout, 
7356         OnHandleDestroyed, RightToLeftLayoutChanged, 
7357         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
7358         PaddingChanged.
7359         - Rewrote all the BoldDate code, it was completely broken.
7360         - Fixed all the tests (the tests can now be re-enabled, the
7361         problems were not with the tests, but with the control, it was
7362         mostly broken).
7363         
7364         * DateTimePicker.cs: Changed the location where the 
7365         MonthCalendar is shown.
7366         
7367 2006-12-19  Chris Toshok  <toshok@ximian.com>
7368
7369         * DataGridView.cs: add IDropTarget implementation.
7370
7371         * ToolStripPanel.cs: add IDropTarget implementation.
7372
7373 2006-12-19  Jackson Harper  <jackson@ximian.com>
7374
7375         * TextControl.cs: soft now means something different than what it
7376         used to mean, we want to move the caret regardless of whether or
7377         not this break was soft (would we really have wanted the caret
7378         to not move with the break in the old context?)
7379         * TreeView.cs: Make sure we factor in the vert scrollbar when
7380         calculating the horizontal scrollbar's maximum.
7381
7382 2006-12-19  Andreia Gaita  <avidigal@novell.org>
7383
7384         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
7385         check for keywords in alternate casing, close bug #80049.
7386
7387 2006-12-19  Chris Toshok  <toshok@ximian.com>
7388
7389         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
7390         methods (which all do nothing).
7391
7392         * IDropTarget.cs: add the 4 missing methods.
7393
7394 2006-12-19  Chris Toshok  <toshok@ximian.com>
7395
7396         * TableLayoutRowStyleCollection.cs: corcompare work.
7397         
7398         * TableLayoutSettings.cs: same.
7399
7400         * TableLayoutStyle.cs: same.
7401
7402         * TableLayoutColumnStyleCollection.cs: same.
7403
7404 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
7405
7406         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
7407         TableLayoutPanel I've had in my local tree for way too long.
7408
7409 2006-12-19  Miguel de Icaza  <miguel@novell.com>
7410
7411         * TableLayoutSettings.cs: Finish the public API (still needs all
7412         the logic to update on changes). 
7413
7414         * TableLayoutPanelCellPosition.cs: new file.
7415         
7416         * TableLayoutRowStyleCollection.cs,
7417         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
7418         TableLayoutSettings.cs: Track the final 2.0 table api.
7419
7420 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7421
7422         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
7423         and Image List 2.0 members for ColummnHeader.
7424         * ListView.cs: Add key-related 2.0 methods for
7425         ColumnHeaderCollection.
7426
7427 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
7428
7429         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
7430         ArgumentNullException if items argument is null. Ignore null item in
7431         arrays. Removed extra tabs.
7432
7433 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
7434
7435         * MonthCalendar.cs: Fixed InvalidCastException.
7436
7437 2006-12-19  Jackson Harper  <jackson@ximian.com>
7438
7439         * TextControl.cs: Don't increment the position here.
7440         - When calculating char positions only add in the line break size
7441         for hard line breaks.
7442
7443 2006-12-19  Andreia Gaita  <avidigal@novell.org>
7444
7445         * SendKeys.cs: Changed some things to match ms.net behaviour
7446         when parsing shifted capital letters.
7447         
7448         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
7449         Add window handle as parameter to SendInput. X11 needs the 
7450         window handle, and the handle being passed      to it in the keys 
7451         queue is the active control handle (which windows needs), not 
7452         the window handle.
7453         
7454         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
7455         to support SendKeys on X.       
7456         
7457         * X11Keyboard: Implement helper method to lookup a linux keycode
7458         given the virtual keycode. Added table of keycode-2-virtualkey
7459         values to support this.
7460
7461 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7462
7463         * ListView.cs: Add support for SelectedIndexCollection
7464         and SelectedItemCollection 2.0 methods. Implement support
7465         for ImageKey too.
7466         * ListViewItem.cs: Add support for ListViewSubItemCollection
7467         2.0 methods. Also, fix an incorrect behavior of AddRange method
7468         (it shouldn't call Clear).
7469         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
7470
7471 2006-12-19  Jackson Harper  <jackson@ximian.com>
7472
7473         * RichTextBox.cs: 
7474         * TextBoxBase.cs: New args for FormatText
7475         * TextControl.cs: Rewrote the main drawing method, this version
7476         feels a little easier to understand and debug to me.  Hopefully it
7477         does to others also
7478         - Fix FormatText to OR in the new formating values.  Added
7479         FormatSpecified param, basically this works in the same way as
7480         BoundsSpecified in Control.
7481         - Set the caret properties when the caret is positioned.
7482         - When wrapping text make sure that we calculate the width of the
7483         last character
7484         - when calculating alignments we might have wrapped down to the
7485         next line, so don't search for an individual tag, search for the
7486         end of the line
7487         - We need to invalidate the selection area when we replace the
7488         selection.
7489         
7490 2006-12-19  Daniel Nauck  <dna@mono-project.de>
7491
7492         * Application.cs: add Restart () 2.0 support
7493
7494 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
7495
7496         * MenuItem.cs: Invalidate menu item rectangle after change Enable
7497         property. Fixes #80268.
7498         
7499 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
7500
7501         * MenuAPI.cs: Dont trigger select event when closes top menu
7502         item. Fixes #80270.
7503
7504 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
7505
7506         * MenuAPI.cs: When you click on menuitem only trigger onselect
7507         event for top menu itens. Fixes #80271.
7508         
7509 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7510
7511         * MdiWindowManager.cs: Make IconicBounds depend on
7512         the bottom of MdiClient, not the top (fixes #80267)
7513         
7514 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7515
7516         * MdiClient.cs: Added missing 2.0 attribute
7517
7518 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7519
7520         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
7521         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
7522
7523 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
7524
7525         * MenuAPI.cs: Fix click when menuitem is not popup,
7526         this regression was caused by last commit (#80272).
7527
7528 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
7529
7530         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
7531         fire click event or close menu. Fixes #80272.
7532
7533 2006-12-17  Daniel Nauck  <dna@mono-project.de>
7534
7535         * ListViewHitTestInfo.cs: add
7536
7537 2006-12-17  Daniel Nauck  <dna@mono-project.de>
7538
7539         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
7540         * FlatButtonAppearance.cs: add
7541         * DockingAttribute.cs: add
7542
7543 2006-12-17  Chris Toshok  <toshok@ximian.com>
7544
7545         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
7546         and rebind our columns when it does - this way, if you make
7547         changes to the DataTable (or set the Table attribute on a DataView
7548         after setting it as the DataGrid's DataSource, the changes are
7549         made visible.)  Fixes bug #80107.
7550
7551 2006-12-17  Daniel Nauck  <dna@mono-project.de>
7552
7553         * ListViewGroup.cs: add internal Location property for layouting.
7554         * Theme.cs: add abstract ListViewGroupHeight function.
7555         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
7556
7557 2006-12-16  Andreia Gaita  <avidigal@novell.com>
7558
7559         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
7560         Added reset of selected index to 0 when adding first tab page.
7561         Fixes #80264
7562         
7563         * NumericUpDown.cs: Fix NET_2_0 check
7564
7565 2006-12-16  Daniel Nauck  <dna@mono-project.de>
7566
7567         * ListViewGroup.cs: fixed DefaultValueAttribute value
7568
7569 2006-12-16  Daniel Nauck  <dna@mono-project.de>
7570
7571         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
7572
7573 2006-12-15  Miguel de Icaza  <miguel@novell.com>
7574
7575         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
7576         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
7577         ScrollableControl.cs: Add a handful of methods that are
7578         overwritten in 2.0 
7579
7580 2006-12-15  Chris Toshok  <toshok@ximian.com>
7581
7582         * XplatUIWin32.cs: initial implementation of the Reversible
7583         drawing functions.  there are some problems.  DrawReversibleFrame
7584         doesn't seem to work at all for Dashed FrameStyle, and in the
7585         Thick case there are drawing errors at the corners (we probably
7586         need to bind Rectangle instead of doing moveto/lineto's.)
7587
7588 2006-12-16  Andreia Gaita  <avidigal@novell.com>
7589         
7590         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
7591         to send blocks of key messages. Send accumulates keys to send with Flush, 
7592         while SendWait sends all keys immediately.
7593                 
7594         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
7595         XplatUIX11.cs,  XplatUIX11-new.cs:
7596         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
7597         to Win32 SendInput.
7598         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
7599         
7600         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
7601         testing for ms.net on this class is very tricky, as the tests run too fast 
7602         to allow the hook to release, essentially freezing the keyboard and the 
7603         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
7604         category :p
7605
7606 2006-12-16  Daniel Nauck  <dna@mono-project.de>
7607
7608         * Padding.cs: fixed serialization compability to MS ("_var" field names),
7609                         added missing attributes.
7610  
7611 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7612
7613         * ListViewGroup.cs: Added missing attributes.
7614         * ListViewGroupCollection.cs: Added missing attributes.
7615
7616 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7617
7618         * ListViewItem.cs: fixed ListViewSubItem text property.
7619
7620 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7621         
7622         * Control.cs: Added missing 2.0 attributes
7623         
7624 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7625         
7626         * MdiClient.cs: Added missing 2.0 attribute.
7627         * MonthCalendar.cs: Added some missing 2.0 attributes 
7628         and properties.
7629         
7630 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7631
7632         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
7633
7634 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
7635
7636         * MainMenu.cs: Add the new 2.0 constructor to help out people
7637         using the MainMenu in VS2005.
7638
7639 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7640         
7641         * MdiChildContext.cs: Removed it, no longer used.
7642         * MdiClient.cs: Added missing 2.0 attributes.
7643         
7644 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7645         
7646         * InternalWindowManager.cs: Fix a NullRef with previous 
7647         changes for toolwindows.
7648         
7649 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7650
7651         * Control.cs: 
7652         - Added AfterTopMostControl to allow for certain controls 
7653         to always stay on top when normal controls are brought to 
7654         front.
7655         
7656         * XplatUIWin32.cs: 
7657         - (DrawInversibleRectangle): Get window rectangle from Win32 
7658         in stead of from control, since Win32 doesn't calculate
7659         screen coords correctly from control's Location if it 
7660         have docked siblings.
7661         
7662         * MdiWindowManager.cs:
7663         - Correct the control menu popup location when clicked on
7664         the maximized form icon. (fixes #80223.1)
7665         - Don't show moving rectangle if mouse hasn't moved from
7666         the original clicked point.
7667         - Removed FormGotFocus handler (not used).
7668         - Calculate the control buttons location from the main
7669         window's size and not client size (fixes #79770).
7670         - Form is now closed when the form icon is double-clicked
7671         (fixes #79775). 
7672         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
7673         
7674         * InternalWindowManager.cs:
7675         - Moved some MDI-only methods to MdiWindowManager.
7676         - Removed unused properties and methods.
7677         - Unified method naming for methods handling wm messages.
7678         - Moved all message handling to seperate methods for
7679         each message.
7680         
7681         * ThemeWin32Classic.cs:
7682         - DrawManagedWindowDecorations now draws the title bar 
7683         with a gradient brush.
7684         - Add a CPDrawButtonInternal that allows us to specify
7685         light, normal and dark colors for the buttons (control 
7686         buttons for MDI children were drawn with the same light
7687         color as the background, therefore loosing the 3D effect).
7688         
7689         * SizeGrip.cs:
7690         - Add a CapturedControl property that is used to 
7691         determine the control to resize (defaults to parent). 
7692         Needed for MdiClient, since its SizeGrip's parent is
7693         MdiClient, but the control to resize is the main form.
7694         
7695         * MdiClient.cs:
7696         - Set SizeGrip's CapturedControl to the main form in order
7697         to resize the main form and not the MdiClient.
7698         - Override AfterTopMostControl to leave the scrollbars 
7699         always on top.
7700
7701 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7702
7703         * ListView.cs: fixed ListViewItemCollection AddRange and
7704                         implemented ListViewItemCollection AddRange 2.0 support.
7705
7706 2006-12-15  Daniel Nauck  <dna@mono-project.de>
7707
7708         * ListViewGroup.cs: Add.
7709         * ListViewGroupCollection.cs: Add
7710         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
7711         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
7712                                 stub for ImageKey 2.0 support.
7713
7714 2006-12-14  Mike Kestner  <mkestner@novell.com>
7715
7716         * ListView.cs: add text padding to the autocalculation for columns
7717         of width -2.  Fixes #80207.
7718  
7719 2006-12-14  Mike Kestner  <mkestner@novell.com>
7720
7721         * ListView.cs: add some index guarding for partial row navigation 
7722         logic.  Fixes #80250.
7723
7724 2006-12-14  Mike Kestner  <mkestner@novell.com>
7725
7726         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
7727         are added or inserted to the collection.  Fixes #81099.
7728
7729 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
7730
7731         * MenuAPI.cs: Closes menu when right click out side of popup
7732         it fix problem in ContextMenu and MainMenu. Fixes #80252.
7733
7734 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7735
7736         * ListViewItem.cs: Fix dumb error.
7737
7738         * ListView.cs: Add Find and ContainsKey methods in 
7739         ListViewItemCollection, and also return true for IsReadOnly
7740         and IsFixedSize (changes for 2.0). 
7741
7742 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
7743
7744         * Control.cs: Allow Region to be set to null.
7745
7746 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7747
7748         * MdiWindowManager.cs: Remove unused (commented out) code.
7749         * Form.cs: When the MdiChild is maximized, the form needs 
7750         WM_NCMOUSELEAVE, so request it.
7751         * InternalWindowManager.cs: 
7752         - Added tooltips to control buttons.
7753         - Removed duplicated control button handling code.
7754         - Removed unused (commented out) code.
7755         
7756 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
7757
7758         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
7759         was used because we must set cursor without trigger ChangeCursor event
7760         and without change Cursor control property. Fixes #79963.
7761
7762 2006-12-12  Andreia Gaita  <avidigal@novell.com>
7763         
7764         * Control.cs: Check if Region setter value is null, and ignore
7765
7766 2006-12-12  Jackson Harper  <jackson@ximian.com>
7767
7768         * TextControl.cs: We were almost always drawing one more line then
7769         needed, since the GetLineByPixel will return the last line found
7770         at that pixel. In most cases though, we were invalidating up to
7771         the junction between two lines.
7772         - Improve debug code.
7773
7774 2006-12-12  Chris Toshok  <toshok@ximian.com>
7775
7776         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
7777         and FillReversibleRectangle.
7778
7779         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
7780         and FillReversibleRectangle.
7781
7782         * XplatUIWin32.cs: add stubs which do nothing for
7783         DrawReversibleFrame, DrawReversibleLine, and
7784         FillReversibleRectangle.
7785
7786         * XplatUIOSX.cs: add stubs which raise NIE for
7787         DrawReversibleFrame, DrawReversibleLine, and
7788         FillReversibleRectangle.
7789
7790         * XplatUIX11.cs: add working implementation for
7791         DrawReversibleFrame, DrawReversibleLine, and
7792         FillReversibleRectangle.
7793         
7794         * ControlPaint.cs: implement DrawReversibleFrame,
7795         DrawReversibleLine, and FillReversibleRectangle, by calling into
7796         the appropriate XplatUI method.
7797
7798 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7799
7800         * Form.cs: Make MdiClient have the focus even if it's
7801         not selectable, since it should receive WM_KEY* and WM_MOUSE 
7802         messages. Fixes #79907.
7803         
7804 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7805
7806         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
7807         queried after the window is created.
7808         
7809         * XplatUIX11.cs: Added SendParentNotify to implement 
7810         WM_PARENTNOTIFY logic. Fixes #79965.
7811         
7812         * Control.cs: Added MakeParam.
7813         
7814 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7815
7816         * MdiClient.cs: Resume Layout before setting window
7817         states (fixes #80201).
7818
7819 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7820
7821         * MenuAPI.cs: Deselect a menu item after performing
7822         the click (fixes #80197).
7823
7824 2006-12-11  Jackson Harper  <jackson@ximian.com>
7825
7826         * TextBoxBase.cs: We need to cap this value, since Maximum -
7827         ViewPortHeight can be less than zero.
7828         - Only do selection with the left mouse button.
7829         * TextBox.cs: Don't tell the world that we have a context menu.
7830         * Control.cs: New method so that we can control whether or not the
7831         context menu is visible outside MWF.
7832
7833 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
7834
7835         * ToolBarButton.cs: Fix text positon. 
7836
7837 2006-12-11  Miguel de Icaza  <miguel@novell.com>
7838
7839         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
7840
7841         * Control.cs (DoubleBuffered): Add implementation.
7842
7843         * Application.cs (OpenForms): Add.
7844
7845 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
7846
7847         * Form.cs: Use opacity instead of Opactiy to determine if we need
7848         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
7849
7850 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
7851
7852         * Control.cs: Fix NRE if Control.Site was set to null.
7853
7854 2006-12-11  Chris Toshok  <toshok@ximian.com>
7855
7856         * Control.cs: ControlCollection.Remove should return if the arg is
7857         null, and ControlCollection.SetChildIndex should raise a ANE.
7858
7859 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
7860
7861         * Control.cs: Verify value set for Dock property. Code formatting
7862         updates.
7863
7864 2006-12-11  Jackson Harper  <jackson@ximian.com>
7865
7866         * TextControl.cs: Draw the caret and the selection when a flag is
7867         set on the owner.
7868         * TextBoxBase.cs: We want to draw the caret and the selection for
7869         TextBox but not for TextBoxBase.
7870         - If the window is resized and scrolling is no longer needed (the
7871         whole doc is visible) set the scroll position to zero.
7872         - The default SelectWord (the one TextBox uses) should move the
7873         caret to the end of the word.
7874         - SelectAll moves the caret to the end of the selection.
7875         * TextBox.cs: We don't selectall on focus, we just do it when the
7876         control is created.
7877         
7878 2006-12-11  Mike Kestner  <mkestner@novell.com>
7879
7880         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
7881
7882 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7883
7884         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
7885         2.0 support.
7886         * ListViewItem.cs: Add Name 2.0 property.
7887
7888 2006-12-11  Andreia Gaita  <avidigal@novell.com>
7889
7890         * TabControl.cs: Set visibility on selected or default tab 
7891         when tabcontrol handle is created, so that it's contents
7892         actually show up (duh). Fixes #80193
7893         Don't redraw the control if there is no handle created, as
7894         the selected index might be completely invalid. Added some tests
7895         to check for this.
7896
7897 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
7898
7899         * ToolBar.cs: Uses maximun width and height of all buttons as 
7900         button rectangle when ButtonSize specified, it looks strange but
7901         is what happens in Win32. Fixes #80189.
7902
7903 2006-12-11  Jackson Harper  <jackson@ximian.com>
7904
7905         * TextControl.cs: Need to track undo levels ourself, since
7906         compound actions will mess them up.
7907
7908 2006-12-10  Andreia Gaita  <avidigal@novell.com>
7909
7910         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
7911         SelectedIndex value is changed (even if it's not valid).
7912         Reset SelectedIndex to 0 when the handle is created and if
7913         the current index is invalid.
7914         Fixes SelectdeIndex unit tests and #80128
7915
7916 2006-12-08  Chris Toshok  <toshok@ximian.com>
7917
7918         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
7919         calls EndEdit, it needs to be called before we set current_cell to
7920         its new value.  Otherwise, we end up committing the value in the
7921         textbox to the new cell as well.  Fixes bug #80160.
7922
7923 2006-12-08  Chris Toshok  <toshok@ximian.com>
7924
7925         * Form.cs (set_CancelButton): if the button's DialogResult is
7926         None, set it to Cancel.  Fixes bug 80180.
7927
7928 2006-12-08  Jackson Harper  <jackson@ximian.com>
7929
7930         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
7931         to watch ourselves when setting the canvas size and setting the
7932         scrollbar values.
7933
7934 2006-12-08  Chris Toshok  <toshok@ximian.com>
7935
7936         * DataGrid.cs: comment out the two MakeTransparent calls for the
7937         time being so people using trunk (and not 1.2.2) on windows can
7938         actually use the datagrid.  This deals with bug #80151.
7939
7940 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
7941
7942         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
7943         Graphics.DrawImage (image, int, int, int, int) overload instead
7944         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
7945         the dpi difference and was blurring images it drew.
7946         [Fixes bug #79960]
7947
7948 2006-12-08  Chris Toshok  <toshok@ximian.com>
7949
7950         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
7951         rowcnt is 0 (such as with an empty datasource), and make sure we
7952         initialize not_usedarea.Y to cells.Y, so we don't draw over the
7953         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
7954
7955 2006-12-08  Chris Toshok  <toshok@ximian.com>
7956
7957         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
7958         grid.
7959
7960 2006-12-08  Chris Toshok  <toshok@ximian.com>
7961
7962         [ Fixes bug #80167 ]
7963         
7964         * ThemeWin32Classic.cs: don't draw the image if the button's flat
7965         style is FlatStyle.System.
7966
7967         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
7968         ButtonBase.flat_style private, and switch uses of it to the public
7969         property.
7970         
7971 2006-12-08  Chris Toshok  <toshok@ximian.com>
7972
7973         [ Fixes bug #80121 ]
7974         
7975         * ThemeWin32Classic.cs: center the caption text in the datagrid
7976         when we draw it.
7977
7978         * DataGrid.cs: lessen the amount we add to the caption height from
7979         6 to 2.  6 was making it huge.
7980
7981 2006-12-08  Andreia Gaita  <avidigal@novell.com>
7982
7983         * UpDownBase: Handle MouseWheel call directly instead of capturing
7984         the inner textbox's OnMouseWheel. Fixes #80166
7985
7986 2006-12-08  Jackson Harper  <jackson@ximian.com>
7987
7988         * TextControl.cs: We need to invalidate the textbox when we empty
7989         it (how had this not been discovered before?)
7990
7991 2006-12-08  Jackson Harper  <jackson@ximian.com>
7992
7993         * TextBoxBase.cs: Reworked the mouse down code so I could get it
7994         to behave like MS, we now ignore the eventargs.Click and just
7995         track state ourself, which we were already doing anyways.
7996         - Constrain the double click handler to the double click size.
7997         
7998 2006-12-08  Chris Toshok  <toshok@ximian.com>
7999
8000         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
8001         direction if that scrollbar isn't shown.  fixes bug #80158.
8002
8003 2006-12-08  Andreia Gaita  <avidigal@novell.com>
8004
8005         * NumericUpDown.cs: Update value on getter. Fixes #79950
8006
8007 2006-12-08  Chris Toshok  <toshok@ximian.com>
8008
8009         * MenuItem.cs: add back in the event cloning code.  I didn't know
8010         how to do it in the face of the EventHandlerList work i'd done
8011         last week.  Fixes bug #80183.
8012
8013 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
8014
8015         * Control.cs: Add an invalidate to the BackgroundImage setter.
8016         [Fixes 80184]
8017
8018 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
8019
8020         * ToolStrip*: Add some small properties reported by MoMA, fix event
8021         firing and default properties based off of unit tests, and add some
8022         attributes based off of the class status page.
8023
8024 2006-12-07  Jackson Harper  <jackson@ximian.com>
8025
8026         * TextBoxBase.cs: Take HideSelection into account when determining
8027         whether or not to show the selection.
8028         * RichTextBox.cs: After inserting the RTF into the document move
8029         the cursor to the beginning of the document.
8030
8031 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
8032
8033         * Control.cs: Remove static ArrayList "controls" which maintained
8034         a reference to every control created.
8035         * Application.cs: Create a static FormCollection to maintain a reference
8036         to every form created.  Use it in places that formerly enumerated through
8037         the controls one looking for forms.
8038         * Form.cs: Add and remove self from above FormCollection.
8039
8040 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
8041
8042         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
8043           not libgdk (though it makes me wonder why I didn't have any
8044           problems)
8045
8046 2006-12-07  Chris Toshok  <toshok@ximian.com>
8047
8048         [ you had to know this was coming after that last commit...]
8049         
8050         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
8051         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
8052         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
8053         XCopyArea).
8054
8055 2006-12-07  Chris Toshok  <toshok@ximian.com>
8056
8057         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
8058         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
8059         all the behavior we need for double buffering.
8060
8061         * XplatUIDriver.cs: implement the 3 double buffer methods using a
8062         client side Bitmap, just like the old Control-based double buffer
8063         code did.  The methods are virtual, so each XplatUI driver
8064         subclass can replace the implementation to use a faster, platform
8065         specific approach.
8066
8067         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
8068         double buffer code, and clean things up a bit in the process.
8069
8070 2006-12-06  Chris Toshok  <toshok@ximian.com>
8071
8072         * Control.cs: reindent WndProc.
8073
8074 2006-12-06  Chris Toshok  <toshok@ximian.com>
8075
8076         [ I wanna be like BenM when I grow up ]
8077         
8078         * Hwnd.cs: create a single static Graphics object on the static
8079         Bitmap we create.  use this for our text measurements.
8080
8081         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
8082         This was causing us to allocate a backbuffer for every control,
8083         even when it wasn't flagged as double buffered.  Instead use the
8084         single graphics instance.  This might have implications for
8085         multithreaded applications.  If we run into problems we can switch
8086         to creating 1 Graphics per control, on the static Hwnd bitmap.
8087
8088         this change nets us a 7M savings in private dirty mappings when
8089         running FormsTest.exe.
8090
8091 2006-12-06  Chris Toshok  <toshok@ximian.com>
8092
8093         * ListView.cs: the BackgroundImage override is just to set
8094         attributes.  chain up to base.BackgroundImage.
8095
8096         * RichTextBox.cs: same.
8097
8098         * ToolBar.cs: same, but we need to also redraw the toolbar when it
8099         changes, so instead a handler for BackgroundImageChanged.
8100         
8101         * Control.cs: make background_image private.
8102
8103 2006-12-06  Chris Toshok  <toshok@ximian.com>
8104
8105         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
8106         sure we even need this assignment, but roll with it for now.
8107
8108         * Control.cs: make the cursor field private.
8109
8110 2006-12-06  Chris Toshok  <toshok@ximian.com>
8111
8112         * Form.cs: we don't need to explicitly set ImeMode to
8113         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
8114         behavior in the face of ImeMode.Inherit.
8115
8116         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
8117         change the ctor's assignment to use ImeMode instead of ime_mode.
8118
8119         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
8120         ImeModeInherit.  Only check for the parent's imemode (and return
8121         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
8122         This fixes the button unit test, which sets both ImeMode and
8123         DefaultImeMode to ImeMode.Disable.
8124
8125         also make the ime_mode field private.
8126
8127 2006-12-06  Chris Toshok  <toshok@ximian.com>
8128
8129         * Control.cs: make control_style private.
8130
8131         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
8132         setting the styles to true, then setting them to false instead of
8133         reverting to their previous values.
8134
8135         also, call SetStyle on the scrollbars instead of using
8136         control_style directly.
8137
8138 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
8139
8140         * FormCollection.cs: Implement. [2.0]
8141
8142 2006-12-06  Chris Toshok  <toshok@ximian.com>
8143
8144         * Control.cs: make tab_stop private.
8145
8146         * Label.cs: set TabStop, not tab_stop.  reformat some event
8147         add/remove methods to make them more compact.
8148
8149 2006-12-06  Chris Toshok  <toshok@ximian.com>
8150
8151         * RadioButton.cs: fix TabStop handling.
8152
8153 2006-12-06  Chris Toshok  <toshok@ximian.com>
8154
8155         * TextBox.cs: remove the explicit assignments to has_focus.
8156         Control does that.
8157
8158         * ButtonBase.cs: remove the assignment to has_focus.  Control will
8159         manage that.
8160         
8161 2006-12-06  Chris Toshok  <toshok@ximian.com>
8162
8163         * ButtonBase.cs: remove all uses of is_enabled from this code.
8164         it's always true when any of the code containing the checks is
8165         executed.
8166
8167 2006-12-06  Chris Toshok  <toshok@ximian.com>
8168
8169         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
8170         with different semantics (some are present in both 1.1 and 2.0
8171         profiles) so that we match MS's behavior in our unit tests.
8172
8173 2006-12-06  Jackson Harper  <jackson@ximian.com>
8174
8175         * TextControl.cs: Make this operation undoable.
8176         * TextBoxBase.cs: Factor the border width into the preferred
8177         height.
8178         - implement Modified as per the spec.
8179
8180 2006-12-06  Chris Toshok  <toshok@ximian.com>
8181
8182         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
8183
8184 2006-12-06  Chris Toshok  <toshok@ximian.com>
8185
8186         * Control.cs: make right_to_left and context_menu fields private.
8187
8188 2006-12-06  Chris Toshok  <toshok@ximian.com>
8189
8190         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
8191         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
8192         Control.child_controls private.  switch all uses over to
8193         Control.Controls.
8194
8195 2006-12-06  Chris Toshok  <toshok@ximian.com>
8196
8197         * System.Windows.Forms/GroupBox.cs,
8198         System.Windows.Forms/AccessibleObject.cs,
8199         System.Windows.Forms/ErrorProvider.cs,
8200         System.Windows.Forms/Control.cs,
8201         System.Windows.Forms/UpDownBase.cs,
8202         System.Windows.Forms/ScrollBar.cs,
8203         System.Windows.Forms/DateTimePicker.cs,
8204         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
8205         System.Windows.Forms/ToolTip.cs,
8206         System.Windows.Forms/RadioButton.cs,
8207         System.Windows.Forms/LinkLabel.cs,
8208         System.Windows.Forms/Splitter.cs,
8209         System.Windows.Forms/TextBoxBase.cs,
8210         System.Windows.Forms/ToolStripTextBox.cs,
8211         System.Windows.Forms/ContainerControl.cs,
8212         System.Windows.Forms/ThemeWin32Classic.cs,
8213         System.Windows.Forms/SizeGrip.cs,
8214         System.Windows.Forms/ToolStripDropDown.cs,
8215         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
8216         private.  switch all uses over to Control.Parent.
8217
8218 2006-12-06  Chris Toshok  <toshok@ximian.com>
8219
8220         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
8221         Control does this before calling emitting these events.
8222
8223         * TabControl.cs: same.
8224
8225         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
8226         Control.client_rect.
8227
8228         * ButtonBase.cs: use the ClientSize property instead of the
8229         client_size field.
8230
8231         * ScrollableControl.cs: same.
8232
8233         * Control.cs: another pass at making properties private.  also,
8234         move the initialization of tab_stop to the ctor.
8235
8236 2006-12-05  Andreia Gaita <avidigal@novell.com>
8237
8238         * TabControl.cs: Let the selected index be set freely if the 
8239         control handle is not yet created.
8240
8241 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
8242
8243         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
8244         internal until I can rewrite DefaultLayout.
8245         * ToolStrip.cs: Fix build error and some general cleaning.
8246         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
8247         Fix build errors caused by making some of Control's fields private.
8248
8249 2006-12-05  Jackson Harper  <jackson@ximian.com>
8250
8251         * TextControl.cs: Redo Insert a little so that it use IndexOf
8252         instead of Split, this prevents it from messing up on things like
8253         \n\n\n. Also more effecient since the split array doesn't need to
8254         be created.
8255         * TextBoxBase.cs: AppendText doesnt handle multiline and non
8256         multiline text differently, this is the first of many fixes that
8257         will make multiline/non-multiline the same thing as far as the
8258         TextBoxBase is concerned.
8259         - Don't split the text and insert lines, this can lose some line
8260         endings (like is the last line a soft or hard break). Instead use
8261         the new Insert.
8262         - Fix an off by one when combining all the lines in the Text
8263         getter.
8264         - Remove separate multiline handling from the Text getter/setter.
8265
8266 2006-12-05  Chris Toshok  <toshok@ximian.com>
8267
8268         * ButtonBase.cs: a few changes:
8269
8270         - don't reinitialize internal Control fields in the ctor when they
8271         have the same values as Control sets them.
8272
8273         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
8274         this before calling those methods.
8275
8276         - we don't need to call Refresh for anything.  use Invalidate
8277         instead.
8278
8279         - OnEnabledChanged doesn't need to redraw at all - Control.cs
8280         calls Refresh in its OnEnabledChanged.
8281         
8282         - several of the events we were registered for in the ctor to
8283         redraw ourselves already include calls to Invalidate in the
8284         property setters that raise the events.  remove the extra
8285         invalidation.
8286
8287         - reformat a switch statement that was 83274658 columns wide.
8288         
8289 2006-12-05  Mike Kestner  <mkestner@novell.com>
8290
8291         * ComboBox.cs: fix a unit test regression from a TextBox
8292         SelectionLength return of -1 when there's no selection.  
8293
8294 2006-12-05  Chris Toshok  <toshok@ximian.com>
8295
8296         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
8297         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
8298         cleaning up some of the internal Control fields being used by
8299         subclasses.
8300
8301 2006-12-05  Mike Kestner  <mkestner@novell.com>
8302
8303         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
8304         listbox after AddImplicit calls since it defaults to hidden. Add a 
8305         hack to preserve requested heights across DropDownStyle changes.
8306
8307 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
8308
8309         * PropertyGrid.cs: Hide FindFirstItem method from public API.
8310
8311 2006-12-05  Chris Toshok  <toshok@ximian.com>
8312
8313         * DataGridView.cs: fix compiler warnings.
8314
8315         * PrintControllerWithStatusDialog.cs: same.
8316
8317         * ToolBar.cs: same.
8318
8319         * FolderBrowserDialog.cs: same.
8320
8321         * Splitter.cs: same.
8322
8323         * DataGridViewComboBoxCell.cs: same.
8324
8325         * XplatUIWin32.cs: same.
8326
8327         * PictureBox.cs: same.
8328
8329         * Win32DnD.cs: same.
8330
8331         * PageSetupDialog.cs: same.
8332
8333         * FileDialog.cs: same.
8334
8335         * PrintDialog.cs: same.
8336
8337         * DataGridTextBoxColumn.cs: same.
8338
8339         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
8340
8341 2006-12-05  Chris Toshok  <toshok@ximian.com>
8342
8343         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
8344         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
8345         System.ComponentModel.EventHandlerList work.
8346
8347 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
8348
8349         * DrawTreeNodeEventArgs.cs: Added.
8350
8351 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8352         
8353         * InternalWindowManager.cs: Remove an unused field.
8354         
8355 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8356
8357         * InternalWindowManager.cs:
8358         - Save the point where the title bar is clicked.
8359         
8360         * MdiWindowManager.cs:
8361         - Only allow moving of the window as long as the 
8362         clicked point on the title bar does not get out of
8363         MdiClient's rectangle. Fixes #79982.
8364         
8365         * MdiClient.cs:
8366         - Added Horizontal/VerticalScrollbarVisible.
8367         - Simplified the scrollbar sizing algorithm.
8368         - Cache the difference in scrolled value in
8369         H/VBarValueChanged and move the calculation out
8370         of the for loop.
8371
8372 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8373
8374         * Control.cs: Make the Console.WriteLine in WndProc 
8375         write more info.
8376
8377 2006-12-05  Chris Toshok  <toshok@ximian.com>
8378
8379         * ToolStripManager.cs, ToolStripButton.cs,
8380         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
8381         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
8382         ToolStripSplitButton.cs, ToolStripSeparator.cs,
8383         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
8384         ToolStripProgressBar.cs, ToolStripContainer.cs,
8385         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
8386         to using System.ComponentModel.EventHandlerList.
8387
8388 2006-12-04  Chris Toshok  <toshok@ximian.com>
8389
8390         * LinkLabel.cs: fix up compiler warnings.
8391
8392         * TableLayoutSettings.cs: same.
8393
8394         * TreeView.cs: same.
8395
8396         * ToolBar.cs: same.
8397
8398         * TabControl.cs: same.
8399
8400         * RichTextBox.cs: same.
8401
8402         * ListViewItem.cs: same.
8403
8404         * PropertyGrid.cs: same.
8405
8406         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
8407
8408         * ToolTip.cs same.
8409
8410         * TextRenderer.cs: fix up compiler warnings.
8411
8412         * Label.cs: same.
8413
8414         * Form.cs: corcompare fixes.
8415
8416         * PictureBox.cs: fix up compiler warnings.
8417
8418         * ImageListStreamer.cs: same.
8419
8420         * TrackBar.cs: corcompare fix.
8421
8422         * Control.cs: fix up compiler warnings.
8423
8424         * SplitterPanel.cs: same.
8425
8426         * NumericTextBox.cs: same.
8427
8428         * ImageList.cs: same.
8429
8430         * StatusStrip.cs: same.
8431
8432         * ProgressBar.cs: corcompare fix.
8433
8434         * ToolStripButton.cs: fix up compiler warnings.
8435
8436         * ToolStripStatusLabel.cs: same.
8437
8438         * ToolStripSplitButton.cs: same.
8439
8440         * ToolStripSeparator.cs: same.
8441
8442         * ToolStripProgressBar.cs: same.
8443
8444         * ToolStripDropDownMenu.cs: same
8445
8446         * ToolStripDropDown.cs: same.
8447
8448         * ToolStripDropDownButton.cs: same.
8449
8450         * ToolStrip.cs: same.
8451
8452         * ToolStripControlHost.cs: same.
8453
8454         * ToolStripContentPanel.cs: same.
8455
8456         * ToolStripDropDown.cs: same.
8457
8458         * ToolStripContainer.cs: same.
8459
8460         * ToolStripPanel.cs: same, and add "new" where we need it to work
8461         with the new ArrangedElementCollection.
8462
8463         * ToolStripItemCollection.cs: add "new" where we need it to work
8464         with the new ArrangedElementCollection.
8465
8466 2006-12-04  Andreia Gaita <avidigal@novell.com>
8467
8468         * TabControl.cs: Fix default tab selection to after TabControl
8469         gets focus and not before. Fixes #80128
8470
8471 2006-12-04  Chris Toshok  <toshok@ximian.com>
8472
8473         * DataGridTableStyle.cs: remove the gross calling of
8474         datagrid.Refresh from here.  It's a broken idea and it doesn't
8475         work anyway.
8476
8477         * DataGrid.cs: instead, just register/unregister from the
8478         DataGridTableStyle events in CurrentTableStyle.  we play it
8479         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
8480         even though some would most likely not require it.  Fixes bug
8481         #80115 (and one portion of #80117 as a side effect).
8482
8483 2006-12-04  Chris Toshok  <toshok@ximian.com>
8484
8485         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
8486         so the textbox (if any) goes away.  Fixes bug #80117.
8487
8488 2006-12-04  Chris Toshok  <toshok@ximian.com>
8489
8490         * DataGridColumnStyle.cs: set the column's readonly property
8491         initially based on the property descriptor's IsReadOnly.  Fixes
8492         bug #80044.
8493
8494 2006-12-04  Chris Toshok  <toshok@ximian.com>
8495
8496         * ComboBox.cs: wrap the dropdown style changing work in
8497         SuspendLayout/ResumeLayout.  Fixes bug #79968.
8498
8499 2006-12-04  Jackson Harper  <jackson@ximian.com>
8500
8501         * TextBoxBase.cs: Fix off by one, since these are one-based.
8502         * TextBox.cs: Select all the text when we get focus.  The TextBox
8503         does this but the RTB does not.
8504
8505 2006-12-04  Chris Toshok  <toshok@ximian.com>
8506
8507         * DataGridTextBoxColumn.cs: remove some spew.
8508
8509         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
8510         but some part of me is saying "it shouldn't be here.."  At any
8511         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
8512         setting the value.
8513
8514 2006-12-04  Chris Toshok  <toshok@ximian.com>
8515
8516         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
8517         to reassign the propertydescriptor.
8518
8519 2006-12-04  Jackson Harper  <jackson@ximian.com>
8520
8521         * TextBoxBase.cs:
8522         * TextControl.cs: Remove some unused variables.  Maybe this will
8523         patch things up between mike and I.
8524         - don't split lines less then one char wide, if the viewport is
8525         that small text won't be visible anyways.
8526         
8527 2006-12-04  Jackson Harper  <jackson@ximian.com>
8528
8529         * TextBoxBase.cs: Default selection length is -1, need to do some
8530         more testing on windows to see when this is used for the property.
8531         - Redid the Lines [] property to that we properly remove soft line
8532         breaks
8533         - added support for preserving carriage returns
8534         -  CanUndo is not a variable like 'is undo enabled' it just returns
8535         true if there is undo operations available.
8536         - AppendText doesn't need to grab the last tag itself anymore,
8537         this happens automatically when we move the cursor.
8538         * TextControl.cs: Add CompoundActions to the undo class. This
8539         allows combining the other operations into one big option.  ie a
8540         paste will combine { delete old, insert new, move cursor }
8541         - Add InsertString undo operation
8542         - New method for deleting multiline text
8543         - Add carriage returns to lines. So we can preserve carriage
8544         returns when text is 'roundtripped'
8545
8546 2006-12-04  Chris Toshok  <toshok@ximian.com>
8547
8548         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
8549         minimum 0.  Fixes the scrollbar exception in bug #80136.
8550
8551 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8552
8553         * MdiClient.cs: 
8554         * MdiWindowManager: Removed unused fields and methods.
8555         
8556 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8557         
8558         * StatusBar.cs: Update all panels when a AutoSize=Contents
8559         panel needs updating.
8560         
8561         * StatusBarPanel.cs: Remove twidth and only use initialize.
8562         Fixes #80031.
8563                 
8564 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8565
8566         * Form.cs: When a form's MdiParent is set add it directly
8567         on top of the z-order in stead of relying on MdiClient's
8568         ActivateChild to do it. Fixes #80135.
8569         
8570         * MdiClient.cs: 
8571         - Remove original_order, mdi_child_list is already doing
8572         the same thing.
8573         - Create mdi_child_list on construction in
8574         stead of first use (avoids a few null checks).
8575
8576         * MenuItem.cs: Use an already existing list of mdi children
8577         to get the correct order of children and remove the other
8578         redundant list.
8579
8580 2006-12-04  Chris Toshok  <toshok@ximian.com>
8581
8582         * PropertyGridView.cs: cached_splitter_location is only used in
8583         !DOUBLEBUFFER code.
8584
8585         * PropertyGrid.cs: implement the ComComponentNameChanged event
8586         using Events, hoping that would fix the warning.  Looks like a
8587         compiler bug instead (#80144).
8588
8589         * PropertyManager.cs: remove unused method.
8590
8591 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
8592
8593         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
8594         include parentesis to fix expression evaluation. Fixes #79634.
8595
8596 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
8597         
8598         * MenuAPI.cs:
8599         - Changes to fix behavior in Menu control, some reported in #80097
8600         and other detected during behavior refactory like a select event
8601         problems.
8602         - Remove unneded "if's" conditions.
8603         - Created an internal to flag when popup is active in control, we need 
8604         it because in .NET you can have menu active but without popup active
8605         when you active menu using popup without visible items.
8606         - Mimic win32 behavior for Select and Popup events.  
8607         - Dont open popup menu when you dont have visible subitems.
8608         - Do nothing when click on disabled menu item.
8609         - Some small changes to follow the coding style guidelines.
8610         - Unselect menu only when another control gives focus. Fixes #80097.
8611         - Remove unused code.
8612         
8613         * MenuItem.cs: internal VisibleItems method to check if menu
8614         theres visible subitems, it will be usefull to fix some 
8615         behavior in Menu control.
8616         
8617 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
8618         
8619         * Timer.cs: Tag property for 2.0 profile.
8620         
8621 2006-12-01  Chris Toshok  <toshok@ximian.com>
8622
8623         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
8624         
8625         * Win32DnD.cs: comment out some unused fields.
8626
8627         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
8628         some unused properties/methods.
8629
8630         * XplatUIX11.cs: fix MousePosition so we override the base class's
8631         property instead of conflicting with it.
8632
8633         * PictureBox.cs: comment out some unused fields
8634
8635         * OSXStructs.cs: make some struct fields public.
8636
8637         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
8638         MousePosition so we override the base class's property instead of
8639         conflicting with it.
8640
8641         * X11Dnd.cs: comment out some unused fields
8642
8643         * X11DesktopColors.cs: fix some struct field visibility to quiet
8644         the compiler.
8645
8646         * X11Dnd.cs: remove some debug code.
8647
8648         * ThemeClearlooks.cs: comment out unused field.
8649
8650         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
8651
8652         * ThemeGtk.cs: comment out some unused pinvokes.
8653
8654         * Timer.cs: remove some unused fields.
8655
8656         * ThemeClearlooks.cs: comment out unused field.
8657
8658         * UpDownBase.cs: comment out unused field.
8659
8660         * DataObject.cs: comment out unused field.
8661
8662         * DataGridBoolColumn.cs: reomve unused field.
8663
8664         * DataGrid.cs: remove unused field.
8665
8666         * Cursor.cs: remove old ToBitmap code.
8667
8668         * ControlPaint.cs: remove unused method.
8669
8670         * ScrollBar.cs: remove unused fields.
8671
8672         * ComboBox.cs: remove unused field, and chain up to
8673         AccessibleObject ctor.
8674
8675         * ListBox.cs: remove unused field.
8676
8677         * ButtonBase.cs: wrap a couple fields in NET_2_0.
8678
8679         * GridEntry.cs: remove unused fields.
8680
8681         * Binding.cs: remove unused fields.
8682
8683         * AxHost.cs: remove unused method.
8684
8685         * ContainerControl.cs: remove unused field.
8686
8687         * ScrollableControl.cs: remove unused fields.
8688
8689 2006-12-01  Chris Toshok  <toshok@ximian.com>
8690
8691         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
8692         the Where/WhereString stuff.  it's easy enough to CWL
8693         Environment.StackTrace.
8694
8695         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
8696         unused private fields.
8697
8698 2006-12-01  Jackson Harper  <jackson@ximian.com>
8699
8700         * TextControl.cs: Do not update the view while inserting multiline
8701         text. If we update the view we might wrap lines, before entering
8702         the new lines, which causes the new line insertion calculations to
8703         be totally fubared.
8704         - Remove an old TODO
8705         - Make debug output a little nicer
8706         
8707 2006-12-01  Chris Toshok  <toshok@ximian.com>
8708
8709         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
8710
8711 2006-12-01  Chris Toshok  <toshok@ximian.com>
8712
8713         [ fix the majority of the CS0108 warnings we've been suppressing ]
8714         
8715         * TreeView.cs: mark BackgroundImageChanged as 'new'.
8716
8717         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
8718         to "LayoutToolBar" to quiet mcs.
8719         
8720         * TabControl.cs: mark our ControlCollection class as 'new'.
8721
8722         * TextBoxBase.cs: mark some events as 'new'.
8723
8724         * Splitter.cs: TabStop is 'new'.
8725
8726         * ControlBindingsCollection.cs: mark a few methods as new since
8727         they change the visibility from protected to public.
8728
8729         * RadioButton.cs: DoubleClick -> base class, and remove unused
8730         HaveDoubleClick.
8731
8732         * MonthCalendar.cs: ImeMode property -> base class, and mark many
8733         events as new.
8734
8735         * NumericUpDown.cs: TextChanged -> base class.
8736
8737         * CheckedListBox.cs: mark our ObjectCollection class as new to
8738         quiet mcs.
8739
8740         * FolderBrowserDialog.cs: make HelpRequest event new and have it
8741         muck with the base class.
8742
8743         * StatusBar.cs: fix some mcs warnings about Update being the same
8744         name as a base class method.
8745
8746         * RichTextBox.cs: mark some events as new, and make them do things
8747         to the base class impl.
8748
8749         * UserControl.cs: mark TextChanged as new, and have it manipulate
8750         base.TextChanged.
8751
8752         * UpDownBase.cs: mark some things new.
8753
8754         * CheckBox.cs: mark DoubleClick "new", and add some text about
8755         what we need to look at.
8756
8757         * Panel.cs: make the events "new", and manipulate the base
8758         version.  these are just here for attributes.
8759
8760         * AccessibleObject.cs: make owner private.
8761
8762         * Control.cs: deal with AccessibleObject.owner being private.
8763         cache our own copy if we need it.
8764
8765         * Button.cs: add "new" to the DoubleClickEvent.
8766
8767         * ListBox.cs: no need to track our own has_focus here.  let
8768         Control.has_focus do it for us.  Also some other work to clear up
8769         warnings about not overriding base class methods of the same name.
8770         
8771         * ComboBox.cs: clear up some warnings about not override base
8772         class methods of the same name.
8773
8774 2006-12-01  Chris Toshok  <toshok@ximian.com>
8775
8776         * Form.cs: flag a few things as "new" to quiet some of the mcs
8777         warnings.
8778
8779         * AxHost.cs: same.
8780
8781         * PrintPreviewDialog.cs: same.
8782
8783         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
8784         now DGV isn't so horrible on the class status page.  also, move
8785         all events to using System.ComponentModel.EventHandlerList.  my
8786         wrists hurt.
8787
8788 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8789
8790         * MdiWindowManager.cs:
8791         - Set form to active mdi child if shown,
8792         and update the active mdi child to the next 
8793         remaining child in the z-order if the form is hidden.
8794
8795         * Form.cs: 
8796         - Track if the form has been visible and if its 
8797         visibility is beeing changed, so that the MdiClient
8798         can properly decide the ActiveMdiChild. The MdiClient 
8799         cannot track this since the form can change visibility 
8800         before MdiClient is created.
8801
8802         * MdiClient.cs:
8803         - Don't activate anything of the parent form is changing
8804         its visibility.
8805         - Rework ActiveMdiChild to only return visible mdi 
8806         children and take into account several other corner 
8807         cases.
8808
8809 2006-12-01  Chris Toshok  <toshok@ximian.com>
8810
8811         * IBindableComponent.cs: new 2.0 interface.
8812
8813 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
8814
8815         * DataGrid.cs: Font for caption area is bold by default.
8816
8817 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
8818
8819         * Menu.cs: Tag property for 2.0.
8820         
8821 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
8822
8823         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
8824         
8825 2006-12-01  Chris Toshok  <toshok@ximian.com>
8826
8827         * TreeView.cs: doh, the Begin* events should be
8828         TreeViewCancelEventHandler.
8829
8830 2006-12-01  Chris Toshok  <toshok@ximian.com>
8831
8832         * Form.cs: Form.ControlCollection already stores off the
8833         form_owner field.  don't access the base class's internal "owner"
8834         field.
8835
8836         * Control.cs: make all the fields in Control.ControlCollection
8837         private.  there's no need for any internal fields here.
8838
8839 2006-12-01  Chris Toshok  <toshok@ximian.com>
8840
8841         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
8842         OnHandleCreated.  Fixes bug #80109.
8843
8844 2006-12-01  Chris Toshok  <toshok@ximian.com>
8845
8846         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
8847         SplitContainer.cs, Control.cs, StatusStrip.cs,
8848         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
8849         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
8850         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
8851         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
8852         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
8853         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
8854         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
8855         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
8856         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
8857         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
8858
8859         do most of the work to convert our code over to use
8860         System.ComponentModel.Component.Events for
8861         adding/removing/dispatching events.
8862
8863
8864 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
8865
8866         * DataGridView.cs: Fix an ArgumentNullException reported 
8867         twice today in IRC.
8868
8869 2006-11-30  Mike Kestner  <mkestner@novell.com>
8870
8871         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
8872         grabbed listbox.  Fixes #80036 and #80101.
8873
8874 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
8875
8876         * Message.cs: Changed ToString() to match MS.
8877         
8878 2006-11-30  Jackson Harper  <jackson@ximian.com>
8879
8880         * TextBoxBase.cs: You can still change the selected text on a read
8881         only textbox.
8882         * TextControl.cs: Lower magic number for wrap calculations. This
8883         lets text get closer to the right (far) edge.
8884
8885 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
8886
8887         * Control.cs: Tweak 2.0 layout properties.
8888         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
8889         * TextRenderer.cs: Add a new overload.
8890         * ToolStrip*: Huge amount of changes and new features.
8891
8892 2006-11-30  Mike Kestner  <mkestner@novell.com>
8893
8894         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
8895         scroll range correct.  Fixes #79994.
8896
8897 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
8898
8899         * MdiWindowManager.cs: Update main form's text when
8900         a form is closed. (fixes #80038)
8901         
8902 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
8903
8904         * ToolBar.cs:
8905         - Fix an regression in ButtonSize.
8906         - Get ImeMode default value change to "Disable".
8907         - Get ShowTooltips default value change to true, default value is 
8908         "false" but after make a test in .NET we get "true" result as default.
8909         
8910 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
8911
8912         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
8913
8914 2006-11-29  Chris Toshok  <toshok@ximian.com>
8915
8916         * XplatUIWin32.cs (GetWindowTransparency): check return value of
8917         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
8918         SetWindowTransparency hasn't been called.
8919
8920 2006-11-29  Chris Toshok  <toshok@ximian.com>
8921
8922         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
8923         if it's supported.
8924         (set_AllowTransparency): reorder things a little so that the
8925         WS_EX_LAYERED style is removed properly.
8926
8927 2006-11-29  Chris Toshok  <toshok@ximian.com>
8928
8929         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
8930         
8931         * Form.cs: only call the XplatUI transparency method (get/set) if
8932         SupportsTransparency says it's supported. Otherwise fallback to
8933         doing nothing (in the set case) or returning the instance field we
8934         cache (in the get case).
8935
8936         * XplatUIStructs.cs: add TransparencySupport flag enum.
8937         
8938         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
8939         change to SupportsTransparency.
8940
8941         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
8942         TransparencySupport.None from SupportsTransparency.
8943
8944         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
8945         TransparencySupport.Set from SupportsTransparency.
8946
8947         * XplatUIWin32.cs: implement GetWindowTransparency calling
8948         GetLayeredWindowAttributes, and implement SupportsTransparency by
8949         checking whether or not both
8950         GetWindowTransparency/SetWindowTransparency are available
8951         entrypoints.  We need to do this since SetWindowTransparency is
8952         available as of win2k, but GetWindowTransparency requires winxp.
8953         yay win32 api.
8954
8955         * XplatUI.cs: Add GetWindowTransparency, and change
8956         SupportsTransparency to allow for either/both Get/Set.
8957
8958 2006-11-29  Chris Toshok  <toshok@ximian.com>
8959
8960         * DataGrid.cs: keep from going into an infinite loop redrawing a
8961         datagrid that has no datasource.  Fixes bug #80033.
8962
8963 2006-11-29  Chris Toshok  <toshok@ximian.com>
8964
8965         * MenuItem.cs: fix the NRE when we assign text (and therefore call
8966         Invalidate) before the mainmenu has been assigned to a control.
8967
8968 2006-11-29  Chris Toshok  <toshok@ximian.com>
8969
8970         * DataGrid.cs: detect when we should be double the double click
8971         row/column autosize stuff, although that codepath has yet to be
8972         written.  part of the work for bug #79891.
8973
8974 2006-11-29  Chris Toshok  <toshok@ximian.com>
8975
8976         * Binding.cs (SetControl): fix unit test.
8977
8978 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8979
8980         * PageSetupDialog.cs: Validate the margins and set them in
8981         PageSettings. 
8982         * NumericTextBox.cs: New class to mimic the behavior of the
8983         textboxes used in the printing dialogs.
8984
8985 2006-11-29  Andreia Gaita  <avidigal@novell.com>
8986         
8987         * Form.cs: Revert previous change (remove call UpdateBounds
8988         from form constructor), because it messes with the handle creation
8989         order, and that one needs lots and lots of love.
8990         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
8991         for valid printer and throw InvalidPrinterException if document
8992         is set but printer not valid), adding a MonoTODO. Once 
8993         handle creation is done properly, we can put this back in.
8994
8995 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
8996
8997         * MenuItem.cs: Create a invalidate method for menu item, to be
8998         calling from set text, it make text changes to imadiate update
8999         on screen. Fixes #80013. 
9000         
9001 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
9002
9003         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
9004         fixes bug #80070 and some other problem on toolbar buttons
9005         layout.
9006
9007 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
9008
9009         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
9010         with dotted brush.      Fixes #79564
9011         
9012 2006-11-28  Andreia Gaita  <avidigal@novell.com>
9013
9014         * Form.cs: Removed call to UpdateBounds on Form
9015         constructor, it was causing a call to CreateHandle
9016         before it was supposed to.
9017         * PrintControllerWithStatusDialog: Applied patch
9018         by Chris Toshok to hide controller when there are
9019         no printers available.
9020         PrintDialog.cs: initialize printer settings to 
9021         null - correct DefaultValues test #5
9022         * PrintPreviewControl.cs: Move PrintController
9023         initialization to GeneratePreview
9024         * PrintPreviewDialog.cs: 
9025         - Remove Preview generation     from Document_set(). It is 
9026         called on OnPaint
9027         - Throw InvalidPrinterException on CreateHandle if
9028         a Document is set but there are no printers or 
9029         printer is not valid.
9030         * ThemeWin32Classic: don't paint PrintPreviewControl
9031         if there is nothing to paint    
9032
9033 2006-11-28  Miguel de Icaza  <miguel@novell.com>
9034
9035         * Form.cs: Add another popular method.
9036
9037         * TabPage.cs: ditto.
9038
9039 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9040
9041         * MenuItem.cs: Fixed a warning.
9042         * InternalWindowManager: Fixed a warning.
9043
9044 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9045
9046         * MenuItem.cs:
9047         - When cloning a menu also clone MdiList and clone the 
9048           window menu items properly (as the forms and menuitems
9049           are kept in an internal hashtable, these need updating 
9050           as well)
9051         - Rewrote the window menu code, menu items are added in the
9052           order the forms were added to their parent, and they are
9053           updated every time the window menu is shown (before the
9054           list was only generated once, in the current order of the
9055           forms, and would never be updated). A checkmark is shown
9056           next to the item corresponding to the active mdi child.
9057
9058 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9059
9060         * XplatUIStructs.cs: 
9061         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
9062         
9063         * XplatUIWin32.cs: 
9064         - Added TME_NONCLIENT to TMEFlags.
9065         - Handles WM_NCMOUSEMOVE in GetMessage to 
9066           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
9067
9068         * MdiWindowManager:
9069         - Now merges mdi child menu to parent menu when maximized.
9070         - Recalculate NC areas of both mdi child and mdi parent. 
9071           Fixes #79757 (4).
9072           on window state and size changes.Fixes #79844 (3).
9073         - Handle WM_NCCALCSIZE to properly calculate borders.
9074
9075         * Form.cs:
9076         - Add/remove to the mdi containers list of mdi children 
9077           in the order they are added.
9078         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
9079           to the maximized mdi child.
9080         
9081         * InternalWindowManager.cs:
9082         - Only execute a click on the control buttons on the mouse up,
9083           not on the mouse down. Show the state of the button 
9084           (was only showing Normal state, never Pressed state). The
9085           pressed button now follows the mouse (if you click the Close 
9086           button and move the mouse over the Maximize button, the 
9087           Maximize button will be shown as pressed). Since Win32 does
9088           not generate WM_NCLBUTTONUP if you release the button outside
9089           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
9090           it as a mouse up.
9091         
9092         * ThemeWin32Classic.cs:
9093         - Draw a missing border around mdi child forms. Fixes #79844 (2).
9094
9095         * MdiClient.cs:
9096         - Added a list of forms which contains the order the forms are
9097           added to the mdi parent.
9098         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
9099         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
9100         - If the active form changes set the scrollbars to the top
9101           of the Z order, otherwise the form could hide them.
9102         - Scrollbars are now sized according to ClientSize, not 
9103           to Size, and they take into account the other scrollbar
9104           to determine maximum.
9105         
9106 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
9107         
9108         * XplatUI.cs:
9109         * XplatUIDriver.cs:
9110         * XplatUIX11.cs:
9111         * XplatUIWin32.cs:
9112         * XplatUIOSX.cs:
9113         - Added RequestAdditionalWM_NCMessages for windows to 
9114           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
9115           Currently only implemented in XplatUIWin32.
9116
9117 2006-11-27  Chris Toshok  <toshok@ximian.com>
9118
9119         * Hwnd.cs: only add the hwnd to the windows hash in
9120         set_WholeWindow and set_ClientWindow if whole_window/client_window
9121         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
9122
9123 2006-11-27  Mike Kestner  <mkestner@novell.com>
9124
9125         * ComboBox.cs: remove redundant OnDropDown call.  It is called
9126         from the ComboListBox.ShowWindow code. Fixes #79969.
9127
9128 2006-11-27  Chris Toshok  <toshok@ximian.com>
9129
9130         * Hwnd.cs: remove the setters for ExposePending and
9131         NCExposePending - noone uses them.
9132
9133 2006-11-27  Jackson Harper  <jackson@ximian.com>
9134
9135         * TextControl.cs: new param for ReplaceSelection which determines
9136         whether we select the new selection, or set the cursor to the end
9137         of the new selection.
9138         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
9139         pasting, select the new text.
9140         * RichTextBox.cs: Use new param for ReplaceSelection.
9141
9142 2006-11-27  Jackson Harper  <jackson@ximian.com>
9143
9144         * TextBoxBase.cs: Set the selection to the caret after the caret
9145         is moved, otherwise they get out of sync.
9146
9147 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
9148
9149         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
9150         it fixes #80015
9151
9152 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
9153
9154         * ThemeWin32Classic.cs: 
9155         - Fix toolbar drop down arrow position.
9156         - Fix drop down appearance when ToolBar.Appearance is normal,
9157         it fixes #80018.
9158         
9159 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
9160
9161         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
9162         * Control.cs: Same.
9163         * UpDownBase.cs: Same.
9164         * ButtonBase.cs: Same.
9165         * ScrollBar.cs: Same.
9166         * TrackBar.cs: Same.
9167         * PictureBox.cs: Same.
9168         * UserControl.cs: Same.
9169         * Label.cs: Same.
9170         * ListControl.cs: Same.
9171         * TextBoxBase.cs: Same.
9172         * ListView.cs: Same.
9173         * RichTextBox.cs: Same.
9174         * TreeView.cs: Same.
9175
9176 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
9177
9178         * PrintDialog.cs:
9179         - Text label for where 
9180         - Text label comment was not shown
9181
9182 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
9183
9184         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
9185
9186 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
9187
9188         * InternalWindowManager.cs: 
9189         - Handle WM_PARENTNOTIFY to activate the form
9190         if any child control is clicked.
9191         - The form is only sizable if not minimized.
9192
9193         * MdiWindowManager.cs:
9194         - Save the IconicBounds if the form is moved.
9195         - Rework SetWindowState, now the window bounds 
9196         are stored only if the old window state is Normal.
9197         
9198         * MdiClient.cs:
9199         - In SetWindowStates store the old window state if 
9200         the window is maximized and restore window state if
9201         the window looses focus.
9202         - Don't handle any scrollbar value changes if 
9203         initializing the scroll bars. Fixes #79771.
9204         - Reworked ArrangeIconicWindows. Current algorithm
9205         tests bounds agains all other minimized windows, if
9206         any intersections create new bounds (going left to 
9207         right, bottom to top) and then test again. When 
9208         successful the bounds are saved and never computed
9209         again. Fixes #79774.
9210
9211 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
9212
9213         * InternalWindowManager.cs: Added HandleTitleBarUp.
9214
9215 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
9216
9217         * NumericUpDown.cs: In .NET 1.1, user entered text is still
9218         hexadecimal in ParseUserEdit.
9219
9220         
9221 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
9222
9223         * MdiWindowManager.cs: 
9224         - Handle a click on the form's icon to show the 
9225         system menu (when maximized). Fixes #79775.
9226         - Change the existing click handler for the form's
9227         icon when not maximized to show on MouseUp.
9228         Fixes #79776.
9229
9230         * Form.cs: In OnResize only layout the mdi child's
9231         parent if it actually has a parent. Might not if
9232         the window is closing.
9233
9234
9235 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
9236
9237         * MdiClient.cs: Ignore active MDI client for text of parent, if
9238         child has no text set.
9239
9240 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
9241
9242         * ToolBar.cs: Fixed ToString to match MS.
9243
9244 2006-11-22  Andreia Gaita  <avidigal@novell.com>
9245
9246         * NumericUpDown: 
9247         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
9248         update inner values on set. Fixes #79966.
9249         - Override OnLostFocus to update value on NET 2. Fixes #79950.
9250         - Fix hexadecimal parsing.
9251         
9252         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
9253         parent. Fixes #79957
9254
9255 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9256
9257         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
9258         the actual size has to be queried, since if height /
9259         width is negative Win32 changes it to 0. 
9260         Fixes #79999 on Windows.
9261         
9262         * XplatUIX11.cs: Set height / width to 0 if negative
9263         in SetWindowPos. Fixes #79999 on Linux.
9264         
9265 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
9266
9267         * ThemeWin32Classic.cs: Fix text redenring when button is
9268         pressed.
9269
9270 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
9271
9272         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
9273         and later navigate by mouse. Fixes #79528.
9274
9275 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
9276
9277         * ToolBar.cs: Set default value for TabStop to false in
9278         constructor, it fixes remaining behavior of bug #79863.
9279
9280 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9281
9282         * MdiWindowManager.cs:
9283         * InternalWindowManager.cs:
9284         - Moved a few methods specific to Mdi from 
9285         InternalWindowManager to MdiWindowManager.
9286         Fixes #79996.
9287         
9288 2006-11-21  Chris Toshok  <toshok@ximian.com>
9289
9290         * XplatUIOSX.cs: stub out InvalidateNC.
9291
9292         * XplatUIWin32.cs: implement InvalidateNC using the call I found
9293         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
9294
9295         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
9296
9297         * XplatUIDriver.cs: add InvalidateNC abstract method.
9298
9299         * XplatUI.cs: add InvalidateNC.
9300
9301 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
9302
9303         * ToolBar.cs: Invalidate complete button area when pressed status 
9304         was changed.
9305         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
9306         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
9307         by 1 when button is pressed.
9308
9309 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
9310
9311         * ToolButton.cs: Invalidate middle of DropDown button when
9312         ToolBar theres DropDownArrows.
9313         * ThemeWin32Classic.cs: Change position of DropDown arrow and
9314         fix DropDown drawing operations.
9315
9316 2006-11-20  Chris Toshok  <toshok@ximian.com>
9317
9318         * NativeWindow.cs: fix the formatting of functions ('{' on the
9319         following line), and enable the thread exception dialog.
9320
9321         * Application.cs: remove the duplicate exception catching from
9322         here.
9323
9324 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
9325
9326         * Toolbar.cs: Triggers button click event when click on icon
9327         of dropdown ToolBarButton. Fixes #79912.
9328         
9329 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9330
9331         * Theme.cs:
9332         * ThemeWin32Classic.cs:
9333         - Added a property WindowBorderFont to enable themeing
9334           of mdi child windows' Text.
9335           
9336 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9337
9338         * InternalWindowManager.cs:
9339         * Form.cs:
9340         * MdiClient.cs:
9341         * MdiWindowManager.cs: 
9342         - If mdi child is maximized, set mdi parent's
9343           text to "Parent - [Child]". Fixes #79770.
9344         - If there is any maximized mdi child windows, only the active 
9345           window (and any new windows) is maximized, the rest are normal.
9346         - On a WindowState change only save mdi child's window bounds 
9347           if the old window state was normal. Fixes #79774.
9348         - The scroll bars are now calculated on hopefully all
9349           necessary events. Fixed #79771 / #79844->6 / #79906.
9350         - MdiClient.SizeScrollBars() now takes into account docked 
9351           controls in the parent when calculating available space.
9352         - InternalWindowManager now always repaints the entire title
9353           area. Fixes #79844->1/4/5.
9354         - Added RequestNCRecalc on mdi child windowstate changes.
9355           Fixes #79772.
9356
9357 2006-11-20  Mike Kestner  <mkestner@novell.com>
9358
9359         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
9360         in the MouseUp handler of the listbox and move the return handling
9361         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
9362
9363 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
9364
9365         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
9366
9367 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
9368
9369         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
9370           working in 1.2.x anymore. So, updated.
9371
9372 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
9373
9374         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
9375         NumberGroupSeparator of current culture instead of assuming en-US.
9376         Fixed bug #79967.
9377
9378 2006-11-17  Mike Kestner  <mkestner@novell.com>
9379
9380         * Control.cs: Add the concept of implicit bounds setting so that
9381         dock/undock round trips preserve explicitly set size/locations.
9382         Fixes #79313.
9383
9384 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
9385
9386         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
9387           can't handle those filters. (Fixes bug #79961)
9388
9389 2006-11-17  Chris Toshok  <toshok@ximian.com>
9390
9391         [ fixes the exit/crashes associated with #79835.  it's clearly
9392         suboptimal though, we need to figure out a better way to solve
9393         this. ]
9394         
9395         * PrintPreviewControl.cs: deal with the new invalid printer
9396         exceptions.
9397
9398         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
9399         and return false (so CommonDialog.ShowDialog doesn't actually show
9400         the form.)
9401
9402         * PrintDialog.cs: enable/disable the Ok button depending on
9403         whether or not the printer is valid.
9404
9405         * CommonDialog.cs (ShowDialog): only actually show the form if
9406         RunDialog returns true.
9407
9408 2006-11-17  Jackson Harper  <jackson@ximian.com>
9409
9410         * TextControl.cs: When soft splitting a line, mark it as a soft
9411         split line. Also carry over the current line break to the next
9412         line.
9413
9414 2006-11-17  Chris Toshok  <toshok@ximian.com>
9415
9416         * XplatUIX11.cs: when scrolling a window with an invalid area, we
9417         only want to shift the part of the invalid area that overlaps the
9418         area we're scrolling.  we also don't want to clear the invalid
9419         area unless the invalid area was entirely contained within the
9420         scrolling area.
9421
9422 2006-11-16  Chris Toshok  <toshok@ximian.com>
9423
9424         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
9425         also make sure to free the memory returned by XGetWindowProperty
9426         in GetText().
9427
9428         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
9429
9430 2006-11-16  Chris Toshok  <toshok@ximian.com>
9431
9432         * XplatUI.cs: add a new super secret way to get at the totally
9433         unsupported X11 backend.
9434
9435 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
9436
9437         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
9438
9439 2006-11-16  Jackson Harper  <jackson@ximian.com>
9440
9441         * TreeView.cs: Allow more explicit setting of top node position
9442         for scrollbars. Slower algo, but more accurate.
9443         - CollapseAll should maintain the current top node.
9444         * TextBoxBase.cs: When positioning the caret, use the line, pos
9445         method, since the x, y method does not grab the correct tag, and
9446         the caret height never gets set correctly. (Maybe I should just do
9447         away with the caret having its own height, and always use the
9448         carets current tag for height).
9449
9450 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
9451
9452         [Fixes 79778, 79923]
9453
9454         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
9455         Parent to the FosterParent instead.
9456
9457 2006-11-16  Jackson Harper  <jackson@ximian.com>
9458
9459         * TreeView.cs: Need to recalc the topnode when we expand or
9460         collapse. The scrolling methods can't handle this on their own,
9461         since they use differences between the last scroll position, and
9462         those difference get completely messed up since we are expanding
9463         nodes.  This problem should probably be fixed in the scrolling
9464         methods, so they can figure out exactly where they are, but this
9465         will slow things down a little.
9466         * ThemeWin32Classic.cs: Special case for groupboxes with empty
9467         strings, makes nunit-gui look a lot nicer.
9468
9469 2006-11-16  Chris Toshok  <toshok@ximian.com>
9470
9471         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
9472         the broken multithreaded event handling we have in here.  File
9473         this entry under "Why we should move to the new X11 backend".
9474
9475         Any thread can make it into UpdateMessageQueue, which gets events
9476         from the X socket - some of which could belong to hwnds being
9477         managed by a different thread.  We can also have multiple threads
9478         in UpdateMessageQueue at the same time, with each one reading from
9479         the X socket.  This leads to many problems, with the following
9480         solutions:
9481
9482         We can't use hwnd.Queue.Enqueue anywhere in here and must use
9483         EnqueueLocked.
9484
9485         The MotionNotify compression we do can't work across threads
9486         (without locking the entire queue, perhaps) since we call
9487         hwnd.Queue.Peek, so we just punt and don't compress motion events
9488         unless the owning thread is the one which got the X event.
9489
9490         ConfigureNotify is another fun one, since it modifies the hwnd's
9491         bounds and then enqueues the event.  We add a lock to Hwnd which
9492         is held when setting configure_pending to true (and enqueuing the
9493         event).
9494
9495         There is a race wrt the wake socket.  we need to make sure that
9496         only 1 thread is waiting on that socket, or else a thread could
9497         sleep waiting for data that never comes.  It's difficult (but not
9498         impossible) to make happen, because it seems to require something
9499         like the following:
9500
9501             1. Thread 1 polls on wake_receive
9502         
9503             2. poll returns saying there's data to be read on
9504                wake_receive.
9505         
9506             3. Thread 2 polls on wake_receive and immediately returns
9507                saying there's data to be read.
9508
9509             4. Thread 2 reads the wakeup byte from wake_receive
9510
9511             5. Thread 1 attempts to read the wakeup byte from
9512                wake_receive.
9513
9514             6. Thread 2 exits (due to a form closing, perhaps).
9515
9516             7. Thread 1 blocks forever.
9517         
9518         Fun, eh?
9519
9520         Fixing the Expose handling isn't done yet, and the races inherent
9521         in that piece of code are responsible for the drawing mistakes you
9522         see when generating expose events in a MT app (like NPlot).  This
9523         one is the likely to be the hardest to bandaid, and it doesn't
9524         appear to cause anything but drawing problems.  The other issues
9525         caused apps to exit or hang.
9526
9527         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
9528         called from a different thread than the one that should be calling
9529         these functions.
9530
9531         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
9532
9533 2006-11-15  Chris Toshok  <toshok@ximian.com>
9534
9535         * Application.cs: null out the context's MainForm when we exit
9536         RunLoop.  Fixes a newly checked in unit test as well as the last
9537         ODE from bug #79933.
9538
9539 2006-11-15  Chris Toshok  <toshok@ximian.com>
9540
9541         * Form.cs (set_Owner): allow a null value so we can clear the
9542         form's owner.
9543         (Dispose): set all our owned_form's Owner properties to null, and
9544         clear the owned_forms collection.
9545         (WM_CLOSE): clean up this a little bit.. still not right though.
9546
9547         * ApplicationContext.cs: OnMainFormClosed should only call
9548         ExitThreadCore if the main form isn't recreating.  Fixes unit
9549         test.
9550
9551 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
9552
9553         [Fixes 78346]
9554
9555         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
9556
9557 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
9558
9559         [Fixes 79433]
9560
9561         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
9562         keep popup window types from stealing focus from the main form
9563         on Windows.
9564
9565         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
9566
9567         * MenuAPI.cs: Set above flag to true.
9568
9569 2006-11-15  Chris Toshok  <toshok@ximian.com>
9570
9571         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
9572         the button being released is not in wParam.
9573
9574 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
9575
9576         * Form.cs: Add the released button to MouseEventArgs.Button
9577         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
9578         on Win32.
9579
9580 2006-11-15  Chris Toshok  <toshok@ximian.com>
9581
9582         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
9583         GetText().  untested because it's unused in our implementation.
9584         Control.Text always caches the text, even if
9585         ControlStyles.CacheText is not set.
9586
9587         fixes bug #79939.
9588
9589 2006-11-15  Chris Toshok  <toshok@ximian.com>
9590
9591         [ fixes #79933 ]
9592         
9593         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
9594         message.  no hiding, no disposing.
9595
9596         in the WM_CLOSE handler, hide the form if it's modal.
9597
9598 2006-11-15  Chris Toshok  <toshok@ximian.com>
9599
9600         * XplatUIX11.cs: use AddExpose instead of sending a message.
9601         fixes textbox border drawing.
9602
9603 2006-11-15  Chris Toshok  <toshok@ximian.com>
9604
9605         * PropertyGridView.cs: keep from crashing on mouse move/down when
9606         the property grid is empty.
9607
9608 2006-11-14  Jackson Harper  <jackson@ximian.com>
9609
9610         * TextControl.cs: Make PageUp and PageDown more like the MS
9611         versions.
9612         * TextBoxBase.cs: When we set the text property position the
9613         cursor at the beginning of the document.
9614
9615 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9616
9617         * Form.cs: if a mdi child's WindowState has changed
9618         before it's creation, it would display wrong control
9619         buttons.
9620         
9621 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
9622
9623         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
9624           (Fixes bug #79927)
9625
9626 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
9627
9628         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
9629         the window gets to paint its borders even if the window is
9630         getting smaller.
9631         
9632         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
9633         otherwise the old control buttons would still be painted 
9634         if the window gets bigger.
9635         
9636         * PaintEventArgs.cs: add an internal method so that the clip 
9637         rectangle can be changed.
9638         
9639 2006-11-13  Chris Toshok  <toshok@ximian.com>
9640
9641         [ fixes bug #79745 ]
9642         
9643         * NotifyIcon.cs: lots of cleanup.
9644
9645         * X11Structs.cs: add an enum for XEMBED messages.
9646
9647         * XplatUIX11.cs: reindent one of the giant switch statements, it
9648         was taking up an additional tab stop, and this file is already way
9649         too wide for my laptop's screen.
9650
9651         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
9652         we get it, resize the hwnd to the WMNormalHints max_width/height.
9653
9654 2006-11-13  Jackson Harper  <jackson@ximian.com>
9655
9656         * TextBoxBase.cs: Compute the value changes for the mouse wheel
9657         teh simple way.
9658
9659 2006-11-13  Chris Toshok  <toshok@ximian.com>
9660
9661         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
9662         #79898.  force a reference to the Region to stick around so the
9663         unmanaged object isn't collected (rendering our handle in the MSG
9664         stale).
9665
9666 2006-11-13  Chris Toshok  <toshok@ximian.com>
9667
9668         * XplatUIX11.cs: fix #79917 for window managers which support
9669
9670         using XStoreName on the raw utf8, and we need to convert to
9671         COMPOUND_TEXT if it's non-latin1.
9672
9673 2006-11-13  Chris Toshok  <toshok@ximian.com>
9674
9675         * Form.cs (set_DialogResult): we need to set closing to false if
9676         we're setting our result to None.  fixes bug #79908.
9677
9678 2006-11-13  Jackson Harper  <jackson@ximian.com>
9679
9680         * TextControl.cs: When formatting text, compute the adjusted tag
9681         lengths correctly, using FindTag for the end tag instead of trying
9682         to figure it out outselves.
9683         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
9684         the item, ItemHeight doesn't work, because trees with large
9685         imagelists use those for their height
9686         * TreeView.cs: ActualItemHeight factors in the image height
9687         - compute left edge of checkboxes correctly
9688         - when expanding/collapsing move the bottom down one pixel, so we
9689         aren't moving part of the node
9690
9691 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9692
9693         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
9694         stack in PaintEventStart so that it won't get disposed by the gc
9695         before reaching PaintEventEnd.
9696
9697 2006-11-13  Jackson Harper  <jackson@ximian.com>
9698
9699         * TextBoxBase.cs: Don't select the word if we are on a line with
9700         no text.
9701         - We don't need to position the caret on mouse up, since the mouse
9702         move handler should be doing this
9703         - When double clicking a blank line, the caret is advanced to the
9704         next line.
9705
9706 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
9707
9708         * TreeNodeCollection.cs: Avoid duplicating indexer code.
9709
9710 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
9711
9712         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
9713         Fixes part of bug #79910.
9714
9715 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
9716
9717         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
9718           (bug #79903). Some minor string updates to match ms.
9719
9720 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
9721
9722         * FileDialog.cs: Don't add an extension if the filename
9723           already ends with that extension.
9724
9725 2006-11-10  Jackson Harper  <jackson@ximian.com>
9726
9727         * TreeView.cs: Use the currently highlighted node for the
9728         BeforeSelect event.
9729         * TextBoxBase.cs: There is no need to expand selection on
9730         MouseMove.
9731         - CanUndo means 'is there any undo operations', not 'is undo
9732         allowed on this textcontrol. Fixed ClearUndo unit test.
9733
9734 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
9735
9736         * Button.cs: only perform click when button is Selectable (so as 
9737         not to activate default buttons when they're disabled)
9738         
9739         * Control.cs: Rewrite of the SelectNextControl and related 
9740         methods. HandleClick now selects next control if the current one
9741         is being disabled.
9742         
9743         * Form.cs: OnActivated selects next active control only if Load 
9744         has already occurred. If Load hasn't run, there's no point in 
9745         selecting here, Load might change the state of controls.
9746         
9747         * FocusTest.cs: Tests marked as working again for these fixes
9748
9749 2006-11-10  Chris Toshok  <toshok@ximian.com>
9750
9751         * XplatUIX11.cs: a couple of fixes.
9752
9753         - use XInternAtoms with almost all the atoms we need to register,
9754         instead of many, many calls to XInternAtom.  should help a bit on
9755         startup time, at the expense of making the code look a little
9756         worse.
9757
9758         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
9759         isn't reparented (which seems to be a clue that we're running fon
9760         compiz) and they have an Owner form.  This fixes the tool windows
9761         in paint.net when running under compiz.
9762
9763         - when setting the opacity of a window, support both the case
9764         where the window has been reparented and also when it hasn't been.
9765         Since compiz/beryl doesn't seem to reparent windows, and these are
9766         the only window managers which support translucency, I'm not sure
9767         why we need the hwnd.reparented case at all.. but leave it in.
9768         now we get translucent windows in paint.net under compiz/beryl.
9769
9770 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
9771
9772         * FileDialog.cs: Always return the value for FilterIndex that
9773           was set. Internally convert it to values that make sense.
9774
9775 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
9776         
9777         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
9778
9779 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
9780
9781         * Toolbar.cs: Change default value of DropDownArrows to true, the 
9782         signature still using false to make it compatible with MS but the 
9783         initial value is true. Fixes #79855.
9784
9785 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
9786
9787         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
9788           only available on Linux.
9789
9790 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
9791
9792         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
9793         reduce number of calls to redraw method during toolbar creation.
9794
9795 2006-11-09  Mike Kestner  <mkestner@novell.com>
9796
9797         * ListView.cs : raise SelectedIndexChanged when an item is selected
9798         programmatically via the Item.Selected property.  Gert's nice 
9799         ListViewSelectedIndexChanged test fixture now runs clean.
9800
9801 2006-11-09  Mike Kestner  <mkestner@novell.com>
9802
9803         * ListView.cs : raise SelectedIndexChanged when a selected item is
9804         removed from the item collection using Remove or RemoveAt.
9805
9806 2006-11-09  Mike Kestner  <mkestner@novell.com>
9807
9808         * ListView.cs : raise SelectedIndexChanged once per selected item
9809         for compat with MS.  Fixes #79849+.
9810
9811 2006-11-09  Chris Toshok  <toshok@ximian.com>
9812
9813         * TabControl.cs: initialize row_count to 0, and set it to 1 when
9814         we need to (if we have any tab pages).  Fixes unit test.
9815
9816 2006-11-09  Chris Toshok  <toshok@ximian.com>
9817
9818         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
9819         width is 0, not 3.  Fixes a unit test.
9820
9821 2006-11-09  Mike Kestner  <mkestner@novell.com>
9822
9823         * ListView.cs : use Implicit scrollbars so that focus isn't 
9824         stolen from the listview when they are clicked. Fixes #79850.
9825
9826 2006-11-09  Chris Toshok  <toshok@ximian.com>
9827
9828         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
9829         have a root item.  Fixes #79879.
9830
9831 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
9832
9833         * FileDialog.cs:
9834           - Fix ToString ()
9835           - An ArgumentException is now thrown if a wrong filter
9836             is applied (matches ms). The previous filter doesn't change
9837             anymore if an exception is thrown.
9838           - Changing the FileName property also affects FileNames
9839         * ColorDialog.cs: The length of the CustomColors array is always
9840           16. It doesn't matter if we use a smaller array or null to update
9841           or change the custom colors property.
9842         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
9843           for RootFolder if we get a undefined value.
9844
9845 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9846
9847         * StatusBarPanel.cs: 
9848         - Width is set to MinWidth if Width is smaller than
9849         MinWidth. Fixes #79842.
9850         - MinWidth now always overrides Width (MSDN says MinWidth
9851         is set to Width when AutoSize = None, but they do not 
9852         behave like that).
9853         - Style has now the the correct default value.
9854         
9855 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
9856  
9857         * TrackBar.cs: 
9858         - The control is completely invalidated on 
9859         Got/LostFocus to draw the focus rectangle correctly.
9860         - When AutoSize then height is always 45 (width for 
9861         vertical controls).
9862         
9863         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
9864         on the mouse when moved and it doesn't move when grabbed
9865         until the mouse moves as well. Also fixed some wrong 
9866         calculations when clicking on the thumb (control thought
9867         click was outside of thumb and didn't grab it).
9868         Fixes some of the issues in #79718.
9869
9870 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
9871
9872         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
9873
9874 2006-11-08  Chris Toshok  <toshok@ximian.com>
9875
9876         * PropertyGridView.cs: only call ToggleValue if the item is not
9877         readonly.
9878
9879 2006-11-08  Jackson Harper  <jackson@ximian.com>
9880
9881         * TextBoxBase.cs: The RichTextBox and textbox have very different
9882         word selection methods.  Implement the textbox's simple word
9883         selection here, and let the RichTextBox override and provide it's
9884         own.
9885         - Don't do extra selection on mouseup
9886         * RichTextBox.cs: Use the documents word selection algorithm, I
9887         think ideally, this function will be pulled into the
9888         RichTextBox.cs code someday.
9889
9890 2006-11-08  Chris Toshok  <toshok@ximian.com>
9891
9892         * RootGridEntry.cs: new class to represent GridItemType.Root.
9893
9894         * CategoryGridEntry.cs: reformat, and add boilerplate.
9895         
9896         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
9897         returns the UI parent anyway, and we need special handling to
9898         implement the GetTarget method in the face of it.  Also, implement
9899         Select().
9900
9901         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
9902         a root grid item, and use that instead of PropertyGrid.grid_items.
9903         Also, make use of TypeConverters (and add limitted support for
9904         ICustomTypeDescriptors) when initially populating the grid.
9905         Arrays now show up more or less properly.
9906
9907 2006-11-08  Chris Toshok  <toshok@ximian.com>
9908
9909         * Application.cs: set the modal dialog to non modal after we close
9910         it.  Fixes bug #79866.
9911
9912 2006-11-08  Jackson Harper  <jackson@ximian.com>
9913
9914         * TextControl.cs: When combining lines carry over the line end
9915         style from the end line.
9916         - Invalidate the selected area when setting it, if it is visible.
9917         * TextBoxBase.cs: Only rich text box can do full line selects.
9918         - Make sure to set the cursor position when there is a click,
9919         otherwise two clicks in separate areas could cause a large chunk
9920         to be selected.
9921
9922 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9923
9924         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
9925         Fixes #79863.
9926
9927 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9928
9929         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
9930         time. Remove tooltips when ToolButton click events.  Fixes #79856.
9931
9932 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9933
9934         * MenuAPI.cs: Ignore right click for menu actions and fixes
9935         menu border when clicked.  Fixes #79846.
9936
9937 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9938
9939         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
9940         MouseState after create wParam for message, this fixes mouse button 
9941         equal none in mouse up events.
9942         
9943 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
9944
9945         * Control.cs : Focus() now calls Select to set the Container's
9946         Active Control and to give it focus. To avoid infinite recursion
9947         (because ActiveControl also calls Focus at one point), a check 
9948         is made in Focus with the help of a new internal variable
9949         is_focusing.
9950
9951 2006-11-07  Mike Kestner  <mkestner@novell.com>
9952
9953         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
9954         if there's a selection.  Fixes #79849.
9955
9956 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
9957
9958         * PropertyGrid.cs: Avoid fixed height of help description label.
9959         Fixes part of bug #79829.
9960
9961 2006-11-07  Chris Toshok  <toshok@ximian.com>
9962
9963         * XplatUIX11.cs: fix #79790 again, by using the
9964         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
9965
9966 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9967
9968         * ToolBar.cs: Fix left click checking.
9969
9970 2006-11-07  Chris Toshok  <toshok@ximian.com>
9971
9972         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
9973
9974 2006-11-07  Chris Toshok  <toshok@ximian.com>
9975
9976         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
9977         PropertyManager unit tests.
9978
9979         * PropertyManager.cs: make property_name internal.
9980
9981 2006-11-07  Chris Toshok  <toshok@ximian.com>
9982
9983         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
9984         pass a unit test.  Also, don't set image_index to anything in
9985         response to setting the ImageList property.
9986
9987 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
9988
9989         * ToolBar.cs: Ignore click events when mouse button is not a
9990         left button, only accepts other button for dropdown menus.  
9991         Fixes #79854.
9992
9993 2006-11-07  Chris Toshok  <toshok@ximian.com>
9994
9995         * DataGrid.cs: make the back and parent row buttons a little less
9996         ugly.
9997
9998 2006-11-07  Jackson Harper  <jackson@ximian.com>
9999
10000         * TextBoxBase.cs: When converting to Text don't put line breaks in
10001         for soft line breaks.
10002         * TextControl.cs: There is an initial "fake" line in the document,
10003         this is now a soft break line, so that an extra line feed doesn't
10004         get added to the end of documents.
10005
10006 2006-11-07  Chris Toshok  <toshok@ximian.com>
10007
10008         [ fix bug #79778 ]
10009         
10010         * CurrencyManager.cs: if the list is readonly, don't bother
10011         checking if IBindingList.AllowNew is true.
10012
10013         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
10014         for non-DataRowView datasources..  or rather, make it not crash.
10015         (DataGridPaintRelationRow): make sure we limit the row painting to
10016         the area not covered by the row header, and make our cell width at
10017         least large enough to cover the relation area.  This allows grids
10018         that have relations but no rows to render correctly.
10019         (DataGridPaintRowContents): same type of changes here.
10020         (SetDataSource): move back to always calling
10021         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
10022         navigating back through relations.
10023         (HitTest): handle the case where we have no cells but have
10024         relations.  Right now we generate a hit in cell 0 of whatever the
10025         row is, not sure if this is strictly correct, but it works for our
10026         purposes.
10027         
10028         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
10029         bother doing anything.
10030
10031 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
10032
10033         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
10034         early version of StatusStrip.  Not responsible for eaten
10035         application or firstborn children.
10036
10037 2006-11-06  Chris Toshok  <toshok@ximian.com>
10038
10039         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
10040         call GetTabRect with a -1 index.  Fixes #79847.
10041
10042 2006-11-06  Jackson Harper  <jackson@ximian.com>
10043
10044         * TreeNodeCollection.cs: Update scrollbars after clearing.
10045
10046 2006-11-06  Chris Toshok  <toshok@ximian.com>
10047
10048         * NumericUpDown.cs: fix the ToString method for some unit test
10049         love.
10050
10051 2006-11-06  Chris Toshok  <toshok@ximian.com>
10052
10053         * PropertyGrid.cs:
10054         - set the initial SelectedGridItem if we can.
10055
10056         - Exclude non-mergable properties only if we're merging > 1
10057         object.  Merging 1 object isn't really merging, obviously.
10058
10059         - Handle PropertySort.NoSort just like Alphabetical, which is
10060         wrong of course, but at least gets things on the screen.
10061         
10062         * PropertyGridView.cs:
10063         - Add method "FindFirstItem" which finds the first property grid
10064         item, so we can select it by default.
10065
10066         - make use of GridEntry.CanResetValue.
10067
10068         - Don't call RedrawBelowItemOnExpansion here anymore, the
10069         individual GridEntry's will do that.
10070
10071         - Remove the ITypeDescriptorContextImpl internal class.
10072         
10073         * GridEntry.cs:
10074         - this class needs to implement ITypeDescriptorContext, as it's
10075         what MS's PropertyDescriptorGridEntry does, which means we can
10076         remove the ITypeDescriptorContextImpl internal class from
10077         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
10078
10079         - keep a reference to our PropertyGridView, and move the call to
10080         RedrawBelowItemOnExpansion here from PGV.  This means
10081         programmaticly setting Expanded actually does something visible.
10082
10083         - add a CanResetValue() function which takes into account our
10084         possibly multiple "selected_objects" in the merged case.  Shifting
10085         PropertyGridView to use this method fixes another unreported
10086         crasher found running the test for #79829.
10087
10088         - when Top or Bounds is updated, make sure the PropertyGridTextBox
10089         is updated to reflect this.
10090
10091         * CategoryGridEntry.cs: the ctor takes the PGV now.
10092         
10093 2006-11-06  Jackson Harper  <jackson@ximian.com>
10094
10095         * TextControl.cs: These are 1 based.
10096         * TextBoxBase.cs: When setting the selected text, don't change the
10097         selected text tags, this is done by ReplaceText, just position the
10098         cursor at the end of the new text.
10099
10100 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
10101
10102         * ListView.cs: Allow label edit only when, when LabelEdit is
10103           set to true.
10104
10105 2006-11-06  Jackson Harper  <jackson@ximian.com>
10106
10107         * TextControl.cs: If a suitable wrapping position isn't found,
10108         just wrap right in the middle of a word.
10109
10110 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
10111
10112         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
10113           bug #79820.
10114
10115 2006-11-06  Jackson Harper  <jackson@ximian.com>
10116
10117         * TreeView.cs: Can't use the VisibleCount property when setting
10118         scrollbar heights, because this doesn't take into account whether
10119         or not the horz scrollbar just came visible.
10120
10121 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
10122
10123         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
10124         activated.  Fixes #79369, #79832.
10125
10126 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
10127
10128         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
10129           had to remove support for links that point to a directory. FileInfo
10130           returns no usefull information (means, the directory they point to)
10131           for such links. Replaced some empty string ("") with String.Empty.
10132
10133 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10134
10135         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
10136         NullReferenceException when attempting to remove node that is not in
10137         collection. Throw NullReferenceException when null is passed to 
10138         Remove. Allow first element of the collection to be removed. Fixes
10139         bug #79831.  In GetEnumerator ().Current return null if positioned 
10140         before the first element of the collection. In GetEnumerator ().Reset,
10141         position before first element of the collection.
10142
10143 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10144
10145         * PropertyGrid.cs: To match MS, remove default title and description
10146         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
10147         buttons.
10148
10149 2006-11-04  Chris Toshok  <toshok@ximian.com>
10150
10151         * Theme.cs: add a Clamp method, just for kicks.
10152
10153         * ThemeWin32Classic.cs: clamp all color components to [0..255].
10154
10155 2006-11-04  Chris Toshok  <toshok@ximian.com>
10156
10157         * Form.cs: if the form isn't visible, Close() does nothing.
10158
10159 2006-11-03  Chris Toshok  <toshok@ximian.com>
10160
10161         * Form.cs (Close): if the form is modal, don't Dispose of it, only
10162         Hide it.
10163         (WndProc): don't Dispose after handling the WM_CLOSE message.
10164
10165         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
10166         them as such, instead of using casts from Control to Form.  Also,
10167         don't Dispose of the modal dialog when we fall out of the loop -
10168         Close() it instead.
10169
10170         fixes bug #79813.
10171
10172 2006-11-03  Chris Toshok  <toshok@ximian.com>
10173
10174         * Control.cs (Dispose): only go through the dispose thing if we're
10175         @disposing, and we haven't already been disposed.  Fixes bug
10176         #79814.
10177
10178         * Form.cs: no reason to call "base.Dispose()" here instead of
10179         "Dispose()".
10180
10181 2006-11-03  Mike Kestner  <mkestner@novell.com>
10182
10183         * ComboBox.cs : use ToString instead of casts in AddItem for
10184         sorting functionality.  Fixes #79812.
10185
10186 2006-11-03  Chris Toshok  <toshok@ximian.com>
10187
10188         * Application.cs: pave the way for actually using the thread
10189         exception dialog.  it's ifdefed out at the moment.
10190
10191 2006-11-03  Chris Toshok  <toshok@ximian.com>
10192
10193         * ThreadExceptionDialog.cs: until we get a better layout, actually
10194         hide the details textbox and label when we shouldn't see them.
10195
10196 2006-11-03  Jackson Harper  <jackson@ximian.com>
10197
10198         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
10199         multiline textboxes anymore.  This method also determines the
10200         width/height of a textboxes canvas area.
10201         - Sorta a revert of the last patch.  For multiline just position
10202         the controls, then bail.  This way the scrollbar width won't be
10203         altered.
10204
10205 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
10206
10207         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
10208         it dont need.  Fixes #79537.
10209
10210 2006-11-02  Jackson Harper  <jackson@ximian.com>
10211
10212         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
10213         send the status after firing the DndOver event.
10214
10215 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10216
10217         * TrackBar.cs: Now orientation only switches height / width if
10218         the control's handle is created (Win32 does it like this). Also 
10219         fixed a typo in ToString() for a test to pass, changed the 
10220         exception thrown in set_LargeChange and set_SmallChange to 
10221         match Win32 behaviour, and added TrackBar tests to the unit 
10222         tests.
10223
10224 2006-11-02  Chris Toshok  <toshok@ximian.com>
10225
10226         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
10227         not _NET_WM_STATE_NO_TASKBAR.
10228
10229 2006-11-02  Jackson Harper  <jackson@ximian.com>
10230
10231         * TextControl.cs: Increment count by one, since in the update view
10232         count - 1 is used.
10233
10234 2006-11-02  Jackson Harper  <jackson@ximian.com>
10235
10236         * TextBoxBase.cs: Use client rectangle not bounds for checking if
10237         the mouse is in the client rectangle (duh).
10238
10239 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
10240         
10241         * TrackBar.cs: Fixed trackbar jumping around when clicking
10242         on it - the trackbar was not detecting correctly at which
10243         side of the thumb the click was done. (fixes #79718)
10244
10245 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
10246
10247         * ListBox.cs: scroll visible area when change SelectedIndex to
10248         a non visible area.  Fixes #79481.
10249
10250 2006-11-01  Jackson Harper  <jackson@ximian.com>
10251
10252         * TextControl.cs: When replacing the selection move the selection
10253         start/end/anchor to the end of the new text.
10254
10255 2006-11-01  Jackson Harper  <jackson@ximian.com>
10256
10257         * XplatUIWin32.cs: When setting the parent change the controls
10258         visibility to it's visibility flag, not to it's old parents
10259         visibility (.Visible walks the parent chain).
10260
10261 2006-11-01  Chris Toshok  <toshok@ximian.com>
10262
10263         * XplatUIX11.cs: revert the #79790 fix, as the simple.
10264         XSetTransientForHint fix breaks paint .net's tool windows.  more
10265         work needed for that one.
10266
10267 2006-11-01  Chris Toshok  <toshok@ximian.com>
10268
10269         * ScrollBar.cs: throw ArgumentException instead of Exception in
10270         LargeChange/SmallChange setters.  fixes unit tests.
10271
10272 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
10273
10274         * ContainerControl.cs: reverted rev.67183 (which was itself
10275         a reversion of rev.66853... eh).
10276         
10277         * Control.cs: Fixes Reflector hang by changing Focus() call
10278         to what it was before rev.66643 (calling Select() here sets 
10279         ActiveControl, which in some situations calls back Focus and 
10280         eventually does a stack overflow). Temp fix.    
10281         Changes to GetNextControl() to not look for children to select when
10282         parent cannot be selectable (so it looks for siblings instead)  
10283         
10284 2006-10-31  Mike Kestner  <mkestner@novell.com>
10285
10286         * CheckedListBox.cs : off by one error in returned index from
10287         ObjectCollection.Add.  Fixes #79758.
10288
10289 2006-10-31  Chris Toshok  <toshok@ximian.com>
10290
10291         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
10292         calls for the textbox/spinner, to keep from recursing to the point
10293         where we crash.  Fixes #79760.
10294
10295 2006-10-31  Chris Toshok  <toshok@ximian.com>
10296
10297         * ListControl.cs (set_SelectedValue): don't throw exceptions on
10298         null/"" value, just return.  matches ms's behavior and fixes some
10299         failing tests.
10300
10301 2006-10-31  Chris Toshok  <toshok@ximian.com>
10302
10303         * Control.cs (set_Capture): make a logic a little easier to
10304         follow.
10305
10306         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
10307         if it's being destroyed.  A necessary fix surely, but a bandaid
10308         also, to fix the stuck capture problem in bug #78413.
10309
10310 2006-10-31  Chris Toshok  <toshok@ximian.com>
10311
10312         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
10313         convention of clearing hwnd.ClientRect when we set the
10314         width/height (so it'll be recalculated by Hwnd).
10315
10316 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
10317
10318         * ContainerControl.cs: reversed Contains check from
10319         ActiveControl due to hanging problems. This fix
10320         partly regresses #79667 (button does not have
10321         initial focus), so this might be a symptom for 
10322         a larger parenting problem (set_ActiveControl
10323         is being called but the child control does
10324         not have the parent set yet?)   
10325         
10326 2006-10-31  Mike Kestner  <mkestner@novell.com>
10327
10328         * MenuAPI.cs : fix keynav when menu is click activated.
10329
10330 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
10331
10332         * ToolStrip*: Version 0.2.
10333
10334         * MenuStrip.cs: Version 0.1.
10335
10336         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
10337
10338 2006-10-30  Chris Toshok  <toshok@ximian.com>
10339
10340         [ fixes the oversized notify icon issue in bug #79745 ]
10341         
10342         * NotifyIcon.cs: scale the icon down to the size we're given by
10343         the XplatUI layer (this would be faster if we did it once instead
10344         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
10345         since it's never invoked.
10346
10347         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
10348         pixels high by default, so let's hardcode our systray icon to that
10349         size.  The SYSTEM_TRAY protocol should really have a way for
10350         client apps to query for the correct icon size.. but oh well.  A
10351         couple of patches to deal with the screwy client_window ==
10352         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
10353         instance, and also make sure we don't XSelectInput twice).
10354
10355 2006-10-30  Chris Toshok  <toshok@ximian.com>
10356
10357         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
10358         recreating forms.  Control recreation is the bane of my existence.
10359         Fix it in a way that keeps everyone happy.
10360
10361 2006-10-30  Chris Toshok  <toshok@ximian.com>
10362
10363         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
10364         just non-CHILD ones.  otherwise sometimes scrollbars end up with
10365         client_windows not being resized to the proper size (ReportBuilder
10366         shows this extremely well).
10367
10368 2006-10-30  Chris Toshok  <toshok@ximian.com>
10369
10370         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
10371         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
10372         showing up in the gnome taskbar.  Fixes bug #79790.
10373
10374 2006-10-30  Chris Toshok  <toshok@ximian.com>
10375
10376         * ApplicationContext.cs: guard against a NRE.
10377
10378         * Application.cs: null out the old MainForm for the context, so we
10379         don't try to use it again once it's disposed.  Fixes bug #79783.
10380
10381 2006-10-30  Chris Toshok  <toshok@ximian.com>
10382
10383         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
10384         BindingContext, set the data source directly, otherwise do the
10385         lazy approach - the actual ListManager will be created when we get
10386         a BindingContext. Fixes bug #79700.
10387
10388 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
10389
10390         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
10391           XplatUIX11.cs: Remove old 2 parameter SetVisible.
10392
10393         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
10394
10395 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
10396
10397         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
10398         of SetVisible that allows a window to be shown, but not activated.
10399         This is needed on Windows for MenuStrip, and can probably be used
10400         with MainMenu and ComboBox to fix the focus stealing issues on
10401         Windows.
10402
10403         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
10404
10405 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
10406
10407         * PictureBox.cs: Fix the output of the ToString method.
10408
10409 2006-10-29  Chris Toshok  <toshok@ximian.com>
10410
10411         * Control.cs (get_TopLevelControl): fix bug #79781.
10412
10413 2006-10-29  Chris Toshok  <toshok@ximian.com>
10414
10415         * ListControl.cs (set_DataSource): throw Exception here, not
10416         ArgumentException, to match MS behavior.
10417
10418 2006-10-29  Chris Toshok  <toshok@ximian.com>
10419
10420         * Form.cs: remove the try-catch's around calls to GetWindowState.
10421         We can just check the return value.
10422
10423         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
10424         Instead return -1.
10425
10426         * XplatUI.cs: Add note about additional return value for
10427         GetWindowState.
10428
10429 2006-10-29  Chris Toshok  <toshok@ximian.com>
10430
10431         * Control.cs (CreateHandle): when we create our handle, we also
10432         create the handles of our child controls.  Fixes one of the
10433         Control unit tests (CH11).
10434
10435 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
10436
10437         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
10438
10439 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
10440
10441         * ThemeClearlooks.cs: A little speedup.
10442
10443 2006-10-27  Chris Toshok  <toshok@ximian.com>
10444
10445         * Control.cs: implement Control.FromChildHandle in a way that
10446         matches the docs (and fixes the failed test.)
10447
10448 2006-10-27  Chris Toshok  <toshok@ximian.com>
10449
10450         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
10451         comments).
10452
10453         * DataGrid.cs: implement ResetForeColor such that the tests
10454         succeed.
10455         
10456 2006-10-27  Chris Toshok  <toshok@ximian.com>
10457
10458         * ToolBarButton.cs: setting text/tooltiptext to null results in it
10459         being set to "".  Fixes bug #79759.
10460
10461 2006-10-27  Jackson Harper  <jackson@ximian.com>
10462
10463         * TextControl.cs: We need to clear the entire selection area when
10464         setting the start, otherwise multiline selections are still
10465         visible.
10466
10467 2006-10-26  Chris Toshok  <toshok@ximian.com>
10468
10469         * PropertyGridView.cs: 
10470
10471         - ifdef all the code specific to the double
10472         buffer case, and provide some alternatives in the non-doublebuffer
10473         code, which makes heavy use of XplatUI.ScrollWindow to move things
10474         around without having to invalidate (and cause flicker).  There
10475         are still some drawing problems in the non-doublebuffered case, so
10476         DOUBLEBUFFER is defined by default.
10477
10478         - Fix the way dropdowns are handled.  now we explicitly watch for
10479         the events which might cause the dropdown to close, and break out
10480         of the nested event loop there.  This gets rid of all Capture
10481         code, at the expense of the Msg special casing.  Seems to work,
10482         though, and fixes bug #79743.
10483
10484 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
10485         * Control.cs: SetIsRecreating now recreates implicitly added
10486         child controls as well. Finally fixes #79629. The flag passed to 
10487         SetIsRecreating has also been removed since it wasn't used.
10488         
10489 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10490
10491         * PageSetupDialog.cs: Clean some code, fix some bits, 
10492         add some checks, and add a printer sub-dialog.
10493
10494 2006-10-26  Chris Toshok  <toshok@ximian.com>
10495
10496         * PropertyGrid.cs: make set_SelectedObject call
10497         set_SelectedObjects, and move the duplicate logic to the
10498         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
10499
10500         * PropertyGridView.cs: hide the textbox when we get a
10501         SelectedObjectsChanged event.
10502
10503         Fixes bug #79748.
10504
10505 2006-10-26  Chris Toshok  <toshok@ximian.com>
10506
10507         * PropertyGridView.cs: deal with the type converter not supporting
10508         GetStandardValues() or GetStandardValues() returning null, which
10509         is does in the default case.  Fixes #79742.
10510
10511 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
10512
10513         * CheckedListBox.cs: nunit no longer crashes when selecting 
10514         Project/Edit menu option
10515         
10516 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
10517
10518         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
10519         is no menu selected. fixes #79739
10520
10521 2006-10-25  Chris Toshok  <toshok@ximian.com>
10522
10523         * PropertyGridView.cs: factor out the splitter invalidation code
10524         into the SplitterPercent setter, and for kicks implement the
10525         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
10526         amount in either direction.
10527
10528 2006-10-25  Chris Toshok  <toshok@ximian.com>
10529
10530         * PropertyGridView.cs: do some cleanup of the brush used to draw
10531         text - read only fields should be grayed out.  not sure how to do
10532         this with the textbox, though.  but the textbox's should also be
10533         readonly now at least.  Also, hide/show the textbox when resizing
10534         the control.
10535         
10536         * CursorConverter.cs: use System.Reflection when getting the
10537         properties of Cursors, as TypeDescriptor.GetProperties isn't
10538         returning static properties.
10539
10540 2006-10-25  Chris Toshok  <toshok@ximian.com>
10541
10542         * PropertyGridView.cs: factor out the up/down handling, and reuse
10543         it for page up/down.  also add End/Home support.
10544
10545 2006-10-25  Chris Toshok  <toshok@ximian.com>
10546
10547         * PropertyGridView.cs:
10548
10549         - ensure the selected grid item is visible in the scrolled area,
10550         fixes bug #79572.
10551
10552         - fix Keys.Down handling when you're on the last item in the
10553         propertygrid.
10554
10555 2006-10-25  Mike Kestner  <mkestner@novell.com>
10556
10557         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
10558         clicks too.  Fixes #79725.
10559
10560 2006-10-24  Chris Toshok  <toshok@ximian.com>
10561
10562         * PropertyGrid.cs: use property.Converter instead of
10563         TypeDescriptor.GetConverter(property.PropertyType), so we catch
10564         TypeConverters declared on the property as well as on the
10565         PropertyType.  Fixes bug #79678.
10566
10567 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
10568
10569         * MimeIcon.cs, Mime.cs:
10570           Fallback to the default platform handler if no shared mime info
10571           stuff exists (fixes #79693).
10572
10573 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
10574         * ContainerControl.cs: Incorrect contains check in ActiveControl 
10575         from previous fix (duh).
10576
10577 2006-10-20  Chris Toshok  <toshok@ximian.com>
10578
10579         * PropertyGridView.cs: the dropdown should be MIN(number of items
10580         in list, 15).  Fixes #79551.
10581
10582 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
10583         Fixes #79384, #79394, #79652, #79667
10584         * Application.cs: 
10585         
10586         - Modal windows are now destroyed in the proper order for windows
10587         
10588         * ContainerControl.cs:
10589         
10590         - ActiveControl setter has more conditions on when to return:
10591                 - if we're reselecting the active control, but it actually
10592                 didn't have focus (window hidden or some such), it runs
10593                 - if the active control being selected doesn't actually 
10594                 exist in the container, it returns
10595         
10596         * Form.cs
10597         
10598         - The ShowDialog now gets the current form as the owner when
10599         invoking without parameters, and correctly activates the owner 
10600         when returning
10601         
10602         * MessageBox.cs
10603         
10604         - MessageBox now catches the Escape key to exit
10605
10606 2006-10-20  Chris Toshok  <toshok@ximian.com>
10607
10608         * PropertyGridView.cs: fix a number of issues (bug #78565, and
10609         most of bug #79676):
10610
10611         - you can navigate around the property grid with the arrow keys.
10612
10613         - the dropdown is sized properly when the pg has a vertical
10614         scrollbar.
10615
10616         - fix the indentation for subentries, and properly select the
10617         entire label rect.
10618
10619         - fix the gray bar's drawing (only draw it to the last element,
10620         not for the height of the control.  Also make sure we draw that
10621         last horizontal grid line.
10622
10623         - use the same mechanism the datagrid uses wrt the editing textbox
10624         when scrolling/resizing/etc.  Namely, we hide it first, do the
10625         operation, then show it again (if it's still visible).
10626         
10627         - aggressively remove a lot of unnecessary refreshes (and also
10628         calls to Invalidate(). call more limited variants, and only redraw
10629         what we need.)
10630         
10631         * PropertyGrid.cs:
10632
10633         - when we're populating the merged collection, fill in the UI
10634         parent with either the passed in item, or the category item we
10635         create.
10636
10637         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
10638
10639         * GridItem.cs: drop some fully qualified names.
10640         
10641         * GridEntry.cs: add a "UIParent", which is basically the parent
10642         treenode.
10643
10644         * GridItemCollection.cs: add an IndexOf method.
10645
10646 2006-10-20  Mike Kestner  <mkestner@novell.com>
10647
10648         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
10649         a working win32 NC invalidation mechanism, we can't invalidate
10650         menus.  [Fixes #79705]
10651
10652 2006-10-20  Mike Kestner  <mkestner@novell.com>
10653
10654         * ListBox.cs : don't update the VScrollbar if the list is empty,
10655         just hide it.  [Fixes #79692]
10656
10657 2006-10-20  Jackson Harper  <jackson@ximian.com>
10658
10659         * RichTextBox.cs: Handle some special chars better, and don't skip
10660         the entire group when we encounter a special char that we don't
10661         handle correctly.
10662
10663 2006-10-18  Chris Toshok  <toshok@ximian.com>
10664
10665         * PropertyGridView.cs: address a number of issues from bug #79676,
10666         mostly of the cosmetic variety.
10667
10668         - The highlight rectangle for indented items not extends all the
10669         way to the left.
10670
10671         - Indented items aren't indented so much.
10672
10673         - the dropdown is properly sized width-wise if the pg has a
10674         vertical scrollbar.
10675
10676 2006-10-18  Chris Toshok  <toshok@ximian.com>
10677
10678         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
10679         systray stuff is rather convoluted to begin with.
10680
10681         systray icons are a single window for some reason (that I haven't
10682         figured out yet), and for them, client_window == whole_window.
10683         Given the way the tests are structured elsewhere to determine
10684         which paints are pending (client vs. nc), that situation will
10685         always yield PAINT, not NCPAINT.  So, if we have a pending
10686         nc_expose and no pending expose, remove the hwnd from the paint
10687         queue, and also set nc_expose_pending to false, to keep us from
10688         blocking further expose's adding the hwnd to the paint queue.
10689
10690         phew.  like i said, a rather convoluted change.  Fixes the
10691         notifyicon repaint issues in bug #79645.
10692
10693 2006-10-18  Chris Toshok  <toshok@ximian.com>
10694
10695         * Form.cs: when getting the backcolor of the form, don't get
10696         base.BackColor, as this allows parents to influence the background
10697         color.  This breaks mdi forms.  Instead, if the background_color
10698         is empty, return the default.
10699
10700 2006-10-18  Chris Toshok  <toshok@ximian.com>
10701
10702         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
10703         to being private instead of internal static.
10704
10705         * Control.cs: remove all the stupid ParentWaitingOnRecreation
10706         crap, it wasn't working for more deeply nested controls anyway,
10707         and we already have the is_recreating flag - use that instead.
10708         Before calling DestroyHandle in RecreateHandle, recurse through
10709         the control tree setting it to true.  this returns the recreate
10710         code to much of its original simplicity, while now guaranteeing we
10711         actually recreate everything we're supposed to.  This change gets
10712         fyireporting actually showing mdi children.
10713
10714 2006-10-17  Chris Toshok  <toshok@ximian.com>
10715
10716         * Form.cs: remove some debug spew, and collapse some duplicate
10717         code at the end of SetClientSizeCore.
10718
10719         * XplatUIX11.cs: 
10720         - add some more debug spew here too wrt Destroy handling.
10721         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
10722         in Control's handling of WM_DESTROY.
10723         - Remove the handling of zombie window DestroyNotifies from the
10724         event loop - we don't need it.  Now the only DestroyNotifies we
10725         actually handle are ones generated by X.
10726         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
10727         match gtk's (functioning) handling of this. This keep metacity
10728         from leaving droppings in the form of wm borders with no window
10729         contents all over the place.
10730
10731         * Control.cs:
10732         - add a bunch of debug spew wrt control recreation.
10733         - fix a bug where we weren't tracking Visible properly on
10734         recreated hwnds.
10735         - fixed the WM_PAINT double buffer handling to support re-entrant
10736         calls (yes, i know it's gross, but it's happening to us).
10737
10738 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
10739         * ThemeWin32Classic.cs: changed drawing of selected days
10740         to make them look better.
10741
10742 2006-10-16  Chris Toshok  <toshok@ximian.com>
10743
10744         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
10745         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
10746
10747         * XplatUIX11.cs: move away from using hwnd.client_dc and
10748         hwnd.non_client_dc and on to a stack of dc's (and in window's
10749         case, PAINTSTRUCT's), so we can deal with nested Paint calls
10750         without puking or not disposing of Graphics objects.
10751
10752         * XplatUIOSX.cs: same.
10753
10754         * XplatUIWin32.cs: same.
10755
10756 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
10757
10758         * FileDialog.cs: Don't call on_directory_changed inside
10759           OnSelectedIndexChanged (it changes the SelectedIndex too).
10760           Instead move it to OnSelectionChangeCommitted.
10761
10762 2006-10-13  Chris Toshok  <toshok@ximian.com>
10763
10764         * XplatUIX11.cs: more Destroy work.  the current code does the
10765         following things, in order:
10766
10767         1. Enumerates all handles of all controls at or below the one
10768         being destroyed, in pre-order.  As it is doing this, it marks the
10769         handles as zombie and clears all references to them.
10770         
10771         2. calls XDestroyWindow on the window passed in.
10772
10773         3. SendMessage's WM_DESTROY to all he handles in the accumulated
10774         list.
10775
10776 2006-10-13  Chris Toshok  <toshok@ximian.com>
10777
10778         * XplatUIX11.cs: set hwnd.zombie to true before calling
10779         SendMessage (WM_DESTROY).  this keeps us from marking the new
10780         window a zombie, and also keeps us from calling sendmessage at
10781         all.
10782
10783 2006-10-13  Jackson Harper  <jackson@ximian.com>
10784
10785         * TextControl.cs: Do not show the caret and selection at the same
10786         time.  Reduces ugliness by 35%.
10787
10788 2006-10-13  Chris Toshok  <toshok@ximian.com>
10789
10790         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
10791         zombie after we do the recursive call, so we actually do call
10792         SendMessage on the children controls.
10793         (GetMessage): if we find a pending paint event for a zombie hwnd,
10794         remove the hwnd from the paint queue, or else it will always be
10795         there (and we'll effectively loop infinitely)
10796
10797 2006-10-13  Mike Kestner  <mkestner@novell.com>
10798
10799         * MenuItem.cs : add Selected format under keynav too.
10800         Fixes #79528.
10801
10802 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
10803
10804         * PropertyGrid.cs: Fixed some NRE's and small difference between our
10805         implementation and that of MS.
10806
10807 2006-10-13  Chris Toshok  <toshok@ximian.com>
10808
10809         * Control.cs (OnInvalidated) only futz with the invalid_region if
10810         the control is double buffered.  this fixes the apparent hang in
10811         the ListView unit tests.  Someone needs to make the
10812         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
10813
10814 2006-10-13  Chris Toshok  <toshok@ximian.com>
10815
10816         * PropertyGridView.cs:
10817
10818         - do a little refactoring so that only one place calls
10819         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
10820         else call that.  Also make it Refresh, since there are redraw bugs
10821         otherwise (we should take a look at that...)
10822
10823         - do a little more refactoring work to share the body of code
10824         involved with the drop down.  it was duplicated in the code
10825         dealing with the listbox handling and in the code dealing with the
10826         UITypeEditors.
10827
10828         - add a Capture to the dropdown form's control once it's
10829         displayed, and add a MouseDown handler that checks to make sure
10830         the position is inside the control.  If it's not, close the
10831         dropdown.  This fixes #78190.
10832
10833         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
10834         if the value is different than the initial value.
10835         
10836 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
10837
10838         * Control.cs: see #78650
10839         - Fixed GetNextControl for several cases:
10840                 - Changed FindFlatForward to return 
10841                 correct sibling control when more than one
10842                 control has same TabIndex as the currently 
10843                 focused one.
10844                 - Changed FindFlatBackward to loop children
10845                 from last to first and apply same logic as in
10846                 FindFlatForward
10847                 - Changed FindControlForward to search for
10848                 children when control is not a container
10849                 but has children, or search for siblings if
10850                 control is a container...
10851                 - Changed FindControlBackward   to continue
10852                 searching for child controls when hitting 
10853                 Panel-like parents
10854                 
10855         - Fixed Focus method to update ActiveControl
10856         (FocusTest.FocusSetsActive failure)
10857         
10858         * TabControl.cs:
10859         - Focus rectangle now refreshes when gaining
10860         or losing focus
10861         - Removed grab for Tab key on IsInputKey that 
10862         was keeping tab navigation from working (#78650)
10863
10864 2006-10-13  Chris Toshok  <toshok@ximian.com>
10865
10866         * PropertyGridView.cs:
10867         - Rewrite SetPropertyValue to loop over SelectedGridItem's
10868         SelectedObjects.
10869
10870         - Deal with GridItem.Value == null a few places.
10871
10872         * PropertyGrid.cs: 
10873         - replace the PopulateGridItemCollection with a pair of methods
10874         which compute the intersection of all the properties in the
10875         SelectedObjects array.  Fixes #79615.
10876
10877         - Throw ArgumentException from set_SelectedObjects if there's a
10878         null in the array.
10879
10880         - Add GetTarget method which can be used to traverse up the
10881         GridItem.Parent chain.  It depends on the assumption that
10882         selected_objects for different GridEntries are always in the same
10883         order (a safe assumption).  Use this method and loop over all the
10884         selected objects in the entry when calling RemoveValueChanged and
10885         AddValueChanged.
10886         
10887         * GridEntry.cs: Make this handle multiple selected objects.
10888         .Value returns null if not all the selected objects share the same
10889         value.
10890
10891 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
10892         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
10893           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
10894           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
10895           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
10896           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
10897         add additional functionality.
10898
10899 2006-10-12  Mike Kestner  <mkestner@novell.com>
10900
10901         * ErrorProvider.cs : new ToolTipWindow ctor sig.
10902         * HelpProvider.cs : new ToolTipWindow ctor sig.
10903         * ToolTip.cs : remove ToolTip param from Window sig since it is
10904         not used.
10905         * ToolBar.cs : add tooltip support.  Fixes #79565.
10906
10907 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
10908
10909         * ComboBox.cs: move the events in set_SelectedIndex to 
10910         after the call to HighlightIndex in order to avoid 
10911         possible recursion and subsequent problems with the call
10912         to HighlightIndex and include a range check in 
10913         set_HighlightIndex. Fixes #79588
10914         
10915 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
10916
10917         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
10918         to ui thread's settings instead of sunday. 
10919         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
10920
10921 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
10922
10923         * DateTimePicker.cs
10924         * MonthCalendar.cs
10925         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
10926         and implement missing functionality (selecting different parts 
10927         of the date and edit them individually with the keyboard).
10928         
10929 2006-10-11  Chris Toshok  <toshok@ximian.com>
10930
10931         * Control.cs (OnInvalidated): fix NRE relating to last change.
10932
10933 2006-10-11  Chris Toshok  <toshok@ximian.com>
10934
10935         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
10936         atoms in _NET_WM_STATE here if the window is maximized.  We need
10937         to do this because we're *replacing* the existing _NET_WM_STATE
10938         property, so those atoms will be lost otherwise, and any further
10939         call to GetWindowState will return Normal for a window which is
10940         actually maximized.  Fixes #79338.
10941
10942 2006-10-11  Jackson Harper  <jackson@ximian.com>
10943
10944         * TextControl.cs: Special case for setting selection end to
10945         selection start, we basically kill the anchor.
10946         - some todo comments.
10947
10948 2006-10-11  Chris Toshok  <toshok@ximian.com>
10949
10950         * Control.cs: switch to using an "invalid_region" to track which
10951         parts of the image buffer need updating.  This is more code than
10952         the simple fix from r66532.  That version just attempted to always
10953         fill the entire buffer on redraw, which turns out to be
10954         inefficient when invalidating small rectangles.  This version
10955         simply adds the invalid rectangle to the invalid region.  When we
10956         get any WM_PAINT message we see if it can be filled using the
10957         image buffer, and if it can't (if the paint event's clip rectangle
10958         is visible in the invalid region) we first fill the image buffer.
10959         So, the image buffer is still a cache, we just fill it lazily.
10960
10961         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
10962         need it any longer.
10963
10964 2006-10-11  Chris Toshok  <toshok@ximian.com>
10965
10966         * XplatUIX11.cs (SetWindowPos): we need to update both position as
10967         well as size after calling XMoveResizeWindow.  This keeps us from
10968         ignoring future SetWindowPos calls.  Fixes the disappearing
10969         DateTimePicker in the ToolBarDockExample from bug #72499.
10970
10971 2006-10-11  Chris Toshok  <toshok@ximian.com>
10972
10973         * TextBoxBase.cs: reorder things a bit when it comes to
10974         resizing-causing-recalculation.  we were recalculating the
10975         document when our position was changed, which shouldn't happen.
10976         We only care about size changes.  Clear up some more redundant
10977         recalculation calls while I'm at it.  This makes the toolbar dock
10978         example snappy when you're just dragging toolbars around (since it
10979         causes a relayout whenever you move one.)
10980
10981 2006-10-11  Chris Toshok  <toshok@ximian.com>
10982
10983         * ToolBarButton.cs (get_Rectangle): this only returns
10984         Rectangle.Empty if Visible == false, or Parent == null.
10985         Parent.Visible doesn't matter.
10986
10987 2006-10-10  Chris Toshok  <toshok@ximian.com>
10988
10989         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
10990         by .net 1.1, so switch to an internal method instead.
10991
10992 2006-10-10  Chris Toshok  <toshok@ximian.com>
10993
10994         * Control.cs (WM_PAINT): when a control is double buffered we draw
10995         initially to the ImageBuffer and then copy from there.  But when a
10996         parent control which has child controls is double buffered, the
10997         initial drawing doesn't encompass the entire ClientRectangle of
10998         the parent control, so we end up with uninitialized bits (this is
10999         easily seen by dragging the top toolbar in
11000         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
11001         manually set the ClipRectangle of the paint_event (only the one we
11002         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
11003         of the nastiness in bug #72499.
11004
11005         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
11006         which we use in Control.cs's WM_PAINT handling.
11007
11008 2006-10-10  Jackson Harper  <jackson@ximian.com>
11009
11010         * TextBoxBase.cs: Finish off the autoscrolling stuff.
11011
11012 2006-10-10  Chris Toshok  <toshok@ximian.com>
11013
11014         * Cursor.cs: Apply a slightly different patch to the one suggested
11015         in #79609.
11016
11017 2006-10-10  Jackson Harper  <jackson@ximian.com>
11018
11019         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
11020         not the parent form.
11021         * TextControl.cs: use difference in old line count vs new count to
11022         calculate how many lines were added, this takes into account soft
11023         line breaks properly.
11024
11025 2006-10-10  Chris Toshok  <toshok@ximian.com>
11026
11027         * LinkLabel.cs: don't call MeasureCharacterRanges against a
11028         rectangle located at 0,0 and the size of the text.  Use
11029         ClientRectangle instead.  This fixes rendering of non-left aligned
11030         link labels.
11031
11032 2006-10-10  Jackson Harper  <jackson@ximian.com>
11033
11034         * TextBoxBase.cs: When we set the selection start position the
11035         caret.
11036         * TextControl.cs: Need to update the caret when we decrement it to
11037         zero.
11038         - Make sure that the selection_visible flag gets reset to false if
11039         the selection isn't visible.  Before this you could get it set to
11040         visible by changing the selection start, then changing the end to
11041         equal the start.
11042
11043 2006-10-09  Jackson Harper  <jackson@ximian.com>
11044
11045         * TreeView.cs: Don't update scrollbars when we aren't visible.
11046         * TreeNodeCollection.cs: Only need to update scrollbars if being
11047         added to an expanded visible node or the root node.
11048
11049 2006-10-09  Chris Toshok  <toshok@ximian.com>
11050
11051         * XplatUIX11.cs (SendMessage): fix NRE.
11052
11053 2006-10-09  Jackson Harper  <jackson@ximian.com>
11054
11055         * TextBoxBase.cs: Implement horizontal autoscrolling.
11056         * TextControl.cs: Add a movement types that allows moving forward
11057         and backwards without wrapping.
11058
11059 2006-10-09  Mike Kestner  <mkestner@novell.com>
11060
11061         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
11062         with focus "expansion" of labels.  Fixes #79532 and then some.
11063         * ThemeWin32Classic.cs : add LineLimit to ListView label format
11064         when wrapping.
11065
11066 2006-10-09  Jackson Harper  <jackson@ximian.com>
11067
11068         * TextBoxBase.cs: Set the default max values to MaxValue since
11069         we use the scrollbar for autoscrolling and the default value is
11070         100.  If we don't do this the caret won't keep up with typing
11071         after about 18 characters.
11072         * TextControl.cs: Make sure the selection is offset by the
11073         viewport x.  This fixes selection when using auto scrolling.
11074
11075 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
11076         
11077         * Form.cs: The active control should be selected after the 
11078         OnLoad so that any child control initialization that affects
11079         the selection is done. Fixes #79406
11080
11081 2006-10-06  Chris Toshok  <toshok@ximian.com>
11082
11083         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
11084         to have no evil effects.
11085
11086         - Stop selecting StructureNotifyMask on non-toplevel windows.
11087
11088           The only way children should be resized is by using the SWF api,
11089           and we already send WM_WINDOWPOSCHANGED messages in those cases.
11090           Toplevel windows can be interacted with via the window manager,
11091           and so we keep the input mask there.
11092
11093           The other event StructureNotifyMask gives us (that we care
11094           about) is DestroyNotify.  The code is already structured such
11095           that it assumes we won't be getting a DestroyNotify event for
11096           the window we pass to XDestroyWindow (which is what
11097           StructureNotifyMask is supposed to guarantee.)  So, that code
11098           shouldn't be affected by this either.
11099
11100         - Stop selecting VisibilityChangeMask altogether.
11101
11102           We weren't doing anything with the resulting events anyway.
11103         
11104         This vastly reduces the number of X requests and events we see
11105         when resizing/laying out a large ui.
11106
11107 2006-10-06  Chris Toshok  <toshok@ximian.com>
11108
11109         * ScrollableControl.cs (DisplayRectangle): we need to take into
11110         account the DockPadding regardless of whether or not auto_scroll
11111         == true.  rework this slightly to this effect, and fix bug #79606,
11112         and part of #72499 (you can now see the drag handles and drag
11113         toolbars around).
11114
11115 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
11116
11117         * ListViewItem.cs: Collections of selected and checked items are now
11118         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
11119         we mark the collection "dirty".
11120         * ListView.cs: Marked collections readonly. Modified UpdateSelection
11121         to only clear SelectedItems when a new item is selected and MultiSelect
11122         is enabled. CheckedItems and SelectedItems now subscribe to Changed
11123         event of ListViewItemCollection, and mark its list dirty whenever
11124         that event is fire. This allows us to return selected/checked items 
11125         in the same order as they are in the Items collection. This matches
11126         the MS behavior.
11127
11128 2006-10-06  Chris Toshok  <toshok@ximian.com>
11129
11130         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
11131         right mouse clicks.  Fixes bug #79593.
11132
11133 2006-10-06  Chris Toshok  <toshok@ximian.com>
11134
11135         * Splitter.cs: doh, fix splitters that don't want to cancel the
11136         movement when you drag them.  Also, impose the limits on the
11137         values we send to the SplitterMovingEvent.  Fixes #79598.
11138
11139 2006-10-06  Jackson Harper  <jackson@ximian.com>
11140
11141         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
11142         since we use this for auto scrolling also.
11143
11144 2006-10-05  Chris Toshok  <toshok@ximian.com>
11145
11146         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
11147         beginning to think that most datagrid column types don't need this
11148         method.  Fixes bug #79392.
11149
11150 2006-10-05  Chris Toshok  <toshok@ximian.com>
11151
11152         * DataGrid.cs: move back to a more lazy scheme for creating the
11153         CurrencyManager, so we aren't updating it every time you set
11154         either DataSource or DataMember.  Also, don't call
11155         RecreateDataGridRows if the currency manager hasn't changed.
11156
11157 2006-10-05  Chris Toshok  <toshok@ximian.com>
11158
11159         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
11160         emitted, SelectedIndex should already be updated.  Fixes bug
11161         #78929.
11162
11163 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
11164
11165         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
11166           ToolStripTextBox.cs: Initial commit.
11167         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
11168
11169 2006-10-05  Jackson Harper  <jackson@ximian.com>
11170
11171         * TabControl.cs: We need to invalidate the tab control area when
11172         new ones are added (duh).
11173
11174 2006-10-03  Chris Toshok  <toshok@ximian.com>
11175
11176         * Form.cs (ProcessDialogKey): if the focused control is in this
11177         form and is a button, call its PerformClick method here.  Fixes
11178         #79534.
11179
11180 2006-10-04  Jackson Harper  <jackson@ximian.com>
11181
11182         * TabPage.cs: Ignore setting of Visible, and add an internal
11183         method for setting the controls visibility.  TabPage's Visible
11184         property is a little strange on MS, this seems to make us
11185         compatible, and fixes cases where people set all the tab pages to
11186         visible.
11187         * TabControl.cs: Use the new internal setting on tab pages
11188         visibility.
11189
11190 2006-10-03  Mike Kestner  <mkestner@novell.com>
11191
11192         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
11193
11194 2006-10-03  Mike Kestner  <mkestner@novell.com>
11195
11196         * ListView.cs : use is_visible instead of Visible to check if 
11197         scrollbars should be placed/sized.  Also some max_wrap_width
11198         love for LargeIcon view.  [Fixes #79533]
11199
11200 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
11201
11202         * TextControl.cs :
11203           Make set_TextAlign() do actually update the align. Fixed #78403.
11204
11205 2006-10-03  Chris Toshok  <toshok@ximian.com>
11206
11207         * DataGrid.cs: fix a crash when switching datasources if the
11208         vertical scrollbar is at someplace other than Value = 0.  Also,
11209         reduce the number of recalculation passes we do in SetDataSource
11210         from 2 to 1.
11211
11212 2006-10-03  Jackson Harper  <jackson@ximian.com>
11213
11214         * TextBoxBase.cs: Move the if value the same bail check up, we
11215         don't want to empty the document if it is already empty, this
11216         seems to severly mess up the caret.  TODO: I should probably fix
11217         the empty statement to update teh caret somehow.
11218
11219 2006-10-03  Chris Toshok  <toshok@ximian.com>
11220
11221         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
11222         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
11223         reflection, an internal row type, properties on said type, etc.)
11224         will work with our datagrid.  Fixes #79531.
11225
11226 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
11227
11228         * FileDialog.cs: Don't crash if a path is not accessible
11229           (System.UnauthorizedAccessException). Fixes #79569.
11230         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
11231           a ':' too. Return unknown icon for those paths/files.
11232
11233 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
11234
11235         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
11236         GetContainerControl returns null.
11237
11238 2006-10-02  Chris Toshok  <toshok@ximian.com>
11239
11240         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
11241         call to XGetWindowAttributes instead of "handle".  fixes an X
11242         error using notifyicon after the NotifyIconWindow to Form base
11243         class switch.
11244
11245 2006-10-02  Chris Toshok  <toshok@ximian.com>
11246
11247         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
11248         server grab and looping we need to do to get down to the most
11249         deeply nested child window.
11250         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
11251         QueryPointer again after the WarpPointer so we can generate a
11252         proper (fake) MotionNotify event to be enqueued in the destination
11253         window's queue.
11254         (GetCursorPos): call QueryPointer.
11255
11256         Fixes #79556.
11257
11258 2006-10-02  Jackson Harper  <jackson@ximian.com>
11259
11260         * NotifyIcon.cs: Derive the notify icon from a form, so things
11261         like FindForm work on it.
11262         - Swallow the WM_CONTEXTMENU message, since that is generated on
11263         mouse down, and context menu is a mouse up kinda guy.  I believe
11264         the correct fix here is probably to make the notify icon entirely
11265         NC area, but this seems to work fine for anyone not manipulating
11266         WndProc.
11267
11268 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
11269
11270         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
11271           ToolStripItemCollection.cs, ToolStripLabel.cs,
11272           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
11273           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
11274           Initial implementation.
11275         * TextRenderer.cs: Provide padding to MeasureText.
11276
11277 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
11278
11279         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
11280         of ButtonBaseAccessibleObject. Fix bug #79552.
11281
11282 2006-10-02  Jackson Harper  <jackson@ximian.com>
11283
11284         * MdiWindowManager.cs: When maximizing use the containers client
11285         rect, not it's bounds, so nc area is accounted correctly.
11286         - Use the parent form's size for the menu position, since the
11287         client isn't always the full form size.
11288
11289 2006-10-01  Chris Toshok  <toshok@ximian.com>
11290
11291         * ScrollableControl.cs: make sure neither right_edge or
11292         bottom_edge are < 0, since they're used as LargeChange for the
11293         horiz/vert scrollbars respectively.  Fixes #79539.
11294
11295 2006-10-01  Chris Toshok  <toshok@ximian.com>
11296
11297         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
11298         the xplatuix11 code can cause us to destroy/recreate our handle.
11299
11300         * XplatUIX11.cs
11301         (SystrayAdd):
11302         - this code can be invoked many times for the same Hwnd.  Make
11303           sure we only destroy the client window once (the first time this
11304           method is called).  This fixes bug #79544.
11305         - Remove the call to the improperly bound XSync.  why we had two
11306           bindings to this, I will never know, but this call resulted in
11307           events being discarded from the queue(!).
11308         - correct a misunderstanding of _XEMBED_INFO - the second atom is
11309           not our current state but the state we wish to be in.  So, 0 if
11310           we don't want to be mapped.  Change it to 1.
11311         (SystrayRemove): The XEMBED spec makes mention of the fact that
11312         gtk doesn't support the reparent of client windows away from the
11313         embedder.  Looking at gtksocket-x11.c seems to agree with this.
11314         The only avenue we have for removing systray icons is to destroy
11315         them.  We don't want the handle to go away for good, though, so
11316         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
11317         #79545.
11318         
11319 2006-10-01  Chris Toshok  <toshok@ximian.com>
11320
11321         * Form.cs (WndProc): inline the native_enabled variable usage into
11322         the cases in which it's used.  Fixes #79536.
11323
11324 2006-09-29  Mike Kestner  <mkestner@novell.com>
11325
11326         * ListView.cs : toggle the selection state for ctrl clicks in 
11327         multiselect mode. [Fixes #79417]
11328
11329 2006-09-29  Mike Kestner  <mkestner@novell.com>
11330
11331         * ListView.cs : kill CanMultiSelect and refactor the selection
11332         code to support multiselection in the absence of mod keys. Steal
11333         arrow/home/end keys by overriding InternalPreProcessMessage to
11334         restore regressed keynav behavior.
11335         [Fixes #79416]
11336
11337 2006-09-29  Jackson Harper  <jackson@ximian.com>
11338
11339         * MdiClient.cs: Repaint the titlebars when the active window is
11340         changed.
11341
11342 2006-09-29  Chris Toshok  <toshok@ximian.com>
11343
11344         * Application.cs: when entering a runloop with a modal, make sure
11345         the hwnd is enabled.  Fixes #79480.
11346
11347 2006-09-29  Chris Toshok  <toshok@ximian.com>
11348
11349         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
11350         when ListManager.CanAddRows == false, bump us back one.
11351
11352         * DataGridColumnStyle.cs (ParentReadOnly): remove the
11353         listmanager.CanAddRows check.  This makes ArrayLists uneditable
11354         using a datagrid, which is not right.
11355         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
11356         is an IEditable, but call property_descriptor.SetValue regardless.
11357         fixes #79435.
11358
11359 2006-09-29  Chris Toshok  <toshok@ximian.com>
11360
11361         * DataGridBoolColumn.cs: we need to test equality in the face of
11362         possible null values (as is the case with the default NullValue).
11363         This patch keeps us from crashing in that case.
11364
11365 2006-09-29  Jackson Harper  <jackson@ximian.com>
11366
11367         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
11368         here, since it will get called for every node collection in the
11369         tree. This is now done in the treeview once the sorting is
11370         finished.
11371         * TreeView.cs: Recalculate the visible order, and update the
11372         scrollbars after sorting, set the top nope to the root so that the
11373         recalc actually works.
11374
11375 2006-09-29  Chris Toshok  <toshok@ximian.com>
11376
11377         * LinkLabel.cs: more handling of the default link collection in
11378         the face of LinkArea manipulation.  The default link collection
11379         contains 1 element (start=0,length=-1).  If the user sets LinkArea
11380         to anything and the links collection is the default, clear it.
11381         Then only add the link if its nonempty.  Fixes #79518.
11382
11383 2006-09-29  Chris Toshok  <toshok@ximian.com>
11384
11385         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
11386         piece correctly when we hit a '\n'.  Fixes #79517.
11387
11388 2006-09-29  Chris Toshok  <toshok@ximian.com>
11389
11390         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
11391         change the binding of gdk_init_check to take two IntPtr's, and
11392         pass IntPtr.Zero for both of them.  Fixes #79520.
11393
11394 2006-09-29  Mike Kestner  <mkestner@novell.com>
11395
11396         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
11397         [Fixes #78779]
11398
11399 2006-09-28  Jackson Harper  <jackson@ximian.com>
11400
11401         * XplatUIX11.cs: When translating NC messages make sure we go from
11402         whole window to screen, not client window to screen.
11403         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
11404         method doesn't exist
11405         - Skip over controls that aren't forms when arranging.
11406
11407 2006-09-28  Jackson Harper  <jackson@ximian.com>
11408
11409         * XplatUIWin32.cs: Clip the rect to the parent window.
11410         * XplatUIStructs.cs: Add clipping modes struct.
11411         * InternalWindowManager.cs: New private method that factors title
11412         bar heights in when calculating the pos of an NC mouse message.
11413         - Use SendMessage to force a paint when the form's size is changed
11414         instead of painting the decorations immediately.
11415         - Don't let the NC button click messages get to DefWndProc,
11416         because they will attempt to handle windowing themself, and this
11417         messes up z-order (it will put them in front of the scrollbars).
11418         * XplatUIX11.cs: Make sure that we don't reset window managers if
11419         we already have one (ie the window is an MDI window).
11420
11421 2006-09-28  Chris Toshok  <toshok@ximian.com>
11422
11423         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
11424         menu code really needs going over.
11425
11426 2006-09-27  Chris Toshok  <toshok@ximian.com>
11427
11428         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
11429         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
11430         window is maximizable.  So, we need to make sure that even if we
11431         clear the border/wm frame of those functions, they're still
11432         available (basically, we remove the decoration without removing
11433         the function).  Half the fix for #79338.
11434
11435 2006-09-27  Chris Toshok  <toshok@ximian.com>
11436
11437         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
11438         Fixes bug #79515.
11439
11440 2006-09-27  Chris Toshok  <toshok@ximian.com>
11441
11442         * Splitter.cs: reorder things a bit so that we don't actually
11443         draw/move the splitter until after calling OnSplitterMoving.  This
11444         lets users cancel/disallow the movement by explicitly setting
11445         event.SplitX/SplitY.  Fixes #79372.
11446
11447 2006-09-27  Jackson Harper  <jackson@ximian.com>
11448
11449         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
11450         because it is most likely on a window being destroyed, and that
11451         will give us an X11 error.
11452
11453 2006-09-27  Chris Toshok  <toshok@ximian.com>
11454
11455         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
11456         the dropdown button now toggles between showing and hiding the
11457         dropdown.  Also, get rid of dropdown_form_showing and just use
11458         dropdown_form.Visible.  We still don't do a grab, but I'll leave
11459         that part to someone who has handled Capture-fu before.
11460
11461 2006-09-27  Chris Toshok  <toshok@ximian.com>
11462
11463         * DataGrid.cs: return false if alt isn't pressed when '0' is
11464         pressed.  this keeps the '0' key from being swallowed, and fixes
11465         bug #79350.
11466
11467 2006-09-27  Chris Toshok  <toshok@ximian.com>
11468
11469         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
11470         Calling Refresh (in response to a scrollbar event) screws up the
11471         scrollbar painting.  Fixes bug #78923.
11472
11473 2006-09-27  Chris Toshok  <toshok@ximian.com>
11474
11475         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
11476         then insert into hashtable" blocks threadsafe.
11477
11478 2006-09-27  Chris Toshok  <toshok@ximian.com>
11479
11480         * MessageBox.cs (CreateParams): the styles should be |'ed with our
11481         baseclass's, since otherwise the
11482         ControlBox/MinimizeBox/MaximizeBox assignments above have no
11483         effect.  This gets the close button back in messageboxes.
11484
11485 2006-09-27  Chris Toshok  <toshok@ximian.com>
11486
11487         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
11488         flag, not just != 0.  this makes flags that are actually multiple
11489         bits (like WS_CAPTION) work.  fixes bug #79508.
11490
11491 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
11492
11493         * PageSetupDialog.cs: add support for getting and settings the 
11494         paper size, source and orientation.
11495
11496 2006-09-26  Chris Toshok  <toshok@ximian.com>
11497
11498         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
11499         and caption == "", we need to remove the resize handles as well as
11500         the title bar.
11501
11502         * Control.cs (set_Text): turns out that setting Text on a form
11503         should change the WM styles on the window, since if ControlBox ==
11504         false, the only way to get a window border is to have a non-""
11505         Text property.  check winforms/forms/text.cs for an example.  so,
11506         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
11507         update both window styles and title.  This fixes a lot of dialogs
11508         (including the preferences dialog in MonoCalendar.)
11509
11510 2006-09-26  Chris Toshok  <toshok@ximian.com>
11511
11512         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
11513         control isn't a Form), call Win32ShowWindow to hide the window,
11514         but don't update the control Visible property.  When we reparent
11515         back to a parent control, call SetVisible in order for the
11516         window's visibility to be reinstated.
11517
11518         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
11519         the FosterParent.
11520
11521         * Control.cs (ControlCollection.Remove): remove that value.Hide()
11522         call for good, since it breaks MonoCalendar (and other things I'm
11523         sure.) Also, set all_controls to null *after* the owner calls,
11524         which end up regenerating it.
11525         (ChangeParent): allow new_parent to be == null, passing
11526         IntPtr.Zero down to XplatUI.
11527
11528         this fixes #79294 the right way.
11529
11530 2006-09-26  Mike Kestner  <mkestner@novell.com>
11531
11532         * GridEntry.cs : internal SetParent method.
11533         * PropertyGrid.cs : attach to property changed on the proper
11534         target if we have a hierarchical grid with subobjects. Setup
11535         GridItem.Parent for hierarchical items.
11536         * PropertyGridView.cs : Set value on the correct target for
11537         hierarchical grids. [Fixes #78903]
11538
11539 2006-09-26  Chris Toshok  <toshok@ximian.com>
11540
11541         * Control.cs (ChildNeedsRecreating): this should return true if
11542         either we're being recreated and the child is in our list, or our
11543         parent is waiting for our recreation.
11544
11545 2006-09-26  Chris Toshok  <toshok@ximian.com>
11546
11547         * Control.cs (ControlCollection.Remove): reinstate the
11548         value.Hide() call as suggested in bug #79294.
11549
11550 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
11551
11552         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
11553         coordinates (versus a relative move).
11554
11555 2006-09-26  Chris Toshok  <toshok@ximian.com>
11556
11557         * Control.cs: rework child recreation a little bit.  It turns out
11558         that we race between the DestroyNotify the WM_DESTROY message.  If
11559         the parent gets its DestroyNotify before the child gets the
11560         WM_DESTROY message, the child ends up not recreating (since the
11561         parent finishes its recreation on DestroyNotify, and the child
11562         checks ParentIsRecreating.)
11563
11564         So, instead we store off a list of all the child controls which
11565         need to be recreated when the parent control starts to recreate
11566         itself.  Then, when child controls get their WM_DESTROY message we
11567         check to see if they're in the parent's pending recreation list,
11568         and if so, we recreate.  This removes all dependency on ordering
11569         from the code and fixes the initial MonoCalendar upgrade dialog.
11570         
11571 2006-09-26  Jackson Harper  <jackson@ximian.com>
11572
11573         * TextControl.cs: Use the Line to get the length of the line,
11574         since soft line breaks can change the end line.
11575
11576 2006-09-26  Chris Toshok  <toshok@ximian.com>
11577
11578         * Control.cs (ControlCollection.AddImplicit): don't add the
11579         control again if it's already in one of our lists.  This keeps us
11580         from adding controls over and over again for comboboxes when their
11581         handle gets recreated (as the combobox adds implicit controls in
11582         OnHandleCreated).  Fixes the X11 errors in bug #79480.
11583
11584 2006-09-26  Jackson Harper  <jackson@ximian.com>
11585
11586         * TextControl.cs: When deleting characters make sure that any
11587         orphaned zero lengthed tags get deleted.
11588         - Fix ToString for zero lengthed tags.
11589
11590 2006-09-25  Jackson Harper  <jackson@ximian.com>
11591
11592         * TextControl.cs: When getting a tag at the location there can be
11593         multiple tags at the same spot, these are 0-lengthed tags that
11594         appear when extra formatting has been stuck in a location.  We
11595         need to pull out the last of these 0 lengthed tags.
11596
11597 2006-09-25  Jackson Harper  <jackson@ximian.com>
11598
11599         * TextControl.cs: Fix print out in debug method.
11600         * TextBoxBase.cs: When text is set bail if we are setting to the
11601         previous value.
11602         
11603 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
11604
11605         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
11606           It is now possible to change the selected index in a FontXXXListBox
11607           with the up and down arrow keys from the FontXXXTextBoxes.
11608           Also, send the FontXXXTextBox mouse wheel event to the corresponding
11609           FontXXXListBoxes to match ms.
11610
11611 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
11612
11613         * SystemInformation.cs: Return a clone of the theme's MenuFont because
11614         anyone can dispose it, anytime. All other properties returns enums, 
11615         structs or basic types so they don't need such tricks.
11616
11617 2006-09-22  Jackson Harper  <jackson@ximian.com>
11618
11619         * XplatUI.cs:
11620         * XplatUIWin32.cs:
11621         * Clipboard.cs:
11622         * DataFormats.cs:
11623         * XplatUIOSX.cs:
11624         * XplatUIDriver.cs: Update interface to add a primary selection
11625         flag, so the driver can use the primary selection buffer if
11626         needed.
11627         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
11628
11629         * RichTextBox.cs: We need to supply the data object to paste now
11630         (so we can choose to supply CLIPBOARD or PRIMARY).
11631         * TextBoxBase.cs: Supply data object to paste (see above).
11632         - Middle click uses the primary selection data object.
11633         
11634 2006-09-21  Chris Toshok  <toshok@ximian.com>
11635
11636         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
11637         of SetWMStyles.  It's still a rat's nest and is largely
11638         order-dependent which I dislike immensely.  This also fixes the X
11639         button disappearing from toplevel forms.
11640
11641 2006-09-21  Mike Kestner <mkestner@novell.com>
11642
11643         * ListBox.cs: move Jordi's click/dblclick raising code to the
11644         mouse up handler.
11645
11646 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
11647
11648         * ListBox.cs: Fixes 79450
11649
11650 2006-09-21  Mike Kestner <mkestner@novell.com>
11651
11652         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
11653         to deal with people updating the TreeNodeCollection after the tree
11654         is disposed.  "Fixes" 79330.
11655
11656 2006-09-20  Jackson Harper <jackson@ximian.com>
11657
11658         * TextControl.cs: Push the cursor record onto the undo stack
11659         before the delete action. This fixes 78651.
11660
11661 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
11662
11663         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
11664         CreateParams. Fixes 79329.
11665
11666 2006-09-19  Chris Toshok  <toshok@ximian.com>
11667
11668         * XplatUIX11.cs: a couple of blanket code massage passes to clean
11669         things up a bit.  First, get rid of the NetAtoms array (and the NA
11670         enum), and just embed the atoms as static fields.  Also, add a
11671         couple of functions (StyleSet and ExStyleSet) to clean up all the
11672         bitmask testing of styles.
11673
11674         * X11Structs.cs: remove the NA enum, not needed anymore.
11675         
11676 2006-09-19  Chris Toshok  <toshok@ximian.com>
11677
11678         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
11679         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
11680         added cleanup to get MessageBox titles appearing again, which were
11681         broken by my earlier fix for caption-less/ControlBox-less windows.
11682
11683 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
11684
11685         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
11686           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
11687           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
11688           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
11689           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
11690           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
11691           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
11692           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
11693           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
11694           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
11695           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
11696             Inital import.
11697         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
11698           ToolStripButton.cs: Stubs needed for above.
11699         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
11700
11701 2006-09-15  Chris Toshok  <toshok@ximian.com>
11702
11703         * XplatUIX11.cs:
11704         - make the MessageQueues hashtable Synchronized.
11705         
11706         - SendMessage: if the Hwnd is owned by a different thread, use the
11707         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
11708         thread.  Fixes bug #79201.
11709
11710 2006-09-15  Chris Toshok  <toshok@ximian.com>
11711
11712         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
11713         ControlBox == false, we disallow maximize/minimize/close.  If the
11714         form Caption is "" we also disallow move (and get rid of the Title
11715         decoration).  Unfortunately, regardless of how things are set,
11716         we're stuck with the Title and WM menu.
11717
11718 2006-09-15  Chris Toshok  <toshok@ximian.com>
11719
11720         * Application.cs: add locking around the static message_filters
11721         ArrayList, part of #79196.
11722
11723 2006-09-15  Chris Toshok  <toshok@ximian.com>
11724
11725         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
11726         Form.ControlBox == false, the window has no titlebar nor resize
11727         handles.  fixes bug #79368.
11728
11729 2006-09-15  Chris Toshok  <toshok@ximian.com>
11730
11731         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
11732         >= 0.  Fixes bug #79370.
11733
11734 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
11735         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
11736         * Control.cs:
11737             Add properties: LayoutEngine, Margin, DefaultMargin.
11738             Add method: GetPreferredSize.
11739             Move layout logic from PerformLayout to layout engines. 
11740
11741 2006-09-13  Chris Toshok  <toshok@ximian.com>
11742
11743         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
11744         fix for #79326 broke #78718, so this change addresses that.
11745
11746         - in SendWMDestroyMessages remove the call to
11747         CleanupCachedWindows, since we might be recreating the control and
11748         need to maintain the references to right Hwnd handles.  Also, set
11749         the zombie flag to true for each of the children in the hierarchy
11750         instead of calling hwnd.Dispose.  This will cause GetMessage to
11751         ignore all events for the window except for DestroyNotify.
11752
11753         - In GetMessage, ignore messages except for DestroyNotify for
11754         zombie hwnds.
11755         
11756         * Control.cs: revert the is_recreating fix from the last
11757         ChangeLog.  It's definitely "right", but it breaks switching from
11758         an MDI form to a non-MDI form.  Will need to revisit that.
11759
11760         * Hwnd.cs: add a zombie flag, which means "the
11761         client_window/whole_window handles are invalid, but we're waiting
11762         for the DestroyNotify event to come in for them".  Set the flag to
11763         false explicitly if setting WholeWindow/ClientWindow, and also
11764         when Disposing.
11765         
11766 2006-09-13  Chris Toshok  <toshok@ximian.com>
11767
11768         * XplatUIX11.cs: rework window destruction slightly.
11769
11770         - when destroying the windows associated with a control, we don't
11771         need 2 separate XDestroyWindow calls.  Just the one for the
11772         whole_window (or for client_window if whole_window is somehow
11773         IntPtr.Zero -- can this happen?) is enough.
11774
11775         - reworked SendWMDestroyMessages slightly, so we always dispose
11776         the child control hwnd's after sending the messages.
11777         
11778         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
11779         the two places it was used (one was even using hwnd.Handle and the
11780         other hwnd.client_window.  ugh), adding another call in
11781         SendWMDestroyMessages.  We need this new call because now the
11782         DestroyNotify events in the queue will be ignored for the child
11783         controls (as their hwnd's were disposed, and the window id's
11784         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
11785
11786         - this fixes bug #79326.
11787
11788 2006-09-13  Chris Toshok  <toshok@ximian.com>
11789
11790         * Control.cs: don't always set is_recreating to false at the end
11791         of RecreateHandle, since sometimes we're not done (and won't be
11792         until WndProc handles the WM_DESTROY message).  Also, set
11793         is_recreating to false in the WM_DESTROY handling code.  Part of
11794         the fix for bug #79326.
11795
11796 2006-09-13  Miguel de Icaza  <miguel@novell.com>
11797
11798         * X11DesktopColors.cs: Start the droppage of debugging messages.
11799
11800         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
11801
11802 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
11803
11804         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
11805
11806 2006-09-12  Chris Toshok  <toshok@ximian.com>
11807
11808         * DataGrid.cs (get_ListManager): if the list_manager is null, try
11809         to create it using SetDataSource.  Fixes bug #79151.
11810
11811 2006-09-11  Chris Toshok  <toshok@ximian.com>
11812
11813         * XEventQueue.cs: add a DispatchIdle property.
11814
11815         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
11816         either the queue is null, or the queue has DispatchIdle set to
11817         true.
11818         (DoEvents): set queue.DispatchIdle to false around the
11819         peek/translate/dispatch message loop in this method.  This keeps
11820         Application.Doevents from emitting idle events.  Part of the fix
11821         for #78823.
11822
11823 2006-09-11  Chris Toshok  <toshok@ximian.com>
11824
11825         * DataGrid.cs (set_DataSource): make this work for both the
11826         winforms/datagrid test and ReportBuilder.  It seems as though when
11827         we've created a ListManager (or maybe it's if we have a
11828         BindingContext?), when we set the DataSource it clears the
11829         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
11830         #79333.
11831
11832 2006-09-11  Chris Toshok  <toshok@ximian.com>
11833
11834         * XplatUIX11.cs: deal with queue being null, which happens in all
11835         the Clipboard functions.  Fixes one of the two problems mentioned
11836         in #78612.
11837
11838 2006-09-11  Chris Toshok  <toshok@ximian.com>
11839
11840         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
11841         button on various spots (including outside the menu) works closer
11842         to MS, and doesn't crash.  Fixes #79343.
11843
11844 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
11845
11846         * ListView.cs: Do not initialize item_sorter in init. To match MS,
11847         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
11848         and the internal comparer is set. When a new ListViewItemSorter is set,
11849         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
11850         was specified. No further processing is necessary if SortOrder is set
11851         to it's current value. If Sorting is modified to None, and View is
11852         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
11853         (either custom or our internal ItemComparer) to null, on 1.0 profile
11854         only set item_sorter to null if its our internal IComparer. If Sorting
11855         is modified to Ascending or Descending, then use our internal IComparer
11856         if none is set, and if the current IComparer is our internal one then:
11857         on 2.0 profile always replace it with one for new Sorting, and on 1.0
11858         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
11859         Enum.IsDefined to verify whether a valid View value is specified in
11860         its setter. Automatically sort listview items when listview is
11861         created. In Sort, do nothing if ListView is not yet created, or if
11862         no item_sorter is set (no Sorting was set, Sorting was explicitly set
11863         to None or ListViewItemSorter was set to null). Added Sort overload
11864         taking a bool to indicate whether the ListView should be redrawn when
11865         items are sorted (we use this in ListViewItemCollection to avoid double
11866         redraws). Modified our internal IComparer to take the sort order into
11867         account. In Add and AddRange methods of ListViewItemCollection, also
11868         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
11869         view), but use overload with noredraw option to avoid double redraw.
11870         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
11871         true when View is Tile, and do the same when attempting to set View to
11872         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
11873         for selected/checked indices, as it involves overhead when sorting is
11874         done while these collections are not used all that often. Instead
11875         we'll build the indices on demand. Modified IList implementation of
11876         CheckedIndexCollection to use public methods if object is int.
11877         Modified CheckedListViewItemCollection to hide checked items if
11878         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
11879         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
11880         IList implementation in SelectedIndexCollection to use public methods
11881         if object is int. Modified SelectedListViewItemCollection to hide
11882         selected items if listview is not yet created.
11883         * ListViewItem.cs: CheckedIndices list no longer needs to be
11884         maintained separately (see ListView changes). Also clone font, fixes
11885         test failure.
11886
11887 2006-09-11  Mike Kestner  <mkestner@novell.com>
11888
11889         * ComboBox.cs: if we are updating the contents of the currently
11890         selected index, refresh the control or the textbox selection.
11891         [Fixes #79066]
11892
11893 2006-09-11  Mike Kestner  <mkestner@novell.com>
11894
11895         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
11896         the 'specified' logic has been moved there.  This seems like a bug 
11897         in Control.cs, since our current SetBoundsCore completely ignores 
11898         the specified parameter.  Peter's commit seems to indicate that is 
11899         the way the MS control implementation works.  [Fixes #79325]
11900
11901 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
11902
11903         * XplatUI.cs: Set default_class_name to be composed
11904         of current domain id. This allows MWF to be loaded in multiple
11905         domains on Win32.
11906
11907 2006-09-09  Miguel de Icaza  <miguel@novell.com>
11908
11909         * X11Keyboard.cs: If we are unable to obtain the input method, do
11910         not call CreateXic to create the input context.   Should fix
11911         #78944/79276.
11912
11913 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
11914
11915         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
11916           Simplified gnome support by adding more pinvokes to get the
11917           icon for a file or mime type.
11918
11919 2006-09-08  Jackson Harper  <jackson@ximian.com>
11920
11921         * MenuAPI.cs: Deslect popup context menu items before closing the
11922         window, so that you don't see the previously selected item
11923         selected when you reopen the menu.
11924         * TextControl.cs: Update the cursor position even if we don't have
11925         focus.  This fixes typing in things like the ComboBox.  I'm not
11926         totally sure we should always set the visibility if we don't have
11927         focus, but couldn't find any corner cases where the cursor showed
11928         up when it shouldn't.
11929
11930 2006-09-08  Chris Toshok  <toshok@ximian.com>
11931
11932         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
11933         our arrays are length 256.  & 0xff before indexing.  Fixes the
11934         crash in bug #78077.
11935         
11936 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11937
11938         * ThemeWin32Classic.cs: 
11939         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
11940         is true. Handle that check box too.
11941
11942 2006-09-07  Chris Toshok  <toshok@ximian.com>
11943
11944         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
11945         79244.
11946
11947 2006-09-07  Chris Toshok  <toshok@ximian.com>
11948
11949         * Control.cs: in set_BackColor only do the work if
11950         background_color != value.
11951
11952         * XplatUIX11.cs: move the clearing of invalid areas (both client
11953         and nc) to the same block of code where we set (nc_)expose_pending
11954         to false.  That is, move it from PaintEventEnd to PaintEventStart,
11955         so things that cause invalidates from within OnPaint will trigger
11956         another call to OnPaint.  Fixes bug #79262.
11957
11958 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
11959
11960         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
11961         * FileDialog.cs: Fix typo
11962
11963 2006-09-07  Jackson Harper  <jackson@ximian.com>
11964
11965         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
11966         for tab pages if they have any.
11967
11968 2006-09-06  Mike Kestner  <mkestner@novell.com>
11969
11970         * Splitter.cs: use the "current" rect when finishing drag handle
11971         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
11972
11973 2006-09-06  Mike Kestner  <mkestner@novell.com>
11974
11975         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
11976         support offset splitters. [Fixes #79298]
11977
11978 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
11979
11980         * Mime.cs: Fixed a bug that could override the global mime type
11981           result.
11982
11983 2006-09-05  Jackson Harper  <jackson@ximian.com>
11984
11985         * TabControl.cs: Better calculation method for setting the slider
11986         pos. Prevents crashes on really wide tabs.
11987         - Draw Image on tab pages if an image list is used.
11988
11989 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11990
11991         * MonthCalendar.cs: When Font changes, the Size should be
11992         updated to fit the new font's space requirements.
11993
11994 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
11995
11996         * ListBox.cs: If the items are cleared with Items.Clear set
11997           top_index to 0.
11998
11999 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12000
12001         * MonthCalendar.cs: Handle arrow keys as input keys. Also
12002         fire DateChanged event instead of DateSelected event when
12003         the date was changed by keyboard interaction.
12004
12005 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12006
12007         * DateTimePicker.cs: Handle DateChanged for the associated
12008         month_calendar control, and set month_calendar.Font from 
12009         OnFontChanged method, as well as resize the height of the
12010         control when needed. Make PreferredHeight proportional.
12011
12012 2006-09-01  Chris Toshok  <toshok@ximian.com>
12013
12014         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
12015         properties.
12016
12017         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
12018
12019 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
12020
12021         * FileDialog.cs: Set ClientSize instead of window size, to allow space
12022           for decorations (Fixes #79219)
12023
12024 2006-09-01  Mike Kestner  <mkestner@novell.com>
12025
12026         * ComboBox.cs: first stab at sorting plus some selection handling
12027         fixes to bring us more in line with MS behavior.  Also switches back
12028         to index based selection.  Alternative patches for index-based 
12029         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
12030         and latency@gmx.de on bug 78848.  I assume they were similar to this
12031         code I've had simmering in my tree forever.
12032         [Fixes #78848]
12033
12034 2006-09-01  Chris Toshok  <toshok@ximian.com>
12035
12036         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
12037         when setting list position guard against ending up with a -1 index
12038         (the other part of the fix for #78812).  Should probably make sure
12039         we don't need the analogous fix in the ItemDeleted case.
12040
12041         * DataGrid.cs:
12042         - in SetDataSource, work around the fact that the way
12043         OnBindingContextChanged is invoked will cause us to re-enter this
12044         method.  I'll remove the hack once I investigate
12045         OnBindingContextChanged.
12046
12047         - fix the logic in set_DataSource and set_DataMember (basically
12048         what to do if the other of the two is null.)
12049         
12050         - in OnListManagerItemChanged, we need to take into account the
12051         edit row when deciding whether or not to call RecreateDataGridRows
12052         (part of the fix for #78812).
12053
12054 2006-09-01  Jackson Harper  <jackson@ximian.com>
12055
12056         * Splitter.cs: Don't do anything if there is no control to affect
12057         (prevents us from crashing in weird tet cases).
12058         * TreeView.cs: Bounding box for the mouse movement reverting
12059         focus/selection back to previously selected node.  This matches
12060         MS, and makes the tree a lot more useable.
12061         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
12062         use clipping so they are not drawn.  This fixes when the control
12063         is set to have a transparent background, or if it was over an
12064         image.
12065
12066 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
12067
12068         * MimeIcon.cs: Improved handling for reading default icons when
12069           using gnome (2.16 made it necessary). Check and read svg icons
12070           first, then 48x48 and then 32x32 icons.
12071
12072 2006-08-31  Chris Toshok  <toshok@ximian.com>
12073
12074         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
12075         visible.
12076
12077         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
12078         ProcessKeyPreview.  Fixes part of #77806.
12079
12080         * DataGrid.cs: big patch.
12081
12082         - revert the queueing up of DataSource/DataMember if inside
12083         BeginInit/EndInit calls.  That's not the way the datagrid achieves
12084         its delayed databinding.  Instead, call SetDataSource in
12085         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
12086         #78811.
12087
12088         - Also, it wasn't mentioned in #78811, but the test case exhibits
12089         behavior that was lacking in our datagrid implementation - Columns
12090         that have mapping names that don't exist in the datasource's
12091         properties aren't shown.  Yuck.  To fix this I added the bound
12092         field to the column style, and basically any calculation to figure
12093         out anything about columns uses a loop to find the bound columns.
12094         still need to investigate if I can cache an array of the bound
12095         columns or if the indices must be the same.
12096
12097         - When setting CurrentCell, we no longer abort if the cell being
12098         edited was in the add row.  This fixes the other part of #77806.
12099
12100         - The new code also fixes #78807.
12101         
12102         * ThemeWin32Classic.cs: perpetrate the same disgusting
12103         column.bound field hack, and only render bound fields.
12104
12105 2006-08-31  Chris Toshok  <toshok@ximian.com>
12106
12107         * DataGridColumnStyle.cs: add bound field.  this field is true if
12108         the datasource has a property corresponding to the mapping name.
12109
12110         * DataGridTableStyle.cs: set the bound field on the column styles
12111         depending on whether or not we have a column for that property.
12112
12113 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
12114
12115         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
12116           splitter control (fixes #79228)
12117
12118 2006-08-31  Chris Toshok  <toshok@ximian.com>
12119
12120         * DataGridColumnStyle.cs: we need to delay the assignment of
12121         property descriptor until the last possible moment due to the lazy
12122         databinding stuff in the datagrid.  Also, fix the exceptions
12123         thrown by CheckValidDataSource to match MS.
12124
12125 2006-08-31  Jackson Harper  <jackson@ximian.com>
12126
12127         * Form.cs: When activated select the active control, if there is
12128         no active control, we select the first control.
12129         * XplatUIX11.cs: If there is no focus control when we get a
12130         FocusIn event, find the toplevel form and activate it.  This
12131         occurs when you popup a window, it becomes the focus window, then
12132         you close that window, giving focus back to the main window.
12133
12134 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12135
12136         * MonthCalendar.cs: 
12137         * ThemeWin32Classic.cs: Cache Font in bold style, as well
12138         as StringFormat with Center alignments in MonthCalendar,
12139         instead of creating new ones when drawing the control. 
12140         Also, draw the month name in bold style.
12141
12142 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
12143
12144         * Control.cs:
12145           - PerformLayout(): It would seem MS performs the fill even if the 
12146             control is not visible (part of #79218 fix)
12147           - ResetBackColor(): Use the setter to reset the color, to allow
12148             overriders to catch the change.
12149         * Form.cs:
12150           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
12151           - CreateHandle(): dito (part of $79218 fix)
12152           - Don't set an icon if we have a dialog
12153         * ScrollableControl.cs:
12154           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
12155           - ScrollIntoView(): No need to scroll if control is already visible
12156             (resolves fixme and fixes #79218)
12157
12158 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12159
12160         * MonthCalendar.cs: Change proportions in SingleMonthSize
12161         to match the aspect of the original control.
12162
12163 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
12164
12165         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
12166           get updated when they get maximized.
12167
12168 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
12169
12170         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
12171
12172 2006-08-29  Chris Toshok  <toshok@ximian.com>
12173
12174         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
12175
12176 2006-08-29  Jackson Harper  <jackson@ximian.com>
12177
12178         * TreeView.cs: Need to track selected node and highlighted node,
12179         they aren't always the same thing, when the mouse is down on a
12180         node it is hilighted, but not selected yet.
12181         - Do the HideSelection stuff right
12182         - Need to focus on rbutton mouse down. And redraw selection when
12183         right click is mouse upped.
12184
12185 2006-08-29  Mike Kestner  <mkestner@novell.com>
12186
12187         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
12188         when SubItems.Count < Columns.Count.  [Fixes #79167]
12189
12190 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
12191
12192         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
12193
12194 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
12195
12196         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
12197           from X. Only send based on ConfigureNotify if we don't have the
12198           correct location in hwnd (if the window manager moved us)
12199
12200 2006-08-28  Mike Kestner  <mkestner@novell.com>
12201
12202         * ListView.cs: remove a TODO. 
12203         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
12204         [Fixes ListView part of #79166]
12205
12206 2006-08-28  Mike Kestner  <mkestner@novell.com>
12207
12208         * ListView.cs: move wheel handler to parent since it is focused
12209         instead of the item_control now.  [Fixes #79177]
12210
12211 2006-08-28  Mike Kestner  <mkestner@novell.com>
12212
12213         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
12214         when the control is focused. [Fixes #79171]
12215
12216 2006-08-28  Mike Kestner  <mkestner@novell.com>
12217
12218         * ListView.cs: size the item and header controls for empty and
12219         unscrollable views.
12220         * ThemeWin32Classic.cs: draw disabled backgrounds.
12221         [Fixes #79187]
12222
12223 2006-08-28  Chris Toshok  <toshok@ximian.com>
12224
12225         * Form.cs: remove unused "active_form" static field.
12226
12227         * Hwnd.cs: lock around accesses to static windows collection.
12228
12229         * Application.cs: lock threads in Exit ().
12230
12231 2006-08-28  Chris Toshok  <toshok@ximian.com>
12232
12233         * NativeWindow.cs: lock around accesses to window_collection.
12234         
12235 2006-08-28  Chris Toshok  <toshok@ximian.com>
12236
12237         * Control.cs: err, fix this the right way, by locking on controls
12238         when using it.  not by making it synchronized.
12239
12240 2006-08-28  Chris Toshok  <toshok@ximian.com>
12241
12242         * Control.cs: make the static "controls" field synchronized, as it
12243         gets updated from multiple threads.
12244
12245 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
12246
12247         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
12248           Prevent other threads from exiting when calling thread sets quit state.
12249         * XEventQueue.cs: Added PostQuitState property
12250
12251 2006-08-27  Chris Toshok  <toshok@ximian.com>
12252
12253         * AsyncMethodData.cs: add a slot for the window handle.
12254
12255         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
12256         window (the destination control's window, not the foster window).
12257
12258         * Control.cs (BeginInvokeInternal): store the window's handle in
12259         the AsyncMethodData.
12260         
12261
12262 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
12263
12264         * XplatUIX11.cs:
12265           - PostQuitMessage: Removed resetting S.D display handle, we might have
12266             another loop started after calling PostQuitMessage (Fixes #79119)
12267           - Created destructor to reset S.D handle
12268
12269 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
12270
12271         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
12272
12273 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
12274
12275         * TextControl.cs (Insert): Update the caret position even if we don't
12276           have a handle yet, just don't call the driver in that case.
12277         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
12278           to the end of the new selection text (Fixes #79184)
12279
12280 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12281
12282         * Form.cs (Activate): Only activate if the handle is created)
12283         * Control.c:
12284           - Mark window as invisible when it's disposed
12285           - Check if window handle is created when setting window visible, 
12286             instead of relying just on the is_created variable
12287           - Check if object is disposed when creating the control (Fixes #79155)
12288
12289 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
12290
12291         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
12292           when allowing layout again. Otherwise we re-generate the anchoring 
12293           distance to the border again and actually alter what the user wanted
12294           This is ugly, it'd be better if we used DisplayRectangle instead of
12295           ClientRectangle for Control.UpdateDistances, but that causes us to
12296           have other problems (initial anchoring positons would be wrong)
12297           (Fixes #78835)
12298
12299 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12300
12301         * Control.cs:
12302           - The size and location setters shouldn't go directly to 
12303             SetBoundsCore, but to SetBounds, which triggers layout on the
12304             parent, then calls SetBoundsCore. (Related to fix for #78835)
12305           - SetBounds: Moved actual location update code into this function
12306             from SetBoundsCore, to match MS. Added call to PerformLayout if
12307             we have a parent (to trigger resizing of anchored parents if the 
12308             child size has changed (see testcase for #78835) 
12309         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
12310           new control code
12311         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
12312
12313 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
12314
12315         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
12316           System.Drawing when a toplevel window gets closed; there might
12317           be other toplevel windows belonging to the same app (Fixes #78052)
12318
12319 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
12320
12321         * FileDialog.cs: After reading FileDialog settings from mwf_config
12322           use Desktop prefix only if a real folder doesn't exist anymore.
12323         * FontDialog.cs: Added char sets.
12324           It is now possible to select the font, size or style with the
12325           textboxes.
12326
12327 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
12328
12329         * PrintPreviewDialog.cs: Use assembly name constants.
12330
12331 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
12332
12333         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
12334           scrollbar from whacking it's buttons)
12335
12336 2006-08-24  Chris Toshok  <toshok@ximian.com>
12337
12338         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
12339         in this patch (aggregating setting Left/Top/Width/Height to
12340         setting Bounds on the scrollbars), but the crux of the fix is in
12341         Recalculate, where we scroll by the remaining scroll_position if
12342         we're hiding a scrollbar.  The 2*$5 reward in the comment is
12343         serious.
12344
12345 2006-08-24  Jackson Harper  <jackson@ximian.com>
12346
12347         * MdiClient.cs:
12348         * MdiWindowManager.cs: If the form is made a non-mdi window we
12349         need to remove the form closed event so that closing forms works
12350         correctly.
12351
12352 2006-08-24  Jackson Harper  <jackson@ximian.com>
12353
12354         * Control.cs: Make IsRecreating internal so that the driver can
12355         check it
12356         - Temporarily remove the Hide when controls are removed, its
12357         making a whole bunch of things not work because visibility isn't
12358         getting reset elsewhere correctly
12359         * Form.cs: Need to do a full handle recreation when the mdi parent
12360         is set.
12361         * XplatUIX11.cs: If we are recreating handles don't dispose the
12362         HWNDs.  What was happening is the handles were being recreated in
12363         SendWMDestroyMessages, but then flow continued on in that method
12364         and destroyed the new handles.
12365
12366 2006-08-23  Jackson Harper  <jackson@ximian.com>
12367
12368         * Form.cs: MdiClient is always at the back of the bus
12369         * Control.cs: When the order of items in the collection is changed
12370         we need to reset the all_controls array
12371         - do the same sorta setup thats done when adding a control when a
12372         control is set on the collection.
12373
12374 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
12375
12376         * TextBoxBase.cs (get_Text): Return an empty array if our document
12377           is empty (fixes #79052)
12378
12379 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12380
12381         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
12382           on WM_SYSCHAR messages (fixes #79053)
12383
12384 2006-08-23  Chris Toshok  <toshok@ximian.com>
12385
12386         * DataGrid.cs: fix flickering when scrolling vertically.
12387
12388 2006-08-23  Chris Toshok  <toshok@ximian.com>
12389
12390         * DataGrid.cs (EndEdit): only invalidate the row header when we
12391         need to.
12392
12393 2006-08-23  Chris Toshok  <toshok@ximian.com>
12394
12395         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
12396         methods.  fixes the flicker when scrolling around.
12397
12398 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12399
12400         * FileDialog.cs: Making sure the control is created before we get a 
12401           chance to use it with BeginInvoke (Fixes #79096)
12402
12403 2006-08-23  Chris Toshok  <toshok@ximian.com>
12404
12405         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
12406         width to use when painting the rows.
12407
12408 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
12409
12410         * TextBoxBase.cs:
12411           - Throw ArgumentException if a negative value is passed to SelectionLength
12412           - Update the selection end if start is moved. end needs to be always
12413             after start. (Fixes #79095)
12414           - Track selection length; MS keeps the selection length even if start
12415             is changed; reset on all other operations affection selection
12416
12417 2006-08-22  Jackson Harper  <jackson@ximian.com>
12418
12419         * TreeView.cs: Make sure both scrollbars get displayed and sized
12420         correctly when the other bar is visible.
12421         - Use the original clip rectangle for checking if the area between
12422         the two scrollbars is visible, not the viewport adjusted clipping
12423         rectangle.
12424
12425 2006-08-22  Jackson Harper  <jackson@ximian.com>
12426
12427         * Binding.cs: We don't use IsBinding because it requires the
12428         control to be created, which really shouldn't be necessary just to
12429         set a property on the control.
12430
12431 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12432
12433         * ComboBox.cs: Some CB.ObjectCollection methods must throw
12434         ArgumentNullReferenceException when the argument is null.
12435
12436 2006-08-21  Jackson Harper  <jackson@ximian.com>
12437
12438         * Timer.cs: Track the thread that the timer is started in (NOT
12439         CREATED), this way messages for it will only be triggered on its
12440         queue.
12441         * XEventQueue.cs: Track the timers here, this makes timers per
12442         thread, like MS.
12443         * XplatUIX11.cs: The timers are moved to the XEventQueue.
12444
12445 2006-08-19  Chris Toshok  <toshok@ximian.com>
12446
12447         * XplatUIX11.cs: after further communication with pdb, we get the
12448         best of both worlds.  SetZOrder working for un-Mapped windows, and
12449         no X errors for un-mapped windows.
12450
12451 2006-08-19  Chris Toshok  <toshok@ximian.com>
12452
12453         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
12454         as it was causing pdn toolbars to not have the correct stacking.
12455
12456 2006-08-18  Mike Kestner  <mkestner@novell.com> 
12457
12458         * ListView.cs : guard against negative ClientArea.Width in scrollbar
12459         calculation.  Not sure why control should ever be setting a negative
12460         width though.  Fixes #78931.
12461
12462 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12463
12464         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
12465         null items in ObjectCollection class.
12466         * ListBox.cs.: Likewise.
12467
12468 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
12469
12470         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
12471           as the base method in ThemeWin32Classic should work fine.
12472           Fixed bug #78607.
12473
12474 2006-08-18  Jackson Harper  <jackson@ximian.com>
12475
12476         * Binding.cs: When validating if the value entered doesn't convert
12477         properly reset to the old value.
12478         * RadioButton.cs: Don't fire click when we get focus.
12479
12480 2006-08-18  Jackson Harper  <jackson@ximian.com>
12481
12482         * FileDialog.cs: Paint the selection on the directory combobox the
12483         same way as on MS. 
12484
12485 2006-08-17  Jackson Harper  <jackson@ximian.com>
12486
12487         * ErrorProvider.cs: Don't allow the error control to be selected.
12488         * Control.cs: Don't send the SetFocus messages, the control
12489         activation will do this, and if we do it blindly here validation
12490         does not work.
12491
12492 2006-08-17  Jackson Harper  <jackson@ximian.com>
12493
12494         * Control.cs:
12495         * ContainerControl.cs: Make validation events fire in the correct
12496         order.  TODO: For some reason the first validation event is not
12497         getting fired.
12498
12499 2006-08-17  Mike Kestner  <mkestner@novell.com> 
12500
12501         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
12502
12503 2006-08-17  Mike Kestner  <mkestner@novell.com> 
12504
12505         * ComboBox.cs : implement scroll wheel support for popped-down
12506         state. Fixes #78945. 
12507
12508 2006-08-17  Jackson Harper  <jackson@ximian.com>
12509
12510         * TreeView.cs: Specify treeview actions (old patch that didn't get
12511         committed for some reason).
12512         - Don't let the mouse wheel scroll us too far.  Just want to make
12513         the bottom node visible, not scroll it all the ways to the top.
12514
12515 2006-08-17  Jackson Harper  <jackson@ximian.com>
12516
12517         * XplatUIX11.cs: Mouse wheel events go to the focused window.
12518
12519 2006-08-17  Mike Kestner  <mkestner@novell.com> 
12520
12521         * ComboBox.cs : don't do mouseover selection in simple mode.
12522
12523 2006-08-16  Jackson Harper  <jackson@ximian.com>
12524
12525         * Form.cs: Fire the closing events for all the mdi child windows
12526         when a window is closed.  If the cancel args are set to true, the
12527         main window still gets the event fired, but it doesn't not close.
12528         * MdiWindowManager.cs: Do this closing cleanup in a Closed
12529         handler, instead of when the button is clicked, so cancelling the
12530         close works correctly.
12531         * ComboBox.cs: Send the mouse down to the scrollbar.
12532
12533 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12534
12535         * ListBox.cs: When passing 'null' to SelectedItem,
12536         set SelectedIndex to -1, to unselect items. This is the
12537         observed behaviour in .Net.
12538
12539 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
12540
12541         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
12542           MS flags saying there won't be any. (fixes #78800)
12543         * Control.cs (HandleClick): Made virtual
12544
12545 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
12546
12547         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
12548           cultures. Fixed bug #78399.
12549
12550 2006-08-16  Jackson Harper  <jackson@ximian.com>
12551
12552         * Form.cs: Use the MdiClients MdiChildren property to access
12553         MdiChildren instead of creating the array from the child controls.
12554         * MdiClient.cs: Maintain a separate array of the mdi children, so
12555         that insertion order is maintained when the Z-order is changed.
12556
12557 2006-08-16  Mike Kestner  <mkestner@novell.com> 
12558
12559         * ListView.cs : add an ItemComparer and default to it for sorting.
12560         Fixes #79076, but sorting needs a complete overhaul to be compat with
12561         MS.
12562
12563 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
12564
12565         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
12566
12567 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
12568
12569         * Hwnd.cs (Mapped): Properly traverse the tree
12570
12571 2006-08-15  Chris Toshok  <toshok@ximian.com>
12572
12573         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
12574         pass manager.Current.GetType() to ParseData.  It has to be the
12575         property type.  So, hold off doing the ParseData until we're in
12576         SetPropertyValue where we know the type.  This fixes the crash in
12577         #78821 but the textbox is still empty.
12578
12579 2006-08-15  Chris Toshok  <toshok@ximian.com>
12580
12581         * DataGrid.cs:
12582         - when we're scrolling, only call Edit() again if the
12583         current cell is still unobscured. Fixes bug #78927.
12584         - when handling mousedown on a cell, ensure the cell is visible
12585         before calling Edit.
12586         - remove the properties from DataGridRow, and remove the
12587         DataGridParentRow class altogether.
12588         
12589
12590 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
12591
12592         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
12593           fire OnTextChanged by ourselves. There's no point calling base,
12594           we don't set the base value anywhere else. Fixes #78773.
12595
12596 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12597
12598         * ListBox.cs: Call CollectionChanged when modifying
12599         an item from Items indexer, to update the actual items
12600         in the list box.
12601
12602 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12603
12604         * PrintDialog.cs: Small fixes for focus and a pair of checks,
12605         to match .Net behaviour.
12606
12607 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
12608
12609         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
12610
12611 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
12612
12613         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
12614
12615 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
12616
12617         * MessageBox.cs: Prevent potential NRE exception.
12618         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
12619
12620 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
12621
12622         * MessageBox.cs: Calculate the owner of a messagebox, also make
12623           it topmost. Fixes #78753
12624
12625 2006-08-14  Chris Toshok  <toshok@ximian.com>
12626
12627         * XplatUIX11.cs: A couple of fixes so that metacity will let us
12628         programmatically move windows.  first, set the PPosition hint as
12629         well as the USPosition hint.  Second include some code from pdb
12630         that sets the window type to NORMAL when we set the transient for
12631         hint.  This is because, in the absence of a window type, metacity
12632         thinks any window with TransientFor set is a dialog, and refuses
12633         to let us move it programmatically.  fascists.
12634
12635 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
12636
12637         * XplatUIX11.cs: When setting normal hints, take into consideration
12638           an different hints previously set so we don't delete them (fixes #78866)
12639
12640 2006-08-12  Chris Toshok  <toshok@ximian.com>
12641
12642         * ToolBarButton.cs: make Layout return a boolean, if something to
12643         do with the button's layout changed.
12644
12645         * ToolBar.cs:
12646         - add another parameter to Redraw, @force, which all existing
12647           calls set to true.
12648         - make the Layout function return a boolean which is true if the
12649           layout has actually changed.  Redraw now uses this (and @force)
12650           to determine when to invalidate.  At present the only place
12651           where @force can be false is the call from OnResize, when
12652           background_image == null.  So, resizing a toolbar when the
12653           layout doesn't change results in no drawing.
12654
12655 2006-08-12  Chris Toshok  <toshok@ximian.com>
12656
12657         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
12658         the VScrollBar and HScrollbar reversed.  oops.
12659
12660         * DataGrid.cs: fix the logic that assigns sizes to the implicit
12661         scrollbars.  we were assigning them twice (once in
12662         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
12663         therefore causing two scrollbar resizes (and redraws?) to happen
12664         per grid resize.
12665
12666 2006-08-12  Chris Toshok  <toshok@ximian.com>
12667
12668         * ToolBarButton.cs: redraw the entire button if the theme tells us
12669         to.
12670
12671         * Theme.cs: add ToolBarInvalidateEntireButton.
12672
12673         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
12674         buttons, just the border.
12675
12676         * ThemeNice.cs: redraw the entire toolbar button since we need to
12677         draw the highlight image.
12678
12679         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
12680         we need to redraw the entire button (not just the border).
12681
12682 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
12683
12684         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
12685           for vertical bars. Fixes the mismatches shown by #78513
12686
12687 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
12688
12689         * FileDialog.cs: If a saved/remembered path doesn't exist
12690           anymore, fall back to "Desktop".
12691
12692 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
12693
12694         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
12695           parent. It's apparently legal to not have one
12696         * XplatUIX11.cs:
12697           - SetZOrder: Don't try to set Z-Order on an unmapped window
12698           - CreateWindow: 0,0 are legal coordinates for a window. don't move
12699             it unless the coordinates are negative
12700
12701 2006-08-10  Mike Kestner  <mkestner@novell.com>
12702
12703         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
12704         when setting to null per msdn docs.  Fixes #78854.
12705
12706 2006-08-10  Chris Toshok  <toshok@ximian.com>
12707
12708         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
12709         flickering by setting a clip rectangle on the Graphics when we
12710         need to redraw just a particular menuitem.  Also, rename "OnClick"
12711         to "OnMouseDown" to reflect what it actually is.
12712         
12713         * Form.cs: track the OnMouseDown change.
12714
12715 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
12716
12717         * CommonDialog.cs: Properly inherit the CreateParams from the form
12718           and only change what we need. Fixes #78865
12719
12720 2006-08-10  Chris Toshok  <toshok@ximian.com>
12721
12722         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
12723         flickering in flat mode (and most of the flickering in general) by
12724         only invalidating the button border (and not the entire rectangle)
12725         when the state changes.  A couple of cases still flicker:
12726         ToggleButtons, and the dropdown arrow case when the user mouse
12727         ups.
12728
12729 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
12730
12731         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
12732           for german keyboards. Numlock state shouldn't affect the behaviour
12733           of the Del key. Fixes bug #78291.
12734
12735 2006-08-10  Chris Toshok  <toshok@ximian.com>
12736
12737         * ListControl.cs: remove the items.Clear line from BindDataItems,
12738         as this is the first thing done by both subclasses in their
12739         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
12740         passed -1, refresh the list.  This gets databinding working when
12741         the datasource is set on the list before the datasource is
12742         populated (as in wf-apps/ReportBuilder.)
12743
12744         * ComboBox.cs: remove the argument to BindDataItems.  This call
12745         should really go away, and be initiated by the ListControl code.
12746
12747         * ListBox.cs: same.
12748
12749 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
12750
12751         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
12752           if no data is in the document when the control is displayed
12753
12754 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
12755
12756         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
12757           yes (fixes #78806)
12758         * TextControl.cs: 
12759           - PositionCaret: Allow positioning of caret but don't call methods 
12760             requiring a handle if the window isn't created yet
12761           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
12762           - owner_HandleCreated: Don't position the caret, just update it's 
12763             location. User might have already set a different position
12764
12765 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
12766
12767         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
12768           windows. Screws up the returned coordinates for child windows. 
12769           Fixes #78825. I'm hoping this doesn't break something, since the
12770           code was explicitly put in 8 months ago, but no bug was attached.
12771           Menus still seem to work properly.
12772
12773 2006-08-08  Chris Toshok  <toshok@ximian.com>
12774
12775         * DataGrid.cs: make BeginInit/EndInit actually do what they're
12776         supposed to do - delay data binding until the EndInit call.  Also,
12777         make the table style collection's CollectionChangeAction.Refresh
12778         work properly.
12779
12780         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
12781         (with action = Refresh) when a consituent table's MappingName is
12782         changed.
12783
12784 2006-08-08  Chris Toshok  <toshok@ximian.com>
12785
12786         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
12787         Invalidate, since changing the text can change the size of the all
12788         toolbar buttons.
12789
12790 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
12791
12792         * Form.cs (AddOwnedForm): Still need to add the form to our listif
12793           we don't have it yet
12794
12795 2006-08-08  Chris Toshok  <toshok@ximian.com>
12796
12797         * PrintControllerWithStatusDialog.cs: don't .Close() the status
12798         dialog, as this causes X errors later on, since we actually
12799         destroy the window.  Instead, .Hide() it.
12800
12801 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
12802
12803         * ComboBox.cs: Added focus reflection for popup window
12804         * XplatUIX11.cs: 
12805           - Removed transient setting for non-app windows for now, not sure it
12806             was needed
12807           - Fixed logic checking if we have captions when deciding 
12808             override_redirect, WS_CAPTION is two bits and a 0 check was not
12809             sufficient
12810           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
12811             complicated
12812         * Form.cs: 
12813           - AddOwnedForm: Don't just add the form to the list, call the property
12814             to ensure the driver is informed about the ownership as well
12815           - CreateHandle: Set the TopMost status in the driver if we have an owner
12816         * XplatUI.cs: Fixed debug statement
12817
12818 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
12819         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
12820           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
12821           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
12822           TrackBarRenderer.cs: Make constructor private.
12823         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
12824         * ProfessionalColorTable.cs: Make properties virtual.
12825
12826 2006-08-06  Duncan Mak  <duncan@novell.com>
12827
12828         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
12829         is not changing.
12830
12831 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
12832         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
12833           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
12834           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
12835           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
12836           Initial import of new 2.0 classes.
12837
12838 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
12839         * Application.cs: Add 2.0 VisualStyles properties.
12840
12841 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
12842         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
12843           XplatUIX11.cs: Create property to allow access to existing private
12844           variable "themes_enabled"
12845
12846 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12847
12848         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
12849         file size, as otherwise our class libraries fail using windows. Fixes
12850         bug #78759.
12851
12852 2006-08-04  Jackson Harper  <jackson@ximian.com>
12853
12854         * Form.cs:
12855         * XplatUIX11.cs: Move the toolwindow window manager creation into
12856         the X11 driver, this way on win32 we can let windows create/handle
12857         the toolwindows.
12858
12859 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12860
12861         * PrintDialog.cs: Remove some redundant checks, add some others,
12862         clean some code, and move the focus to the text boxes when the
12863         values are incorrect.
12864
12865 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
12866
12867         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
12868
12869 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
12870
12871         * NumericUpDown.cs: Setting the Minimum and Maximum is now
12872           handled correctly. Fixes bug #79001.
12873
12874 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12875
12876         * PrintDialog.cs: The "Copies" numeric up down must have
12877         set the Minimum property to 1; only if the value is bigger
12878         than 1, activate "Collate" check box. This is the behaviour of .Net.
12879         Also modify the Document elements only if it is not null.
12880
12881 2006-08-03  Jackson Harper  <jackson@ximian.com>
12882
12883         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
12884         length. (We have a larger array then actual node count).
12885                 
12886 2006-08-03  Jackson Harper  <jackson@ximian.com>
12887
12888         * ComboBox.cs: Don't show selection by default.
12889         - The SelectAll isn't needed here, since the focus code should do
12890         that
12891         - DDL style lists to manual selection drawing, so when they
12892         get/lose focus they have to invalidate.
12893
12894 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
12895
12896         * TextBoxBase.cs: Don't always show all selections by default.
12897
12898 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
12899         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
12900           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
12901           Fixed various typos.
12902
12903 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
12904
12905         * Control.cs: Removing the controls in a ControlCollection with
12906           Clear now hides the controls as expected. Fixes bug #78804. 
12907
12908 2006-08-03  Jackson Harper  <jackson@ximian.com>
12909
12910         * Control.cs: Revert previous focus patch, it breaks reflector.
12911
12912 2006-08-03  Jackson Harper  <jackson@ximian.com>
12913
12914         * ComboBox.cs: Cleanup selection and focus with the combobox.
12915         This also eliminates some duplicated keyboard code, since now
12916         everything is handled by the main class.
12917         - Make list selection work on mouse up instead of down, to match
12918         MS.
12919
12920 2006-08-02  Jackson Harper  <jackson@ximian.com>
12921
12922         * Control.cs: Setting focus needs to go through the whole
12923         selection mechanism.
12924
12925 2006-08-02  Chris Toshok  <toshok@ximian.com>
12926
12927         * PrintPreviewDialog.cs: change MinimumSize to use
12928         base.MinimumSize so it works.
12929
12930 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
12931
12932         * TextControl.cs:
12933           - UpdateCaret: Added sanity check in case caret isn't defined yet
12934           - Line.Delete: Now updating selection and caret markers if we're
12935             transfering a node (Properly fixes #78323)
12936           - SetSelectionEnd: Added sanity check
12937         * TextBoxBase.cs: Removed broken attempt to fix #78323
12938
12939 2006-08-01  Chris Toshok  <toshok@ximian.com>
12940
12941         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
12942         Close() call is handled in Form, not here.
12943
12944 2006-08-01  Chris Toshok  <toshok@ximian.com>
12945
12946         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
12947         layout/rendering.
12948
12949         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
12950         for sizes < 100% zoom.  The code now aggressively attempts to keep
12951         from calling document.Print (), and tries not to use the scaling
12952         g.DrawImage whenever possible (it still does if you scale to >
12953         100%, since usually that involves huge images).
12954
12955         * PrintPreviewControl.cs: hook up the close button.
12956
12957 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
12958         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
12959           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
12960           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
12961           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
12962           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
12963           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
12964           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
12965           Removed [Serializable] for 2.0 Event Handlers.
12966
12967 2006-07-31  Jackson Harper  <jackson@ximian.com>
12968
12969         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
12970         * TextControl.cs: Uncomment out the body of this method.
12971
12972 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
12973
12974         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
12975           standard cursors.
12976
12977 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
12978
12979         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
12980           that embed TextBox and need selections visible even if textbox is not
12981           focused to enforce that behaviour.
12982         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
12983           selection drawing
12984
12985 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
12986
12987         * TextControl.cs:
12988           - Added new SetSelectionStart/SetSelectionEnd overloads
12989           - Fixed viewport width assignment to be accurate
12990           - Adjusted alignment line shift calculations to allow cursor on right
12991             aligned lines to be always visible at the right border (like MS)
12992         * TextBoxBase.cs:
12993           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
12994           - TextBoxBase_SizeChanged: recalculating canvas on size changes
12995           - CalculateScrollBars: Use ViewPort size instead of window size, to
12996             properly consider space occupied by the border and scrollbars 
12997             (Fixes #78661)
12998           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
12999             calculations; no longer leaves artifacts
13000           - CaretMoved: Adjusted window scrolling to match MS and fixed several
13001             calculation bugs (Still missing right/center align calculations)
13002
13003 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
13004
13005         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
13006           use of both scroll rect and clip rect, as they do the same.
13007
13008 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
13009
13010         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
13011           in the event handler (fixes #78912)
13012
13013 2006-07-31  Chris Toshok  <toshok@ximian.com>
13014
13015         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
13016         grid.ListManager.Count, since grid.ListManager might be null.
13017         This of course begs the question "why are we drawing rows for a
13018         grid with no list manager (and therefor no rows)?"  Fixes the
13019         crash in bug #78929.
13020
13021 2006-07-31  Chris Toshok  <toshok@ximian.com>
13022
13023         * RelatedPropertyManager.cs: Don't always chain up to the parent
13024         ctor.  instead, call SetDataSource if the parent's position is !=
13025         -1.  Fixes the crash in #78822.
13026
13027 2006-07-31  Chris Toshok  <toshok@ximian.com>
13028
13029         * DataGrid.cs (get_ListManager): use field instead of property
13030         accessors for datasource and datamember.
13031         (RowsCount): make internal again.
13032         (OnMouseDown): end edits before resizing columns/rows.
13033         (OnMouseUp): restart edits after resizing columns/rows.
13034
13035 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
13036
13037         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
13038           This fixes the situation where the last set cursor is displayed
13039           whenever the mouse is over scrollbars.
13040
13041 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13042
13043         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
13044         Document properties, as well as initial values.
13045
13046 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
13047
13048         * XplatUIWin32.cs (SetBorderStyle): Setting both border
13049           and ClientEdge results in a 3-pixel border, which is
13050           wrong.
13051
13052 2006-07-28  Jackson Harper  <jackson@ximian.com>
13053
13054         * TreeNodeCollection.cs: Fix the clear method.
13055         - Fix the Shrink also
13056
13057 2006-07-27  Jackson Harper  <jackson@ximian.com>
13058
13059         * TreeView.cs: Make sure the visible order is computed when we
13060         attempt to size the scrollbars (for trees that mess with the
13061         scrolling when they shouldn't.
13062         - Make sure to give the scrollbars valid values.
13063
13064 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
13065
13066         * XplatUIX11.cs: Move motion compression code to where it
13067           has less performance impact
13068
13069 2006-07-26  Jackson Harper  <jackson@ximian.com>
13070
13071         * UpDownBase.cs: When the control is selected make the child
13072         controls non selectable, so that a click on them won't do a
13073         focus/unfocus cycle.
13074         - Don't give focus to the text box when the spinner is selected.
13075         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
13076
13077 2006-07-26  Chris Toshok  <toshok@ximian.com>
13078
13079         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
13080         satisfied with this solution.  If the bitmaps are small, we should
13081         just cache them in the PrintPreviewDialog and draw them here.
13082         Also, the layout is broken for the 2-up and 3-up cases.
13083
13084         * Theme.cs: add PrintPReviewControlPaint.
13085
13086         * PrintPreviewDialog.cs: first pass implementation.
13087
13088         * PrintPreviewControl.cs: first pass implementation.  No
13089         scrollbars yet.
13090
13091         * PrintDialog.cs: only validate fields if that particular portion
13092         of the UI is enabled.  Also, set the document's controller to a
13093         PrintControllerWithStatusDialog wrapping the document's print
13094         controller.
13095
13096         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
13097         bring up a SaveFileDialog (i hope we don't want to match the
13098         behavior of the crappy windows file entry) and set the
13099         PrinterSettings.PrintFileName accordingly.
13100
13101 2006-07-26  Jackson Harper  <jackson@ximian.com>
13102
13103         * ContainerControl.cs: Add a field that disables auto selecting
13104         the next control in a container when the container is activated.
13105         * UpDownBase.cs: Don't select the text box when the up down is
13106         selected.
13107
13108 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
13109
13110         * XEventQueue.cs: Added methods for peeking (used for compression
13111           of successive events)
13112         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
13113           mouse move events (fixes #78732)
13114
13115 2006-07-25  Jackson Harper  <jackson@ximian.com>
13116
13117         * UpDownBase.cs: Use an internal class for the textbox so that we
13118         can control focus.  the updown control should always have focus,
13119         if either the text area or the buttons are clicked.
13120         - Send the key messages to the textbox, since it never actually
13121         has focus
13122         - Activate and decativate the textbox caret.
13123
13124 2006-07-24  Jackson Harper  <jackson@ximian.com>
13125
13126         * Control.cs: Use the directed select when selecting a control,
13127         this way the container controls override will get called and the
13128         whole ActiveControl chain will get triggered.  TODO: probably need
13129         to make sure this gets done everywhere instead of the old
13130         Select(Control).
13131         * ContainerControl.cs: Implement the directed Select method to
13132         find and activate the correct child control.    
13133         
13134 2006-07-22  Mike Kestner  <mkestner@novell.com>
13135
13136         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
13137         menu handling code so that clicks without a grab work too.
13138         [Fixes #78914]
13139
13140 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
13141
13142         * FileDialog.cs: Enable the BackButton when dirstack has one element.
13143           Added some small optimizations.
13144
13145 2006-07-21  Matt Hargett  <matt@use.net>
13146
13147         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
13148
13149 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
13150
13151         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
13152           tests pass and match MS in some strange border cases.
13153
13154 2006-07-21  Chris Toshok  <toshok@ximian.com>
13155
13156         * ThemeWin32Classic.cs: handle drawing of the relation links and
13157         parent row buttons.
13158
13159         * Theme.cs: change args to DataGridPaintParentRow.
13160
13161         * DataGrid.cs: Don't use controls for the relation links and
13162         parent buttons, so we have to handle all their interactions in
13163         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
13164         when we're navigating through child tables, so we can reinstate
13165         selection, expanded state, current cell, etc.
13166
13167 2006-07-20  Chris Toshok  <toshok@ximian.com>
13168
13169         * ToolBar.cs: When we redraw a button, for whatever reason,
13170         there's no reason to redraw the entire toolbar.  Also, don't call
13171         Control.Refresh from within Redraw, as it's much heavier than
13172         Invalidate (which is really what we want).
13173
13174 2006-07-20  Chris Toshok  <toshok@ximian.com>
13175
13176         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
13177         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
13178         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
13179         traces from within a debug IBindingList datasource
13180         (in mono/winforms/datagrid) for *days*, I've finally gotten things
13181         to work in a similar fashion.
13182
13183 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13184
13185         * ListBox.cs: Don't call Sort () when setting 
13186         the Sorted property to false (avoid an unnecessary sort).
13187
13188 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13189
13190         * ListControl.cs: DataSource should throw an ArgumentException
13191         instead of a normal exception when the argument is not of the 
13192         correct type.
13193
13194 2006-07-20  Mike Kestner  <mkestner@novell.com>
13195
13196         * Control.cs: add InternalPreProcessMessage to allow us to steal
13197         key events before MWF gets its paws on them.  Adapted from a
13198         suggestion by eno.
13199         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
13200         up/down/left/right navigation. Override the new internal control
13201         method to steal the events since they never make it to WndProc.
13202         * ToolBarButton.cs: don't worry about pushed when setting hilight
13203         since the drawing code prefers pushed to hilight. Invalidate on 
13204         Hilight changes. Fixes #78547 and #78525.
13205
13206 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
13207
13208         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
13209           the canvas size. Fixes #78868
13210
13211 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
13212
13213         * Splitter.cs: Track requested split position until first layout
13214           is performed. Fixes #78871
13215
13216 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
13217
13218         * Application.cs: Removed code that forces 1.x for the version
13219           number if the version started with 0. Not sure why that code was
13220           there and I couldn't find any bugs that indicated we needed it.
13221           Fixes #78869
13222
13223 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
13224
13225         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
13226           ResetDefaults(), just write some output to the console until it's
13227           implemented. Fixes bug #78907 for now. Eliminated two warnings.
13228
13229 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
13230
13231         * PropertyGridView.cs: set StartPosition of drop down forms
13232         so they appear in correct initial spot.  Fixes #78190.
13233
13234 2006-07-19  Mike Kestner  <mkestner@novell.com>
13235
13236         * ThemeWin32Classic.cs: use parent background color when drawing
13237         flat toolbars.  Restructure the conditionals to make sure non-flat
13238         non-Divider toolbars are filled too.  Fixes #78837.
13239
13240 2006-07-19  Mike Kestner  <mkestner@novell.com>
13241
13242         * ListBox.cs: Sort on collection changes even if the handle
13243         isn't created yet.  Fixes #78813.
13244
13245 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13246
13247         * ListControl.cs: DisplayMember should never be null,
13248         and now we assign String.Empty when null is passed to it (this
13249         is the .Net way).
13250
13251 2006-07-17  Mike Kestner  <mkestner@novell.com>
13252
13253         * ListViewItem.cs: restructure Font and subitem Font handling 
13254         to hold a specific font and refer back to owner on null.
13255         Fixes #78761.
13256
13257 2006-07-17  Mike Kestner  <mkestner@novell.com>
13258
13259         * ToolBar.cs: bandaid for side-effect of previous patch which was
13260         discarding explicit heights for non-AutoSize toolbars.  Need to
13261         extend my format tester to deal with AutoSize=false. Fixes #78864.
13262
13263 2006-07-15  Jackson Harper  <jackson@ximian.com>
13264
13265         * LabelEditTextBox.cs:
13266         * TreeView.cs: Use a new LabelEdit class for node editing, this
13267         class automatically 'closes' itself when it gets the enter key or
13268         loses focus.
13269         - Use the client rectangle when setting the trees scrollbars, so
13270         border style is taken into account.
13271         
13272 2006-07-14  Jackson Harper  <jackson@ximian.com>
13273
13274         * TreeNode.cs:
13275         * TreeView.cs: Make the editing work similar to MSs, firing the
13276         events correctly and ending edits correctly.
13277
13278 2006-07-14  Mike Kestner  <mkestner@novell.com>
13279
13280         * ToolBarButton.cs:
13281         * ToolBar.cs: layout restructuring and redraw enhancements to support
13282         formatting changes gracefully, like setting TextAlign, ImageList, 
13283         ButtonSize, and Appearance.  Handles explicit button sizing quirks
13284         of the MS controls.  Things like flat toolbars ignoring button size
13285         but becoming constant sized at the largest button's size.  Normal
13286         toolbars with an image set cannot be shrunk smaller than the image,
13287         but text can be clipped/ignored.
13288         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
13289         is zero.  Seems like DrawString should be smart enough to not put
13290         anything on screen though. Also trim labels and ellipsize at the char
13291         boundary, not word.
13292         Fixes #78711 and #78483.
13293
13294 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
13295
13296         * FolderBrowserDialog.cs: Disable "New Folder" button and
13297           "New Folder" contextmenu menuitem if a folder like "My Computer"
13298           is selected.
13299
13300 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
13301
13302         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
13303         * FolderBrowserDialog.cs:
13304           - Use MWFConfig to store and read size and position settings
13305           - Added code to create a new folder (button or context menu).
13306             Use TreeView labeledit to change the name of the new folder.
13307
13308 2006-07-14  Jackson Harper  <jackson@ximian.com>
13309
13310         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
13311         when the tree is scrolled we end editing.
13312
13313 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
13314
13315         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
13316           Down arrows
13317
13318 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
13319
13320         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
13321         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
13322         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
13323         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
13324         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
13325         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
13326         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
13327         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
13328         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
13329         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
13330         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
13331         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
13332         ListViewItemSelectionChangedEventHandler.cs,
13333         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
13334         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
13335         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
13336         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
13337         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
13338         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
13339         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
13340         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
13341         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
13342         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
13343         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
13344         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
13345         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
13346         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
13347         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
13348         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
13349         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
13350         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
13351         WebBrowserNavigatingEventHandler.cs, 
13352         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
13353
13354 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
13355
13356         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
13357         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
13358         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
13359         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
13360         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
13361         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
13362         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
13363         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
13364         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
13365         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
13366         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
13367         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
13368         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
13369         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
13370         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
13371         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
13372         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
13373         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
13374         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
13375         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
13376         ListViewItemStates.cs, MaskFormat.cs: Added
13377
13378 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
13379
13380         * PropertyGridView.cs: Fix keyboard navigation of drop down.
13381         Patch from eno for bug 78558.
13382         
13383 2006-07-13  Jackson Harper  <jackson@ximian.com>
13384
13385         * TreeView.cs: When an edit is finished make sure that the
13386         selected node is visible.
13387         - When setting the top/bottom use the scrollbars is_visible, so
13388         everything will be set correctly even if the tree isn't visible
13389         yet.
13390
13391 2006-07-13  Jackson Harper  <jackson@ximian.com>
13392
13393         * ComboBox.cs: Revert the item->index part of my previous patch.
13394         * TreeView.cs: Use LostFocus instead of Leave for detecting when
13395         the edit box has lost focus (duh).
13396         - Just make the edit box not visible when we get return, that will
13397         take the focus, which will call EndEdit
13398         * TreeNode.cs When we start editing, notify the treeview.
13399
13400 2006-07-12  Jackson Harper  <jackson@ximian.com>
13401
13402         * ComboBox.cs: Clear out old items before setting the item list.
13403         This prevents databound controls from having their items added
13404         twice.
13405         - Switch the combobox to use indices whereever possible instead of
13406         using Item's.  This allows usto navigate through lists that have
13407         more then one item with the same string value (ie a, b, b, a).
13408         - Scroll the listboxes scrollbar when a non visible item is
13409         highlighted
13410         - Allow keypress to cycle through all the possible values. For
13411         example if you have b1, b2, b3 and hold down the B key all the
13412         values will be cycled through.
13413         
13414 2006-07-12  Jackson Harper  <jackson@ximian.com>
13415
13416         * TextBoxBase.cs:
13417         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
13418         this using the internal methods.
13419         * Control.cs: Add OnGotFocusInternal.  A new method that allows
13420         controls to "override" OnGotFocus and change focus behavior if
13421         needed.
13422         - Same thing for LostFocus
13423         * ComboBox.cs: Pass off focus to the text control properly.
13424
13425 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
13426
13427         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
13428         * FolderBrowserDialog.cs: Almost a complete rewrite.
13429           - Better support for Environment.Specialfolders
13430           - Added support for MWFVFS
13431           - Made setting SelectedPath work
13432
13433 2006-07-12  Jackson Harper  <jackson@ximian.com>
13434
13435         * Control.cs: Optimze getting all the controls.
13436
13437 2006-07-11  Jackson Harper  <jackson@ximian.com>
13438
13439         * ContainerControl.cs: Override SETFOCUS in the container control,
13440         so that it is not selected on mouse click.
13441
13442 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
13443
13444         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
13445           Hopefully we will have a better way once all of focus is complete.
13446
13447 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
13448
13449         * ThemeWin32Classic.cs: Commented out some debug code and fixed
13450           a compile error with csc.
13451
13452 2006-07-11  Jackson Harper  <jackson@ximian.com>
13453
13454         * Control.cs: When hiding a control only select the next control
13455         if the current control was focused.
13456         - Don't handle enter/leave when setting/killing focus, this is
13457         done by the container control.
13458         - Remove is_selected, it's not needed anymore.
13459         - Add utility methods for selecting a child control, and for
13460         firing the Enter/Leave events.
13461         * ContainerControl.cs: When a control is activated fire the
13462         enter/leave events.
13463         - Don't wrap when processing the tab key, so that focus can be
13464         moved outside of the container.
13465         - Use the correct active control
13466
13467 2006-07-11  Jackson Harper  <jackson@ximian.com>
13468
13469         * ComboBox.cs: Remove some debug code that was blinding me.
13470         * UpDownBase.cs: These controls actually aren't implicit, they are
13471         visible to the user.
13472
13473 2006-07-10  Chris Toshok  <toshok@ximian.com>
13474
13475         * DataGrid.cs: move back to the is_adding boolean field.  god i
13476         hate this is_editing/is_adding/is_changing stuff.
13477
13478 2006-07-10  Chris Toshok  <toshok@ximian.com>
13479
13480         * DataGridTableStyle.cs: just check if the property type is bool.
13481         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
13482         Don't use CanRenderType.
13483
13484         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
13485         if our text == NullText.  Remove CanRenderType.
13486
13487         * DataGridBoolColumn.cs: nuke CanRenderType.
13488
13489         * DataGrid.cs: reenable some code to end the current edit inside
13490         of set_CurrentCell.  This fixes the other 1.1.16 regression.
13491         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
13492         Also, remove the visible_row_count arg from CalcRowHeaders, since
13493         we don't need to worry about the actual height of the area.
13494
13495 2006-07-10  Chris Toshok  <toshok@ximian.com>
13496
13497         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
13498         mode, just return.
13499
13500         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
13501         the real sense of the IsInEditOrNavigateMode property (true =
13502         navigate, false = edit).  Also, update OnKeyPress to reflect this.
13503
13504         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
13505         column style exists, we still need to set its property descriptor
13506         to match up with our list manager.
13507
13508 2006-07-10  Chris Toshok  <toshok@ximian.com>
13509
13510         * ThemeWin32Classic.cs: implement the new row/header painting
13511         approach.  The parent row painting will likely go away and
13512         replaced with label controls, but the rest seems to work ok (and
13513         efficiently).
13514
13515         * Theme.cs: change the way we draw datagrid rows.  we don't draw
13516         the row headers as a block now.  Instead we draw them in the
13517         normal draw-row loop.  Add some calls for drawing parent rows and
13518         relation rows.
13519
13520         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
13521         a default table style.  Set the defaults from ThemeEngine.Current,
13522         not SystemColors.  Fix lots of misc issues with property setters.
13523
13524         * DataGrid.cs: move loads of style information out of this class
13525         as it's being duplicated with DataGridTableStyle.  keep track of a
13526         special DataGridTableStyle for the properties we used to mirror
13527         here.  Switch all the style properties to access this table style
13528         instead of instance fields of this class.  Also add a internal
13529         class to represent parent rows (more needs to be stored here, like
13530         the selection state from the parent table, as well as the
13531         expansion state.)  Also, for datasources with relations, do the
13532         right thing for collapse/expand, and add support for the
13533         navigation/parent row buttons.
13534
13535         Lastly, fix the crash in the 1.1.16 build.
13536
13537         * GridTableStylesCollection.cs: make the explicit interface
13538         implementations call the class's methods as opposed to duplicating
13539         them.
13540
13541         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
13542         0 so the text doesn't jump around when we move the cursor.
13543
13544 2006-07-10  Jackson Harper  <jackson@ximian.com>
13545
13546         * TextBoxBase.cs:
13547         * ListBox.cs: Match MS's ToString (this makes debugging focus
13548         stuff infinitely easier).
13549
13550 2006-07-10  Jackson Harper  <jackson@ximian.com>
13551
13552         * Control.cs (SelectNextControl): When checking the control's
13553         parent use this instead of ctrl.parent so that null can be passed
13554         to SelectNextControl. (I have unit tests for this).
13555         - Remove unused var.
13556
13557 2006-07-10  Chris Toshok  <toshok@ximian.com>
13558
13559         * CurrencyManager.cs: correct one regression, the removal of the
13560         finalType field.  Also, add a MonoTODO on CanAddRows, implement
13561         Refresh() correctly, and fix some event emission in
13562         ListChangedHandler.
13563
13564 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
13565
13566         * FileDialog.cs: Don't use brackets for new folders if they exist
13567           under *nix. Instead use -(number of existing folders +1).
13568
13569 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
13570
13571         * FileDialog.cs:
13572           - Fixed really nasty bug #78771
13573           - Don't block the whole GUI when reading directories with a lot of
13574             entries. Use an other thread instead and call BeginInvoke to
13575             update the ListView in MWFFileView
13576
13577 2006-07-07  Chris Toshok  <toshok@ximian.com>
13578
13579         * Control.cs (Dispose): release any Capture when disposing.
13580
13581 2006-07-07  Chris Toshok  <toshok@ximian.com>
13582
13583         * LinkLabel.cs (Select): if we chain up to the parent, set
13584         focused_index to -1 so we'll search for the first available link
13585         the next time the user tabs into us.  Also, if the direction is
13586         backward and focused_index == -1, start the search from the last
13587         element.
13588
13589 2006-07-07  Chris Toshok  <toshok@ximian.com>
13590
13591         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
13592         is beyond the end of the text, don't do anything.
13593         (CreateLinkPieces): set our ControlStyles.Selectable based on
13594         whether or not we have any links.
13595         (Link.Invalidate): use a loop instead of foreach.
13596         (Link.set_Start): null out owner.sorted_links so it'll be
13597         recreated by CreateLinkPieces.
13598
13599 2006-07-06  Chris Toshok  <toshok@ximian.com>
13600
13601         * LinkLabel.cs: revert the SetStyle change.
13602
13603 2006-07-06  Chris Toshok  <toshok@ximian.com>
13604
13605         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
13606         (OnEnableChanged): s/Refresh/Invalidate
13607         (OnGotFocus): if we have a focused index already, refocus it (so
13608         if we mouse out/in to the window it'll focus the right link).
13609         (OnKeyDown): move the tab handling out of here.
13610         (OnLostFocus): don't set focused_index to -1, so we can refocus it
13611         when we lose focus.
13612         (OnMouseDown): don't Capture here - Control handles it.  Also,
13613         focus the active link.
13614         (OnMouseUp): don't deal with Capture.
13615         (OnPaintBackgroundInternal): remove.
13616         (OnTextAlignChanged): CreateLinkPieces before calling the
13617         superclass's method.
13618         (OnTextChanged): call CreateLinkPieces before calling superclass's
13619         method.
13620         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
13621         move around.
13622         (Select): implement this, moving the selection between different
13623         links, and call parent.SelectNextControl if we don't have another
13624         link to focus in the given direction.
13625         (CreateLinkPieces): call Invalidate instead of Refresh.
13626         
13627 2006-07-06  Chris Toshok  <toshok@ximian.com>
13628
13629         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
13630         new LinkLabel internals.
13631
13632         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
13633         over pieces looking for active/focused/etc links.  also, deal with
13634         runs of text (and links) with embedded \n's in them, and use
13635         MeasureCharacterRanges instead of MeasureString to figure out the
13636         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
13637         two-step.
13638
13639 2006-07-04  Jackson Harper  <jackson@ximian.com>
13640
13641         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
13642         XKB or key auto repeat, do it manually.  Without key auto repeat,
13643         when a key is held down we get key press, key release, key press,
13644         key release, ... with auto repeat we get key press, key press, key
13645         press ..., and then a release when the key is actually released.
13646
13647 2006-07-03  Jackson Harper  <jackson@ximian.com>
13648
13649         * TabControl.cs:
13650         * ThemeWin32Classic.cs: Tabs do not obey normal background color
13651         rules, they are always control color regardless of the background
13652         color.
13653
13654 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
13655
13656         * FileDialog.cs: Added internal class MWFConfig.
13657           Removed Registry support and replaced it with support for the new
13658           MWFConfig class. See MWFConfig comments for more information.
13659
13660 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
13661
13662         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
13663           rectangle. Added some patches from eno from bug #78490 and fixed
13664           the arrow position for small up and down CPDrawScrollButtons.
13665
13666 2006-06-30  Jackson Harper  <jackson@ximian.com>
13667
13668         * InternalWindowManager.cs: Remove some debug code.
13669         * Form.cs: When an MdiParent is set to null, the window is
13670         "detatched" and becomes a normal window.
13671         * MdiClient.cs: Don't bring the new child form to the front until
13672         it is activated (setting it as active does this), this makes the
13673         previously active forms titlebar get redrawn as inactive.
13674
13675 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
13676
13677         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
13678           with later controls
13679
13680 2006-06-29  Mike Kestner  <mkestner@novell.com>
13681
13682         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
13683         arrow in keynav state.  Fixes #78682.
13684
13685 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
13686
13687         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
13688           order (fixes #78393)
13689
13690 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
13691
13692         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
13693           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
13694           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
13695           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
13696           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
13697           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
13698           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
13699           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
13700           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
13701           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
13702           enumerations (FlagsAttribute, SerializableAttribute, added/removed
13703           values)
13704
13705 2006-06-28  Mike Kestner  <mkestner@novell.com>
13706
13707         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
13708
13709 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
13710
13711         * PropertyGrid.cs,
13712           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
13713           item lines from other area (It also makes BackColor consistent and
13714           compatible with .NET). Fixed bug #78564.
13715
13716 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
13717
13718         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
13719         Patch from Eno for #78555.
13720
13721 2006-06-27  Chris Toshok  <toshok@ximian.com>
13722
13723         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
13724
13725         * DataGridColumnStyle.cs: same.
13726
13727         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
13728         
13729         * DataGridDrawingLogic.cs: nuke.
13730
13731 2006-06-27  Chris Toshok  <toshok@ximian.com>
13732
13733         * DataGridTableStyle.cs: clean up the constructors, and build the
13734         list of child relations for this table.  I have no idea if this is
13735         where we should be doing it (it probably isn't), but since we're
13736         already iterating over the properties..
13737
13738         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
13739         struct and array for keeping track of row information, similar to
13740         what's shown in a hack on
13741         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
13742
13743         * Theme.cs: be consistent about the naming of DataGrid methods,
13744         prefering ColumnWidths and RowHeights over columnsWidths and
13745         RowsHeights.
13746
13747         * ThemeWin32Classic.cs: same, and also add support for variable
13748         sized rows (and the +/- expansion icons for related rows).
13749
13750 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
13751
13752         * TextBoxBase.cs: Applied Eno's patch from #78660
13753
13754 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
13755
13756         * Form.cs (ScaleCore): We don't want to scale our form if it's
13757           state is minimized or maximized, but we still need to scale our
13758           child windows. Also, added try/finally block to ensure layout
13759           gets reset (Fixes #78697)
13760
13761 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
13762
13763         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
13764
13765 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
13766
13767         * Form.cs: Fixed c+p error and added check to resize form if minimum
13768           size is bigger than current size (Fixes #78709)
13769
13770 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
13771
13772         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
13773
13774 2006-06-26  Mike Kestner  <mkestner@novell.com>
13775
13776         * ComboBox.cs: only do Keypress handling in the combo when there  
13777         are items in the collection. Fixes #78710.
13778
13779 2006-06-26  Chris Toshok  <toshok@ximian.com>
13780
13781         * Binding.cs: make this work bi-directionally.  also, clear up
13782         other mixups between Push/Pull Data (e.g. we're supposed to pull
13783         data when validating).
13784
13785         * BindingManagerBase.cs: trim some fully qualified collection
13786         types.
13787
13788         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
13789
13790 2006-06-23  Chris Toshok  <toshok@ximian.com>
13791
13792         * PropertyManager.cs: It appears (according to the unit tests)
13793         that PropertyManager doesn't use
13794         PropertyDescriptor.AddValueChanged to track propery value changes
13795         in its datasource, but uses the same scheme as Binding, where it
13796         looks for a <Property>Changed event and binds to it.
13797
13798         Also, according to the docs, IsSuspended always returns false for
13799         a property manager with a non-null datasource.
13800
13801 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
13802
13803         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
13804           need to update the actual DialogResult. (Fixes #78613)
13805
13806 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
13807
13808         * Form.cs (ShowDialog): Release any captures before running the
13809           new message pump (fixes #78680)
13810
13811 2006-06-22  Mike Kestner  <mkestner@novell.com>
13812
13813         * ListView.cs: Layout column widths properly in details mode even 
13814         if HeaderStyle.None is set.  Fixes #78691.
13815
13816 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
13817
13818         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
13819
13820 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
13821
13822         * Control.cs (ContainsFocus): Using new driver method to get focused
13823           window, instead of trying to use internal tracking var, which can
13824           recursion issues (Fixes #78685)
13825         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13826           XplatUIWin32.cs: Added GetFocus method to return focused window
13827
13828 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13829
13830         * ColorDialog.cs: when the mouse button is pressed inside the color
13831         matrix, don't let the cursor move out of it until the button is
13832         released, which is the behavior on windows. Changed 'colours' by
13833         'colors' to use the same word consistently.
13834
13835 2006-06-21  Chris Toshok  <toshok@ximian.com>
13836
13837         * DataGrid.cs: add in some basic navigation stuff (navigating to a
13838         child relation and back, using a stack).  Also, remove
13839         GetDataSource and the code that calls it - it's not needed.  Also,
13840         track CurrencyManager.ListName's removal.
13841
13842 2006-06-21  Chris Toshok  <toshok@ximian.com>
13843
13844         * CurrencyManager.cs: push some of the original type checking from
13845         BindingContext.CreateBindingManager to here, and remove some of
13846         the finalType stuff.  Need more tests to make sure I've got the
13847         ListName part right, and we might need more in SetDataSource.
13848
13849         * PropertyManager.cs: add a ctor that takes just the datasource,
13850         and no property name.  Make SetDataSource work with a null
13851         property_name, and make Current return the data_source if the
13852         property descriptor is null.  this makes 'string foo = "hi";
13853         BindingContext[foo].Current' return "hi" as it should.
13854
13855         * RelatedCurrencyManager.cs: make this code more generic - there's
13856         no reason the parent manager has to be CurrencyManager, and
13857         there's no reason to pass the DataRelation.  It suffices to use a
13858         BindingManagerBase and PropetyDescriptor.
13859
13860         * RelatedPropertyManager.cs: make a similar change here.
13861         
13862         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
13863         flower I knew it could be.
13864
13865 2006-06-20  Chris Toshok  <toshok@ximian.com>
13866
13867         * PropertyManager.cs: the PropertyChangedHandler is invoked when
13868         data in the source has changed and we need to update the control,
13869         so s/PullData/PushData.
13870
13871         * CurrencyManager.cs: Refresh is meant to update the control from
13872         data in the datasource.  So, s/PullData/PushData.
13873
13874         * BindingContext.cs: add more ugliness (we weren't handling the
13875         case where data_source = DataTable and data_member = column_name).
13876
13877         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
13878         from the perspective of the datasource.  PullData pulls from the
13879         control, PushData pushes to the control.
13880
13881 2006-06-20  Chris Toshok  <toshok@ximian.com>
13882
13883         * BindingContext.cs: rewrite the CreateBindingManager code to
13884         handle navigation paths more or less properly.  This could
13885         definitely stand some more work, in particular to push the
13886         recursion up to the toplevel.  But that relies on fixes in other
13887         places (System.Data comes to mind).
13888
13889         Also, move to a flat hashtable (and encode the twolevel nature of
13890         the dictionary into the hash key).  This lets us implement the
13891         IEnumerable.GetEnumerator method.
13892
13893         * RelatedCurrencyManager.cs: new class.  Update our view based on
13894         our relation and our parent CurrencyManager's position.
13895
13896         * CurrencyManager.cs: split out some logic from the ctor into
13897         SetView, so it can be called from the new RelatedCurrencyManager
13898         subclass.
13899
13900         * RelatedPropertyManager.cs: new class.  Update our datasource
13901         based on the position of our parent CurrencyManager.
13902
13903         * PropertyManager.cs: split out some logic from the ctor into
13904         SetDataSource, so it can be called from the new RelatedDataSource
13905         subclass.  Also, make the Current getter return the value
13906         of the PropertyDescriptor, not the data_source.
13907
13908         * Binding.cs: no need to duplicate the string splitting code here.
13909
13910 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
13911
13912         * Control.cs:
13913           - set_Enabled: OnEnabledChanged is not called if the inherited state 
13914             of the control is not altered, even though  we might be changing the
13915             internal state of the control (#78458)
13916           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
13917             OnEnabledChanged, to allow easy altering of any child window state
13918           - OnEnabledChanged: Added code to enable/disable driver window state
13919           - OnParentEnabledChanged: Instead of firing the event, call 
13920             OnEnabledChanged, which will fire the event and also a) set driver
13921             window state and pass the enabled state to any grandchildren (#78458)
13922
13923 2006-06-19  Jackson Harper  <jackson@ximian.com>
13924
13925         * InternalWindowManager.cs: We don't set the cursor explicitly
13926         thats done via the response to NCHITTESTs.
13927         - Don't need to adjust for titlebar heights anymore, the
13928         coordinates are coming in the correct coordinates now (see peters
13929         last patch).
13930
13931
13932 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
13933
13934         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
13935           being translated relative to whole window, instead of client window.
13936           That caused broken offsets on mouseclick (and caused gas for our
13937           InternalWindowManager)
13938
13939 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
13940
13941         * TextControl.cs:
13942           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
13943           - Undo(): Added replay of cursor move on DeleteChars action; added
13944             calling Undo() again if a recorded cursor move is invalid (to
13945             ensure that some action is performed on Undo)
13946         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
13947
13948 2006-06-16  Jackson Harper  <jackson@ximian.com>
13949
13950         * MdiClient.cs: Instead of just sizing maximized windows when
13951         there is a resize we also have to adjust the Y of minimized
13952         windows, so they stay pinned to the bottom of the mdi container.
13953         - Eliminate separate tracking of the active control, we can just
13954         get this from the controls collection.
13955         - Paint the decorations for the newly activated titlebar so we get
13956         a pretty blue bar.
13957         * InternalWindowManager.cs:
13958         * ThemeWin32Classic.cs: Minimized windows get all three buttons
13959         even if they are a tool window.
13960         
13961 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
13962
13963         * TextControl.cs (Undo): Handle non-existent cursor locations in the
13964           undo buffer, these can happen when text was deleted and the cursor
13965           was recorded first. Since we will also have a recorded cursor
13966           after the delete this is not an issue. (Fixes #78651)
13967
13968 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
13969
13970         * AccessibleObject.cs: Remove dependence on Control.is_selected;
13971           instead properly track control states internally (allows us to
13972           remove is_selected from Control)
13973
13974 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13975
13976         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
13977         whose width is not a multiple of 8.
13978
13979 2006-06-13  Jackson Harper  <jackson@ximian.com>
13980
13981         * MdiClient.cs:  Only maximize the next child if the current one
13982         is maximized.
13983
13984 2006-06-13  Chris Toshok  <toshok@ximian.com>
13985
13986         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
13987         modified.  Also, guard against grid or grid_drawing being null in
13988         Invalidate.
13989
13990         * DataGrid.cs: Reformat tons of getters/setters.  In the
13991         DataMember setter, just call SetNewDataSource instead of
13992         duplicating some of its functionality.  In SetNewDataSource, don't
13993         check ListManager for null, since the property getter creates the
13994         object if needed.
13995
13996         * DataGridTableStyle.cs: don't set TableStyle or call
13997         SetDataGridInternal on the column here, it's done in
13998         GridColumnStylesCollection.Add.
13999
14000         * GridColumnStylesCollection.cs: fix all the explicit interface
14001         implementations to just call our methods.  Nuke AddInternal() and
14002         move the body of it to Add().  Also, add a call to
14003         column.SetDataGridInternal to Add().
14004
14005         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
14006         base()+duplicate code.  Also, use the Format property instead of
14007         format to generate an Invalidate ala MS.  Lastly, create the
14008         textbox here, unconditionally.
14009         (set_Format): call Invalidate.
14010         (get_TextBox): no need to call EnsureTextBox.
14011         (Commit): remove the message box.
14012         (Edit) remove the call to EnsureTextBox.
14013         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
14014         (EnterNullValue): no need to check textbox for null.
14015         (HideEditBox): no need to check textbox for null.
14016         (SetDataGridInColumn): add the textbox to the grid's controls.
14017         (EnsureTextBox): nuke.
14018         
14019 2006-06-13  Jackson Harper  <jackson@ximian.com>
14020
14021         * MdiWindowManager.cs: Hook up to the maximized menus paint event
14022         and redraw the buttons when needed. Unhook when the window is
14023         unmaximized.
14024         * MainMenu.cs: Add an internal Paint event, the mdi window manager
14025         needs this so that it can redraw its buttons when the menu is
14026         repainted.
14027         * InternalWindowManager.cs:
14028         * Form.cs: The method order has changed for DrawMaximizedButtons,
14029         so that it can be a PaintEventHandler.
14030         
14031 2006-06-13  Jackson Harper  <jackson@ximian.com>
14032
14033         * MdiClient.cs: When we close a maximized mdi window, the next mdi
14034         window is activated and maximized, even if it wasn't before.
14035         - When  a new window is activated repaint the decorations of the
14036         old one, so that it no longer has the Active "look" (the blue
14037         titlebar).
14038         * InternalWindowManager.cs: Open up CreateButtons to base classes
14039         so they can recreate the buttons on state changes.
14040         - If a window is maximized give it all three buttons
14041         * MdiWindowManager.cs: Create the titlebar buttons when the state
14042         is changed, this is needed because a toolwindow will not have all
14043         three buttons until it is maximized.
14044
14045 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
14046
14047         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
14048           Fixed bug #78609.
14049
14050 2006-06-12  Jackson Harper  <jackson@ximian.com>
14051
14052         * KeysConverter.cs: Make sure we handle the Ctrl special case
14053         if its the only key.
14054         
14055 2006-06-12  Jackson Harper  <jackson@ximian.com>
14056
14057         * Theme.cs: Add a method to get the size of a managed window
14058         toolbar button.
14059         * InternalWindowManager.cs: Remove the ButtonSize property, this
14060         should be retrieved from the theme.
14061         * MdiWindowManager.cs: Get the button size from the theme
14062         * ThemeWin32Classic.cs: Make the method to get the managed window
14063         titlebar button size public.
14064         - Handle the different button sizes of maximized toolwindows
14065         (should match any maximized window).
14066         - Get the titlebar height from the theme, not the WM (which gets
14067         it from the theme).
14068
14069 2006-06-12  Jackson Harper  <jackson@ximian.com>
14070
14071         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
14072         event down to the mdi window manager.
14073         - Expose some extra stuff to base classes
14074         - Make sure to end the Capture on an NC Mouse up, so that we can
14075         get double clicks properly, and the sizing doens't stick.
14076         - When doing PointToClient contain it in the workable desktop
14077         area, this prevents windows from changing size when the cursor is
14078         pulled outside of the working area while sizing.
14079         * MdiWindowManager.cs: When we get a double click maximize the
14080         window.
14081         - Reset the cursor after handling mode changes.
14082
14083 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
14084
14085         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
14086           current desktop, instead of just assuming a 0, 0 origin. This
14087           is needed for our internal window manager, to know the top
14088           margin of the desktop
14089
14090 2006-06-12  Chris Toshok  <toshok@ximian.com>
14091
14092         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
14093         we need this to get rid of the selected background in the bool
14094         column.
14095         (CancelEditing): move the ConcedeFocus call to above the Abort
14096         call.  Also, set is_changing to false and invalidate the row
14097         header if we were changing before.
14098         (ProcessKeyPreviewInternal): remove, since noone outside this
14099         class calls it anymore.  Roll the code into ProcessKeyPreview.
14100         (EndEdit): remove the internal version.
14101         (InvalidateCurrentRowHeader): make private.
14102
14103         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
14104         Keys.Escape handling (and with it the last call to
14105         DataGrid.EndEdit from outside the class.)
14106
14107
14108 2006-06-12  Chris Toshok  <toshok@ximian.com>
14109
14110         * DataGridTextBox.cs (.ctor): isedit defaults to false.
14111         (OnKeyPress): set isedit to true.
14112         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
14113         already handled by the grid.
14114
14115         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
14116         right.  ugh.
14117         (set_DataSource): SetDataSource always returns true, so stop
14118         putting it in an if statement.
14119         (EndEdit): get rid of some {}'s
14120         (ProcessGridKey): return true in case Keys.Escape.
14121         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
14122         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
14123         PositionChanged, stopped connecting to CurrentChanged.
14124         (GetDataSource): simplify this a bunch.
14125         (SetDataSource): change return type from bool to void.
14126         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
14127         to this, and make sure we don't set ListManager.Position inside
14128         set_CurrentCell.
14129         (OnListManagerItemChanged): if we're passed an actual index,
14130         redraw that row.
14131
14132         * CurrencyManager.cs (set_Position): don't call PullData here.
14133
14134 2006-06-09  Jackson Harper  <jackson@ximian.com>
14135
14136         * TreeNode.cs:  Recalculate the visible order before doing the
14137         Expand/Collapse Below calls, because those calls generate an
14138         expose.
14139         - Reduce calls to the TreeView property, which is mildly expensive
14140         by using a local var.
14141         * Form.cs: Layout the MDI child windows when creating the parent
14142         form.
14143         - Don't use the internal constructor anymore
14144         * MdiClient.cs: use the parent form width/height (if available)
14145         when laying out the child windows, we do this because the
14146         mdiclient isn't docked yet when the initial layout is done.
14147         - Don't need an internal constructor anymore.
14148
14149 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14150
14151         * FileDialog.cs: handle access errors when trying to create a folder
14152         or changing to a directory. No need to initialize out parameters.
14153
14154 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
14155
14156         * FileDialog.cs: Append a number when creating a new folder if the
14157           folder already exists (use parenthesis instead of square brackets)
14158
14159 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
14160
14161         * FileDialog.cs:
14162           - Disabled registry support for windows and added better registry
14163             error checking for other systems (need to investigate why it
14164             works perfectly on my system)
14165           - If a folder already exist show an error MessageBox instead of
14166             trying to create an indexed name.
14167           - Fixed a non intentional typo.
14168
14169 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14170
14171         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
14172
14173 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
14174
14175         * FileDialog.cs: When creating a new folder don't crash if the
14176           folder already exists.
14177
14178 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
14179
14180         * FileDialog.cs: Allmost a complete rewrite.
14181           - added a "virtual" file system that handles the differences
14182             between unix and windows file systems (especially the directory
14183             structure). Moved most of the directory and file handling code
14184             into the vfs.
14185             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
14186             UnixFileSystem and FSEntry.
14187           - Recently used folder/directory, size, location and used file names
14188             (file name ComboBox) are now stored in the registry and get read
14189             before the dialog shows up (fixes part 6 of bug #78446).
14190           - Creation of new folders/directories is now possible (context menu
14191             or ToolBar). Added TextEntryDialog for this that fills in the gap
14192             until ListView.LabelEdit works.
14193           - Fixed cursor handling (bug #78527) and focus handling for
14194             PopupButtonPanel
14195           - Various "Search in" ComboBox enhancements. The content of the
14196             dropdown listbox now almost matches ms.
14197           - Changed the behaviour when the user switches to SpecialFolder
14198             Recent to show the ListView in View.Details.
14199           - Beside using the ToolBar to change the View property of the
14200             file ListView it is now possible to use the context menu too.
14201
14202 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
14203
14204         * ComboBox.cs: Don't create a new ObjectCollection when an item
14205           gets inserted. Just insert the item in the existing object_items
14206           ArrayList.
14207
14208 2006-06-08  Jackson Harper  <jackson@ximian.com>
14209
14210         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
14211         that the treeview and root node checks are done also, this fixes a
14212         regression i caused in the unit tests.
14213
14214 2006-06-07  Wade Berrier <wberrier@novell.com> 
14215
14216         * RichTextBox.cs: More ISO8859-1 -> unicode
14217
14218 2006-06-07  Mike Kestner  <mkestner@novell.com>
14219
14220         * ComboBox.cs : use items to hold highlight/selection so that
14221         collection insertions don't require synchronization.
14222
14223 2006-06-07  Jackson Harper  <jackson@ximian.com>
14224
14225         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
14226         routine.  We now always keep the sized edge at the cursor instead
14227         of computing movement and adjusting rects.  There is one buglet
14228         with this method though when the cursor is moved over area that
14229         the window can not expand too (such as the toolbars on the desktop).
14230
14231 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14232
14233         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
14234         here. Fixes crash on startup in AlbumSurfer.
14235
14236 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
14237
14238         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
14239           values
14240
14241 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14242
14243         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
14244         statement to avoid calling XNextEvent which will block if another thread
14245         took the event that we were expecting. Fixes bug #78605.
14246
14247 2006-06-07  Mike Kestner  <mkestner@novell.com>
14248
14249         * ListView.cs : isolated checkbox clicking from the selection logic.
14250         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
14251
14252 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14253
14254         * Form.cs: Check that the value passed to Form.DialogResult
14255         is a valid enum value.
14256
14257 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14258
14259         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
14260         Computer'. Clicking it in the network view goes to 'My Computer'.
14261         Added CIFS filesystem type. Display the mount point of filesystems.
14262         Avoid duplicate mount points (happens for me with CIFS);
14263
14264 2006-06-06  Jackson Harper  <jackson@ximian.com>
14265
14266         * InternalWindowManager.cs: Draw the maximized windows buttons
14267         when resizing.
14268
14269 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14270
14271         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
14272         all other dialogs. Fixes bug #78585.
14273
14274 2006-06-06  Mike Kestner  <mkestner@novell.com>
14275
14276         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
14277         Only invalidate checkbox on checkstate changes to avoid flicker.
14278         * ListBox.cs : avoid unselect/select when clicking selected item.
14279         avoid reselection flicker for already multiselected items.
14280         Fixes #78382.
14281
14282 2006-06-06  Jackson Harper  <jackson@ximian.com>
14283
14284         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
14285         the parent form so that the menu is removed if needed.
14286
14287 2006-06-06  Mike Kestner  <mkestner@novell.com>
14288
14289         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
14290         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
14291
14292 2006-06-06  Mike Kestner  <mkestner@novell.com>
14293
14294         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
14295
14296
14297 2006-06-06  Jackson Harper  <jackson@ximian.com>
14298
14299         * Control.cs: Use the property (instead of the field) to get the
14300         default cursor so it is instantiated correctly.
14301         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
14302         resizes so we need to manually repaint the window decorations here.
14303         - Set the titlebar button locations as soon as they are created,
14304         otherwise they are not set correctly on win32.
14305         
14306 2006-06-06  Chris Toshok  <toshok@ximian.com>
14307
14308         * CurrencyManager.cs (set_Position): call PullData before
14309         OnCurrentChanged.
14310         (AddNew): after calling IBindingList.AddNew, update our
14311         listposition, and call OnCurrentChanged/OnPositionChanged (without
14312         calling PullData).
14313         (OnCurrentChanged): remove the call to PullData from here.
14314         (OnItemChanged): remove the call to PushData from here.
14315         (OnPositionChanged): change the test from == null to != null to
14316         match the other methods.
14317         (ListChangedHandler): the grossest part of the patch.  Implement
14318         this such that it passes the unit tests in CurrencyManagerTest and
14319         the output more or less matches that of MS's implementation.
14320  
14321 2006-06-06  Mike Kestner  <mkestner@novell.com>
14322
14323         * ListView.cs : only update check state on single click.
14324         * ThemeWin32Classic.cs : fix focus drawing for details view without
14325         fullrowselect.  Fixes #78454.
14326         * XplatUIX11.cs : fix for double click emission.
14327
14328 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
14329
14330         * PropertyGridView.cs : Applied Atsushi's patch to fix
14331         font dialog bug  (#78197).
14332
14333 2006-06-05  Jackson Harper  <jackson@ximian.com>
14334
14335         * TreeNode.cs: Compute the next node for expanding/collapsing
14336         correctly. We now factor in nodes without a NextNode
14337         correctly. (Fixes somes cases in nunit-gui).
14338         * InternalWindowManager.cs: Set the bounds when updating the
14339         virtual position of a tool window.
14340         
14341 2006-06-05  Chris Toshok  <toshok@ximian.com>
14342
14343         * DataGrid.cs: rename cached_currencymgr to list_manager.
14344         (set_CurrentCell): move SetCurrentCell code here, and clean it up
14345         some.
14346         (CurrentRow, CurrentColumn): single accessors so we can make the
14347         cursor movement code a lot easier to understand.
14348         (CurrentRowIndex): implement this in terms of CurrentRow.
14349         (BeginEdit): clean this up a bit.
14350         (CancelEditing): sort out the is_editing/is_changing/is_adding
14351         stuff a little.
14352         (EndEdit): minor changes.
14353         (OnKeyDown): add a comment about a (most likely) unnecessary
14354         check.
14355         (OnMouseDown): cancel editing when we click on a row header.  And
14356         use the CurrentRow setter, not CurrentCell.
14357         (ProcessDialogKey): directly call ProcessGridKey.
14358         (UpdateSelectionAfterCursorMove): factor out this common block of
14359         code (it's used everywhere that we move the cursor by updating row
14360         or column).
14361         (ProcessGridKey): pretty substantial overhaul.  Use the
14362         CurrentRow/CurrentColumn properties to make the code a lot more
14363         readable.  Only use the CurrentCell property when we have to
14364         modify both row and column at once.  Tab behavior is still broken,
14365         and Delete is untested.
14366         (Select): if we have no selected rows, set selection_start to
14367         @row.
14368         (EditCurrentCell): rename EditCell this.  It was only ever invoked
14369         with CurrentCell as the arg, so drop the arg and rename it.
14370
14371         * DataGridColumnStyle.cs: clean up the constructors a little, and
14372         drop CommonConstructor().
14373
14374         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
14375         actually get notified when the user hits it.
14376         (ProcessKeyMessage): *substantially* simplify this method.
14377         There's no reason (that I can see) for the textbox to be making
14378         calls into the datagrid at all.  Remove all of them but the ones
14379         for Enter handling.  those will take some more work.
14380
14381         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
14382         calling HideEditBox.
14383         (HideEditBox): if we have an active textbox, render it invisible
14384         without causing a re-layout of the datagrid.
14385
14386 2006-06-05  Mike Kestner  <mkestner@novell.com>
14387
14388         * ListView.cs : fix NRE crasher when focuseditem is cleared by
14389         collection changes by resetting it to Items[0].  Fixes #78587.
14390
14391 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14392
14393         * MessageBox.cs: if the height of the text is larger than the icon_size,
14394         use that. Fixes bug #78575.
14395
14396 2006-06-05  Jackson Harper  <jackson@ximian.com>
14397
14398         * TreeView.cs: Fix line drawing when scrolling.  To do this each
14399         node is basically responsible for drawing its entire horizontal
14400         area.  When drawing a node it draws its parent node lines if
14401         needed.
14402         - Adjust the clip area to the viewport rectangle
14403         - Fix Left/Right key handling to match MS. (It expand/collapses
14404         and moves to parents/first child but does not move selection to
14405         sibling nodes).
14406         - Fix SetTop to work with new bound calculation code
14407         - When scrollbars are no longer needed we need to reset scrolling
14408         vars and recalculate the visible order so the redraw is correct
14409         * TreeNode.cs: We can't expand/collapse nodes with no children.
14410
14411 2006-06-03  John Luke  <john.luke@gmail.com> 
14412
14413         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
14414         so the colors work without dev packages
14415         
14416 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
14417
14418         * Control.cs 
14419           - Select: Implemented to just use activate. Seems to match MS 
14420             behaviour closest. Documented to only do actual control walking 
14421             based on it's parameters if in a container control so I moved 
14422             the code there.
14423           - Removed selection check logic from our internal Select() method
14424         * ContainerControl.cs:
14425           - Select: Moved selection logic from Control here, since MS documents
14426             that containers obey the bool arguments. No longer calling base
14427
14428 2006-06-02  Jackson Harper  <jackson@ximian.com>
14429
14430         * TreeView.cs: If the selected node isn't changed when we get
14431         focus update the previously selected node so that we see the
14432         selection box.
14433
14434 2006-06-02  Mike Kestner  <mkestner@novell.com>
14435
14436         * ComboBox.cs: restructure grab and general mouse event handling.
14437         Make the composite control raise mouse events like it was a single
14438         control for leaves/enters/motion/up/down events.  fix dropdown list
14439         coordinate mangling and refactor it into the scrollbar subclass to
14440         reduce code duplication.  Fixes #78282 #78361 and #78457.
14441
14442 2006-06-02  Mike Kestner  <mkestner@novell.com>
14443
14444         * ScrollBar.cs: remove Capture setting/clearing, as it happens
14445         automatically in the Control.WndProc.
14446
14447 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14448
14449         * FileDialog.cs: fix crash when running SharpChess, which sets the
14450         FilterIndex to 2 with only one Filter.
14451
14452 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14453
14454         * ToolBar.cs: add SizeSpecified property.
14455         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
14456         try to figure out our real size, otherwise fallback to what the
14457         container says.
14458
14459 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
14460
14461         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
14462         * Control.cs (WndProc): MS always calls the DefWndProc to pass
14463           up the event
14464
14465 2006-06-01  Mike Kestner  <mkestner@novell.com>
14466
14467         * ListView.cs: revamp the focus management in ListView.  It still
14468         causes churn of LostFocus/GotFocus emissions on clicks, but it's
14469         better than not handling focus at all.  Will revisit when pdb feels
14470         the general focus handling is solid.  Fixes #78526.
14471
14472 2006-06-01  Jackson Harper  <jackson@ximian.com>
14473
14474         * TreeView.cs: Set the default border style in the constructor.
14475         - Move painting to use OnPaintInternal instead of capturing
14476         WM_PAINT, this is the correct way of doing things
14477         - UpdateBelow shouldn't invalidate the scrollbar area
14478         - Cap the top on update below in case the node was above the top
14479         of the viewport rectangle.
14480         - ExpandBelow and Collapse below need to obey Begin/End Update.
14481         * TreeNode.cs: Make is_expanded internal so the treenode
14482         collection can change it without firing the whole event chain.
14483         * TreeNodeCollection.cs: When clearing all the child nodes make
14484         sure to recalc the visible order.
14485         - Improve algo for remove the top node
14486
14487 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
14488
14489         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
14490           SendMessage directly calling window procedures, which in turn might
14491           call SetFocus()
14492
14493 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
14494
14495         * Control.cs: Don't handle WM_SETFOCUS if the same window already
14496           has focus (works around X11 sending a FocusIn after our SetFocus)
14497         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
14498
14499 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
14500
14501         * Mime.cs: Fix for the NET_2_0 build.
14502           NameValueCollection needs StringComparer now.
14503
14504 2006-05-31  Chris Toshok  <toshok@ximian.com>
14505
14506         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
14507         return (via an out parameter) the starting X of the column.
14508         (UpdateVisibleColumn): track change to FromPixelToColumn.
14509         (HitTest): add a ColumnResize case here.
14510         (DrawResizeLine): new function, probably poorly named.
14511
14512         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
14513         only need to keep one reference.
14514         (set_ListManager): same.
14515         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
14516         Also, add support for HitTestType.ColumnResize.
14517         (OnMouseMove): add column resize behavior here, and change the
14518         cursor to the correct one as we move around the datagrid.
14519         (OnMouseUp): terminate the column resize if we're resizing.
14520         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
14521         for the current cell.
14522         (ConnectListManagerEvents): use cached_currencymgr.
14523         (DisconnectListManagerEvents): fill this in, using
14524         cached_currencymgr.
14525         (SetCurrentCell): remove cached_currencymgr_events handling.
14526         (SetDataMember): only call DisconnectListManagerEvents if
14527         cached_currencymgr is != null.
14528         (SetDataSource): same.
14529         (OnListManagerCurrentChanged): cached_currencymgr_events ->
14530         cached_currencymgr.
14531
14532 2006-05-31  Jackson Harper  <jackson@ximian.com>
14533
14534         * BindingManagerBase.cs: Remove somedebug code that creeped into
14535         SVN.
14536         * TreeNode.cs: We get the indent level dynamically right now, so
14537         don't track it as a member.
14538         * TreeNodeCollection.cs: Make sure all nodes added to the list
14539         have parents, treeviews/topnodes setup properly.
14540         - Don't attempt to track indent level.
14541
14542 2006-05-30  Jackson Harper  <jackson@ximian.com>
14543
14544         * BindingContext.cs: Create the currency manager tables here.
14545         This allows us to more easily create null tables (when bad data
14546         members are used), and more easily create related currency
14547         managers.
14548         * CurrencyManager.cs: All the table creation stuff is done by the
14549         binding context now.
14550         - Current should throw an exception if listposition is -1.
14551         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
14552         been bound yet.
14553
14554 2006-05-30  Mike Kestner  <mkestner@novell.com>
14555
14556         * ListView.cs: allow reexpansion of zero-width column headers.
14557         Fixes #78528.
14558
14559 2006-05-28  Chris Toshok  <toshok@ximian.com>
14560
14561         * CurrencyManager.cs (get_Current): after the late binding
14562         listposition = -1 fix, we need to guard against it here and return
14563         null, otherwise we raise an exception (which is swallowed
14564         elsewhere, and breaks datagrid databinding.)
14565
14566 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
14567
14568         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
14569           than WM_SYSKEY, don't throw if get something unexpected (#78507)
14570
14571 2006-05-26  Jackson Harper  <jackson@ximian.com>
14572
14573         * ControlPaint.cs:
14574         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
14575         values, it's faster and it's all we care about (we don't care if
14576         the names aren't equal).
14577         * KeyboardLayouts.cs: Eliminate some dead code.
14578         - Lazy init things
14579         * X11Keyboard.cs: Lazy init keyboard detection.
14580         - Cleanup access modifiers a little.
14581
14582 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
14583
14584         * XplatUIX11.cs: Once again, attempting to get layout just right.
14585
14586 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
14587
14588         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
14589           the sizes of each link section, that will result in sizes that
14590           match DrawString's layout (Fixes #78391)
14591
14592 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
14593
14594         * FileDialog.cs: If AddExtension property is true autocomplete the
14595           extensions in SaveFileDialog correctly. Fixes bug #78453.
14596           Set MyNetwork and MyComputer to "C:\" for windows. This should
14597           fix part 8 of bug #78446 for now.
14598
14599 2006-05-26  Chris Toshok  <toshok@ximian.com>
14600
14601         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
14602         invalidate the current row header if we need to, but presumably
14603         we'll invalidate the row corrsponding to the bounds or
14604         editingControl.
14605         (GridHScrolled): switch back to this method, as it's part of the
14606         public api.  *sigh*.
14607         (GridVScrolled): same.
14608         (OnMouseWheel): hack up something that more or less works.  Call
14609         GridHScrolled/GridVScrolled directly, instead of duplicating much
14610         of their code here.
14611         (EnsureCellVisibility): reinstate a bunch of this code, since we
14612         can't just set the scrollbar Value and expect to do all the work
14613         in the ValueChanged handler.  Also, Call Update() after scrolling
14614         in one direction so the other XplatX11.ScrollWindow call has the
14615         proper stuff in the proper places.
14616         (EditCell): set is_editing to true before calling .Edit.
14617
14618         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
14619         don't bother comparing first.
14620         (OnKeyPress): call grid.ColumnStartedEditing before calling
14621         base.OnKeyPress.  this will set is_changing and invalidate the row
14622         header if necessary.
14623         (ProcessKeyMessage): for WM_CHAR messages, call
14624         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
14625         and WM_KEYDOWN.
14626         
14627         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
14628         it's done in the DataGrid.
14629         (NextState): call grid.ColumnStartedEditing, which takes care of
14630         invalidating the row header (and setting is_changing).
14631
14632         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
14633         here.  it's done in the DataGrid.
14634
14635 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14636
14637         * Control.cs: allow changing the cursor when the mouse position is
14638         out of bounds but Capture is set.
14639         * LinkLabel.cs: handle the case when the mouse button is pressed on the
14640         linklabel but released somewhere else.
14641
14642 2006-05-25  Jackson Harper  <jackson@ximian.com>
14643
14644         * TreeView.cs: When we get focus if there is no selected node make
14645         it the top node
14646         - Remove some uneeded setup code from Draw.
14647         * TreeNodeCollection.cs: If the tree doesn't have a top node when
14648         a new node is inserted make the new node the top.
14649         * XplatUIX11.cs:
14650         * Timer.cs: Use Utc time so that no local time zone stuff needs to
14651         be used (should be faster).
14652         
14653 2006-05-25  Chris Toshok  <toshok@ximian.com>
14654
14655         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
14656         problem with the last commit.
14657
14658 2006-05-25  Chris Toshok  <toshok@ximian.com>
14659
14660         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
14661         need the invalidate call here, while scrolling right-to-left via
14662         the left arrow key (i.e. moving the editing cell while scrolling).
14663
14664         * DataGrid.cs (.ctor): remove the initialization of
14665         ctrl_pressed/shift_pressed.  We no longer track them using key
14666         up/down handlers, but by using Control.ModifierKeys.  Also, switch
14667         to using ValueChanged handlers on the scrollbars instead of
14668         Scrolled event handlers.  This simplifies a bunch of the scrolling
14669         code.
14670         (GridHValueChanged): rename from GridHScrolled, and change it to
14671         work with the new event args.
14672         (GridVValueChanged): same.
14673         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
14674         (OnMouseWheel): actually scroll the datagrid.  Don't change the
14675         selected cell.
14676         (ProcessGridKey): correct all the keyboard navigation stuff I
14677         could find.  Ctrl up/down/left/right/home/end work now.
14678         (EnsureCellVisibility): correct method name spelling.  Also,
14679         simplify this a touch by not explicitly calling the
14680         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
14681         scrollbar value.
14682         (OnKeyUpDG): no need for this method now.
14683         
14684 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14685
14686         * LinkLabel.cs: display the OverrideCursor when hovering the label.
14687         Fixes bug #78392.
14688
14689 2006-05-25  Chris Toshok  <toshok@ximian.com>
14690
14691         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
14692         r61019.
14693
14694 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
14695
14696         * Application.cs: Moved setting of is_modal and closing to before
14697           we create the control, to allow the event handlers called as a
14698           result of creation affect closing. Also removed Gonzalo's previous
14699           change to setting DialogResult, the behaviour has been moved to 
14700           Form.ShowDialog()
14701         * Form.cs: 
14702           - ShowDialog(): Removed explicit creation of the form, let RunLoop
14703             handle it instead
14704           - ShowDialog(): If no dialog result is set, we need to return Cancel
14705           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
14706             the close is cancelled
14707
14708 2006-05-25  Jackson Harper  <jackson@ximian.com>
14709
14710         * StatusBar.cs: We only need to update the sizes of the other
14711         panels when we have auto size contents.  Also we are only updating
14712         the contents of the panel, not the borders, so compensate for the
14713         border width (TODO: get this width from the theme somehow).
14714         * TreeView.cs: Scrollable is true by default
14715         - Use invalidate instead of refresh where needed
14716         - Factor the scrollable value into scrollbar updating
14717         - Update the scrollbars if the Scrollable property is altered
14718         - Update the selected node if its ImageIndex is changed
14719         - Handle null nodes in UpdateNode (mainly so we don't have to
14720         check if selected is null when updating it
14721         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
14722         are factored into the visible count
14723         - Use VisibleCount for clarity in the code
14724         - When the font is changed we need to recurse through all the
14725         nodes and invalidate their sizes
14726         
14727 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14728
14729         * Application.cs: set the DialogResult to fixed when the main form is
14730         hidden or destroyed while being modal.
14731
14732 2006-05-25  Miguel de Icaza  <miguel@novell.com>
14733
14734         * Theme.cs: Use Tangoified messagebox icons. 
14735
14736         (GetSizedResourceImage): Also cope with width = 0 and do not
14737         trigger a warning in that case (0 means "give me your icon from
14738         the resouce, no special size needed).
14739
14740 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
14741
14742         * Application.cs: Leave runloop if the the main modal form is 
14743           hidden (fixes #78484)
14744
14745 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14746
14747         * BindingContext.cs : reject null datasource in Contains() and
14748           Item[].
14749         * CurrencyManager.cs : check data_member validity when data_source
14750           is dataset. When it is late binding, the initial position is -1.
14751
14752 2006-05-24  Jackson Harper  <jackson@ximian.com>
14753
14754         * TreeNodeCollection.cs: Dont't recalculate the visible order on
14755         inserted nodes that aren't visible.  This changes the
14756         max_visible_order which confuses scrollbar settings.
14757         - Use the enumerator to get the prev node instead of duplicating
14758         code.
14759         * TreeView.cs: Use new method for setting scrollbar values
14760         - Don't set the bounds every time the scrollbar is updated
14761         - When updating below the root node use an invalidate instead of a
14762         refresh to prevent the child controls (scrollbars) from being
14763         refreshed. (UpdateBelow still needs to be reworked anyways).
14764         - Reenable SetBottom now that visible orders are set correctly,
14765         added some debug code incase we ever get bad values there again.
14766         - Set the scrollbar max to 2 less then the max value, this
14767         compensates for the max value being one above the node count, and
14768         for scrollbars adding one extra "notch".
14769         - When drawing image nodes if there is an imagelist we draw the
14770         first image in the list if the supplied image index is out of the
14771         image list's bounds.
14772         
14773 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
14774
14775         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
14776           we receive a size change from the WM (Fixes #78503)
14777
14778 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
14779
14780         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
14781           rectangle (Fixes #78501)
14782
14783 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
14784
14785         * ButtonBase.cs: 
14786           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
14787             as a bitfield.
14788           - Fixed MouseMove to no longer switch pressed state unless the left
14789             mouse button is pressed. Atsushi provided the original patch (#78485)
14790           
14791 2006-05-24  Jackson Harper  <jackson@ximian.com>
14792
14793         * ScrollBar.cs: New internal methods that allow us to change a
14794         couple values on the scrollbar (the most common case is maximum
14795         and large change) without getting multiple invalidates.
14796
14797 2006-05-24  Chris Toshok  <toshok@ximian.com>
14798
14799         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
14800         (Edit): save off the original state in oldState, and set
14801         grid.is_editing to true.
14802         (OnKeyDown): abort editing if escape is pressed.  also, call
14803         NextState if space is pressed.
14804         (OnMouseDown): call NextState.
14805         (NextState): factor out shared code from OnKeyDown and OnMouseDown
14806         here.  Also, only invalidate the row header once (on the initial
14807         is_changing switch) to save on redraws.
14808
14809 2006-05-24  Chris Toshok  <toshok@ximian.com>
14810
14811         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
14812         if the value in the cell is different than it was before.  This
14813         keeps us from triggering a layout when we move around a datarid
14814         with a highlighted cell.
14815         (Edit): suspend layout when creating/positining the text box, and
14816         resume passing false so we don't ever actually re-layout.
14817         (ReleaseHostedControl): same.
14818         (EnsureTextBox): reformat slightly, and set WordWrap to false.
14819
14820         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
14821         control-key sequences should go to the datagrid - remove that
14822         lock.  Also, modify the conditions under which we move between
14823         cells when moving the cursor within a cell, and remove the "this"
14824         and "base" from field accesses.  We weren't even consistent, given
14825         they all were in the base class.
14826
14827 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
14828
14829         * Binding.cs : (.ctor)
14830           An obvious NRE fix for BindingTest.CtorNullTest().
14831
14832 2006-05-23  Chris Toshok  <toshok@ximian.com>
14833
14834         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
14835         them between lines.  This fixes some quirks editing cells in the
14836         datagrid.
14837
14838 2006-05-23  Jackson Harper  <jackson@ximian.com>
14839
14840         * TreeView.cs: Use begin/end update when doing expand/collapse all
14841         so that we don't get flicker on the scrollbar.
14842
14843 2006-05-23  Jackson Harper  <jackson@ximian.com>
14844
14845         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
14846         treenode calculations to be independant of the painting code. To
14847         do this nodes track a visible order which is calculated by the
14848         treeview.
14849         - Call new methods for expanding/collapsing nodes.  These methods
14850         use scrollwindow so we don't have to update everything below the
14851         node.
14852         * TreeView.cs: Refactored drawing and scrolling code.  We don't
14853         need to update nodes when drawing anymore or calculate scrollbar
14854         stuff.
14855         - Added new methods for expanding/collapsing nodes. These methods
14856         use ScrollWindow so as to not have to redraw all the nodes below.
14857         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
14858         we add/remove nodes or sort.
14859         - Handle removing the selected and the top node properly.
14860
14861 2006-05-23  Chris Toshok  <toshok@ximian.com>
14862
14863         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
14864         maybe this should actually happen in the datagrid code?
14865         (EndEdit): no need to invalidate anything, given that
14866         ReleaseHostedControl causes the datagrid to relayout, which
14867         invalidates everything anyway.
14868
14869         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
14870         in SetCurrentCell).
14871         (set_SelectionBackColor): call InvalidateSelection instead of
14872         Refresh.
14873         (set_SelectionForeColor): same.
14874         (BeginEdit): Flesh this out a bit.
14875         (CancelEditing): only do any of this if we're editing/adding.
14876         (EndEdit): same.
14877         (OnMouseDown): there's no need to cancel editing here, it's done
14878         in SetCurrentCell.
14879         (SetCurrentCell): only invalidate the current row header if it's a
14880         different row than the new one.
14881         (ShiftSelection): fix this to work like MS does.
14882         (ResetSelection): factor out the invalidation of selected_rows to
14883         InvalidateSelection.
14884         (SetDataSource): cancel any editing that's going on.
14885
14886         * DataGridColumnStyle.cs
14887         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
14888         call the non-interface version.
14889
14890         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
14891         header rectangle with the clip rectangle so we don't redraw the
14892         entire header for just a small area.  Gets rid of the last flicker
14893         when horizontally scrolling.
14894         (DataGridPaintRow): same.
14895
14896 2006-05-23  Mike Kestner  <mkestner@novell.com>
14897
14898         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
14899         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
14900         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
14901         Critical bug report.
14902
14903 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
14904
14905         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
14906           and this fixes #78493
14907
14908 2006-05-23  Miguel de Icaza  <miguel@novell.com>
14909
14910         * Theme.cs (GetSizedResourceImage): Scale images if the proper
14911         size is not found.  
14912         
14913         * FileDialog.cs: Do not change the background for the side bar as
14914         it wont work nicely with the theme, and also reduces the artifacts
14915         in rendering the icons (which I want to fix too).
14916
14917         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
14918         resources, not resgen resources. 
14919
14920         (PlatformDefaultHandler): Pull images using the new API.
14921
14922 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
14923
14924         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
14925           a reference to the hwnd and will not remove it unless there are
14926           no pending exposures (fixes #78341)
14927         * XplatUI.cs: Improved debug
14928
14929 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
14930
14931         * MenuAPI.cs : don't handle OnClick event when it was not the left
14932           button. Fixed bug #78487.
14933
14934 2006-05-23  Mike Kestner  <mkestner@novell.com>
14935
14936         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
14937         prefer submenus to the top menu for item lookup, to avoid popping down
14938         top-row items.
14939
14940 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
14941
14942         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
14943           Graphics.FillRectangle as the visual results are really bad (even
14944           on win). We now draw perfect arrows (and perfect shadows when the
14945           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
14946           Pen.DashPattern to draw the dots of each line.
14947
14948 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
14949
14950         * FileDialog.cs: Update the filename combobox when navigating through
14951           the ListView with the cursor keys. Fixes part 7 of bug #78446.
14952
14953 2006-05-22  Mike Kestner  <mkestner@novell.com>
14954
14955         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
14956         Fixes #78463.
14957
14958 2006-05-22  Mike Kestner  <mkestner@novell.com>
14959
14960         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
14961         requests. Fix a misspelled parameter and a copy paste exception error
14962         in Select.
14963
14964 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
14965
14966         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
14967           to get the same width/height (5/13) on X11 as the default font has on
14968           win32. This means that our DefaultFont emSize is smaller than the 
14969           the MS SWF equivalent (even thought the width/height stays the same)
14970
14971 2006-05-20  Jackson Harper  <jackson@ximian.com>
14972
14973         * MdiClient.cs:
14974         * MdiWindowManager.cs:
14975         * InternalWindowManager.cs: Make sure to use the border width from
14976         the theme.
14977
14978 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
14979
14980         * PrintDialog.cs: Implements printer details
14981
14982 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
14983
14984         * FileDialog.cs: Added focus handling for PopupButtonPanel.
14985           Fixes part 1 and 2 of bug #78446
14986
14987 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
14988
14989         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
14990           instead of sticking to the first ever calculated value
14991
14992 2006-05-19  Mike Kestner  <mkestner@novell.com>
14993
14994         * ComboBox.cs: fix mouse motion selection to use MousePosition and
14995         PointToClient, since Capture is set. Fixes #78344.
14996
14997 2006-05-19  Mike Kestner  <mkestner@novell.com>
14998
14999         * ListView.cs: match MS behavior in Details view where items are not
15000         drawn if Columns.Count == 0. 
15001         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
15002         Use a separate pen to draw the check, since changing the width affects
15003         the box as well.  Fixes #78454.
15004
15005 2006-05-18  Miguel de Icaza  <miguel@novell.com>
15006
15007         * ListView.cs: ArgumentOutOfRangeException, single versions of the
15008         exception should throw the name of the invalid argument.
15009
15010         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
15011         there are no files listed. 
15012
15013 2006-05-18  Jackson Harper  <jackson@ximian.com>
15014
15015         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
15016         up.
15017
15018 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
15019
15020         * Control.cs: Brought back our old UpdateZOrder method as a private
15021           function and switched our calls from UpdateZOrder to the new one.
15022           This fixes the Paint.Net canvas disappearing bug.
15023
15024 2006-05-18  Jackson Harper  <jackson@ximian.com>
15025
15026         * Theme.cs:
15027         * ThemeWin32Classic.cs:
15028         * InternalWindowManager.cs: Move the drawing into the theme,
15029         expose everything the theme should need from the window manager.
15030
15031 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
15032
15033         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
15034           from the call to NativeWindow to avoid walking up the parent chain
15035           further than needed (speeds up setting cursors and avoids setting
15036           the wrong cursor if a parent has another cursor defined)
15037         * Cursor.cs: When loading an icon as cursor, MS uses the center of
15038           the icon as hotspot, not what's contained as hotspot in the icon
15039           file. This fixes the perceived drawing offset seen with Paint.Net
15040         
15041 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
15042
15043         * XplatUIX11.cs: 
15044           - Store the calculated rectangle in Hwnd object and use it when 
15045             setting the client size
15046           - Force Toolwindows to always be type Dock, to ensure they're on top
15047
15048 2006-05-18  Mike Kestner  <mkestner@novell.com>
15049
15050         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
15051         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
15052         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
15053         Substantial refactoring to remove confusing nested classes. Coding
15054         standard and Get+Set->property refactorings.  Shift to index based
15055         highlighting in ComboListBox instead of constantly using IndexOf and
15056         Items[]. Add invalidations on resize for DropDownList to fix ugliness
15057         in FileDialog growth.  Draw borders manually since Simple mode needs
15058         to look like two independent controls.  Make listbox border
15059         conditional to DropDownStyle.  Improved OwnerDraw support.
15060
15061 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
15062
15063         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
15064         Don't set the disposed graphics to null, so we can throw the "right"
15065         exception if the graphics is reused later (added a flag to avoid 
15066         double disposing). Some behaviours are different under 2.0 and are
15067         filled under bug #78448.
15068
15069 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
15070
15071         * Control.cs: When double-buffering is enabled, we need to reset
15072           our graphics context between paint calls. Otherwise, any 
15073           transformations and other alterations on the context will 
15074           become cumulative (#77734)
15075
15076 2006-05-18  Mike Kestner  <mkestner@novell.com>
15077
15078         * ListView.cs: do focused item selection like MS on clicks. 
15079         Rework focus handling for ItemControl so LostFocus invalidates as
15080         well.
15081         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
15082         the ListView ItemControl has focus.
15083
15084 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
15085
15086         * XplatUIX11.cs: If client_window ends up being width or height zero
15087           due to border settings, move it off window inside whole_window (#78433)
15088
15089 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
15090
15091         * Mime.cs: Shrink the mime file cache correctly.
15092
15093 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
15094
15095         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
15096
15097 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
15098
15099         * XplatUIX11.cs (AddExpose): More sanity checks
15100
15101 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
15102
15103         * XplatUIX11.cs:
15104           - AddExpose: Don't add expose ranges outside the size of our
15105             window
15106           - Cast opacity values to Int32 to avoid crashes with certain
15107             values
15108           - Added disabled code paths that protect against illegal cross-
15109             thread painting (Developers.exe)
15110
15111 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
15112
15113         * ProgressBar.cs: Invalidate the control when it's resized
15114           since block size is based on control size. (#78388)
15115
15116 2006-05-16  Miguel de Icaza  <miguel@novell.com>
15117
15118         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
15119         of setting the incoming argument to the "reset" value, we set the
15120         this.datamember to string.empty (before we were invalidating the
15121         incoming data).   
15122
15123         Fixes 78420
15124
15125 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
15126
15127         * Form.cs: Only apply transparency settings after the form
15128           is created. (Fixes #77800)
15129
15130 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
15131
15132         * ApplicationContext.cs: Grab the HandleDestroyed event so
15133           we know when to fire OnMainFormClosed 
15134
15135 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
15136
15137         * Application.cs: Introduced sub-class to allow tracking of
15138           threads and centralized triggering of the event mess for
15139           ThreadExit, AppExit, etc..  (#76156)
15140
15141 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
15142
15143         * MimeIcon.cs:
15144           - Do not return a null icon index value for a mime subclass.
15145             Instead try the main mime type class too.
15146           - Seems that some newer distributions don't have a link to some
15147             gnome default icons anymore. So check the default gnome dir too.
15148           
15149
15150 2006-05-16  Jackson Harper  <jackson@ximian.com>
15151
15152         * MdiClient.cs: Don't paint the parent background image if we have
15153         our own background image.
15154
15155 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
15156
15157         * Control.cs:
15158           - PerformLayout: Do not shrink space filled by DockStyle.Fill
15159             controls, all filled controls are supposed to overlap (#78080)
15160           - UpdateZOrder is supposed to update the control's z-order in the
15161             parent's z-order chain. Fixed to behave like that
15162           - BringToFront: Removed obsolete code
15163           - SendToBack: Simplyfied
15164           - SetChildIndex: Trigger layout calculations when Z-order changes
15165             since layout is done by z-order
15166
15167 2006-05-16  Chris Toshok  <toshok@ximian.com>
15168
15169         [ fixes bug #78410 ]
15170         * DataGrid.cs (set_AlternatingBackColor): use
15171         grid_drawing.InvalidateCells instead of Refresh().
15172         (set_BackColor): call grid_drawing.InvalidateCells.
15173         (set_BackgroundColor): use Invalidate instead of Refresh.
15174
15175         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
15176         invalidate the cell area.
15177
15178 2006-05-15  Chris Toshok  <toshok@ximian.com>
15179
15180         [ fixes bug #78011 ]
15181         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
15182         on to DataGridPaintRow.
15183         (DataGridPaintRow): take a clip argument, and only draw the cells
15184         which intersect it.  same with the not_usedarea.
15185
15186         * Theme.cs (DataGridPaintRow) add @clip parameter.
15187
15188         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
15189         XplatUI.ScrollWindow.
15190         (ScrollToRow): same.
15191
15192         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
15193         with last column which was causing a gray swath to appear with the
15194         XplatUI.ScrollWindow code.
15195
15196 2006-05-15  Chris Toshok  <toshok@ximian.com>
15197
15198         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
15199         use XplatUI.ScrollWindow.
15200         (VerticalScrollEvent): use XplatUI.ScrollWindow.
15201
15202 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
15203
15204         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
15205
15206 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
15207
15208         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
15209           file since there are no equivalent X11 cursors
15210
15211 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
15212
15213         * MonthCalendar.cs : DateTimePicker should reflect selected date
15214           on mouse*up*, not mouse*down*. Fixed originally reported part of
15215           bug #76474.
15216
15217 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
15218
15219         * TabControl.cs : When argument index is equal or more than tab
15220           count, just ignore. Fixed bug #78395.
15221
15222 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
15223
15224         * Control.cs: Dispose all child controls when control is diposed (#78394)
15225
15226 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
15227
15228         * ColorDialog.cs: Finally it is possible to select the color with
15229           the text boxes
15230
15231 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
15232
15233         * PrintDialog.cs: Fix typo
15234
15235 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
15236
15237         * PrintDialog.cs: PrintDialog is not resizable
15238         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
15239           color. Made some ToolBar drawing methods protected virtual.
15240
15241 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
15242
15243         * PrintDialog.cs: Implementation of the PrintDialog
15244
15245 2006-05-12  Chris Toshok  <toshok@ximian.com>
15246
15247         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
15248         thumb, instead use MoveThumb.  This has the side effect of making
15249         most of the other thumb moving machinery use MoveThumb as well.
15250         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
15251         need to actually invalidate the rectangle where the new thumb will
15252         go.
15253         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
15254         We force an Update() after, so it's not as fast as it could be,
15255         but at least there's zero flicker and no droppings.
15256         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
15257         (UpdateThumbPos): add another argument (dirty), which says whether
15258         or not to calculate/add dirty regions which we later invalidate.
15259         For cases where we know we're going to use MoveThumb, we pass
15260         false for this.  Otherwise, pass true.
15261
15262 2006-05-12  Jackson Harper  <jackson@ximian.com>
15263
15264         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
15265         the status bar.
15266         
15267 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
15268
15269         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
15270           and GetClipRegion methods and UserClipWontExposeParent property.
15271         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
15272           overriding UserClipWontExposeParent property, setting to false, since
15273           Win32 handles the required expose messages to draw our clipped parent
15274           areas internally
15275         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
15276           PaintEventStart to set the user clip region if set.
15277         * Control.cs: 
15278           - Now internally tracking the Region for the control since we need to
15279             store it if the handle is not yet created and only set it when it
15280             becomes created. Before setting the region forced handle creation
15281           - Added code to draw the parents underneath a user-clipped region
15282         * Hwnd.cs: Added UserClip property
15283
15284 2006-05-12  Chris Toshok  <toshok@ximian.com>
15285
15286         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
15287         (set_Maximum): same.
15288         (set_Minimum): same.
15289         (set_SmallChange): same.
15290         (OnMouseUpSB): remove the call to refresh when releasing the
15291         thumb.  We shouldn't need it.
15292         
15293 2006-05-12  Miguel de Icaza  <miguel@novell.com>
15294
15295         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
15296         AutoSize set to None, we do not need to relayout everything, we
15297         just need to invalidate the current region.
15298
15299         (Draw): Do not draw the entire ClientArea, just redraw the
15300         clip area being passed.
15301
15302         * MdiClient.cs: Make MdiClient constructor with the Form argument
15303         internal. 
15304
15305 2006-05-12  Jackson Harper  <jackson@ximian.com>
15306
15307         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
15308         parents background image,  but strangely not their own.
15309         - (DrawStatusBarPanel): Take into account horizontal alignment
15310         when drawing the strings and icons.
15311
15312 2006-05-12  Mike Kestner  <mkestner@novell.com>
15313
15314         * ListBox.cs: avoid invalidations for focus when the collection is
15315         empty. 
15316
15317 2006-05-12  Chris Toshok  <toshok@ximian.com>
15318
15319         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
15320         invalidate the entire thumb area.  Call InvalidateDirty which
15321         limits the redraw to the thumb itself and surrounding pixels.
15322
15323         * XplatUIX11.cs (ScrollWindow): optimize copying.
15324         
15325 2006-05-12  Chris Toshok  <toshok@ximian.com>
15326
15327         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
15328         Figure out the positioning/layout in a single pass instead of
15329         multiple recursive invocations.  Speeds up the initial display of
15330         the data grid.  Also, make many things private that were
15331         originally public but unused outside this class.
15332
15333 2006-05-11  Jackson Harper  <jackson@ximian.com>
15334
15335         * MdiClient.cs: Improved layout code.
15336
15337 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
15338
15339         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
15340           not SelectedObject.
15341
15342 2006-05-11  Chris Toshok  <toshok@ximian.com>
15343
15344         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
15345         union of that will always be {0,0,width,height}.
15346
15347 2006-05-11  Jackson Harper  <jackson@ximian.com>
15348
15349         * Form.cs: Match MS's DefaultSize for forms (they must have
15350         changed the size in sp2).
15351
15352 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
15353
15354         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
15355
15356 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
15357
15358         * TextControl.cs : Fixed bug #78109. This incorrect position
15359           comparison caused crash on automatic line split.
15360         * TextBoxBase.cs : reduce duplicate code.
15361
15362 2006-05-10  Jackson Harper  <jackson@ximian.com>
15363
15364         * MdiClient.cs: Active form is only sent to the back when using
15365         the Next form functionality, when a form is clicked the current
15366         active shouldn't be sent to the back.
15367         - Layout the mdi windows when the container is first made visible.
15368         * Form.cs: Give the MdiClient a ref to the containing form when we
15369         create it.
15370         
15371 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
15372
15373         * LinkLabel.cs : link_font could be uninitialized, so populate one
15374           before actual use. Fixed bug #78340.
15375
15376 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
15377
15378         * XplatUIX11.cs : clipboard format native value is IntPtr.
15379           Fixed bug #78283.
15380
15381 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
15382
15383         * Control.cs: 
15384           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
15385             which is passed up the parent chain by DefWndProc
15386           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
15387             to DefWndProc (#77956)
15388         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
15389
15390 2006-05-10  Jackson Harper  <jackson@ximian.com>
15391
15392         * MdiClient.cs: We need to remove the controls from the mdi
15393         collection, when we close the window.
15394         * MdiWindowManager.cs: Special handling of closing mdi windows.
15395         * InternalWindowManager.cs: Make the close method virtual so the
15396         mdi window manager can handle it specially.
15397
15398 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
15399
15400         * DataGrid.cs:
15401           - Recalculate grid when the data source has changed
15402           - Matches styles provided by user from all data sources types
15403         * DataGridTableStyle.cs: For columns that provided by the user set the
15404         with the preferred value is there was unassigned.
15405         * CurrencyManager.cs: throw OnItemChanged event
15406
15407 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
15408
15409         * PictureBox.cs: Don't animate until handle is created. Start animation
15410           when handle is created.
15411
15412 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
15413
15414         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
15415           current codebase.
15416         * XEventQueue.cs: We don't need to provide the extra info
15417
15418 2006-05-10  Jackson Harper  <jackson@ximian.com>
15419
15420         * MdiClient.cs: If the mdi clients parent form has a background
15421         image set, we draw that background image for the mdi area's
15422         background.
15423
15424 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
15425
15426         * TextBoxBase.cs: Set IBeam cursor (#78347)
15427
15428 2006-05-10  Mike Kestner  <mkestner@novell.com>
15429
15430         * ToolBar.cs: fix some text padding issues with ButtonSize
15431         calculation. Update the default size to match MS documentation.
15432         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
15433         button size. Fixes #78296.
15434
15435 2006-05-10  Mike Kestner  <mkestner@novell.com>
15436
15437         * ListBox.cs: use is_visible for scrollbar positioning in case the
15438         control isn't on screen yet.  Fix off by one with Right vs Width
15439         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
15440         
15441 2006-05-10  Jackson Harper  <jackson@ximian.com>
15442
15443         * X11Dnd.cs: Drop to a control with another control on top of it.
15444         * ToolBar.cs: Work on a copy of the buttons list, so that it can
15445         be modified in click handlers. TODO: Look for similar problems in
15446         other controls.
15447
15448 2006-05-09  Jackson Harper  <jackson@ximian.com>
15449
15450         * Form.cs: Window managers need the old window state when setting
15451         window state now.
15452         * InternalWindowManager.cs: Allow the base mdi window manager to
15453         handle more of the MDI only stuff (like maximize buttons).
15454         * MdiWindowManager.cs: Fix some snafus in changing the window
15455         state.  Add all the menu functionality, for both popup and
15456         maximized menus.
15457         * MdiClient.cs: When a new form is selected the currently
15458         activated form is sent to the back, this matches MS.
15459         - Implement a new method to activate the next mdi child window.
15460
15461 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
15462
15463         * Control.cs: 
15464           - Added new InternalCapture method to allow controls to prevent
15465             the capture behaviour on the click handlers
15466           - Switched to use InternalCapture
15467         * ComboBox.cs:
15468           - Using InternalCapture to prevent mouse captures from being released
15469             on mouse button release (Fixes #78100)
15470         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
15471           returns Form borders if a caption is present. (Fixes #78310)
15472
15473 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
15474
15475         * TreeNode.cs: Changed serialization .ctor to not require every field
15476           to be present. (#78265)
15477         * OwnerDrawPropertyBag.cs: Added serialization .ctor
15478
15479 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
15480
15481         * MimeIcon.cs: for is faster than foreach for strings.
15482
15483 2006-05-05  Mike Kestner  <mkestner@novell.com>
15484
15485         * CheckedListBox.cs: update check handling code to not use selected.
15486         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
15487         behavior for visual feedback, motion response, shift/ctrl handling,
15488         and properly deal with all 4 selection modes. Updates to bounds
15489         handling logic.  Add scroll wheel support. [Fixes #77842]
15490
15491 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
15492
15493         * ListView.cs:
15494           - Moved adding of Implicit controls into .ctor. That way, subsequent
15495             creation of the controls will not cause them to think they are 
15496             toplevel windows (fixes #78200 header problem)
15497           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
15498           - Switched visibility setting of header control to use internal field
15499             to avoid triggering handle creation
15500           - Now checking if handle is created before causing a refresh when items
15501             are added (This makes us now match handle creation time with MS)
15502         * Splitter.cs: Removed loading of private splitter cursor, switched to
15503           Cursors version now that that is loading the right ones
15504         * Cursors.cs: Load proper splitter cursors from resources
15505         * Cursor.cs: Added second method of loading resource cursors for the 
15506           VS.Net users amongst us
15507
15508 2006-05-05  Mike Kestner  <mkestner@novell.com>
15509
15510         * ListView.cs: give header_control a minimum size based on the
15511         ListView size.
15512
15513 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
15514
15515         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
15516           window seems to do that with metacity, so set that type. (#78120)
15517
15518 2006-05-05  Mike Kestner  <mkestner@novell.com>
15519
15520         * ListViewItem.cs: fix Details mode checkbox layout bug.
15521         * ThemeWin32Classic.cs: draw a ListView column header for unused space
15522         at the end of the header, if it exists. [Fixes for #78200]
15523
15524 2006-05-04  Jackson Harper  <jackson@ximian.com>
15525
15526         * MdiClient.cs: Add a helper property to get the container form.
15527         * MdiWindowManager.cs: We have to make sure to use the menu origin
15528         when drawing the icons and buttons, this fixes maximized window
15529         icons/buttons on win32.
15530         * InternalWindowManager.cs: Reset the restore captions when a
15531         window goes from Maximized to Minimized and vice versa. Move the
15532         DrawMaximizedButtons into the MdiWindowManager source, tool
15533         windows can't be maximized. NOTE: This could use a little
15534         refactoring if time ever permits.
15535         
15536 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
15537
15538         * TextBox.cs: Add MWFCategoryAttributes
15539         * TextBoxBase.cs: Add MWFCategoryAttributes
15540         * Form.cs: Add MWFCategoryAttributes
15541
15542 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
15543
15544         * Control.cs: Add MWFCategoryAttributes
15545         * ScrollableControl.cs: Add MWFCategoryAttributes
15546
15547 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
15548
15549         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
15550           Divider is true. Fix a little glitch in PropertyToolBar
15551           drawing code
15552
15553 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
15554
15555         * Control.cs:
15556           - Dispose: Call base.Dispose, this causes the disposed event
15557             to be fired (and probably other, more important stuff)
15558           - SetVisibleCore: Set is_visible to true after creating the
15559             window so that the window still gets created invisible (if
15560             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
15561             to generate a WM_ACTIVE message
15562         * Form.cs: Call Dispose when we want to destroy the window, instead of
15563           just destroying the handle (Dispose will do that for us)
15564         * XplatUIX11.cs:
15565           - RootWindow also needs a queue, so we can properly process the
15566             property change events from RootWindow (like Activate)
15567           - Generatic synthetic WM_ACTIVE message when the active window is
15568             being destroyed
15569
15570 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
15571
15572         * LinkLabel.cs: Trigger a recalc of our label dimensions when
15573           bounds are changed
15574
15575 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
15576
15577         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
15578           for determining width and height (image might not be assigned if
15579           we're drawing an imagelist)
15580
15581 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
15582
15583         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
15584         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
15585           height from system
15586         * Theme.cs: No longer returns hardcoded menu height, instead calls
15587           new driver method
15588         * Form.cs (OnLoad): Scaling happens before triggering Load events 
15589           on MS (# 78257)
15590
15591 2006-05-01  Mike Kestner  <mkestner@novell.com>
15592
15593         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
15594
15595 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
15596
15597         * TextBoxBase.cs: Removed Fixme
15598         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
15599
15600 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
15601
15602         * XplatUIX11.cs:
15603           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
15604             the rectangle relative to the parent, considering borders. We
15605             don't really want that.
15606           - ScrollWindow: Fixed warning to be more understandable
15607         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
15608           scrollbars and scroll only the visible area
15609         * RichTextBox.cs: Removed debug output
15610
15611 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
15612
15613         * NumericUpDown.cs (Text): Just use base
15614         * UpDownBase.cs: Ensure txtView is created before using it
15615
15616 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
15617
15618         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
15619           casting to IntPtr to avoid 64bit overflow errors
15620
15621 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
15622
15623         * Control.cs:
15624           - AllowDrop: Don't force handle creation.
15625           - CreateHandle: Added call to tell driver if we're allowed to drop
15626
15627 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
15628
15629         * FileDialog.cs: Remember the last directory not only for the
15630           current instance but also for new FileDialog instances.
15631
15632 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
15633         
15634         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
15635           broke sending async messages
15636
15637 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
15638
15639         * XplatUIX11.cs:
15640           - ScrollWindow: Fixed method. We finally generate expose events again
15641             for scrolled areas. This was causing 'garbage' when scrolling
15642             textbox and other controls that used ScrollWindow
15643           - Switched from using the regular queue for paint events to the MS 
15644             model of 'generating' paint events when the queue is empty.
15645             We use the new XQueueEvent.Paint subclass to store which windows
15646             need painting.
15647           - AddExpose now takes the x/y/width/height of the exposed area
15648             and inserts the window into the paint queue if not already there
15649           - InvalidateWholeWindow: Switched to use new AddExpose method
15650           - UpdateMessageQueue: Added which queue to monitor for paint events
15651           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
15652             the unlikely case nothing above handles it. We reset the expose
15653             pending states to get them off the queue.
15654           - GetMessage: Now pulls a paint event if no other events are in the
15655             queue
15656           - Invalidate: Switched to new AddExpose method
15657           - PeekMessage: Updated to understand pending paint events
15658           - UpdateWindow: Fixed logic bug. We were only updating if the window
15659             didn't need updating. Also switched to sending WM_PAINT directly,
15660             like MS does.
15661         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
15662           and random access Remove(). The random access is needed to handle
15663           UpdateWindow() where a WM_PAINT is sent directly without accessing
15664           the queue.
15665         * ScrollBar.cs: Added Update() calls to cause immediate updates to
15666           allow for better feedback when scrolling. Scrollbars are small and
15667           the immediate update should make it 'feel' more responsive without
15668           slowing things down. ScrollBar still needs it's invaliate logic
15669           updated to not always invalidate the whole bar on certain changes.
15670
15671 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15672
15673         * Control.cs:
15674         (BackColor): if the control does not support a transparent background,
15675         return the default backcolor when the parent backcolor is transparent.
15676
15677 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
15678
15679         * Application.cs: Updated to new StartLoop/GetMessage API
15680         * RichTextBox.cs: Provide some output on RTF parsing errors
15681         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
15682           new queue_id argument to GetMessage and PeekMessage to allow faster
15683           handling of per-thread queues in drivers.
15684         * Hwnd.cs: Added Queue tracking and property
15685         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
15686         * XEventQueue.cs: Added thread trackingA
15687         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
15688         * XplatUIX11.cs:
15689           - Implemented new per-thread queue
15690           - GetMessage: Fixed return/break behaviour on several cases. We were
15691             returning stale messages in some cases, instead of just processing
15692             the next message
15693
15694 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
15695
15696         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
15697
15698 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
15699
15700         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
15701           fixed off-by-one comparisons between Width/Height and Right/Bottom.
15702
15703 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
15704
15705         * PropertyGridView.cs: Fix drop down width.
15706
15707 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
15708
15709         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
15710           a mess in DrawToolBar, so I removed one of them.
15711
15712 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
15713
15714         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
15715           needed (clip). Otherwise we get artifacts.
15716
15717 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
15718
15719         * FixedSizeTextBox.cs: Added constructor to allow specifying which
15720           dimension is fixed
15721         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
15722           and switched FixedSizeTextBox to only be fixed vertical (#78116)
15723         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
15724           if it matches the scale base font (avoids unneeded scaling)
15725
15726 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
15727
15728         * X11DesktopColors.cs: One gtk_init_check should be enough
15729
15730 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
15731
15732         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
15733           match MS behaviour
15734
15735 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
15736
15737         * TextBoxBase.cs: 
15738           - Generate OnTextChanged for Backspace even if we're only deleting
15739             the current selection
15740           - When setting the Text property, only select all text if the
15741             control does not have focus when it is being set. Otherwise
15742             just place the cursor at the beginning of the control
15743
15744 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
15745
15746         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
15747           Added a little helper to draw PropertyGrid ToolBar with a different
15748           border and a different BackColor.
15749         * PropertyGrid.cs: Some background parts didn't get painted with the
15750           correct background color. Added a class that helps us to draw the
15751           correct border for PropertyGridView and a class that helps us to
15752           draw ToolBars with a different backcolor
15753         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
15754
15755 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
15756
15757         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
15758         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
15759
15760 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
15761
15762         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
15763           into the palette entries. Also, since we're working on a copy
15764           we needed to copy the palette back onto the bitmap.
15765         * Cursor.cs: Same fix as XplatUIWin32.cs.
15766
15767 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
15768
15769         * ImageListStreamer.cs: Need to read the var (or we're off)
15770
15771 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
15772
15773         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
15774           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
15775           TextBoxBase.cs: Unused var fixes
15776         * AxHost.cs: Small 2.0 fix
15777         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
15778           as it seems that is what at least Metacity expects. This will make
15779           icons show up on 64bit platforms. We still have some 64bit size
15780           issues, though, since the startup app window size still won't match.
15781
15782 2006-04-25  Mike Kestner  <mkestner@novell.com>
15783
15784         * *.cs: cleanup newly reported exception var unused warnings.
15785
15786 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
15787
15788         * ThemeWin32Classic.cs: Button image alignment now matches exactly
15789           ms
15790
15791 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
15792
15793         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
15794           image. The image position is always the same, no matter if the
15795           button is pressed or not.
15796
15797 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
15798
15799         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
15800           selection and set the correct filename for SaveFileDialog.
15801           Patch by Emery Conrad.
15802
15803 2006-04-24  Mike Kestner  <mkestner@novell.com>
15804
15805         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
15806         check for item.X outside the ClientRect instead of item.Y. Fixes
15807         #78151.
15808
15809 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15810
15811         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
15812         trust that value blindly and do some sanity check. Fixes bug #77814.
15813
15814 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15815
15816         * ImageListStreamer.cs: save the mask as a 1bpp image.
15817
15818 2006-04-21  Mike Kestner  <mkestner@novell.com>
15819
15820         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
15821         pass Checked and Indeterminate to the Theme Engine. Improve
15822         encapsulation with ListBox.
15823         * ListBox.cs: Keep a StringFormat instead of calculating it every item
15824         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
15825         nested types.  Move all CheckState functionality to CheckedListBox.
15826         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
15827         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
15828         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
15829         single base list. Fix scrollbar sizing and placement to mirror MS.
15830         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
15831         used.
15832         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
15833         for CheckedListBox by using new DrawItemState info.  Center the
15834         checkboxes on the items. Use new StringFormat property.
15835
15836 2006-04-18  Jackson Harper  <jackson@ximian.com>
15837
15838         * Form.cs: MdiChildren don't do default locations the same way as
15839         regular forms.  This prevents a crash when trying to position the
15840         mdi windows.
15841
15842 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
15843
15844         * PropertyGridTextBox.cs: Formatting, copyright
15845         * PropertiesTab.cs: Formatting
15846         * PropertyGrid.cs: Formatting
15847         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
15848           click toggling of values
15849           
15850 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
15851
15852         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
15853         * Control.cs (.ctor): verify_thread_handle is static, don't reset
15854           every time a control is created
15855         * Application.cs: Removed obsolete EnableRTLMirroring method
15856
15857 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
15858
15859         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
15860         SelectedIndex to -1. Fixes bug #78121.
15861
15862 2006-04-17  Jackson Harper  <jackson@ximian.com>
15863
15864         * Binding.cs: Handle null values for Current and BindingContext.
15865         This occurs when binding is a little delayed.
15866         * CurrencyManager.cs: return null for Current when there are no
15867         items in the list.
15868         - Hookup to the listchanged event on the DataView and update
15869         bindings when the list is changed.  This fixes late binding of
15870         controls.
15871
15872 2006-04-17  Jackson Harper  <jackson@ximian.com>
15873
15874         * X11Dnd.cs:
15875         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
15876         Ringenbach.
15877
15878 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
15879
15880         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
15881           place
15882         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
15883           with the correct ButtonState
15884
15885 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
15886
15887         * XplatUIX11.cs: Improved distinguishing between window types to
15888           tell the WM a type closer to what the app wants (Fixes #78107)
15889
15890 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
15891
15892         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
15893           GrabHandle
15894
15895 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
15896
15897         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
15898           drawing code to reflect the size grip changes
15899
15900 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15901
15902         * ImageListStreamer.cs: fix handling of the mask that follows the main
15903         bitmap when deserializing and serialize it properly. The generated mask
15904         should better be a 1bpp image, but I'll do that later.
15905
15906 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
15907
15908         * FileDialog.cs: Show something in the DirComboBox on *nix if the
15909           path doesn't fit into some of our Current.Places
15910
15911 2006-04-13  Jackson Harper  <jackson@ximian.com>
15912
15913         * ComboBox.cs: Use borders instead of drawing our own decorations,
15914         try to obey correct rules for heights.
15915         * Theme.cs:
15916         * ThemeNice.cs:
15917         * ThemeClearLooks.cs:
15918         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
15919         this is now handled by borders.
15920         - Remove unused DrawListBoxDecorationSize method.
15921         
15922 2006-04-13  Mike Kestner  <mkestner@novell.com>
15923
15924         * MenuAPI.cs: null guarding for the disbled click check fixes crash
15925         reported by Alex.
15926
15927 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
15928
15929         * ThemeWin32Classic.cs: 
15930           - Fixed CPDrawStringDisabled
15931           - Corrected drawing of disabled menu items
15932           - Fixed drawing of disabled radio buttons (bug #78095)
15933           - Draw check in a disabled CheckBox with color ControlDark 
15934
15935 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
15936
15937         * Form.cs: Use the provided width when calculating the menu size;
15938           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
15939           and ClientSize.Width won't be updated yet
15940         * Application.cs: Use Visible instead of Show() to make form visible,
15941           this way we create the handle later and menusize is considered
15942
15943 2006-04-12  Mike Kestner  <mkestner@novell.com>
15944
15945         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
15946         reporting.
15947
15948 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
15949
15950         * TextBox.cs: Implemented context menu
15951
15952 2006-04-12  Mike Kestner  <mkestner@novell.com>
15953
15954         * ListView.cs: implement box selection. fixes #77838.
15955         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
15956
15957 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
15958
15959         * XplatUIX11.cs: Added setting of window type when transient window
15960           is created (metacity would move it otherwise)
15961         * X11Structs.cs: Added WINDOW_TYPE atoms
15962         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
15963           background (the control is Opaque but still wants transparent
15964           backgrounds)
15965
15966 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
15967
15968         * Control.cs: Added OnPaintBackgroundInternal to allow controls
15969           that set Opaque but don't mean it (like all ButtonBase-derived
15970           controls) to still draw their background
15971         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
15972           the background
15973
15974 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
15975
15976         * Control.cs (PaintControlBackground): Set the graphics object
15977           on our PaintEvent to null to prevent it from being disposed
15978           when the PaintEvent gets disposed
15979
15980 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
15981
15982         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
15983         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
15984
15985 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
15986
15987         * Control.cs: 
15988           - Added transparency check to BackColor property. Transparent
15989             backgrounds are only allowed if the control styles permit it
15990           - Added recursive painting of parent control background and
15991             foreground if a control with a transparent backcolor is drawn
15992             (Thanks to Tim Ringenback for providing his 'hack' as a base
15993              for this patch) Fixes #77985 and #78026.
15994           - Added Opaque style check before calling OnPaintBackground, no
15995             need to draw the background if the control is opaque
15996           - Removed ControlAccessibleObject owner variable (inherited from
15997             base, no need to define again)
15998           - Added some documentation links explaining the drawing events
15999             and styles
16000
16001 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
16002
16003         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
16004           that the affected control is the located at the left border of our
16005           parent (Fixes #77936)
16006
16007 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
16008
16009         * TextBoxBase.cs: When rendering disabled or readonly controls,
16010           draw the background with 'Control' instead of 'Window' color as
16011           long as the user hasn't specifically set a color
16012
16013 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
16014
16015         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
16016           since that won't be updated if the user types text (only if it's
16017           programatically set)
16018
16019 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
16020
16021         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
16022           layout changes do to app-triggered resizes will have the proper
16023           display rectangle for layout
16024
16025 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
16026
16027         * ThemeWin32Classic.cs:
16028           - Make use of the SystemBrushes and SystemPens wherever possible
16029           - Corrected some highlight colors
16030           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
16031             drawing
16032         * Theme.cs: Added Empty field to CPColor struct
16033
16034 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
16035
16036         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
16037           is displayed when calculating the display rectangle. Thanks to Mike
16038           for teaching me the err of my ways.
16039
16040 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
16041
16042         * ScrollableControl.cs:
16043           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
16044             (instead of 0,0) and we now return the real width/height instead of
16045             just the clientrectangle, adjusted for padding. The rectangle is
16046             now cached and created by the new CalculateDisplayRectangle method.
16047           - Created new CalculateDisplayRectange method, which basically does
16048             what get_DisplayRectangle() did originally, but now using the 
16049             right edge instead of DisplayRectangle to determine the size of
16050             our scrollbars
16051           - get_Canvas(): Fixed it to properly calculate canvas for 
16052             right/bottom controls which seem to be placed to the right/bottom
16053             of any controls that have a fixed location
16054           - Removed TODO that's taken care of
16055           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
16056             and SetDisplayRectLocation according to new MSDN2 docs
16057           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
16058             event when that is called, this is added for compatibility
16059           - ScrollControlIntoView(): Implemented.
16060           - Switched scrollbars to be implicit, they shouldn't be selectable
16061         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
16062           call it when the active control is set/changed
16063         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
16064         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
16065           implicit_control variable (used for native Win32 message generation)
16066         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
16067           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
16068         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
16069         * XplatUIStructs.cs: Added ScrollBarCommands enum
16070
16071 2006-04-10  Jackson Harper  <jackson@ximian.com>
16072
16073         * ButtonBase.cs:
16074         * CheckedListBox.cs:
16075         * ComboBox.cs:
16076         * DataGrid.cs:
16077         * DataGridView.cs:
16078         * Form.cs:
16079         * GroupBox.cs:
16080         * ListBox.cs:
16081         * PrintPreviewControl.cs:
16082         * ProgressBar.cs:
16083         * PropertyGrid.cs:
16084         * Splitter.cs:
16085         * StatusBar.cs:
16086         * TrackBar.cs:
16087         * UpDownBase.cs: Fixup base event overrides.
16088         
16089 2006-04-06  Mike Kestner  <mkestner@novell.com>
16090
16091         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
16092         all user-initiated value changes to min <= value <= max-thumbsz+1.
16093         (set_Value): check for vert/horiz when calculating new thumb position.
16094         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
16095         like MS does.
16096         (OnMouseMoveSB): refactor the thumb dragging code and refine
16097         invalidation logic to reduce flicker.
16098         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
16099         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
16100         (UpdateThumbPosition): small code readability cleanup
16101
16102 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
16103
16104         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
16105           different
16106
16107 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
16108
16109         * ThemeNice.cs: Use a better graphics effect when a button is pressed
16110
16111 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
16112
16113         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
16114         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
16115           This dramatically reduces the number of Pen.Dispose calls. 
16116           Where possible call ResPool methods only once instead of calling it
16117           over and over again (for example for the same color).
16118
16119 2006-04-06  Mike Kestner  <mkestner@novell.com>
16120
16121         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
16122         Also remove an unused private field on the collection. Fixes #77972.
16123
16124 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
16125
16126         * ThemeNice.cs: Added ToolBar drawing code
16127
16128 2006-04-06  Mike Kestner  <mkestner@novell.com>
16129
16130         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
16131         I'm assuming that means we need to look up the toplevel for the
16132         provided control. Fixes the crash trace in #77911 but exposes another
16133         crash in some strange reflection usage in NDocGui.
16134
16135 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
16136
16137         * ThemeNice.cs: Gave it a little silver touch and added Images
16138           method
16139         * FontDialog.cs: FontDialog is not resizable
16140         * FileDialg.cs: Added SizeGripStyle.Show
16141
16142 2006-04-05  Jackson Harper  <jackson@ximian.com>
16143
16144         * KeyboardLayouts.cs: Remove warning.
16145
16146 2006-04-05  Jackson Harper  <jackson@ximian.com>
16147
16148         * Control.cs: Enable OnPaintInternal so we can use it for drawing
16149         all of our controls instead of Paint +=.
16150         * ListBox.cs:
16151         * ListView.cs:
16152         * MenuAPI.cs:
16153         * MessageBox.cs:
16154         * NotifyIcon.cs:
16155         * ProgressBar.cs:
16156         * ScrollBar.cs:
16157         * Splitter.cs:
16158         * StatusBar.cs:
16159         * TabControl.cs:
16160         * TextBoxBase.cs:
16161         * ToolBar.cs:
16162         * TrackBar.cs:
16163         * UpDownBase.cs:
16164         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
16165         use OnPaintInternal. Remove Width/Height and Visible checks in
16166         paint handler, this is done at a higher level now.
16167         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
16168         * PaintEventArgs.cs: Add a handled flag so controls that don't
16169         want anymore painting after OnPaintInternal can make sure OnPaint
16170         isn't called.
16171
16172 2006-04-05  Mike Kestner  <mkestner@novell.com>
16173
16174         * Form.cs: fix the menu WndProc hacks to respect the native enabled
16175         state of the form, so that we don't process events when Modal dialogs
16176         are up. Fixes #77922.
16177
16178 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
16179
16180         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
16181           checking is done.
16182
16183 2006-04-05  Mike Kestner  <mkestner@novell.com>
16184
16185         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
16186
16187 2006-04-05  Mike Kestner  <mkestner@novell.com>
16188
16189         * ListView.cs (HeaderMouseMove): null guarding for the over column
16190         when setting up the drag_to_index.  Fixes #78015.
16191
16192 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
16193
16194         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
16195           in the taskbar. Transient windows seem to accomplish that.
16196
16197 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
16198
16199         * Form.cs:
16200           - Re-enabled CreateParams.X/Y code for FormStartPosition
16201           - Added code for manual placement when creating the Control
16202           - Incomplete patch to treat MDI forms differently when
16203             setting the ClientSizeCore. (Still need to figure out handling
16204             x/y coords there)
16205         * XplatUIX11.cs:
16206           - When we're explicitly setting the X/Y position of a non-Child
16207             window, let the WM know. Metacity really wants this.
16208
16209 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
16210
16211         * ThemeNice.cs: Added CPDrawButton
16212
16213 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
16214
16215         * ThemeNice.cs: Changed the color for focused buttons and activated
16216           the arrows for small scroll buttons.
16217
16218 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
16219
16220         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
16221           anymore. Changed some method modifiers to protected (virtual)
16222         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
16223           changes
16224         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
16225           Updated drawing of menus, buttons and progressbars; added
16226           CPDrawBorder3D 
16227
16228 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16229
16230         * ImageListStreamer.cs: implemented serialization/deserialization
16231         of the images.
16232
16233 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
16234
16235         * ThemeWin32Classic.cs:
16236           - Removed all the DrawFrameControl stuff; CPDrawButton,
16237             CPDrawCheckBox and CPDrawRadioButton are now handled directly
16238             inside the methods
16239           - Updated and corrected the drawing code of CPDrawButton,
16240             CPDrawCheckBox and CPDrawRadioButton to better match ms
16241           - Updated theme checkbox and radiobutton code to use the CP*
16242             methods
16243
16244 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
16245
16246         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
16247           bug is fixed
16248
16249 2006-03-31  Jackson Harper  <jackson@ximian.com>
16250
16251         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
16252         sometimes.
16253         * UpDownBase.cs: Don't CreateGraphics manually, use a
16254         Refresh. Ideally we would invalidate the correct areas here.
16255
16256 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
16257
16258         * XplatUIX11.cs: 
16259           - We now track the mapping state of windows. If a window (or 
16260             one of it's parents) is not mapped we no longer permit
16261             WM_PAINT messages to be generated since we'd otherwise get 
16262             lots of BadMatch X errors. Jackson did all the work figuring
16263             out the problem.
16264           - Destroying the caret if the window it's contained in is 
16265             destroyed. Can't use regular DestroyCaret method since it
16266             might fall into a drawing function (trying to remove the
16267             caret) and with that generate new BadMatch errors. Again,
16268             Jackson tracked this down.
16269           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
16270             make sure we send the messages to all windows. (The old code
16271             would send the WM_DESTROY to the window, and then all child
16272             windows would be 'gone' because the WM_DESTROY handle lookup
16273             would no longer find the destroyed window)
16274         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
16275         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
16276
16277 2006-03-31  Jackson Harper  <jackson@ximian.com>
16278
16279         * ScrollableControl.cs: Dont recalc if we are not visible.
16280
16281 2006-03-31  Mike Kestner  <mkestner@novell.com>
16282
16283         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
16284         the visibility branch.
16285
16286 2006-03-31  Jackson Harper  <jackson@ximian.com>
16287
16288         * ScrollBar.cs: Cap values when incrementing/decrementing.
16289
16290 2006-03-31  Mike Kestner  <mkestner@novell.com>
16291
16292         * MenuAPI.cs: setup menu.tracker for popup/context menus.
16293         * ToolTip.cs: guard against timer expirations with no active control.
16294         Not sure why it happened.
16295
16296 2006-03-31  Mike Kestner  <mkestner@novell.com>
16297
16298         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
16299         text.
16300         * ToolTip.cs: Position the tooltip based on where the cursor is at
16301         popup time, not at MouseEnter time.  Add a Down state so that we don't
16302         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
16303         positioning offset. Lookup DisplaySize at positioning time, since it
16304         can theoretically change during invocation.
16305         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
16306         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
16307
16308 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
16309
16310         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
16311           Fixes behaviour when the Text property of the box is String.Empty
16312
16313 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
16314
16315         * XplatUIX11.cs: Only send mouseleave for our client windows, not
16316           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
16317           a window)
16318
16319 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
16320
16321         * FileDialog.cs: Visual enhancement for the popup buttons in 
16322           PopupButtonPanel
16323
16324 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
16325
16326         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
16327           code
16328
16329 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
16330
16331         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
16332           highlighted menu items to match ms
16333
16334 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
16335
16336         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
16337
16338 2006-03-30  Mike Kestner  <mkestner@novell.com>
16339
16340         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
16341         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
16342         go active to account for HotLight to Selected transition.
16343         * MenuItem.cs: add internal Selected prop. Fill out the Status
16344         property by calculating it from item info. Add HotLight,
16345         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
16346
16347 2006-03-30  Mike Kestner  <mkestner@novell.com>
16348
16349         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
16350
16351 2006-03-29  Jackson Harper  <jackson@ximian.com>
16352
16353         * Form.cs: Implement TODO.
16354
16355 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
16356
16357         * PrintPreviewDialog.cs: Implemented missing methods and events; still
16358           missing proper dialog setup in the constructor
16359
16360 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
16361
16362         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
16363         * Control.cs:
16364           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
16365           - Fixed ResetBindings and removed TODO
16366           - Added check for cross-thread calls to get_Handle()
16367           - Added Marshaller attribute for set_Font to satisfy class status
16368         * FontDialog.cs: Removed TODOs that seemed implemented
16369         * UpDownBase.cs: Removed unneeded TODO and Fixme
16370         * MessageBox.cs: Implemented support for Default button and removed TODO
16371         * FileDialog.cs: Removed obsolete TODO
16372         * DomainUpDown.cs: Removed obsolete TODO
16373         * ButtonBase.cs: Removed obsolete TODO
16374         * XplatUIWin32.cs: Removed obsolete TODO
16375         * Form.cs:
16376           - Removed obsolete TODO
16377           - Calling CheckAcceptButton when the acceptbutton is changed to allow
16378             internal status updates
16379           - Making sure the active control is selected when the control is created
16380         * CurrencyManager.cs: Removed obsolete TODO
16381
16382 2006-03-29  Mike Kestner  <mkestner@novell.com>
16383
16384         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
16385         of PrintPreviewDialog and RichTextBox.
16386
16387 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
16388
16389         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
16390           DarkDark, Light and LightLight colors for a specific color
16391         * ThemeWin32Classic.cs:
16392           - Use Button drawing code to draw RadioButtons and CheckBoxes with
16393             Appearance = Button 
16394           - Make use of the new ResPool helper CPColor
16395           - Draw ProgressBar and StatusBar with correct 3D borders
16396
16397 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
16398
16399         * ColorDialog.cs: Return selected color. Fixes bug #77940.
16400
16401 2006-03-28  Mike Kestner  <mkestner@novell.com>
16402
16403         * ListView.cs: fix Icon layout to plan for scrollbar widths when
16404         calculating col/row counts.
16405
16406 2006-03-28  Mike Kestner  <mkestner@novell.com>
16407
16408         * ColumnHeader.cs:
16409         * ListView.cs:
16410         * ListViewItem.cs:
16411         * Menu.cs: 
16412         switch to explicit interface method implementation for some methods
16413         corcompare identifies as inconsistent with MS.
16414
16415 2006-03-28  Mike Kestner  <mkestner@novell.com>
16416
16417         * MainMenu.cs: 
16418         * Menu.cs:
16419         add a few missing methods from the class status output.
16420
16421 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
16422
16423         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
16424           correct.
16425
16426 2006-03-28  Mike Kestner  <mkestner@novell.com>
16427
16428         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
16429
16430 2006-03-27  Mike Kestner  <mkestner@novell.com>
16431
16432         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
16433         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
16434
16435 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
16436
16437         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
16438
16439 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
16440
16441         * ThemeWin32Classic.cs:
16442           - GroupBox: Inserted a little gap between the text and the lines
16443             on the right side
16444           - Made the code in CPDrawBorder3D more readable
16445           - Corrected the drawing location of the up and down arrows in 
16446             CPDrawScrollButton
16447
16448 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
16449
16450         * ControlPaint.cs: Corrected line widths in DrawBorder for
16451           ButtonBorderStyle Inset and Outset
16452
16453 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
16454
16455         * ThemeWin32Classic.cs:
16456           - Rewrote the totally broken CPDrawBorder3D method. That was
16457             one of the main problems for the terrific ThemeWin32Classic
16458             look
16459           - Updated and corrected Button drawing
16460           - Correct the dimensions of the SizeGrip to match ms ones
16461           - Removed a small drawing glitch in DrawComboBoxEditDecorations
16462         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
16463           Border3DStyle.Sunken to match ms.
16464
16465 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
16466
16467         * ThemeWin32Classic.cs: First small part of the "de-uglify
16468           ThemeWin32Classic" effort, SizeGrip
16469
16470 2006-03-24  Jackson Harper  <jackson@ximian.com>
16471
16472         * XplatUIX11.cs: Give a max idle time of one second, this matches
16473         MS and forces an Idle event every second when there are no other
16474         events in the queue.
16475
16476 2006-03-24  Mike Kestner  <mkestner@novell.com>
16477
16478         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
16479         * ListView.Item.cs: fix layout issues with null image lists and images
16480         smaller than checkbox size.
16481         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
16482         mode like MS does.  It's weird, but consistent.  ;-)
16483         Fixes #77890.
16484
16485 2006-03-24  Mike Kestner  <mkestner@novell.com>
16486
16487         * ListView.cs: Scroll wheel support for the item control.  Fixes
16488         #77839.
16489
16490 2006-03-23  Jackson Harper  <jackson@ximian.com>
16491
16492         * ScrollableControl.cs: Special case negative sized areas, not
16493         zero.
16494         * MonthCalendar.cs: Save the rect of the clicked date so we can
16495         use it for invalidation.
16496         - Try to cut down on the number of invalidates
16497         - Invalidate the rect the mouse is over and was over when moving
16498         the mouse, so we get the focus box following the cursor.
16499
16500 2006-03-23  Mike Kestner  <mkestner@novell.com>
16501
16502         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
16503         focus rectangle drawing. Fixes #77835.
16504
16505 2006-03-23  Mike Kestner  <mkestner@novell.com>
16506
16507         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
16508         the if and else if and reverting back to the original == check on the
16509         None conditional.
16510
16511 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
16512
16513         * FontDialog.cs: Update the example panel if the selected index of
16514           the fontListBox changes.
16515
16516 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
16517
16518         * FileDialog.cs: Make FileDialog remember which directory it was in
16519           last in the same execution.
16520
16521 2006-03-22  Mike Kestner  <mkestner@novell.com>
16522
16523         * FileDialog.cs: make the DropDownMenu on the toolbar display
16524         RadioChecks since they are mutually exclusive and that's what MS does.
16525
16526 2006-03-22  Mike Kestner  <mkestner@novell.com>
16527
16528         * Theme.cs: add Color param to CPDrawMenuGlyph.
16529         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
16530         checks and radio marks and arrows are visible on highlighted items.
16531         * ControlPaint.cs: update to use new Theme signature.
16532
16533 2006-03-22  Mike Kestner  <mkestner@novell.com>
16534
16535         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
16536         is active. Fixes #77870.
16537
16538 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
16539
16540         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
16541           to be focused/selected after startup
16542
16543 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
16544
16545         * ColorDialog.cs: 
16546           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
16547             CustomColors and ShowHelp properties
16548           - Some internal rewrites to get better results when using the
16549             ColorMatrix
16550
16551 2006-03-22  Mike Kestner  <mkestner@novell.com>
16552
16553         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
16554         HoverSelection.  Fixes #77836.
16555
16556 2006-03-22  Mike Kestner  <mkestner@novell.com>
16557
16558         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
16559         ToggleButtons.  (De)Sensitize the Back button around a stack count of
16560         1, not 0.  Update ButtonSize based on a pixel count of the win32
16561         control.  Adjust the toolbar size/location for new button size.
16562
16563 2006-03-22  Jackson Harper  <jackson@ximian.com>
16564
16565         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
16566         true.
16567         * ScrollBar.cs: When doing increments and decrements we need to
16568         set the Value property so that ValueChanged gets raised. A
16569         possible optimization here would be to make an internal SetValue
16570         that doesn't invalidate immediately.
16571         * ToolTip.cs: Tooltips get added to their container (when
16572         supplied) so they get disposed when the container is disposed.
16573         - Don't create tooltips for String.Empty. This prevents all these
16574         little 2-3 pixel windows from showing up when running nunit-gui
16575         and driving me mad.
16576         * Form.cs: Don't set topmost when setting the owner if the handles
16577         haven't been created yet.  The topmost set will happen when the
16578         handles are created.
16579
16580 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
16581
16582         * XplatUIX11.cs:
16583           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
16584           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
16585             visible (to allow them to recalculate their sizes)
16586
16587 2006-03-21  Mike Kestner  <mkestner@novell.com>
16588
16589         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
16590         methods. Removed a ton of redundant code.  Still not really happy with
16591         the border rendering, but I think that's mainly because of the
16592         ControlDarkDark being black instead of a dark grey. Depending on how 
16593         close we want to be, we might want to revisit those color choices.
16594         Among the new features added during the refactor were DropDownArrow
16595         pressed rendering, Disabled image rendering.  Proper flat appearance
16596         boundary rendering.  Removed the Divider and Wrapping dividers since I
16597         can't figure out any combination of themes and conditions to make the
16598         MS control draw a horizontal line on a toolbar despite what the
16599         Divider property docs indicate.
16600         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
16601         conditions and incorrect layout.  Updated to coding standard.
16602         * ToolBarButton.cs: refactored layout and positioning code from
16603         ToolBar to here.  Invalidate wherever possible instead of forcing
16604         redraws of the whole toolbar. 
16605         (Known remaining issues: explicit ButtonSize smaller than provided
16606         images.)
16607
16608 2006-03-21  Mike Kestner  <mkestner@novell.com>
16609
16610         * ContextMenu.cs (Show): use the position parameter instead of just
16611         showing at the MousePosition.
16612
16613 2006-03-21  Jackson Harper  <jackson@ximian.com>
16614
16615         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
16616         control handle this.
16617         * TreeNodeCollection.cs: If we are clearing the root node we need
16618         to reset top_node so calcs can still happen.
16619         * ThemeWin32Classic.cs: This is a Flags so we need to check
16620         properly.
16621         
16622 2006-03-21  Jackson Harper  <jackson@ximian.com>
16623
16624         * DataGrid.cs: Create columns when the binding context has been
16625         changed.
16626         * X11Structs.cs: Keysyms are uints.
16627         - Add size to fix build.
16628
16629 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
16630
16631         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
16632           XplatUIOSX.cs: 
16633           - Added ResetMouseHover method to allow controls to retrigger
16634             hovering if they need it more than once
16635           - Implemented MouseHoverTime and MouseHoverSize properties
16636         * Timer.cs: Start() must reset the interval
16637         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
16638           properties
16639
16640 2006-03-21  Jackson Harper  <jackson@ximian.com>
16641
16642         * X11Keyboard.cs: improved layout detection. Move the nonchar
16643         tables into this file.
16644         * KeyboardLayouts.cs: Move the tables into resource files.
16645
16646 2006-03-21  Mike Kestner  <mkestner@novell.com>
16647
16648         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
16649
16650 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
16651
16652         * Mime.cs: Various speed optimizations. Looking up mime types
16653           is now 2 times faster than before
16654
16655 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
16656
16657         * CreateParams.cs: Added internal menu field
16658         * Control.cs: 
16659           - Switched call order for UpdateBounds; now we always call
16660             the one that also takes ClientSize, and we're calculating the 
16661             client size via driver method in the others. The previous
16662             method of tracking client size by difference wasn't working
16663             for forms where even the starting client size wouldn't match
16664             the overall form size (due to borders) (Part of fix for #77729)
16665           - CreateParams(): Do not use parent.Handle unless the handle is
16666             already created. Causes havoc with Nexxia and throws off our
16667             creation of controls
16668         * XplatUIX11.cs:
16669           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
16670           - Switched handling of ConfigureNotify over to new PerformNCCalc 
16671             method (consolidates code)
16672           - Changed RequestNCRecalc to use new PerformNCCalc method
16673           - Added calls to RequestNCRecalc when menus and borders are changed
16674             to allow app to set NC size. (Part of fix for #77729) This matches
16675             when MS send a WM_NCRECALC on Win32 windows.
16676           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
16677             (Part of fix for #77729). This matches what MS does, they also
16678             send that message when the form is made visible.
16679           - XException.GetMessage: Improved usability of X errors by including
16680             a translation of the window into Hwnd and Control class
16681           - Improved debug info for window creation, reparenting and destruction
16682           - Created helper method WindowIsMapped() [Currently not used]
16683         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
16684         * Form.cs:
16685           - CreateParams: Now setting our menu on the new internal menu field
16686           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
16687             avoid calculating the same property twice
16688         * Hwnd.cs:
16689           - Improved usability of ToString() for debugging purposes
16690           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
16691             determine the height of the menu, instead of just the font. This
16692             required to also create a graphics context and to keep a bmp 
16693             around (for performance reasons)
16694
16695 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
16696
16697         * MenuAPI.cs: Added OnMouseUp method
16698         * Form.cs:
16699           - Now remembering the requested client size, avoids size errors
16700           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
16701             instead of base if the menu is active. This is required due to
16702             control now capturing and releasing on down/up and it would
16703             prematurely release our menu capture
16704
16705 2006-03-17  Jackson Harper  <jackson@ximian.com>
16706
16707         * KeyboardLayouts.cs: Add the czech layouts.
16708
16709 2006-03-16  Jackson Harper  <jackson@ximian.com>
16710
16711         * Control.cs: Use the viewport space when sizing not the controls
16712         client size, so things like ScrollableControl that effect the
16713         viewport size (when scrollbars are added) are computed correctly.
16714         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
16715         of ManagerEntrys.
16716         - Handle creating BindingManagers for null data sources.
16717         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
16718         source, otherwise when rows are added they are added to the 'fake'
16719         datasource and we will crash when trying to set the position in
16720         those rows.
16721         - Use Implicit scrollbars on the datagrid so they arent
16722         selectable.
16723         
16724 2006-03-16  Jackson Harper  <jackson@ximian.com>
16725
16726         * Binding.cs:
16727         * InternalWindowManager.cs:
16728         * MdiWindowManager.cs:
16729         * X11Keyboard.cs: I really want Mike to love me again (fix
16730         compiler warnings).
16731
16732 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
16733
16734         * DataGrid.cs:
16735           - OnMouseDown: Switch to editing mode when clicking on the cell
16736                          even if we're clicking on the cell that's currently 
16737                          selected
16738           - ProcessGridKey: Left/Right now wrap like MS.Net does
16739           - ProcessGridKey: Tab now knows to add a new row when tab is
16740                             pressed in the cell of the last column of the 
16741                             last row
16742           - ProcessGridKey: Enter now adds another row  if pressed in the last
16743                             row and selectes the new row, same column cell
16744           - ProcessGridKey: Home/End navigate columns, not rows, like 
16745                             originally implemented
16746           - Broke ProcessKeyPreview code out into an extra Internal method
16747             so it can be called from the edit code
16748         * DataGridTextBox.cs (ProcessKeyMessage):
16749           - Switched to accept Tab keypresses
16750           - Added F2 handling to allow jumping to the end of the edited cell
16751           - Added logic to allow moving caret left/right inside edited cell
16752             and making the edited cell jump when the caret hits cell borders
16753           - Tab and Enter are now passed to the datagrid after being handled
16754         * TextBoxBase.cs:
16755           - Removed capture code now that Control handles it
16756           - set_SelectionStart now ensures caret is visible
16757
16758 2006-03-16  Jackson Harper  <jackson@ximian.com>
16759
16760         * TrackBar.cs: Debackwards the increment/decrement for handling
16761         mouse clicks on the bar with vertical trackbars.
16762         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
16763         bottom to match MS.
16764
16765 2006-03-16  Mike Kestner  <mkestner@novell.com>
16766
16767         * ListView.cs: make shift/ctrl keyboard and mouse selection 
16768         consistent with the MS control. Fix a bug in
16769         SelectedListViewItemCollection.Clear that was pissing me off for the
16770         better part of a day because the collection was being altered
16771         underneath us as we walked the list.
16772
16773 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
16774
16775         * Control.cs: Not sure how we could miss this so long, but it seems
16776           that MS.Net has Capture set all the way from before calling 
16777           OnMouseDown through sending the mouse events until after
16778           OnMouseUp. This will fix DataGrid's selection being set to end
16779           at the location of the MouseUp.
16780
16781 2006-03-15  Jackson Harper  <jackson@ximian.com>
16782
16783         * BindingContext.cs: Check the binding after its added so that it
16784           can initialize the binding managers and hookup to events.
16785         * Binding.cs: Data members seem to sometimes include rows/cols in
16786           the format Row.Column we now take this into account.
16787           - Hookup to the position changed event so we can update the
16788           control when the position has changed in the data set.
16789         * CurrencyManager.cs: Take into account the row/col naming
16790           convention when creating dataset tables.
16791         * BindingContext.cs: Using a newer better way of storing
16792           datasource/datamember pairs.  Hopefully this better matches MS for
16793           looking up binding managers.
16794
16795
16796 2006-03-15  Jackson Harper  <jackson@ximian.com>
16797
16798         * BindingContext.cs: The currency manager needs the data member
16799         name, if the member is a data set we use the name to find the
16800         correct table.
16801         * CurrencyManager.cs: When creating the list prefer an IList over
16802         an IListSource.
16803         - Attempt to create a DataTable from a DataSet (TODO: might need
16804         some better error checking here, although MS doesn't seem to have much)
16805         - If we have a DataTable create a view and use it as our list.
16806
16807 2006-03-15  Mike Kestner  <mkestner@novell.com>
16808
16809         * ListView.cs: keep a matrix of the icon mode layout to facilitate
16810         keyboard navigation. Support Up/Down/Left/Right selection correctly
16811         for all 4 View modes.
16812         * ListViewItem.cs: add internal row/col fields for icon layouts.
16813
16814 2006-03-15  Jackson Harper  <jackson@ximian.com>
16815
16816         * TabControl.cs: Redraw the tabs when we resize so their newly
16817         calculated sizes are drawn on screen.
16818         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
16819         composite characters.
16820         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
16821         - filter events so that composite characters can be created
16822         patches by peter
16823         * X11Structs.cs: Add XIMProperties enum.
16824
16825 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
16826
16827         * Control.cs (BringToFront, SendToBack): Don't use window or handle
16828           unless it's created
16829
16830 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
16831
16832         * Control.cs (PerformLayout): We don't need to consider visiblity
16833           for anchoring, only for docking. This fixes 'whacky' alignment
16834           in listbox and other controls that use implicit scrollbars after
16835           the previous PerformLayout patch
16836         * ListBox.cs: Switched to use implicit scrollbars
16837           
16838 2006-03-14  Mike Kestner  <mkestner@novell.com>
16839
16840         * ToolBar.cs: 
16841         * VScrollBar.cs:
16842         - chain up the "new event" overrides to base and use
16843         OnEvent to raise them.  Part of fix for bug #76509.
16844
16845 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
16846
16847         * FileDialog.cs: Do not select an item in the parent directory
16848           on backspace
16849
16850 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
16851
16852         * Control.cs (PerformLayout): It would seem that we considered
16853           invisible windows for our layout. Not quite the right thing
16854           to do. Now we don't any longer, thereby fixing bug #76889.
16855
16856 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
16857
16858         * Control.cs (CanFocus): I goofed. A control can have focus 
16859           even though it's not selectable. Made it match MS docs.
16860
16861 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
16862
16863         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
16864           center by default (fixes #76895)
16865         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
16866           all uses of Border3DSides.All with the explicit ORd together
16867           Left|Right|Top|Bottom because I assume that nobody was aware 
16868           that All also implies a center fill. Most places I checked had
16869           a fill right above.
16870         * ProgressBarStyle.cs: Added
16871
16872 2006-03-13  Mike Kestner  <mkestner@novell.com>
16873
16874         * ListView.cs: fix breakage in drag shadow header positioning 
16875         from Peter's csc compilation fix.
16876
16877 2006-03-13  Mike Kestner  <mkestner@novell.com>
16878
16879         * ListView.cs: fix NRE produced by backspacing twice in a focused
16880         FileDialog.
16881
16882 2006-03-13  Mike Kestner  <mkestner@novell.com>
16883
16884         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
16885
16886 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
16887
16888         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
16889           be changed
16890         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
16891           the allowed size before making programmatic size changes
16892
16893 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
16894
16895         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
16896           set, metacity is broken and will still use the emty sizes in 
16897           the struct. (Fix for #77089)
16898
16899 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
16900
16901         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
16902           WindowExStyles and marked both enums as Flags
16903         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
16904           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
16905           to match WindowStyles split
16906         * XplatUIX11.cs:
16907           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
16908           - Updated to match WindowStyles split
16909         * XplatUIWin32.cs:
16910           - Fixed FosterParent creation, was using ExStyle on the Style field
16911             (This should help with Popup focus issues)
16912           - Updated to match WindowStyles split
16913
16914 2006-03-13  Jackson Harper  <jackson@ximian.com>
16915
16916         * MdiWindowManager.cs: Use the system menu height. Fixes some
16917         strange sizing issues.
16918
16919 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
16920
16921         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
16922         * TextBoxBase.cs:
16923           - Scroll to caret after inserting text (#77672)
16924           - Make scroll range one pixel higher, fixes off-by-one error (and
16925             makes underlines visible on the last line)
16926
16927 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
16928
16929         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
16930           the keyboard state from being stuck with keys in 'pressed' state when
16931           focus is switched away via keyboard
16932         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
16933           reset the keyboard if no X11 KeyUp events are expected to come
16934         * X11Structs.cs: Switched type of Visible to bool to match driver
16935
16936 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
16937
16938         * TextControl.cs:
16939           - Switched caret to be just 1 pixel wide, matches MS and looks less
16940             clunky
16941           - Moved caret display 1 pixel down from the top of the control
16942             to improve view
16943           - InsertCharAtCharet: Update the selection start if moving the caret
16944             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
16945           - No longer always creating the caret when the caret methods are
16946             called. Only the actual ShowCaret/HideCaret will do that now
16947           - Only setting caret visible if the owner control has focus
16948           - UpdateView: Added invalidation-shortcut logic for center and right 
16949             aligned text. Previously we'd update all according to the left
16950             logic which caused drawing errors. Also fixed height of invalidated
16951             areas, now properly invalidating the whole area (was off-by-one)
16952           - owner_HandleCreated: Always generate the document when the
16953             handle is created; this ensures that 
16954         * TextBoxBase.cs:
16955           - Fixed situation where caret would disappear under the right
16956             window border, also improved scrolling behaviour on left-
16957             aligned textboxes
16958           - Fixed right-aligned textboxes to have a border to the
16959             right instead of the caret being under the right border
16960         * XplatUIX11.cs:
16961           - Switched from 'nested' to simple visible/not visible tracking 
16962             for caret (part of fix for #77671)
16963           - No longer passing through translated FocusIn/FocusOut messages
16964             since we were notifying too often and the wrong windows. Instead
16965             we just notify our focussed window of receiving or loosing focus
16966         * XplatUIWin32.cs: Switched from 'nested' show/hide 
16967           counting for caret to simple visible yes/no behaviour (part of 
16968           fix for #77671)
16969
16970 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
16971
16972         * Mime.cs: Remove debug code...
16973
16974 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
16975
16976         * MimeGenerated.cs: Removed
16977         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
16978           and subclasses) from /usr/(local/)share/mime and
16979           $HOME/.local/share/mime.
16980
16981 2006-03-10  Jackson Harper  <jackson@ximian.com>
16982
16983         * MdiWindowManager.cs: Recalc the NC area when a window is
16984         maximized/restored so that the menu area is drawn on forms that
16985         don't have a menu.
16986
16987 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
16988
16989         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
16990           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
16991           us to force a WM_NCCALCRESIZE message being sent. This is needed
16992           for MDI maximizing.
16993
16994 2006-03-10  Jackson Harper  <jackson@ximian.com>
16995
16996         * Form.cs: We need to use the ActiveMenu when calculating menu
16997         height.
16998         - Fix nullref when the window manager hasn't been created yet.
16999         * Control.cs: Fix nullref when we try to bring a control to the
17000         front that has no parent.
17001         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
17002         height.
17003         - Add a dummy item to the maximized menu so it always has the
17004         correct height. Otherwise when there are no menus we don't get our
17005         icon and buttons.
17006         
17007
17008 2006-03-10  Jackson Harper  <jackson@ximian.com>
17009
17010         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
17011         stuff.
17012         * Form.cs: Make the window_state internal so the window managers
17013         can track it.
17014         - When an MDI child is maximized let its window manager create the
17015         main menu (so it can add its icon).
17016         - Notify the window managers of state changes
17017         - Let the window manager paint its buttons and handle button
17018         clicks on the menu when it is maximized.
17019         * InternalWindowManager.cs: Move the prev_bounds into the mdi
17020         window manager, since tool windows don't use it, only mdi windows.
17021         - Tell the main form that we don't want it to handle NCPAINT
17022         itself to avoid extra painting.
17023         - Handle clicks on a maximized windows menu.
17024         - Handle window state changes
17025         - Handle minimize/maximize clicks correctly by setting the window state.
17026         * MdiWindowManager.cs: Add an icon menu that (the menu you get
17027         when clicking on the forms icon).
17028         - New method to create a forms maximized menu. This is its normal
17029         menu + an icon.
17030         - Handle window state changes.
17031         - Handle sizing of maximized windows.  Maximized windows are just
17032         drawn bigger then the parent visible area. All controls are still
17033         there, they are just outside the visible area (this matches windows).
17034         * MdiClient.cs: No scrollbars when a child window is maximized.
17035         - Let the children windows figure out how big they should be when
17036         sizing maximized windows.
17037         - Implement a version of ArrangeIconicWindows somewhat similar to
17038         Windows version.  There are some little differences, but I don't
17039         think any app will rely on the layout of minimized mdi windows.
17040
17041 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
17042
17043         * Padding.cs: Several fixes to allow compiling with csc 2.0
17044
17045 2006-03-09  Jackson Harper  <jackson@ximian.com>
17046
17047         * Menu.cs:
17048         * MenuItem.cs: Cheap hack so we can add items to the list without
17049         the events being raised.  This allows adding mdi items during
17050         drawing. TODO: Should probably find a better time to add the items.
17051
17052 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
17053
17054         * ThemeWin32Classic.cs:
17055           - CheckBox_DrawText: Added logic to not wrap if not enough space
17056             is available (Fix for bug #77727)
17057           - RadioButton_DrawText: Added logic not to wrap if not enough
17058             space is available (Fix for bug #77727). Also removed some
17059             duplicate code, DrawString always drawing the regular text
17060             before hitting the if statement.
17061
17062 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
17063
17064         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
17065
17066 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
17067
17068         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
17069         * ContainerControl.cs: Partial implementation of some 2.0 scaling
17070           methods. Moved the new 2.0 properties into alphabetical order with
17071           other properties and added MonoTODO tags
17072
17073 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
17074
17075         * AutoScaleMode.cs: Added. Fix build.
17076
17077 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
17078
17079         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
17080           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
17081           and was requiring premature handle creation for calls from above
17082         * Form.cs, Control.cs: Removed handle arguments from calls to
17083           CalculateClientRect()
17084
17085 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
17086
17087         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
17088           drag_column.column_rect is MarshalByRef and can't be used that way
17089
17090 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
17091
17092         * AxHost.cs: Added deserialization constructor for 
17093           AxHost+State (fixes 77743)
17094
17095 2006-03-09  Mike Kestner  <mkestner@novell.com>
17096
17097         * ListView.cs: 
17098         - Added column drag reordering for details view.
17099         - fixed behavior when mouse is dragged off column and
17100         AllowColumnReorder is false.
17101         * ColumnHeader.cs: clone the format too in Clone.
17102         * Theme.cs: add DrawListViewHeaderDragDetails method.
17103         * ThemeWin32Classic.cs:
17104         - impl new method for drawing drag column shadows and targets.
17105         - support column offset for details mode in DrawListViewItem.
17106
17107 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
17108
17109         * TextControl.cs: Reset the char_count when the document is cleared
17110           (Fixes bug reported on mono-winforms mailing list)
17111
17112 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
17113
17114         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
17115           of calling base we simply process the key ourselves, since both
17116           DefWindowProc and the handled method would set m.Result. 
17117           (Fixes #77732)
17118
17119 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
17120
17121         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
17122           method also moves the window; instead implemented a copy of
17123           Control.ScaleCore (Part of fix for #77456)
17124         * TextBoxBase.cs: 
17125           - Created new CreateGraphicsInternal method to allow providing
17126             a graphics context when no handle is created without triggering
17127             handle creation. (Part of fix for #77456)
17128           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
17129         * TextControl.cs: 
17130           - Switched Constructor to require TextBoxBase instead of Control (to
17131             allow uncast access to CreateGraphicsInternal)
17132           - Safeguarded use of owner.Handle property. No longer accessing it
17133             unless the handle is already created.
17134           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
17135           - Now triggering a recalc when owning control becomes visible
17136         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
17137           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
17138           premature handle creation (Part of fix for #77456)
17139         * Control.cs:
17140           - We now only destroy our double-buffering buffers when the
17141             control is resized or disposed, but not when visibility
17142             changes. (The code even re-created them twice every time)
17143           - Now requiring a redraw of the buffer on visibility changes
17144             (fixes bug 77654 part 2)
17145           - Not passing OnParentVisibleChanged up unless the control
17146             is visible
17147           - CanFocus: Fixed to match MS documentation
17148           - Focus: Fixed to return actual focus state and to check if
17149             setting focus is legal before setting it
17150
17151 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
17152
17153         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
17154           when to draw focus rectangle by looking at parent focus and
17155           selected state instead. This fixes TabPages on Linux sometimes
17156           having none or multiple focus rectangles.
17157         * XplatUIX11.cs (SetFocus): 
17158           - Don't set the focus if the same window already has focus
17159           - Use SendMessage instead of PostMessage (like it's Win32
17160             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
17161             to match MS behaviour
17162         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
17163           are not selectable.
17164
17165 2006-03-07  Jackson Harper  <jackson@ximian.com>
17166
17167         * PictureBox.cs: Revert line I accidently committed last week.
17168
17169 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
17170
17171         * Control.cs: 
17172           - Added new IsRecreating and ParentIsRecreating properties to
17173             allow testing if RecreateHandle has been called on ourselves
17174             or one of our parents
17175           - WndProc(WM_DESTROY): If our control handle is being recreated
17176             we immediately need to create the handle when receiving the
17177             destroy, that way our child windows find a valid parent handle
17178             when they themselves are being recreated upon WM_DESTROY receipt
17179             (fix for bug #77654 part 1)
17180         * XplatUIX11.cs:
17181           - DestroyWindow: WM_DESTROY must be sent to our own window before
17182             notifying any child windows. MS documents that child windows
17183             are still valid when WM_DESTROY is received. (Control now relies on
17184             this behaviour)
17185           - Added some fine-grain debug options
17186
17187 2006-03-06  Jackson Harper  <jackson@ximian.com>
17188
17189         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
17190         box and base calculations off this.
17191         * MdiChildContext.cs:
17192         * MdiWindowManager.cs: Don't need to ensure scrollbars here
17193         anymore.
17194         
17195 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
17196
17197         * Splitter.cs: In situations where the affected control is added
17198           to the parent's control list after the splitter, we would not
17199           populate affected. Now we try populating it on mousedown, if
17200           it's not already set, and force it to be re-set whenever our
17201           parent changes.
17202
17203 2006-03-03  Matt Hargett  <matt@use.net>
17204
17205         * Control.cs: implement Control.Padding
17206         * Padding.cs: -Padding.All returns -1 when constructing with the
17207         implicit default ctor
17208         -Padding.ToString() matches MS.NET
17209         * ContainerControl.cs: implement
17210         ContainerControl.AutoScaleDimensions
17211         * ListControl.cs: implement ListControl.FormattingEnabled
17212         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
17213         * ButtonBase.cs:
17214         * TabPage.cs: Implement UseVisualStyleBackColor.
17215         * PictureBox.cs: Implement PictureBox.InitialImage.
17216
17217 2006-03-03  Mike Kestner  <mkestner@novell.com>
17218
17219         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
17220         event declarations to proxy to base event.
17221         * ListViewItem.cs: update to use ItemControl.
17222         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
17223         * ThemeWin32Classic.cs: update to new ListView theme API and fix
17224         column header label rendering for 0 width columns.
17225
17226 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
17227
17228         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
17229           that causes the control to be created. Fixes #77476.
17230
17231 2006-03-02  Jackson Harper  <jackson@ximian.com>
17232
17233         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
17234         expose_pending.
17235
17236 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
17237
17238         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
17239           passed in for the EventArgs (fixes #77690)
17240
17241 2006-03-01  Jackson Harper  <jackson@ximian.com>
17242
17243         * ScrollBar.cs: Refresh afterbeing resized.
17244
17245 2006-02-28  Mike Kestner  <mkestner@novell.com>
17246
17247         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
17248         Clean up a tracker compile warning.
17249         * MenuItem.cs: add internal PerformPopup method.
17250         [Fixes #77457]
17251
17252 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
17253
17254         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
17255           implicit expose) when the text is set to null
17256
17257 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
17258
17259         * RichTextBox.cs (FlushText): When newline is true, we always
17260           need to split the line, even if no text is on it and we may
17261           never eat newlines. (Fixes #77669)
17262
17263 2006-02-28  Mike Kestner  <mkestner@novell.com>
17264
17265         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
17266         and set Selected instead.
17267         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
17268         collections.
17269
17270 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
17271
17272         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
17273
17274 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
17275
17276         * FontDialog.cs:
17277           - Got rid of the panel. All controls are now directly added to
17278             the dialog form
17279           - It is now possible to set a font with the Font property
17280           - MinSize and MaxSize property do now what they should
17281           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
17282           - Searching and selecting a font with the font textbox works now,
17283             the same applies to the style and size textbox
17284           - Draw the correct 3D border in the example panel
17285           - Fixed a little mem leak (unused fonts didn't get disposed)
17286           - Many other internal updates/rewrites...
17287           - Fix typo
17288
17289 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
17290
17291         * TextControl.cs: 
17292           - InsertRTFFromStream: Added 'number of characters inserted' argument
17293           - set_SelectedRTF: Now using the number of characters to calculate
17294             the new location for the selection and cursor (x/y cannot be used
17295             due to potentially already wrapped text)
17296
17297 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
17298
17299         * TextControl.cs: Added property and implemented means to allow 
17300           disabling recalculation of a document (can be used to speed up
17301           multiple inserts and is needed to make RTF inserts predictable, see
17302           bug #77659)
17303         * RichTextBox.cs: Using the new NoRecalc property of Document to
17304           keep x/y insert locations predictable. Also makes it faster inserting
17305           large chunks of RTF
17306
17307 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
17308
17309         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
17310           it's easier for a child control to handle the other messages without
17311           having to duplicate the special functionality
17312         * TextBoxBase.cs
17313           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
17314             code to handle processing the key ourselves, in order to get 
17315             access to the result of KeyEventArgs.Handled. We now only call 
17316             ProcessKey if they key hasn't been handled already. Fixes #77526.
17317           - set_Text: If null or empty string is given, just clear the 
17318             document. Fixes part of #77526
17319
17320 2006-02-27  Jackson Harper  <jackson@ximian.com>
17321
17322         * SizeGrip.cs: Paint the background color before painting the grip
17323         so things look right.
17324         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
17325
17326 2006-02-27  Mike Kestner  <mkestner@novell.com>
17327
17328         * ListView.cs:
17329           - Restructure layout and invalidation model to remove a ton of
17330           flicker from the control and speed up performance in general.
17331           - Add manual column resize, flickers like crazy, but I already have
17332           some ideas on how I'll fix that. (#76822)
17333           - Merge the three Icon-based views into a single layout method.
17334           - Move item selection interaction logic from the item since 
17335           interaction with the collections is more appropriate to the view.
17336           - Deselection on non-item clicks.
17337         * ListViewItem.cs:
17338           - Encapsulate most of the layout. Add some internal props to trigger
17339           layout.  Move to a model where Items invalidate themselves instead
17340           of just invalidating the whole control every time something changes.
17341           - Invalidate on Text/Caption changes.
17342           - switch to an offset based layout model to avoid having to absolute
17343           position every element on item moves.
17344           - correct checkbox layout to conform to MS layout.
17345         * ThemeWin32Classic.cs:
17346           - refactor some column header drawing code.
17347           - fix string justification for column headers (#76821)
17348           - make SmallIcon labels top justified for compat with MS impl.
17349         * ThemeClearlooks.cs:
17350           - adjust to new ListViewItem internal checkbox bounds api.
17351
17352 2006-02-27  Jackson Harper  <jackson@ximian.com>
17353
17354         * Control.cs:  Change where implicit controls fall in the zorder.
17355         They are now on top of all children.
17356         - Synced AddImplicit code with Add
17357         - Removed unused enumerator.
17358         * SizeGrip.cs: Remove the TODO as its been TODONE.
17359
17360 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
17361
17362         * TextControl.cs(Insert): Combine the last lines unless the insertion
17363           string ends with \n\n, otherwise we leave one line too many (Fixes
17364           something I noticed with the testapp for #77526; the bug itself was
17365           already fixed in the previous checkin)
17366
17367 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
17368
17369         * RichTextBox.cs:
17370           - SelectionColor and SelectionFont methods no longer set absolute
17371             styles. Instead, the keep font or color respectively (This 
17372             resolves a long-standing FIXME in the code)
17373           - When flushing RTF text, the insert code now considers text trailing
17374             behind the insertion point (Fixes the bug where when replacing
17375             the selected text via SelectedRTF the remainder of the line behind 
17376             the selection would stay on the first insertion line)
17377         * TextBoxBase.cs:
17378           - AppendText now updates the selection points after inserting text
17379           - AppendText now ensures that the last tag (sometimes 0-length) of
17380             the document is used for the style information (Fixes part of 
17381             bug #77220)
17382         * TextControl.cs:
17383           - Created new FontDefiniton class to allow describing partial style
17384             changes
17385           - StreamLine() now takes a lines argument, to allow it to decide
17386             whether an encountered zero-length tag is the last in the document
17387             (which must be kept to not loose the font/color contained in it,
17388             for later appends)
17389           - Created Combine() and Split() methods for Marker structs, to 
17390             support marker updates due to reformatted documents (soft line
17391             wraps)
17392           - Implemented Document.CaretTag setter
17393           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
17394             of the last line (Not the cause, but also exposed by bug #77220)
17395           - Added LineTag argument to InsertString method, to allow callers
17396             to force a certain tag to be used (required to force use of the
17397             trailing zero-length tag of a document)
17398           - Now updating markers in Combine(), to avoid stale tag markers
17399           - Added some method descriptions to aid maintenance
17400           - Implemented new FormatText concept, allowing additive/subtractive
17401             formatting by only specifying the components that are to be 
17402             changed. This was needed for resolving the RTB.SelectedColor/
17403             RTB.SelectedFont fixmes
17404           - Added Break() support method to allow breaking up linetags (used
17405             for partial formatting)
17406           - Added GenerateTextFormat() method. It is used for partial 
17407             formatting and allows to generate a full font/color from given
17408             attributes and an existing tag.
17409
17410 2006-02-26  Jackson Harper  <jackson@ximian.com>
17411
17412         * XplatUIX11.cs:  Use the correct caption height.
17413         - Translate hittest coordinates to screen coords to match MS.
17414         * XplatUIWin32.cs: When we create MDI windows we need to reset
17415         some of the style flags, so we get a nice blank window, and can
17416         draw all the decorations ourselves.
17417         - Set a clipping rectangle on the non client paint event, the
17418         window manager drawing code needs one.
17419         * Form.cs: The window manager needs to know when the window state
17420         has been updated.
17421         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
17422         don't need to factor in border and title sizes in these
17423         methods. TODO: Remove the args and fix the call points.
17424         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
17425         properly.
17426         - Let the driver set the cursors.
17427         - Improve active window handling
17428         - Correct sizes for title bars and buttons.
17429         - Match MS drawing better
17430         * MdiWindowManager.cs: We don't need to handle border style
17431         updates specially anymore.
17432         - Check for scrollbars when windows are done moving
17433         - Handle Active properly.
17434         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
17435         correctly. I am spewing the exception though, so we don't hide the
17436         bugs.
17437         
17438 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
17439
17440         * DataGridViewRowPostPaintEventArgs.cs,
17441           DataGridViewCellPaintingEventArgs.cs,
17442           DataGridViewRowCollection.cs,
17443           DataGridViewRowPrePaintEventArgs.cs,
17444           DataGridViewCell.cs: Clear a few warnings and implement a few
17445           exceptions that should be thrown.
17446
17447 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
17448
17449         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
17450           'inheriting' our parent's (non-default) cursor. (Part of
17451            the fix for #77479)
17452
17453 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
17454
17455         * XplatUIX11.cs: Fixed cast to make csc happy
17456
17457 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
17458
17459         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
17460           it's for the client area (part of fix for #77479 and needed
17461           for MDI window cursor handling)
17462         * XplatUIX11.cs
17463           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
17464             the appropriate default cursors and also passing the message
17465             up the parent chain 
17466           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
17467             for non-client areas
17468
17469 2006-02-15  Jackson Harper  <jackson@ximian.com>
17470
17471         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
17472         is a real MDI window
17473
17474 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
17475
17476         * X11DesktopColors.cs: Instead of checking the desktop session
17477           string for "KDE" check if it starts with "KDE"
17478
17479 2006-02-10  Jackson Harper  <jackson@ximian.com>
17480
17481         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
17482         systems).
17483
17484 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
17485
17486         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
17487           errors
17488         * ColorDialog.cs:
17489           - Got rid of the panel. All controls are now directly added to
17490             the dialog form
17491           - Changed to mono coding style
17492
17493 2006-02-10  Jackson Harper  <jackson@ximian.com>
17494
17495         * InternalWindowManager.cs: We don't need the set visibility to
17496         false hack anymore now that peter has written beautiful shutdown
17497         code.
17498
17499 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
17500
17501         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
17502           where already explicitly destroyed
17503
17504 2006-02-10  Jackson Harper  <jackson@ximian.com>
17505
17506         * MdiClient.cs: Handle the case where windows are too high or to
17507         the left and we need scrollbars.
17508
17509 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
17510
17511         * MimeIcon.cs: Added some icons
17512         * FileDialog.cs:
17513           - Fixed bug #77477
17514           - Got rid of the panel. All controls are now directly added to
17515             the dialog form
17516           - Changed to mono coding style
17517           - On Linux "My Computer" and "My Network" will now show some
17518             more usefull information. A new class, MasterMount, gathers
17519             this information from /proc/mount. Updated MWFFileView to make
17520             use of this information
17521           - Fixed a bug that caused FileDialog to crash when
17522             ".recently_used" file had a zero size
17523           - FilterIndex does now what it should
17524           - Some Refactoring
17525         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
17526             FileDialog changes
17527
17528 2006-02-09  Jackson Harper  <jackson@ximian.com>
17529
17530         * ComboBox.cs: Don't touch if null.
17531
17532 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
17533
17534         * Cursor.cs: 64bit safeness fix
17535         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
17536
17537 2006-02-09  Jackson Harper  <jackson@ximian.com>
17538
17539         * Form.cs: If a form is made into an MDI form update the styles so
17540         all the props can get set correctly.
17541         - Kill the mdi_container when we dont need it anymore.
17542         * InternalWindowManager.cs: Add missing NOT
17543
17544 2006-02-08  Jackson Harper  <jackson@ximian.com>
17545
17546         * InternalWindowManager.cs: Respek clipping when drawing MDi
17547         decorations.
17548
17549 2006-02-08  Jackson Harper  <jackson@ximian.com>
17550
17551         * Hwnd.cs: Add bits to track non client expose events.
17552         * XplatUIX11.cs: Track non client expose events on the hwnd. This
17553         gives us a proper invalid rect and will allow for some nice
17554         optimizations with NC client drawing
17555         - MDI windows are children windows, so move their style handling
17556         into the child window block.
17557         * InternalWindowManager.cs: Remove a state reset that was
17558         getting invoked at the wrong time. Fixes managed windows getting
17559         into a 'stuck' captured state.
17560
17561 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
17562
17563         * TextControl.cs (Document.ctor): Now initializing 
17564           selection_anchor. Fixes #77493
17565
17566 2006-02-07  Jackson Harper  <jackson@ximian.com>
17567
17568         * TrackBar.cs: The increment/decrements were backwards.
17569
17570 2006-02-07  Mike Kestner  <mkestner@novell.com>
17571
17572         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
17573         to the instance itself.
17574
17575 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
17576
17577         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
17578           on ulongs and pointers, the size differs between 32bit and 64bit
17579           systems. 
17580
17581 2006-02-07  Mike Kestner  <mkestner@novell.com>
17582
17583         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
17584         for 64 bit platforms to work around a metacity bug. 
17585
17586 2006-02-07  Jackson Harper  <jackson@ximian.com>
17587
17588         * TrackBar.cs: Process the input keys we need, and hookup to
17589         KeyDown instead of using WndProc, so we get key messages.
17590
17591 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
17592
17593         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
17594           machine we're on. 
17595         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
17596           we need to translate the XdndVersion atoms array before sending it
17597
17598 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
17599
17600         * XplatUIX11.cs: 
17601           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
17602             number of bits for the property, not the number of bytes. The
17603             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
17604             but would not crash since it specified 8 bits instead of 4 bits)
17605           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
17606             defined as XID -> long in the C headers)
17607           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
17608             references since those are now IntPtr to begin with
17609           - Switched all Atom.XXX 'int' casts to IntPtr casts
17610           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
17611           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
17612           - Added XChangeActivePointerGrab DllImport (for X11DnD)
17613         * X11Structs.cs:
17614           - Changed 'int' type for Atoms in XEvent structures to IntPtr
17615           - Changed atom in HoverStruct to be IntPtr
17616         * X11DnD.cs:
17617           - Removed local DllImports, switched code to use those from XplatUIX11
17618           - Removed/fixed casts related to the switch of Atom to be a IntPtr
17619
17620 2006-02-06  Mike Kestner  <mkestner@novell.com>
17621
17622         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
17623         method signatures in the import region.  There may still be some
17624         lingering struct marshaling issues, as I didn't drill down into those.
17625         Yet.
17626
17627 2006-02-06  Jackson Harper  <jackson@ximian.com>
17628
17629         * ComboBox.cs: Dont manually set the top_item, this is computed
17630         when the scrollbar position is set.
17631
17632 2006-02-06  Mike Kestner  <mkestner@novell.com>
17633
17634         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
17635         startup crashes on amd64.  There's other fixes needed.  All pinvoke
17636         usage of Atom needs to be mapped to IntPtr for example.  And there are
17637         likely other int/long issues to be addressed.
17638
17639 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
17640
17641         * FileDialog.cs: One more...
17642
17643 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
17644
17645         * FileDialog.cs: Next try
17646
17647 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
17648
17649         * FileDialog.cs: First part of fix for #77464
17650
17651 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
17652
17653         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
17654           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
17655           AcceptButton border drawing.
17656
17657 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
17658
17659         * Form.cs: Moved positioning of form after auto scaling is applied,
17660           otherwise it would possibly use wrong form size.
17661
17662 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
17663
17664         * Control.cs (RecreateHandle): No need to re-create any child
17665           controls, the child windows will get destroyed automatically by
17666           the windowing system or driver, and re-created when the handle
17667           is being accessed the first time. Fixes #77456
17668         * Form.cs: No longer setting the form to closing if the handle is 
17669           being recreated. This seems like the right thing to do, don't
17670           have a bug or testcase for this, though.
17671
17672 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
17673
17674         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
17675           controls to avoid unwanted side effects
17676
17677 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
17678
17679         * Control.cs: 
17680           - ScaleCore needs to scale the bounds, not the ClientSize of the 
17681             control. Fixes #77416.
17682           - DefaultSize is 0,0 for control
17683         * TextBoxBase.cs: 
17684           - DefaultSize is 100, 20
17685           - SetBoundsCore: Now enforcing the height, no matter if the provided
17686             height is more or less than the preferred one, as long as AutoSize
17687             is on
17688         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
17689
17690 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
17691
17692         * Control.cs:
17693           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
17694             call unless both performLayout is true *and* we have a pending
17695             layout change
17696           - ResumeLayout: MS does not completely nest Suspend and Resume,
17697             they bottom out at 0, fixed our code to match that.
17698           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
17699             SetBoundsCore, we were updating even when we shouldn't. This fixes
17700             swf-anchors mis-anchoring when resizing the app fast and lots.
17701           - UpdateDistances: Now only setting the left and top distance if 
17702             we have a parent and are not suspended, this is based on
17703             a suggestion by Don Edvaldson in bug #77355.
17704           - OnVisibleChanged: Fixed logic when to create the control. We may
17705             not create the control if we have no parent or if it's not visible;
17706             switched to using Visible property instead of is_visible field 
17707             since the property also considers parent states. This fixes a bug
17708             when starting Paint.Net
17709
17710 2006-02-02  Jackson Harper  <jackson@ximian.com>
17711
17712         * Form.cs: If the forms handle hasn't been created yet don't call
17713         into xplatui to make it top most, just set the topmost flag on the
17714         form in CreateParams
17715         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
17716
17717 2006-02-01  Jackson Harper  <jackson@ximian.com>
17718
17719         * ScrollableControl.cs: Refactored the Recalculate method a
17720         little, this wasn't handling all the variants of bottom and right
17721         bars needed to be added and added/removed based on their
17722         counterparts being added/removed (which changes the drawable
17723         size). Also we special case client widths and heights of 0 and
17724         don't add the scrollbar for those.
17725
17726 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
17727
17728         * XplatUIX11.cs: 
17729           - Added method to get AbsoluteGeometry(); currently unused, but might
17730             be used in the future, if we try again to figure out toplevel
17731             coordinates with some more crappy window managers
17732           - Added FrameExtents() method to retrieve the WM set decoration size
17733           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
17734             to deal with at least KDE, FVWM and metacity (Fixes #77092)
17735         * Hwnd.cs: 
17736           - Added whacky_wm tracking var for metacity
17737           - Added logic to have default menu height if the actual menu height
17738             has not yet been calculated (part of fix for #77426)
17739         * Form.cs: Keep track whether client size has been set and re-set 
17740           it if a menu is added/removed afterwards (Fixes #77426)
17741
17742 2006-01-31  Jackson Harper  <jackson@ximian.com>
17743
17744         * Control.cs: When a new Site is set on the component attempt to
17745         pull the AmbientProperties from it.
17746
17747 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
17748
17749         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
17750           in the background of the owning form. Fixes #77332
17751
17752 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
17753
17754         * MimeIcon.cs: Fix for #77409
17755
17756 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
17757
17758         * XplatUIX11GTK.cs: Initial import
17759
17760 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
17761
17762         * FixedSizeTextBox: fixes class signature
17763
17764 2006-01-30  Jackson Harper  <jackson@ximian.com>
17765
17766         * FixedSizeTextBox.cs: New internal class that represents a
17767         textBox that will not be scaled.
17768         * TreeView.cs:
17769         * ComboBox.cs:
17770         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
17771         standard TextBox.
17772                 
17773 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
17774
17775         * XplatUIX11.cs: Retrieve default screen number instead of
17776           assuming 0. Attempted fix for #77318
17777
17778 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
17779
17780         * XplatUIWin32.cs: 
17781           - GetWindowPos: When a window is parented by FosterParent, use 
17782             the desktop instead of FosterParent as the base to get coordinates
17783           - CreateWindow: Don't make FosterParent the parent window for Popups
17784             if we don't want a taskbar entry, Popups automatically don't get one
17785         * Hwnd.cs: Need to call remove to actually remove the key from the
17786           hash table
17787
17788 2006-01-30  Mike Kestner  <mkestner@novell.com>
17789
17790         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
17791
17792 2006-01-30  Jackson Harper  <jackson@ximian.com>
17793
17794         * TreeView.cs:
17795         * TreeNode.cs: Raise events no matter how the treenode is
17796         checked. Patch by Don Edvalson.
17797
17798 2006-01-30  Jackson Harper  <jackson@ximian.com>
17799
17800         * TreeNode.cs: Signature fix.
17801
17802 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
17803
17804         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
17805
17806 2006-01-20  Mike Kestner  <mkestner@novell.com>
17807
17808         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
17809         event forwarding when menus are active.
17810         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
17811         Most of the patch is pdb's with a little rework.
17812
17813 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
17814
17815         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
17816           Removed GetMenuDC and ReleaseMenuDC methods; replaced
17817           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
17818         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
17819         * InternalWindowManager.cs: Added use of PaintEventStart/End to
17820           handling of WM_NCPAINT message, now passing the PaintEventArgs to
17821           the PaintWindowDecorations method
17822         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
17823         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
17824         * MenuAPI.cs: Made tracker window invisible
17825         * XplatUIWin32.cs:
17826           - Removed GetMenuDC and ReleaseMenuDC methods
17827           - Implemented the client=false path for PaintEventStart and
17828             PaintEventEnd
17829
17830 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
17831
17832         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
17833         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
17834           styles
17835         * Form.cs: 
17836           - MaximizeBox, MinimizeBox: Recreate the handle when setting
17837             the style
17838           - CreateParams: Reworked the styles to match MS look'n'feel,
17839             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
17840             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
17841
17842 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
17843
17844         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
17845           window is not mapped, since otherwise every form that's being 
17846           created is considered minimized, which is wrong.
17847         * Form.cs: Catching the exception and returning our internal value
17848           instead
17849
17850 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
17851
17852         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
17853           SetWindowMinMax() to have means to tell the driver about the minimum,
17854           maximum and maximized state window sizes. (Part of the fix for #76485)
17855         * Form.cs:
17856           - Implemented tracking of minimum and maximum window size, now calling
17857             new SetWindowMinMax() driver method to tell the driver (Part of the
17858             fix for #76485)
17859           - Finished handling of WM_GETMINMAXINFO method, now setting all values
17860             (Completes fix for #76485)
17861           - Calling new SetWindowMinMax driver method when the handle for a 
17862             form is created, to make sure the driver knows about it even if
17863             the values have been set before the window was created
17864           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
17865             to avoid messing up our anchoring calculations (partial fix
17866             for #77355)
17867         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
17868         * XplatUIX11.cs:
17869           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
17870           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
17871             (and presumably other freedesktop.org compliant WMs). Left the
17872             assumption unmapped=minimized, needed for SetVisible to work.
17873           - Now setting the window state when creating windows
17874           - Fixed SetVisible to consider/set the window state when mapping
17875             a Form. We cannot set the state before it's mapped, and we cannot
17876             use Form.WindowState once it's mapped (since it would ask the
17877             driver and get 'normal'. Therefore, we grab the state before
17878             mapping, map, and then set state.
17879           - Implmemented SetWindowMinMax method; Metacity does not seem to
17880             honor the ZoomHints, though.
17881         * XplatUIWin32.cs:
17882           - Removed MINMAXINFO (moved to XplatUIStructs)
17883           - Added SetWindowMinMax stub (on Win32 the only way to set that
17884             information is in response to the WM_GETMINMAXINFO message, which
17885             is handled in Form.cs)
17886           - Added logic to SetVisible to set the proper window state when a 
17887             form is made visible (fixes #75720)
17888
17889 2006-01-26  Jackson Harper  <jackson@ximian.com>
17890
17891         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
17892         same way we handle them with Invoke.
17893
17894 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
17895
17896         * Form.cs:
17897           - Added tracking of window state so CreateParams can return
17898             the appropriate style
17899           - Moved setting of WS_CAPTION style in CreateParams to allow
17900             styles without caption
17901         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
17902           control if the TextBox property is accessed. Fixes #77345
17903         * Control.cs:
17904           - get_Created: now uses is_disposed and is_created to determine
17905             return value (suggested by Jackson)
17906           - CreateHandle: No longer exits if the handle is being recreated
17907           - RecreateHandle: If the handle is not yet created call the 
17908             appropriate method to create either control or handle. If the
17909             control is already created CreateHandle will simply exit instead
17910             of just creating the handle
17911         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
17912           now SendMessage WM_DESTROY directly to the control when DestroyWindow
17913           is called.
17914         * XplatUIX11.cs: 
17915           - When DestroyWindow is called, instead of waiting for the 
17916             DestroyNotification from X11, we directly post it to the WndProc
17917             and immediately dispose the hwnd object.
17918             Same applies to DestroyChildWindows, and this obsoletes the
17919             expose_pending tracking. Contrary to Win32 behaviour we destroy our
17920             child windows before our own, to avoid X11 errors.
17921           - Removed the direct sending of WM_PAINT on UpdateWindow
17922         * XplatUIWin32.cs:
17923           - Reworked DoEvents and GetMessage to allow access to internal queue
17924             even when trying non-blocking access to the queue.  Fixes #77335. 
17925             Based on a patch suggestion by Don Edvalson. The new private
17926             GetMessage can now also be used as a backend for a PeekMessage
17927             frontend version.
17928         * XplatUI.cs: Improved debug output for CreateWindow
17929
17930 2006-01-25  Jackson Harper  <jackson@ximian.com>
17931
17932         * Help.cs: Allow param to be null. Patch by Don Edvalson.
17933
17934 2006-01-24  Jackson Harper  <jackson@ximian.com>
17935
17936         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
17937         when we have a MaxDropItems lower then the selected index.
17938
17939 2006-01-24  Jackson Harper  <jackson@ximian.com>
17940
17941         * Control.cs: Don't allow selection of non visible controls, allow
17942         selection of controls without parents.
17943
17944 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
17945
17946         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
17947         * DataGridDrawingLogic.cs: Add editing row only when is necessary
17948
17949 2006-01-23  Jackson Harper  <jackson@ximian.com>
17950
17951         * UpDownBase.cs: Make the textbox handle all the selection and
17952         tabbing. This fixes tabing to updown controls.
17953
17954 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
17955
17956         * TextBoxBase.cs: fixes exception thown the object was null
17957
17958 2006-01-23  Jackson Harper  <jackson@ximian.com>
17959
17960         * ButtonBase.cs: Just use the base CreateParams. They set
17961         visibility and enabled correctly.
17962         * ComboBox.cs:
17963         * TrackBar.cs:
17964         * MonthCalendar.cs: Lets let the base set as much of the
17965         createparams as possible so we don't have duplicate code all over
17966         the place.
17967
17968 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
17969
17970         * ThemeGtk.cs: Added TrackBar and some experimental code to
17971           get double buffering back
17972
17973 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
17974
17975         * DataGrid.cs: Allows row number set internally higher than the last
17976         when creating a new row. Restores the editing functionality.
17977
17978 2006-01-20  Mike Kestner  <mkestner@novell.com>
17979
17980         * MimeIcon.cs: delay Image creation until the icons are accessed
17981         instead of creating 190 scaled images on GnomeHandler startup.
17982
17983 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
17984
17985         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
17986           first call base before processing the event. Fixes #77279
17987
17988 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
17989
17990         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
17991           that the stride for the GDI bitmap would match the stride of
17992           a DIB or a Cursor.
17993
17994 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
17995
17996         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
17997
17998 2006-01-19  Jackson Harper  <jackson@ximian.com>
17999
18000         * ComboBox.cs: Hookup the text controls keydown event so we get
18001         those when the text control has the focus.
18002
18003 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
18004
18005         * Label.cs: Now using the base events instead of defining new ones;
18006           this allows us to just call the base properties without having to
18007           duplicate all base property logic 
18008
18009 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
18010
18011         * Label.cs: A label by default is not a tabstop (Fixes one of our
18012           failing nunit tests)
18013
18014 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
18015
18016         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
18017         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
18018
18019 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
18020
18021         * Cursor.cs: Reimplemented creating cursor bitmaps without using
18022           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
18023           This fixes #77218
18024         * XplatUIWin32.cs: 
18025           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
18026             constructor creates images that can't be saved. Part of the fix
18027             for #76103
18028           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
18029           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
18030             bug fix for handling window state in forms properly)
18031
18032 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
18033
18034         * ThemeGtk.cs: Simplify ScrollBar drawing
18035
18036 2006-01-18  Jackson Harper  <jackson@ximian.com>
18037
18038         * Splitter.cs: Set the default dock style for the splitter control
18039         in the constructor.
18040
18041 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
18042
18043         * ThemeGtk.cs: Corrected StateType and ShadowType for
18044           gtk_paint_box
18045
18046 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
18047
18048         * Control.cs: Make use of Theme.DoubleBufferingSupported
18049         * ThemeGtk.cs:
18050           - Added drawing for flat style buttons
18051           - Added ScrollBar drawing
18052
18053 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
18054
18055         * ThemeClearlooks.cs: Removed some unneeded code.
18056         * ThemeGtk.cs: First part of ThemeGtk enhancements.
18057
18058 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
18059
18060         * LinkLabel.cs: We need to update the hover drawing when
18061           leaving the control as well.
18062
18063 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
18064
18065         * DataGrid.cs: Clicking on non empty areas in the columns
18066            area was giving an exception
18067
18068 2006-01-17  Jackson Harper  <jackson@ximian.com>
18069
18070         * ThemeWin32Classic.cs:
18071         * ListView.cs: Do not draw/clip the headers when the header style
18072         is None.
18073
18074 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
18075
18076         * DataGrid.cs: Fixes 77260
18077         
18078 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
18079
18080         * DataGrid.cs: Clicking on a column on a empty grid was giving
18081           an exception
18082
18083 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
18084
18085         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
18086           or any keypress will crash the grid.
18087
18088 2006-01-17  Mike Kestner  <mkestner@novell.com>
18089
18090         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
18091         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
18092         invisible/previously-visible items.
18093         [Fixes #76909]
18094
18095 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
18096
18097         * ThemeClearlooks.cs:
18098         - Added CL_Draw_Button method; now other theme controls that are 
18099           not derived from button or do not have a button can draw buttons
18100           too
18101         - Updated ComboBox drawing
18102         - Beautified RadioButton drawing
18103         - Corrected drawing of bottom and left tabs
18104         - Beautified DateTimePicker and MonthCalendar
18105         - Added CPDrawButton and CPDrawRadioButton
18106
18107 2006-01-16  Jackson Harper  <jackson@ximian.com>
18108
18109         * ComboBox.cs: Set the initial value of the scrollbar to the
18110         current index. Reduce the numbers of refreshs and IndexOfs called.
18111
18112 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
18113
18114         * FileDialog.cs: When the file listview is focused hitting the
18115           backspace key moves the fileview to the parent directory
18116
18117 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
18118
18119         * Form.cs: 
18120           - Added RecreateHandle call when changing taskbar visibility to 
18121             trigger reparenting in Win32 driver (Fixes #75719)
18122           - If a window has minimize or maximize buttons, it cannot have
18123             a help button
18124         * XplatUIWin32.cs:
18125           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
18126             the toplevel form with FosterParent (A toolwindow not on the
18127             taskbar) (Fixes #75719)
18128           - Made FosterParent a toolwindow
18129
18130 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
18131
18132         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
18133
18134 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
18135
18136         * ToolTip.cs: If SetToolTip is called from a control and the mouse
18137           is currently over that control, make sure that tooltip_window.Text
18138           gets updated
18139
18140 2006-01-13  Mike Kestner  <mkestner@novell.com>
18141
18142         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
18143
18144 2006-01-13  Jackson Harper  <jackson@ximian.com>
18145
18146         * TreeView.cs: On MS GetNodeAt never actually factors in the X
18147         value passed.  Also redraw the selected node when we recieve
18148         focus, so tabbing between trees works correctly.
18149
18150 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
18151
18152         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
18153           ~/.gconf/%gconf-tree.xml, so use
18154           .gconf/desktop/gnome/interface/%gconf.xml
18155
18156 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
18157
18158         * TextControl.cs: Draw text in gray if control is disabled
18159
18160 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
18161
18162         * TreeView.cs: Draw the focus rectangle outside the highlight, to
18163           make sure it's always visible. Fixes #76680.
18164
18165 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
18166
18167         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
18168
18169 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
18170
18171         * PageSetupDialog.cs: Added.
18172         * PrintDialog.cs: Attributes.
18173         * PrintPreviewControl.cs: Updates.
18174         * PrintPreviewDialog.cs: Updates.
18175         
18176 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
18177
18178         * Control.cs: Undid my selection check fix, since it's not needed
18179         * TextBoxBase.cs:
18180           - Now considering the presence of hscroll/vscroll when sizing
18181             vscroll/hscroll respectively. Fixed bug #77077
18182           - Added Left/Up/Down/Right to IsInputKey list to prevent
18183             ContainerControl from stealing them. This fixes what I broke
18184             with my last checkin.
18185
18186 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
18187
18188         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
18189           I finally understand how the property can be set without a setter :-)
18190
18191 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
18192
18193         * Application.cs:
18194           - Switched RunLoop to use static Message.Create to create a 
18195             Message object
18196           - Added PreProcessMessage call in runloop for keyboard events; this
18197             is part of the fix for #77219, I overlooked this originally in the
18198             MSDN doc for PreProcessMessage
18199         * Control.cs:
18200           - Removed call to PreProcessMessage from handling of keyboard 
18201             messages; it's supposed to be done in the message pump
18202           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
18203             per MSDN documentation.
18204           - IsInputChar: All chars are input chars by default; removed the 
18205             parent calling chain, MS does not document that
18206           - PreProcessMessage: If IsInputChar is true, we want to return false
18207             to allow dispatching of the message
18208           - When selecting the next control, now also check that we're not
18209             selecting ourselves again and therefore return a false positive.
18210         * TextBoxBase.cs:
18211           - Tried to match return values for IsInputKey and ProcessDialogKey
18212             to what MS returns; moved processing of our special keys outside
18213             ProcessDialogKey since MS does not seem to return true on those.
18214           - Moved code that previously was in ProcessDialogKey into new private
18215             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
18216           - Reworked handling of WM_CHAR to not have to duplicate code from
18217             Control.cs anymore, instead we simply call down to base.
18218            
18219 2006-01-12  Jackson Harper  <jackson@ximian.com>
18220
18221         * ComboBox.cs: We always need to refresh the text area when
18222         EndUpdate is called. Fixes the combobox in the file dialog.
18223         * Control.cs: Don't create the creator_thread until the controls
18224         handle is created.  Also in InvokeRequired we check if the
18225         creator_thread is null. This gives the effect of InvokeRequired
18226         returning true if the controls handle is not created yet, and
18227         matches MS.
18228
18229 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
18230
18231         * XplatUI.cs:
18232           - Added StartLoop() driver method. This is used to allow drivers to
18233             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
18234             loop for a particular thread
18235           - Added EndLoop() driver method. This is called once the message
18236             pump for the thread is shut down
18237           - Added SupportsTransparency method to allow the driver to indicate
18238             opacity support for windows
18239         * Form.cs:
18240           - Removed TODO attribute, completed AllowTransparency property
18241           - Added documented logic to Opacity
18242         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
18243           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
18244           versions of CompatibleTextRendering
18245         * X11Structs.cs: Added opacity atom to our atom enumeration
18246         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
18247           of a form might be set before it's reparented by the WM, and we need
18248           the opacity value without calling up to Form)
18249         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
18250           SupportsTransparency() driver methods
18251         * Application.cs: Now calling StartLoop and EndLoop driver methods
18252         * XplatUIX11.cs:
18253           - Added opacity atom registration
18254           - Added StartLoop()/EndLoop() methods. They're empty right now but
18255             will need to get implemented when we switch to a per-thread queue
18256           - Implemented SupportsTransparency() method
18257           - Implemented SetWindowTransparency() method
18258           - Added support for setting the opacity value when a window is
18259             reparented (since the opacity needs to be set on the WM frame)
18260         * XplatUIOSX.cs, XplatUIWin32.cs:
18261           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
18262
18263 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
18264
18265         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
18266
18267 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
18268
18269         * FileDialog.cs: Added ToolTip for MWFFileView
18270         * MimeIcon.cs: Rewrote GnomeHandler.
18271           - Get currently used gnome icon theme from
18272             ($HOME)/.gconf/%gconf-tree.xml
18273           - Make use of inherited icon themes
18274           - Support SVG icon themes like Tango via librsvg
18275
18276 2006-01-12  Miguel de Icaza  <miguel@novell.com>
18277
18278         Revert's Jackson's revert which broke 2.0 builds.   Fix both
18279         builds. 
18280         
18281         * Application.cs: Move the use_compatible_text_rendering outside
18282         the NET_2_0 define.  If we ever need to use the
18283         use_compatible_text_rendering on the individual controls they will
18284         access the variable from the common shared code paths.
18285
18286 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
18287
18288         * XplatUI.cs:
18289           - Added more granular debug options
18290           - Added method to print both window text and id
18291           - Switched debug output to use new Window() debug method
18292           - Added IsEnabled() driver method
18293           - Added EnableWindow() driver method
18294         * Form.cs:
18295           - Removed end_modal; no longer needed, new loop handles termination
18296             via 'closing' variable
18297           - If form is modal, setting DialogResult will now initiate loop
18298             termination via 'closing' variable
18299           - Added support for is_enabled/WS_DISABLED to CreateParams
18300           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
18301             does all the work
18302           - Removed code that's now in RunLoop from ShowDialog()
18303           - Added various documented sanity checks to ShowDialog()
18304           - Added handling of WM_DESTROY message; we set 'closing' on getting
18305             the message to indicate the message pump to terminate
18306           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
18307             send by the Application.ExitThread method. (We send the message
18308             to destroy the window after all other events have been
18309             processed through the queue, instead of destroying the handle 
18310             directly)
18311           - Moved code from Close() method to WM_CLOSE handler; added logic
18312             to only send close-related events if the form is not displayed
18313             modal
18314         * Splitter.cs (..ctor): Fixed typo in resource name
18315         * Control.cs:
18316           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
18317             brush now
18318           - set_Cursor: Now only setting calling into XplatUI if the handle for
18319             the control is already created; this avoids implict handle creation
18320             or crashes if it's not created
18321           - set_Enabled: Now setting the enabled state via the new driver method
18322             instead of just tracking it
18323           - CreateParams: Added logic to set WS_DISABLED based on enabled state
18324           - CreateControl: Reordered event firing and method calls to more
18325             closely fire events in the order MS does. Now setting the
18326             enabled state in the driver when creating the control.
18327           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
18328             match MS order
18329         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
18330           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
18331         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
18332         * Hwnd.cs:
18333           - Added tracking of window enabled state (get_Enabled/set_Enabled)
18334           - Added EnabledHwnd property to easily allow a driver to find the
18335             handle of the first enabled window in the parent chain (this is
18336             used by drivers to pass up input events of disabled windows)
18337         * XplatUIDriver.cs: Added IsEnabled() method
18338         * Application.cs:
18339           - Removed crude and obsolete exiting tracking variable
18340           - Removed internal ModalRun(); replaced by RunLoop()
18341           - Implemented private CloseForms() method to allow closing all 
18342             windows owned by a particular (or all) threads
18343           - Exit() now properly closes all windows without forcing the message
18344             pump to quit
18345           - Removed obsolete InternalExit() method
18346           - Changed Run() methods to use new RunLoop() message pump
18347           - Implemented new RunLoop() method for both modal and non-modal forms
18348         * CommonDialog.cs:
18349           - get_CreateParams: Added setting of WS_DISABLED
18350           - Simplified ShowDialog(); now all the work is done in RunLoop(),
18351             invoked via Form.ShowDialog()
18352         * NativeWindow.cs: We don't remove the window from the collection when
18353           the handle is destroyed; there might still be messages for it in the
18354           queue (mainly the resulting WM_DESTROY); instead it will be removed
18355           when Control calls InvalidateHandle in the WM_DESTROY handler
18356         * XplatUIX11.cs:
18357           - CreateWindow: Added logic to handle the WS_DISABLED window style
18358           - EnableWindow: Implemented based on Hwnd.Enabled
18359           - GetMessage: Reset PostQuitState so the method can be called again
18360           - Implemented support for disabled windows (passing messages to the
18361             first enabled parent) in handling all input messages
18362           - Added optimizations for handling Expose events
18363           - Implemeted new driver method IsEnabled()
18364           - Now always resetting paint pending tracking vars when we start paint
18365           - Re-implemented UpdateWindow via just sending a WM_PAINT message
18366         * XplatUIOSX.cs: Added IsEnabled method stub
18367         * XplatUIWin32.cs: Implemented new IsEnabled() method
18368
18369 2006-01-11  Jackson Harper  <jackson@ximian.com>
18370
18371         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
18372         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
18373         variables a little.
18374         * ColorDialog.cs: Clear out the old form before adding the new
18375         panel.  
18376
18377 2006-01-11  Jackson Harper  <jackson@ximian.com>
18378
18379         * X11Dnd.cs: Make sure to add all the text formats when adding
18380         strings to the data object.
18381         * TreeNodeCollection.cs: When adding to a sorted tree we need to
18382         do some redrawing too.  Also change the UpdateNode to an
18383         UpdateBelow so the newly added node gets painted.
18384         
18385 2006-01-11  Miguel de Icaza  <miguel@novell.com>
18386
18387         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
18388         LinkLabel.cs, PropertyGrid.cs: Implement the
18389         UseCompatibleTextRendering property for 2.x
18390
18391         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
18392
18393 2006-01-11  Jackson Harper  <jackson@ximian.com>
18394
18395         * TreeView.cs: Use the property for setting the selected node so
18396         the correct events get raised.
18397         * TreeNode.cs: Update the tree when the fore/back colours of a
18398         node are set.
18399
18400 2006-01-10  Jackson Harper  <jackson@ximian.com>
18401
18402         * TreeView.cs: Allow setting SelectedNode to null.
18403
18404 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18405
18406         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
18407
18408 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18409
18410         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
18411
18412 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18413
18414         * PrintDialog.cs: Added attributes and set default property values.
18415
18416 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18417
18418         * PrintControllerWithStatusDialog.cs: 
18419         Added PrintControllerWithStatusDialog.
18420
18421 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18422
18423         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
18424         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
18425
18426 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
18427
18428         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
18429
18430 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
18431
18432         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
18433         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
18434
18435 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
18436
18437         * MimeIcon.cs: Added internal class SVGUtil.
18438
18439 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
18440
18441         * FileDialog.cs: Don't crash if there are two files with the
18442           same name but different locations.
18443
18444 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
18445
18446         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
18447         dates across multiple month grids. Used to not highlight entire 
18448         month, but does now.
18449         
18450 2006-01-06  Jackson Harper  <jackson@ximian.com>
18451
18452         * MonthCalendar.cs: Removed DoEvents call to prevent a running
18453         message loop. Change timer intervals to numbers that seem more
18454         natural.
18455
18456 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
18457
18458         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
18459           object for location info since screen object is now implemented.
18460
18461 2006-01-05  Jackson Harper  <jackson@ximian.com>
18462
18463         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
18464         * AsyncMethodResult.cs: We no longer use a WeakReference for the
18465         AsyncMethodResult, this is because we ALWAYS want the
18466         ManualResetEvent to get set.
18467         * Control.cs: When disposing use an async invoke to call shutdown
18468         code, so that thigns don't block on the finalizer thread.  Also
18469         check if we even have a message loop before trying to send
18470         messages, if we don't then don't bother sending messages.
18471         - No more weak references for async methods
18472         * XplatUIDriver.cs: No more weak references for async methods.
18473
18474 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
18475
18476         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
18477           returns two FontFamily with the same name
18478
18479 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
18480
18481         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
18482           drawing disabled text. Instead using the ColorGrayText color
18483
18484 2006-01-04  Jackson Harper  <jackson@ximian.com>
18485
18486         * TreeNode.cs: redraw the node when its image index is changed.
18487
18488 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
18489
18490         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
18491           time I checked there are no others like it.
18492
18493 2006-01-04  Jackson Harper  <jackson@ximian.com>
18494
18495         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
18496         this gives the behavoir I was looking for.
18497         * Control.cs: Special case Invoking EventHandlers, this matches MS
18498         and fixes part of bug #76326.
18499
18500 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
18501
18502         * ThemeClearlooks.cs, FileDialog.cs:
18503           - Reflect the latest Theme class changes
18504           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
18505             with DateTime
18506             
18507 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
18508
18509         * Theme.cs: Cache UI resource images and resize them if needed
18510
18511 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
18512
18513         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
18514           is called. This fixes the crash in Nexxia when setting the font
18515           attributes in the chat. [However, RTF needs a look-over to make sure
18516           that all SelectionXXX methods handle the special case that selection
18517           is empty and therefore the change must be applied to all text starting
18518           at the cursor/selection start]
18519
18520 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
18521
18522         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
18523           XplatUIOSX.cs: Added SendMessage and PostMessage methods
18524         * X11Keyboard.cs: Switched to new way of calling PostMessage
18525
18526 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
18527
18528         * Theme.cs: Added theme interface for images to allow the theme to
18529           control what images are used for things like FileDialog, MessageBox
18530           icons, etc.
18531         * MessageBox.cs: Now uses the new Theme icon/image interfaces
18532
18533 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
18534
18535         * FileDialog.cs:
18536           - Removed some dead code
18537           - Opening a recently used file does work now
18538           - Small UI enhancements
18539           - Refactoring
18540
18541 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
18542
18543         * FileDialog.cs: Forgot too add __MonoCS__
18544
18545 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
18546
18547         * FileDialog.cs: We are able to read recently used files now let's
18548           go on and write them.
18549
18550 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
18551
18552         * FileDialog.cs: Breathe some life into "last open"/"recently used"
18553           button
18554         * MimeIcon.cs: Do a check for the top level media type also
18555
18556 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
18557
18558         * ThemeClearlooks.cs:
18559           - Added CPDrawStringDisabled
18560           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
18561             some chars if the text doesn't fit into text_rect
18562           - DrawListViewItem: If View = View.LargeIcon center the image;
18563             rewrote the drawing of ListViewItem.Text if View = 
18564             View.LargeIcon
18565
18566 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
18567
18568         * MimeIcon.cs: Use default KDE icon theme if there is no
18569           "48x48" directory for the current icon theme, fixes #77114
18570         * Mime.cs: Disable not working and actually not used code. 
18571         * ThemeWin32Classic.cs:
18572           - Replace "new SolidBrush" in GetControlBackBrush and
18573             GetControlForeBrush with ResPool.GetSolidBrush
18574           - Changed DrawListViewItem from private to protected virtual
18575         * FileDialog.cs:
18576           - Added form.MaximizeBox = true
18577           - Don't throw an exception if there is a broken symbolic link
18578
18579 2005-12-23  Jackson Harper  <jackson@ximian.com>
18580
18581         * TabControl.cs: Give the panels focus, keyboard navigation is
18582         fixed so this works correctly now.
18583         - We need these key events also.
18584         * ToolBar.cs: Remove some of the poor mans double buffering.
18585         
18586 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
18587
18588         * ComboBox.cs: The internal TextBox now returns the focus.
18589
18590 2005-12-23  Jackson Harper  <jackson@ximian.com>
18591
18592         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
18593
18594 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
18595
18596         * Control.cs: Removed debug code
18597         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
18598           implicit children
18599
18600 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
18601
18602         * Control.cs: When creating the control, update the Z-order after
18603           all it's children are created, too. (Fixes nexxia not showing
18604           picturebox bug)
18605
18606 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
18607
18608         * Control.cs: Do not update the anchoring distances if layout is
18609           suspended, instead do it once layout is resumed
18610
18611 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
18612
18613         * Control.cs: 
18614           - After many hours of debugging, for both Jackson and
18615             myself, it turns out that it helps to set the parent of a control
18616             if you want to actually see it onscreen. In the spirit of that
18617             discovery, we're now setting the parent of the control and
18618             it's children when the control's handle is created. This fix
18619             will make Lutz Roeder's Reflector run happily. 
18620           - now just creating the handle instead of the whole control when
18621             getting a graphics context for the control.
18622
18623 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
18624
18625         * ScrollableControl.cs: When calculating the canvas, don't consider
18626           the scrollbar widths. Instead, predict if horizontal scrollbar
18627           will affect canvas when deciding on vertical display and vice versa.
18628
18629 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
18630
18631         * RichTextBox.cs: Set default RTF font for documents that don't
18632           have a font table (Fixes #77076)
18633
18634 2005-12-22  Jackson Harper  <jackson@ximian.com>
18635
18636         * TextBoxBase.cs: It's difficult to do, but you can have an empty
18637         clipboard. This prevents a NullRef in that case.
18638         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
18639         clipboard. PRIMARY is for the currently selected text only. (We
18640         should implement PRIMARY at some point.
18641
18642 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
18643
18644         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
18645           a Unicode function with a structure that was defined in Ansi way.
18646           This fixes #76942.
18647
18648 2005-12-21  Jackson Harper  <jackson@ximian.com>
18649
18650         * StatusBar.cs: Statusbar handles its fore/back colours on it's
18651         on. Because thats how it rolls. (and this avoids it using ambient
18652         colours).
18653         * ThemeWin32Classic.cs: Use the proper back color for filling.
18654         * Menu.cs: Use the system menu bar color for drawing menu
18655         bars. Using the window back color will bring ambient colours into
18656         the picture.
18657
18658 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
18659
18660         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
18661           Bitmaps were created and not disposed.
18662
18663 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
18664
18665         * Control.cs (CreateControl): Don't do anything if the control is
18666           already created, otherwise we'd fire the OnCreated event more than
18667           once
18668
18669 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
18670
18671         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
18672           will always match. Instead return -1. Fixes #76464.
18673
18674 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
18675
18676         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
18677           neither the beginning nor the end of the line (Fixes bug #76479)
18678
18679 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
18680
18681         * Control.cs:
18682           - ControlNativeWindow.ControlFromHandle(): Now handling situation
18683             where handle is invalid
18684           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
18685             instead of slower linear search
18686         * NativeWindow.cs: Don't remove the window from the hashtable until
18687           after the driver has destroyed it (since the driver might use
18688           Control.FromHandle to lookup the control object
18689         * Hwnd.cs: Added DestroyPending property to track if a window is 
18690           already destroyed as far as the driver is concerned and only hasn't
18691           yet notified the control
18692         * XplatUIX11.cs:
18693           - Activate(): Check if the window is still valid before using the 
18694             handle
18695           - Implemented DestroyChildWindow() method to mark child windows as
18696             destroyed when a window is destroyed. This prevents situations 
18697             where we might call an X method based on queued events for a
18698             window that already has been destroyed but we haven't yet pulled
18699             the destroy method from the queue.
18700           - Added a call to the new DestroyChildWindow() method to the drivers
18701             DestroyWindow code. Also now marking the destroyed window itself
18702             as pending
18703
18704 2005-12-20  Jackson Harper  <jackson@ximian.com>
18705
18706         * StatusBar.cs:
18707         * StatusBarPanel.cs: Don't calculate panel sizes on draw
18708         anymore. Just do them when needed, also track the rects of panels
18709         so that we can optimize refreshing more in the future.
18710
18711 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
18712
18713         * ColorDialog.cs: Fixed focus drawing in small color controls
18714
18715 2005-12-19  Jackson Harper  <jackson@ximian.com>
18716
18717         * InternalWindowManager.cs:
18718         * MdiWindowManager.cs: Cleanup some coordinate system changes so
18719         moving windows works properly.
18720
18721 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
18722
18723         * Control.cs: 
18724           - Removed call to InitLayout() from SetBoundsCore(); doc says
18725             it's only called when a control is added to a container
18726           - Split InitLayout logic, moved to separate UpdateDistances() method
18727             since we need to perform those calculations more often than just
18728             when adding the control to a container. (Needed to fix #77022)
18729           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
18730           - Reduced the OnBindingContextChanged events count, don't send them
18731             unless the control is created, we still aren't totally matching
18732             MS, but I can't quite figure out some of their rules
18733
18734 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
18735
18736         * ThemeClearlooks.cs: Corrected distance between ProgressBar
18737           stripes
18738
18739 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
18740
18741         * ThemeClearlooks.cs:
18742           - Updated ProgressBar drawing
18743           - Corrected drawing of ScrollBars and scroll buttons
18744           - Some temporary fixes for minor pixel artefacts
18745
18746 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
18747
18748         * Control.cs:
18749           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
18750             cause events to be sent in the same order as MS does.
18751           - Added ChangeParent() method to trigger various OnXXXChanged events
18752             that need to be fired when a parent changes (This is a reworking
18753             of the patch from r54254, with the X11 errors fixed)
18754           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
18755             since on MS we get OnLayoutChanged events when calling Clear()
18756           - Changed Enabled property to consider parent state as well, if a
18757             parent is not enabled, the control will not be either
18758           - Changed Parent property to simply call Controls.Add() since that
18759             now does all the work required, this way we avoid code duplication
18760           - Threw in a few OnBindingsContextChanged calls to try and match
18761             when MS sends them. We seem to send a few too many, though.
18762           - Added call to CreateControl when adding the control to a parent.
18763             We were never calling CreateControl. Still needs some work, in
18764             some places we treat HandleCreated and ControlCreated as equal, 
18765             which is wrong
18766           - Removed obsolete commented out code from UpdateZOrder()
18767
18768 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
18769
18770         * ThemeClearlooks.cs: Updated TrackBar drawing.
18771
18772 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
18773
18774         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
18775
18776 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
18777
18778         * FileDialog.cs: Add the Help button and the open readonly
18779           checkbox only if needed
18780
18781 2005-12-16  Jackson Harper  <jackson@ximian.com>
18782
18783         * Control.cs: Make sure we have an active menu before trying to
18784         process commands on it. Prevents menu-less forms from crashing
18785         when Alt is pressed.
18786         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
18787         Dieter Bremes.
18788         * RichTextBox.cs: Expand statement to help out gmcs and fix the
18789         2.0 build.
18790
18791 2005-12-16  Jackson Harper  <jackson@ximian.com>
18792
18793         * InternalWindowManager.cs: Don't translate tool windows screen
18794         coordinates. This fixes windows 'bouncing' around when being moved.
18795
18796 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
18797
18798         * TextBoxBase.cs:
18799           - MaxLength now treats 2^31-1 equal to unlimited length (this is
18800             not quite MS compatible, MS uses that number only for single line
18801             and 2^32-1 for multi-line, but I figure it won't hurt keeping
18802             the limit at 2GB)
18803           - Now enforcing the MaxLength limit when entering characters
18804           - Added argument to internal Paste() method to track if it's called
18805             from programatically or via keyboard, since keyboard driven pastes
18806             need to enforce max-length
18807           - Added logic to Paste to only paste as many chars as MaxLength 
18808             allows
18809         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
18810         * TextControl.cs:
18811           - Added Length property to return number of characters in document
18812           - Added private CharCount property which only tracks actual chars
18813             in the document (no linefeeds) and fires event when CharCount
18814             changes
18815           - Added tracking of character count to all methods that alter it
18816           - Added LengthChanged event to allow applications to subscribe
18817             to any changes to the document
18818
18819 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
18820
18821         * TextBox.cs: 
18822           - Removed local password_char field (moved to TextBoxBase)
18823           - Now setting the document's password var when password is
18824             set
18825         * TextBoxBase.cs:
18826           - Added password_char field (needed here so MultiLine can
18827             access it)
18828           - Added logic to MultiLine property setter to set the document's
18829             variable when password display is allowed
18830           - Removed debug code and made some debug code conditional
18831         * TextControl.cs:
18832           - Added RecalculatePasswordLine() method to handle special password
18833             char only lines
18834           - Added PasswordChar property, also added related tracking vars
18835           - Draw() method now uses local text var for grabbing text to draw,
18836             this var is set to line.text unless we're doing password display,
18837             then it is set to the pre-generated all-password-chars line
18838           - Added calling RecalculatePasswordLine() method for password lines
18839
18840 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
18841
18842         * Hwnd.cs: 
18843           - Added Reparented property to allow tracking of Window Manager
18844             reparenting actions (which affect X/Y calculations of toplevel 
18845             windows)
18846           - Made ToString() print window handles in hex
18847         * XplatUIX11.cs:
18848           - AddConfigureNotify(): Now uses reparented state off Hwnd to
18849             determine if X/Y needs offsetting
18850           - AddConfigureNotify(): Fixed offset calculations
18851           - Now adds ReparentNotify messages into the queue
18852           - Now processes ReparentNotify messages and causes a 
18853             WM_WINDOWPOSCHANGED message to be sent upstream if a window
18854             is reparented (as most likely it's X/Y coordinates are changed
18855             due to that)
18856
18857 2005-12-14  Jackson Harper  <jackson@ximian.com>
18858
18859         * XplatUIX11.cs: Tool windows still need to respek focus.
18860
18861 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
18862
18863         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
18864           have a working release
18865
18866 2005-12-13  Jackson Harper  <jackson@ximian.com>
18867
18868         * Form.cs: Update styles after setting the border style regardless
18869         of whether or not the window is using a window manager.
18870
18871 2005-12-13  Jackson Harper  <jackson@ximian.com>
18872
18873         * Form.cs: We now hook into an internal window manager instead of just an
18874         MDI subsystem, this is so we can have properly behaving tool windows.
18875         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
18876         * InternalWindowManager.cs: New internal class that acts as a
18877         window manager for tool windows and as a base for mdi windows.
18878         * MdiWindowManager.cs: New class that acts as a window manager for
18879         mdi windows.
18880
18881 2005-12-12  Jackson Harper  <jackson@ximian.com>
18882
18883         * Control.cs: Updates so we match behavoir for for implicit
18884         controls. Fixes explosions in MDI.
18885
18886 2005-12-12  Jackson Harper  <jackson@ximian.com>
18887
18888         * Control.cs: Implement Invalidate (Region).
18889
18890 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
18891
18892         * Control.cs: 
18893           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
18894             the same events as MS does. MS fires events for each property 
18895             except, for unknown reasons, Cursor, when the control is reparented. 
18896             I can't seem to totally match add/remove since MS also fires some 
18897             VisibleChanged events, which makes no sense. Consolidated the
18898             parenting code into a separate method so it can be called from
18899             both Add and Remove. set_Parent no longer needs any special logic
18900             as it calls the parent's add method which implicitly fires
18901             all events
18902           - Removed some obsolete code and debug output
18903           - Enabled state is inherited from parents, if this is enabled
18904
18905 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
18906
18907         * Form.cs: Removed commented out code
18908
18909 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
18910
18911         * Control.cs:
18912           - Added internal version of Invoke, with additional argument 
18913             indicating if we're calling it from a Dispose() handler. That
18914             way we can avoid BeginInvoke throwing an exception if we're
18915             calling for an already destroyed window.
18916           - Added a dispose argument to BeginInvokeInternal, and made the
18917             check if a valid window handle chain exists conditional on
18918             it not being a dispose call
18919           - Removed code in DestroyHandle to destroy our children. Since we
18920             now handle the WM_DESTROY message we will catch all our children
18921             being destroyed.
18922           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
18923         * Form.cs:
18924           - Added a field to track the application context of the form.
18925           - No need to set closing variable as response to WM_CLOSE, instead
18926             we destroy the window. We also call PostQuitMessage if the form
18927             has an application context (which makes it the main app form,
18928             which, when closed terminates the app)
18929         * XplatUI.cs:
18930           - Dropped Exit() method, it's naming was confusing
18931           - Added PostQuitMessage() which causes GetMessage to return false
18932             once the message queue is empty
18933         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
18934           PostQuitMessage()
18935         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
18936           no longer a valid XplatUI method, but left it in since it's used
18937           internally. Added empty PostQuitMessage() method.
18938         * MenuAPI.cs: Replaced call to Exit() with call to
18939           PostQuitMessage, even though this is probably no longer needed.
18940         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
18941         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
18942         * Application.cs:
18943           - Replaced call to XplatUI.Exit() with PostQuitMessage()
18944           - Removed old debug code that would call XplatUI for exception
18945             display, enabled standard exception handling (Still not enabled
18946             though, until NativeWindow's ExternalExceptionHandler define
18947             is removed
18948         * NativeWindow.cs:
18949           - Added internal method to allow control to update NativeWindow
18950             after a window has been destroyed
18951           - Added handling of already destroyed windows when calling i
18952             DestroyWindow
18953           - Added removal of handle from list on ReleaseHandle
18954         * XplatUIX11.cs:
18955           - Dropped GetMessageResult var and related code
18956           - Added PostQuitState to field to track if PostQuitMessage has been
18957             called
18958           - Dropped Exit() method
18959           - Added PostQuitMessage() method
18960           - GetMessage now will return false if PostQuitState is set and no
18961             more messages are in the queue.
18962           - Expose handler will no longer generate WM_PAINT messages if we are
18963             in PostQuitState since it's very likely any windows have already
18964             been destroyed, and since Hwnd won't get updated until we have
18965             processed the DestroyNotify we'd be causing X errors.
18966         
18967 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
18968
18969         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
18970           Thanks to Mike for pointing out the err of my ways.
18971
18972 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
18973
18974         * Control.cs(PreProcessMessage): Moved menu handling back, but
18975           after all other key handling, to match MS (who handles Menu in
18976           DefWndProc)
18977         * Menu.cs (WndProc): Removed my brainfart
18978
18979 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
18980
18981         * Control.cs(PreProcessMessage): Removed special menu handling 
18982         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
18983
18984 2005-12-07  Mike Kestner  <mkestner@novell.com>
18985
18986         * Control.cs : special case SYSKEYUP so that we can adjust keynav
18987         state according in tracker.
18988         * Menu.cs : promote tracker field to base class and provide a tracker
18989         lookup capability.  Add/Remove shortcuts dynamically if the top menu
18990         has a tracker. Unparent items that are removed from the collection.
18991         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
18992         * Theme*.cs: add always_show_hotkeys field to support configurability
18993         of mnemonic display.  win32 doesn't show mnemonics until Alt is
18994         pressed.
18995
18996 2005-12-07  Jackson Harper  <jackson@ximian.com>
18997
18998         * MdiChildContext.cs: Use Control.ResetCursor.
18999         * Control.cs: ResetCursor needs to set the property so that the
19000         correct XplatUI call gets made.
19001
19002 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
19003
19004         * Control.cs: More fixes to make our key events match MS. We
19005           were not setting the modifier state on KeyData, and we were
19006           not generating any events when Alt was pressed with a key
19007           since handling of WM_SYSxxx was missing for the OnKey methods.
19008
19009 2005-12-07  Jackson Harper  <jackson@ximian.com>
19010
19011         * MdiChildContext.cs: reenable the sizing code.
19012         - When the mouse leaves a window reset its cursor.
19013
19014 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
19015
19016         * ThemeClearlooks.cs: Reflect latest Hwnd changes
19017
19018 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
19019
19020         * Hwnd.cs: Now using the theme 3d bordersize to calculate
19021           widths of Fixed3D borders
19022
19023 2005-12-07  Jackson Harper  <jackson@ximian.com>
19024
19025         * MdiClient.cs: Fix warnings. Earn Mike's love.
19026
19027 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
19028
19029         * ThemeClearlooks.cs:
19030           - Adjusted mouse over button color
19031           - Added first parts of CheckBox drawing
19032           - Added correct color for selected text background
19033           - Fixed ComboBox drawing
19034           - Added CPDrawBorder3D and CPDrawBorder
19035
19036 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
19037
19038         * XplatUIX11.cs: Added call to XBell for AudibleAlert
19039
19040 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
19041
19042         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
19043           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
19044           alert users via sound. We could add an enum arg with different
19045           types of alerts in the future
19046
19047 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
19048
19049         * Control.cs: Fix behaviour problems pointed out by Mike
19050
19051 2005-12-05  Mike Kestner  <mkestner@novell.com>
19052
19053         * StatusBarPanel.cs: add Invalidate method and hook it into all the
19054         prop setters.  Calls parent.Refresh for now, but could be maybe be
19055         optimized with an internal method on StatusBar at some point.
19056         [Fixes #76513]
19057
19058 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
19059
19060         * RichTextBox.cs: Implemented get_SelectionColor
19061
19062 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
19063
19064         * ThemeClearlooks.cs:
19065           - Removed dead code
19066           - Draw black button border only if button is Form.AcceptButton
19067           - Draw correct button color for pressed RadioButton if the mouse 
19068             has entered the button
19069           - Updated ProgressBar drawing!
19070           - Updated CPDrawSizeGrip drawing
19071           - Updated StatusBarPanel drawing
19072
19073 2005-12-05  Mike Kestner  <mkestner@novell.com>
19074
19075         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
19076         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
19077
19078 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
19079
19080         * ThemeClearlooks.cs: Initial check-in, activate with
19081           export MONO_THEME=clearlooks
19082         * ThemeEngine.cs: Added ThemeClearlooks
19083
19084 2005-12-03  Mike Kestner  <mkestner@novell.com>
19085
19086         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
19087         [Fixes #76897]
19088
19089 2005-12-02  Jackson Harper  <jackson@ximian.com>
19090
19091         * Form.cs: If the child form has no menu the default main menu is
19092         used as the active menu.
19093
19094 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
19095
19096         * ListBox.cs: Check if any items exist before trying to resolve 
19097           coordinates into items
19098
19099 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
19100
19101         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
19102           as the second color for the background hatch
19103
19104 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
19105
19106         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
19107         * RichTextBox.cs: FormatText position arguments are 1-based, now making
19108           sure that what we pass to FormatText is always 1-based. Fixes #76885
19109
19110 2005-11-29  Miguel de Icaza  <miguel@novell.com>
19111
19112         * NumericUpDown.cs (EndInit): When we are done initializing,
19113         reflect any updates on the UI.
19114
19115 2005-12-02  Jackson Harper  <jackson@ximian.com>
19116
19117         * ImplicitHScrollBar.cs:
19118         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
19119         their container controls.
19120         * TreeView.cs: Use the new implicit scrollbars.
19121
19122 2005-12-02  Jackson Harper  <jackson@ximian.com>
19123
19124         * TreeView.cs: Make top_node internal so the TreeNodeCollections
19125         can play with it.
19126         * TreeNodeCollection.cs: If we remove the topnode we need to
19127         update topnode to the next node in line.
19128         - When clearing nodes go through the same process as removing
19129         them, so they get depareneted and checked if they are top node.
19130
19131 2005-12-01  Jackson Harper  <jackson@ximian.com>
19132
19133         * TreeView.cs: When imagelists are used the image area is
19134         selectable as well as the text.
19135         - If there are no selected nodes select the first one.
19136         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
19137         so don't do it more then we need to.
19138
19139 2005-12-01  Jackson Harper  <jackson@ximian.com>
19140
19141         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
19142         that arrows can be scaled.
19143
19144 2005-12-01  Jackson Harper  <jackson@ximian.com>
19145
19146         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
19147         fail. Patch by Dieter Bremes
19148
19149 2005-11-30  Jackson Harper  <jackson@ximian.com>
19150
19151         * Form.cs: Property is 2.0 only
19152         * PrintDialog.cs: Signature fix.
19153
19154 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
19155
19156         * TextControl.cs: 
19157           - No longer artificially moves text 2 pixels down (now that we have
19158             borders this is no longer needed)
19159           - Added calcs for left, hanging and right indent
19160
19161 2005-11-23  Mike Kestner  <mkestner@novell.com>
19162
19163         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
19164
19165 2005-11-30  Jackson Harper  <jackson@ximian.com>
19166
19167         * MdiChildContext.cs: Set the cloned menus forms, as these don't
19168         get cloned as part of CloneMenu ().
19169         * Menu.cs: Make sure the parent of the items get set correctly
19170         when they are added.  And the owners are notified of the changes.
19171         * Form.cs: Create an ActiveMenu property, so that when MDI is used
19172         we can change the menu being displayed/handled by the form without
19173         changing the menu assosciated with the form.
19174         - Don't let Mdi children draw/handle menus.
19175         
19176 2005-11-30  Jackson Harper  <jackson@ximian.com>
19177
19178         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
19179         a MenuChanged event. Just to make the API a little more
19180         consistent.
19181         * MainMenu.cs:
19182         * MenuItem.cs: Use the new OnMenuChanged
19183         * MdiChildContext.cs: Handle menu merging.
19184         * Form.cs: Implement MergedMenu.
19185         
19186 2005-11-30  Jackson Harper  <jackson@ximian.com>
19187
19188         * Menu.cs: We were misusing Add. Add goes behind the specified
19189         index according to the docs, and does not replace the specified
19190         index. So I added an Insert method.
19191
19192 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
19193
19194         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
19195           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
19196           is for Jackson
19197         * RichTextBox.cs: Added calls to base for DnD events
19198
19199 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
19200
19201         * TextControl.cs:
19202           - Fixed drag-selection related crash; style fixes
19203           - Implemented undo class
19204             o Implemented method to capture document state for specified
19205               range in document tree
19206             o Implemented method to restore captured document state
19207             o Implemented cursor tracking
19208             o Implemented basic undo stack
19209           - Added undo cursor tracking to methods altering cursor location
19210           - Added undo tracking to selection deletion (still missing
19211             other text-altering hookups)
19212         * RichTextBox.cs:
19213           - Added SelectionLength property
19214           - Implemented CanPaste()
19215           - Implemented Paste()
19216           - Added missing protected methods
19217           - Fixed RTF->Document conversion; now uses font index 0 and color 
19218             index 0 as the default font for the parsed text
19219           - Fixed RTF<->Document font size translation
19220           - Fixed RTF generation, now properly handles cross-tag boundaries
19221             for single line selection
19222           - No longer always appends blank line to generated RTF
19223           - Removed TODOs
19224           - Added missing attributes
19225           - Hooked up undo-related methods
19226         * TextBoxBase.cs:
19227           - Implemented Copy()
19228           - Implemented Paste()
19229           - Implemented Cut()
19230           - Fixed caret mis-behaviour on backspace across line-boundaries
19231
19232 2005-11-29  Jackson Harper  <jackson@ximian.com>
19233
19234         * MdiClient.cs: Add a method for activating mdi children. Very
19235         basic right now. I imagine someday it might need more girth.
19236         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
19237         children windows names are added to the menu item.
19238         * ThemeWin32Classic.cs: Draw the arrow if the item is an
19239         mdilist. This happens regardless of whether or not there are any
19240         mdi windows to see in the list, and according to my tests happens
19241         before the items are even added. Also happens if there isn't even
19242         an mdi client to get windows from.
19243
19244 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
19245
19246         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
19247         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
19248
19249 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
19250
19251         * DataGridTableStyle.cs:
19252           - Create always the styles for the missing columns even if they are
19253             provided by the user (not default table style)
19254         * DataGrid.cs:
19255           - Fixes bug 76770
19256           - Fixes SetDataBinding (always re-attach source)
19257           - Fixes SetNewDataSource (only clear styles if they are not for 
19258             this source)
19259          -  Expands OnTableStylesCollectionChanged to handle style refresh 
19260             and remove properly
19261
19262 2005-11-29  Jackson Harper  <jackson@ximian.com>
19263
19264         * FileDialog.cs: Implement missing bits, remove some dead
19265         code.
19266         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
19267         creation of the panel so that the options set on the dialog are
19268         seen when the panel is created.
19269         * TreeView.cs: raise a click when items are clicked.
19270         
19271 2005-11-29  Jackson Harper  <jackson@ximian.com>
19272
19273         * MdiClient.cs: Pass some signature methods through to base.
19274
19275 2005-11-28  Jackson Harper  <jackson@ximian.com>
19276
19277         * ListView.cs: Raise the click event when items are clicked.
19278
19279 2005-11-28  Jackson Harper  <jackson@ximian.com>
19280
19281         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
19282         a nullref.
19283
19284 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
19285
19286         * ThemeNice.cs: - Removed 1 pixel bitmaps
19287           - Use SmoothingMode.AntiAlias where it makes sense
19288             (ScrollButton arrow for example)
19289           - Enhanced Button focus drawing
19290           - Fixed ComboBox drawing (no artefacts anymore, focus
19291             rectangle is back again, reduced size of ComboButton, etc.)
19292           - Fixed RadioButton focus drawing for Appearence.Button
19293           - Slight ScrollButton redesign
19294           - Some LinearGradientBrush size fixes
19295           - GroupBoxes have now rounded edges
19296           - Fixed StatusBar drawing
19297
19298 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
19299
19300         * ThemeNice.cs: - Remove dead code
19301           - use correct background colors for menus, etc.
19302           - Fake pixel drawing with 1 pixel bitmaps
19303
19304 2005-11-24  Jackson Harper  <jackson@ximian.com>
19305
19306         * MdiClient.cs: Size the scrollbars when resizing the window.
19307         - Resize the maximized windows when the client is resized
19308         * Form.cs: Make the child context available
19309         
19310 2005-11-23  Jackson Harper  <jackson@ximian.com>
19311
19312         * MdiChildContext.cs: Don't size windows if they are maximized.
19313
19314 2005-11-23  Mike Kestner  <mkestner@novell.com>
19315
19316         * ContextMenu.cs: use MenuTracker.
19317         * Control.cs: remove menu handle usage.
19318         * Form.cs: remove menu handle usage.
19319         * Hwnd.cs: remove menu handle usage.
19320         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
19321         motion and clicks to the new Tracker handlers.
19322         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
19323         and handle usage.
19324         * MenuAPI.cs: refactored to combine popup and menubar event handling.
19325         Killed the MENU and MENUITEM data types and associated collections
19326         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
19327         MenuTracker class that exposes the leftovers from the old MenuAPI
19328         static methods. Restructured Capture handling so that only one grab is
19329         done for the entire menu hierarchy instead of handing off grabs to
19330         submenus. Tracker now has an invisible control to Capture when active.
19331         * MenuItem.cs: add sizing accessors, kill Create
19332         and handle usage.
19333         * Theme.cs: remove menu handle and MENU(ITEM) usage.
19334         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
19335         MENU(ITEM). remove menu handle usage, use Menu directly.
19336         * XplatUIDriver.cs: remove menu handle usage.
19337         * XplatUIOSX.cs: remove menu handle usage.
19338         * XplatUIWin32.cs: remove menu handle usage.
19339         * XplatUIX11.cs: remove menu handle usage.
19340
19341 2005-11-22  Jackson Harper  <jackson@ximian.com>
19342
19343         * Hwnd.cs: Don't compute the menu size for
19344         DefaultClientRectangle.
19345         - Reenable menu sizes being computed for GetClienRectangle.
19346         * Form.cs: Remove comment of trechery
19347         
19348 2005-11-22  Jackson Harper  <jackson@ximian.com>
19349
19350         * Hwnd.cs: The adjustments for the menu bar are made when it is
19351         attached to the form.
19352
19353 2005-11-19  Jackson Harper  <jackson@ximian.com>
19354
19355         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
19356         (just like on windows).
19357
19358 2005-11-19  Jackson Harper  <jackson@ximian.com>
19359
19360         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
19361         use real buttons anymore because they are in non client area. The
19362         one TODO here is that I need to somehow invalidate a section of
19363         the non client area.
19364
19365 2005-11-18  Jackson Harper  <jackson@ximian.com>
19366
19367         * Control.cs: Put the enum check back in now that MDI doesnt have
19368         to use this to set border styles.
19369         * Form.cs: Only set mdi child windows borders if the handle has
19370         been created.
19371         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
19372         this directly on to the driver.
19373         - Get the move start position before adjusting for the titlebar
19374         height, this fixes the windows "skipping" when they are first
19375         moved.
19376
19377 2005-11-18  Jackson Harper  <jackson@ximian.com>
19378
19379         * XplatUIX11.cs: Just compute the mdi borders separately as they
19380         don't totally match up with normal form borders.
19381
19382 2005-11-18  Jackson Harper  <jackson@ximian.com>
19383
19384         * Control.cs: Set WS_ styles for borders, so that the driver does
19385         not have to retrieve the control instance to figure out what kind
19386         of borders it should have.
19387         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
19388         driver can know its an mdi child easily.
19389         * XplatUIX11.cs: Get the border styles and whether the window is
19390         MDI from the Styles and ExStyles params instead of having to get a
19391         control. This prevents a chicken and egg problem.       
19392
19393 2005-11-18  Jackson Harper  <jackson@ximian.com>
19394
19395         * MdiClient.cs: Fix typo so scrollbars show up correctly.
19396
19397 2005-11-18  Jackson Harper  <jackson@ximian.com>
19398
19399         * MdiClient.cs: Calculate when to add and remove scrollbars
19400         correctly.
19401         * MdiChildContext.cs: Adjust the y position to take the titlebar
19402         into account.
19403         - No height for FormBorderStyle.None
19404
19405 2005-11-18  Jackson Harper  <jackson@ximian.com>
19406
19407         * Control.cs: Allow non enum values to be used for
19408         InternalBorderStyle.  MDI does this to set a special border style.
19409         - New utility methods for converting points to/from client coords
19410         - Add the newly created control to the Controls collection before
19411         updating its style. This way UpdateStyle can walk the control
19412         heirarchy to find the control if needed.
19413         so I don't need to create a new Point object all the time.
19414         * Form.cs: Let MDI windows handle their border styles.
19415         - Set styles on MDI windows so the correct title style is derived.
19416         * MdiChildContext.cs: Move all the painting and window handling
19417         into the non client area.
19418         - Use correct sizing and put correct buttons on frames based on
19419         the FormBorderStyle.
19420         - Notify the mdi client about scrolling
19421         - Need to handle the buttons ourselves now, because they are all
19422         in non client areas and we can't add controls there.
19423         * MdiClient.cs: Halfway to scrolling, this implementation is
19424         somewhat broken though, we need to check to make sure other
19425         windows aren't causing scrolling before removing the bars. Also
19426         the bars need to be drawn on top, maybe I can switch implicit
19427         controls to be on top.
19428         * Hwnd.cs: caption_height and tool_caption_height are now
19429         properties of an hwnd, this way they can be set by the driver
19430         based on the type of window they are.  In X11 the window manager
19431         handles the decorations so caption_height is zero unless its an
19432         MDI window.
19433         - Add 3 pixel borders for MDI windows (0xFFFF).
19434         - Get rid of some code duplication, have DefaultClientRectanle
19435         just call GetClientRectangle.
19436         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
19437         Hwnd now.
19438         - Set border styles differently for mdi windows.
19439         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
19440         Hwnd now.
19441         
19442 2005-11-15  Mike Kestner  <mkestner@novell.com>
19443
19444         * Menu.cs: when adding an item to the collection, if item is already 
19445         parented, remove it from the parent.
19446
19447 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
19448
19449         * X11DesktopColors.cs: Added KDE support
19450
19451 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
19452
19453         * XplatUIWin32.cs: 
19454           - Clipboard methods now can translate Rtf format
19455           - No longer removes clipboard contents whenever a new format is added
19456             to allow placing multiple formats on the clipboard
19457         * Clipboard.cs: Clipboard now supports getting a IDataObject and
19458           will place all formats contained in it onto the clipboard. Also
19459           now cleans the clipboard before placing a new object onto it
19460         * RichTextBox.cs:
19461           - Implemented set_Rtf
19462           - Implemented set_SelectedRtf
19463           - Created InsertRTFFromStream() method to allow single code base
19464             for all properties and methods that insert RTF into document
19465           - Removed debug output
19466         * TextControl.cs:
19467           - Fixed Delete(int) to fix up line numbers
19468           - Fixed ReplaceSelection to combine start and end line
19469           - Fixed serious DeleteChars bug that would leave the document tree
19470             broken
19471           - Improved DumpTree with several logic checks to detect broken
19472             document trees
19473           - Removed debug lines
19474           - Fixed Caret.WordForward/WordBack moving code, now always also 
19475             updates caret.tag (fixes crash when word-selecting across tag
19476             boundaries via keyboard)
19477           - Added Insert() method for inserting multiline text into documents
19478           - Fixed DeleteChars() calculation errors that would cause a broken
19479             tag chain with multiple tag lines
19480           - DeleteChars() no longer crashes on multi-tag lines if not all tags
19481           - Split() no longer moves caret if split is at caret location
19482           - ReplaceSelection() now updates the cursor and re-displays it
19483           - ReplaceSelection() now uses new Insert() method to avoid code
19484             duplication
19485           - FormatText() can now handle formatting partial lines
19486         * TextBoxBase.cs:
19487           - Append now uses new TextControl.Insert() method (this avoids 
19488             duplicate code)
19489           - Implemented Ctrl-X (Cut) (
19490           - Implemented Ctrl-C (Copy)
19491           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
19492             regeneration when pasting text; roundtripping Copy&Paste within
19493             edit control still fails due to some calculation bugs in GenerateRTF)
19494           - The Delete key will now remove the current selection if it is visible
19495         * TextBox.cs: Removed debug lines
19496         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
19497           driver to be initialized and can't therefore be done via a static ctor)
19498
19499 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
19500
19501         * TextControl.cs: Added backend code for finding char arrays and strings
19502         * TextBoxBase.cs:
19503           - Added mouse wheel scroll support
19504           - Added support for VScroll and HScroll events
19505         * RichTextBox.cs:
19506           - Implemented all seven Find() variants
19507           - Implemented GetCharFromPosition()
19508           - Implemented GetCharIndexFromPosition()
19509           - Implemented GetLineFromIndex()
19510           - Implemented GetPositionFromCharIndex();
19511           - Implemented SaveFile for PlainText and UnicodeText
19512           - Fixed set_Font, now setting a new font applies that font to
19513             the whole document
19514           - Implemented generic Document to RTF converter
19515           - Implemented SaveFile for RichText format (still missing unicode
19516             conversion for non-ansi chars)
19517           - Implemented get_Rtf
19518           - Implemented get_SelectedRtf
19519
19520 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
19521
19522         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
19523           to allow any captures to be released before triggering OnClick. This
19524           way a click handler may capture the mouse without interference.
19525         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
19526           This way we send them even though X may not allow a grab (if the window
19527           isn't visible, for example)
19528
19529 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
19530
19531         * DataGridViewRowEventArgs.cs: DataGridView implementation
19532         * DataGridViewElement.cs: DataGridView implementation
19533         * DataGridViewComboBoxCell.cs: DataGridView implementation
19534         * DataGridViewDataErrorContexts.cs: DataGridView implementation
19535         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
19536         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
19537         * ImageLayout.cs: DataGridView implementation
19538         * DataGridViewComboBoxColumn.cs: DataGridView implementation
19539         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
19540         * DataGridViewSelectionMode.cs: DataGridView implementation
19541         * IDataGridViewEditingControl.cs: DataGridView implementation
19542         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
19543         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
19544         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
19545         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
19546         * DataGridViewColumnSortMode.cs: DataGridView implementation
19547         * DataGridView.cs: DataGridView implementation
19548         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
19549         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
19550         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
19551         * Padding.cs: DataGridView implementation
19552         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
19553         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
19554         * DataGridViewRowEventHandler.cs: DataGridView implementation
19555         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
19556         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
19557         * DataGridViewButtonCell.cs: DataGridView implementation
19558         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
19559         * DataGridViewEditMode.cs: DataGridView implementation
19560         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
19561         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
19562         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
19563         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
19564         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
19565         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
19566         * DataGridViewCellEventHandler.cs: DataGridView implementation
19567         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
19568         * DataGridViewCellStyleConverter.cs: DataGridView implementation
19569         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
19570         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
19571         * DataGridViewColumnEventArgs.cs: DataGridView implementation
19572         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
19573         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
19574         * QuestionEventArgs.cs: DataGridView implementation
19575         * IDataGridViewEditingCell.cs: DataGridView implementation
19576         * DataGridViewTriState.cs: DataGridView implementation
19577         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
19578         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
19579         * DataGridViewColumnCollection.cs: DataGridView implementation
19580         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
19581         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
19582         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
19583         * DataGridViewColumn.cs: DataGridView implementation
19584         * DataGridViewCellBorderStyle.cs: DataGridView implementation
19585         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
19586         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
19587         * DataGridViewRow.cs: DataGridView implementation
19588         * DataGridViewImageCellLayout.cs: DataGridView implementation
19589         * DataGridViewImageCell.cs: DataGridView implementation
19590         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
19591         * DataGridViewCheckBoxCell.cs: DataGridView implementation
19592         * DataGridViewHeaderCell.cs: DataGridView implementation
19593         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
19594         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
19595         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
19596         * DataGridViewTextBoxColumn.cs: DataGridView implementation
19597         * QuestionEventHandler.cs: DataGridView implementation
19598         * DataGridViewCellStyleScopes.cs: DataGridView implementation
19599         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
19600         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
19601         * DataGridViewCell.cs: DataGridView implementation
19602         * DataGridViewCellEventArgs.cs: DataGridView implementation
19603         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
19604         * DataGridViewCellStyle.cs: DataGridView implementation
19605         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
19606         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
19607         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
19608         * TextFormatFlags.cs: DataGridView implementation
19609         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
19610         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
19611         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
19612         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
19613         * DataGridViewButtonColumn.cs: DataGridView implementation
19614         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
19615         * HandledMouseEventArgs.cs: DataGridView implementation
19616         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
19617         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
19618         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
19619         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
19620         * DataGridViewRowCollection.cs: DataGridView implementation
19621         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
19622         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
19623         * DataGridViewHitTestType.cs: DataGridView implementation
19624         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
19625         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
19626         * DataGridViewColumnEventHandler.cs: DataGridView implementation
19627         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
19628         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
19629         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
19630         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
19631         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
19632         * DataGridViewContentAlignment.cs: DataGridView implementation
19633         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
19634         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
19635         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
19636         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
19637         * DataGridViewPaintParts.cs: DataGridView implementation
19638         * DataGridViewCellCollection.cs: DataGridView implementation
19639         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
19640         * DataGridViewImageColumn.cs: DataGridView implementation
19641         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
19642         * DataGridViewElementStates.cs: DataGridView implementation
19643         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
19644         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
19645         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
19646         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
19647         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
19648         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
19649         * DataGridViewRowHeaderCell.cs: DataGridView implementation
19650         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
19651         * DataGridViewTextBoxCell.cs: DataGridView implementation
19652         * DataGridViewBand.cs: DataGridView implementation
19653         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
19654         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
19655         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
19656         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
19657         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
19658         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
19659         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
19660         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
19661         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
19662         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
19663         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
19664
19665 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
19666
19667         * ThemeWin32Classic.cs: 
19668           - Draw the outside focus rectangle around buttons
19669           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
19670             doesn't use end caps for every dash of a line anymore. This
19671             workaround ignores the forecolor.
19672
19673 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
19674
19675         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
19676           endian safe.
19677
19678 2005-11-07  Jackson Harper  <jackson@ximian.com>
19679
19680         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
19681
19682 2005-11-07  Jackson Harper  <jackson@ximian.com>
19683
19684         * ScrollableControl.cs: Calculate the maximum and change vars
19685         (more) correctly so that scrollbars appear as a sensible size.
19686
19687 2005-11-04  Jackson Harper  <jackson@ximian.com>
19688
19689         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
19690         collection.
19691         * TreeView.cs: When the tree is sorted null out the top_node so
19692         that it is recalculated.
19693         - Use dotted lines instead of dashed lines to match MS better.
19694
19695 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
19696
19697         * ListView.cs: 
19698           - Implements key search for items. Useful when browsing files with FileDialog
19699           - When changing view mode or when clear the items reset scrollbar positions
19700
19701 2005-11-04  Jackson Harper  <jackson@ximian.com>
19702
19703         * CurrencyManager.cs: Implement the MetaDataChanged event, the
19704         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
19705         as to what the method may do as there is no real way of creating a
19706         derived CurrencyManager and calling the method. 
19707
19708 2005-11-03  Jackson Harper  <jackson@ximian.com>
19709
19710         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
19711         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
19712         method which seems to just be used internally to refresh the tabs.
19713
19714 2005-11-03  Jackson Harper  <jackson@ximian.com>
19715
19716         * TabControl.cs: Implement the remove method. Fix some broken
19717         comments.
19718
19719 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
19720
19721         * DateTimePicker.cs:
19722           - Added missing DateTimePickerAccessibleObject class
19723           - Added missing events
19724           - Added OnFontChanged method
19725         * Form.cs: Added missing attributes
19726         * TreeView.cs: Added missing attributes
19727
19728 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
19729
19730         * GridItemCollection.cs: Fix signatures
19731
19732 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
19733
19734         * XplatUI.cs: Updated build rev/date
19735         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
19736           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
19737         * Application.cs: Trigger context-specific ExitThread events
19738
19739 2005-11-03  Jackson Harper  <jackson@ximian.com>
19740
19741         * Menu.cs:
19742         * MainMenu.cs:
19743         * GridTableStylesCollection.cs:
19744         * Timer.cs:
19745         * TabPage.cs:
19746         * HelpProvider.cs:
19747         * StatusBar.cs:
19748         * MonthCalendar.cs: Signature fixes
19749
19750 2005-11-03  Jackson Harper  <jackson@ximian.com>
19751
19752         * TreeNodeCollection.cs: Remove should not be virtual.
19753         * TreeView.cs: Implement the last of the missing methods.
19754
19755 2005-11-03  Jackson Harper  <jackson@ximian.com>
19756
19757         * TreeNodeConverter.cs: Implement to get off my class-status back.
19758
19759 2005-11-03  Jackson Harper  <jackson@ximian.com>
19760
19761         * TreeView.cs: Hookup the bits for drag and drop.
19762         * TreeNode.cs: Don't cache the tree_view or index anymore, now
19763         that nodes can be moved from tree to tree easily this just causes
19764         all sorts of problems.
19765         * TreeNodeCollection: Don't need to give treenodes an index and
19766         treeview anymore when they are added, these are computed on the
19767         fly. Also make sure to remove a node before its added.
19768
19769 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
19770
19771         * TextControl.cs:
19772           - Added CaretSelection enum
19773           - Added comparison methods to Marker struct, makes selection code
19774             more readable
19775           - Added SelectionStart and SelectionEnd as 'moveable' location for
19776             the CaretDirection enum and handler
19777           - Added selection_prev variable to track optimized invalidation for
19778             word and line selection
19779           - Added SelectionVisible property (returns true if there is a valid 
19780             selection)
19781           - Switched CaretHasFocus to only display the caret if there is no
19782             visible selection
19783           - Avoiding StringBuilder.ToString to retrieve a single char, instead
19784             using the direct character index; should be much faster
19785           - Added various conditional debug statements
19786           - Fixed invalidation calculation for selection ranges
19787           - Added ExpandSelection() method to support word and line selection
19788           - Switched SetSelectionToCaret to use new Marker compare overloads
19789           - Added central IsWordSeparator() method to determine word 
19790             separators/whitespace and FindWordSeparator() to streamline common
19791             usage of IsWordSeparator()
19792         * TextBoxBase.cs:
19793           - Removed unneeded grabbed variable, it was just mirroring
19794             Control.Capture
19795           - No longer firing OnTextChanged event when Text setter is called,
19796             since the base will fire the event for us
19797           - Added handling of Ctrl-Up/Down selection
19798           - Added handling of Shift-Cursorkey selection
19799           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
19800             words
19801           - Added handling of Shift and Ctrl-Shift-Home/End selection
19802           - Removed some debug output
19803           - Added handling for single/double/tripple-click to place caret/
19804             select word/select line respectively (Fixes bug #76031)
19805           - Added support for drag expansion of word/line selection
19806         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
19807           current selection
19808
19809 2005-11-02  Jackson Harper  <jackson@ximian.com>
19810
19811         * X11Dnd.cs: If the drag is going to and from a MWF window just
19812         copy the data instead of sending it out through the X Selection
19813         mechanism.
19814
19815 2005-11-02  Jackson Harper  <jackson@ximian.com>
19816
19817         * X11Dnd.cs:
19818         * XplatUIX11.cs: When in a drag we don't want motion notify
19819         messages to get passed on to the other controls. This prevents
19820         mouse move messages from showing up in the drag source.
19821
19822 2005-11-02  Jackson Harper  <jackson@ximian.com>
19823
19824         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
19825         the correct button is release to end a drag.
19826         * XplatUIX11.cs: Make the button state internal so the drag system
19827         can access it.  Dragging needs to know about all button releases,
19828         not just left button.
19829
19830 2005-11-02  Miguel de Icaza  <miguel@novell.com>
19831
19832         * Form.cs (Icon): If the icon is null, reset the icon to the
19833         default value. 
19834
19835         * Cursor.cs: When writing the AND-mask bitmap do not include the
19836         number of colors, but hardcode those to two (black and white),
19837         fixes the loading of color cursors (Paint Dot Net).
19838
19839         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
19840         turn off autoscaling.
19841
19842         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
19843
19844 2005-11-02  Jackson Harper  <jackson@ximian.com>
19845
19846         * X11Dnd.cs: Make sure to send a status message if the pointer
19847         enters a control that can not accept a drop, otherwise the cursor
19848         isn't updated correctly. Also tried to compress the lines of code
19849         a bit.
19850
19851 2005-11-02  Jackson Harper  <jackson@ximian.com>
19852
19853         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
19854         set actions correctly.  This isn't perfect as XDND and win32 have
19855         some differences on how you allow actions. I'll clear this up by
19856         adding a path for drag from MWF to MWF windows.
19857         * XplatUIX11.cs: Hook into the dnd system.
19858
19859 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
19860
19861         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
19862         previously shown but they are no longer need it. Very obvious when 
19863         browsing files with FileDialog.
19864
19865 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
19866
19867         * Control.cs: We always need to call OnPaintBackground. We pretty much
19868           ignore AllPaintingInWmPaint and always do the painting there, whether 
19869           it's set or not, since we always ignore the WM_ERASEBKGND message 
19870           (which we don't generate on X11). This fixes #76616.
19871         * Panel.cs: Removed unneeded background painting. This happens properly
19872           in Control.cs already
19873
19874 2005-10-31  Mike Kestner  <mkestner@novell.com>
19875
19876         * Menu.cs: Add items to collection before setting their index.
19877         * MenuItem.cs : add range checking with ArgumentException like MS.
19878         [Fixes #76510]
19879
19880 2005-10-31  Jackson Harper  <jackson@ximian.com>
19881
19882         * ListBox.cs: Invalidate if the area is visible at all not just
19883         contained in the visible rect. Fixes unselection of semi visible
19884         items.
19885
19886 2005-10-31  Jackson Harper  <jackson@ximian.com>
19887
19888         * Control.cs: Consistently name the dnd methods. Make them
19889         internal so we can override them to match some MS behavoir
19890         internally.
19891         * Win32DnD.cs: Use the new consistent names.
19892
19893 2005-10-31  Jackson Harper  <jackson@ximian.com>
19894
19895         * TreeView.cs: Don't draw the selected node when we lose focus.
19896
19897 2005-10-31  Jackson Harper  <jackson@ximian.com>
19898
19899         * X11Dnd.cs: We still need to reset the state even though a full
19900         reset isn't being done, otherwise status's still get sent all over
19901         the place.
19902
19903 2005-10-31  Jackson Harper  <jackson@ximian.com>
19904
19905         * Control.cs: Make the dnd_aware flag internal so the dnd
19906         subsystem can check it. Catch exceptions thrown in dnd handlers to
19907         match MS behavoir.
19908         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
19909         * X11Dnd.cs: Handle null data in the converters. Set the XDND
19910         version when sending a XdndEnter. Use the control/hwnd dnd_aware
19911         flags to reduce the number of dnd enters/status's sent.
19912
19913 2005-10-31  Jackson Harper  <jackson@ximian.com>
19914
19915         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
19916
19917 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
19918
19919         * PictureBox.cs: Fixes 76512
19920
19921 2005-10-28  Jackson Harper  <jackson@ximian.com>
19922
19923         * X11Dnd.cs: Early implementation to support winforms being a drag
19924         source for data on X11. Also restructured the converters so they
19925         can go both ways now.
19926         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
19927         
19928 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
19929
19930         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
19931           clipboard requests
19932
19933 2005-10-27  Jackson Harper  <jackson@ximian.com>
19934
19935         * TreeNode.cs: Implement serialization so my DnD examples will work.
19936
19937 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
19938
19939         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
19940           TreeView.cs: Don't dispose objects that are not owned.
19941           
19942 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
19943
19944         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
19945           should retrieve the current cursor and report that, but XplatUI
19946           doesn't (yet) have an interface for that (and I'm not sure I even
19947           can, on X11)
19948         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
19949           until any message loop processing is done (and the WM_SETCURSOR
19950           replaces the cursor to the proper one)
19951         * XplatUIX11.cs: 
19952           - Fixed override behaviour, we can't set the cursor globally on X11, 
19953             just for our windows.
19954           - Invalidating the System.Drawing X11 display handle when we are
19955             shutting down
19956         * Control.cs: Fix to make csc happy
19957
19958 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
19959
19960         * TextBoxBase.cs: 
19961           - get_Text: Add last line (without trailing newline) to returned
19962             value (Fixes 76212)
19963           - get_TextLength: Count last line in returned length
19964           - ToString: Call Text property instead of duplicating code
19965
19966 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
19967
19968         * ImageList.cs: Dispose ImageAttributes objects.
19969
19970 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
19971
19972         * ImageList.cs: Use attribute constructors with less arguments where
19973           possible.
19974
19975 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
19976
19977         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
19978           Use typeof instead of strings when assembly is referenced. Added
19979           some more comments.
19980
19981 2005-10-21  Jackson Harper  <jackson@ximian.com>
19982
19983         * ListView.cs: Raise a double click event. Also tried to somewhat
19984         fix when the selectedindexchanged event is raised. Its still
19985         broken though.
19986
19987 2005-10-21  Jackson Harper  <jackson@ximian.com>
19988
19989         * TreeView.cs: New method to invalidate the plus minus area of a
19990         node without invalidating the whole node (maybe this can be used
19991         in some more places).
19992         * TreeNodeCollection.cs: When adding to an empty node we need to
19993         invalidate its plus minus area so the little block shows up.
19994         
19995 2005-10-21  Jackson Harper  <jackson@ximian.com>
19996
19997         * TreeView.cs: Make sure that when we invalidate a node the bounds
19998         are big enough to cover the selected box and the focus
19999         rectangle. Use a different colour for the lines connecting nodes
20000         so they show up with all themes.
20001
20002 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
20003
20004         * NativeWindow.cs: Don't call anything that could call into the driver,
20005           we might be on a different thread.
20006
20007 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
20008
20009         * Control.cs(Dispose): Since Dispose might run on a different thread,
20010           make sure that we call methods that could call into the driver via
20011           invoke, to avoid thread issues
20012
20013 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
20014
20015         * XplatUI.cs: Removed finalizer
20016         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
20017           not allowing to be called on the finalizer thread.
20018
20019 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
20020
20021         * ImageList.cs:
20022           - Reverted r51889 and r51891.
20023           - Added ImageListItem class that stores unmodified image items and image
20024             properties required to create list images until handle is created.
20025           - Added AddItem and moved image creation logic to AddItemInternal.
20026           - Added CreateHandle method that creates images based on unmodified items.
20027           - Added DestroyHandle that changes state to store unmodified items.
20028           - Add and AddStrip methods no more create handle.
20029           - ReduceColorDepth has no return value.
20030           - Dispose destroys handle.
20031           - Modified other methods to reflect the above changes.
20032           - Implemented key support.
20033           - Added profile 2.0 members and attributes.
20034           - Added private Reset and ShouldSerialize methods that provide the same
20035             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
20036             them as they are private.
20037           - Added some more comments about implementation details.
20038
20039 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
20040
20041         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
20042
20043 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
20044
20045         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
20046
20047 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
20048
20049         * DataGridDrawingLogic.cs: Fixes column hit calcultation
20050         * DataGridColumnStyle.cs: Remove debug message
20051
20052 2005-10-20  Jackson Harper  <jackson@ximian.com>
20053
20054         * TreeView.cs: We can always get input keys regardless of whether
20055         or not editing is enabled. They are used for navigation.
20056
20057 2005-10-20  Jackson Harper  <jackson@ximian.com>
20058
20059         * TreeNode.cs: Use the viewport rect for determining if a node
20060         needs to be moved for visibility. Don't use Begin/End edit. This
20061         calls a full refresh when its done.
20062         * TreeView.cs: New SetBottom works correctly.  Make the viewport
20063         rect property internal so the treenodes can see it. When clicking
20064         on a node we need to ensure that its visible because it might just
20065         be partly visible when clicked.
20066
20067 2005-10-20  Jackson Harper  <jackson@ximian.com>
20068
20069         * TreeNodeCollection.cs: Remove debug code.
20070
20071 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
20072
20073         * Datagrid.cs: Implements column sorting in Datagrid
20074         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
20075
20076 2005-10-20  Jackson Harper  <jackson@ximian.com>
20077
20078         * TreeNodeCollection.cs: Remove items properly. Update the correct
20079         area after removing them.
20080
20081 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
20082
20083         * Datagrid.cs: Should not call base.OnPaintBackground
20084
20085 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
20086
20087         * XplatUIX11.cs (GetMessage):
20088           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
20089             window instead of client window
20090           - Now properly calculates NC_xBUTTONUP message coordinates
20091           - ScreenToMenu now properly calculates it's coordinates of whole 
20092             window, since menus are in the whole window, not in the client
20093             window
20094           - Added WholeToScreen coordinate translation method
20095
20096 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
20097
20098         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
20099           want to return a message, loop back to the beginning of the function
20100           and grab the next real message to process instead.
20101
20102 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
20103
20104         * Splitter.cs: Properly set limits if no filler control is used
20105
20106 2005-10-19  Jackson Harper  <jackson@ximian.com>
20107
20108         * ColorDialog.cs: Don't show the help button if it is not enabled
20109         instead of disabling it (this is what MS does). Don't create the
20110         panel until the dialog is run, otherwise the vars (such as
20111         ShowHelp) are not set yet.
20112
20113 2005-10-19  Jackson Harper  <jackson@ximian.com>
20114
20115         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
20116         are reduced when adding nodes.
20117         * TreeNode.cs:
20118         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
20119         tree.
20120         
20121 2005-10-19  Jackson Harper  <jackson@ximian.com>
20122
20123         * FolderBrowserDialog.cs: End editing our treeview so the window
20124         actually gets refreshed.
20125
20126 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
20127
20128         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
20129           Obsoleted handling of WM_ERASEBKGND, now always draws our background
20130           inside of WM_PAINT
20131
20132 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
20133
20134         * MenuAPI.cs: Returns after Hidding window
20135         * XplatUIX11.cs: Added TODO found while debugging menu issues
20136
20137 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
20138
20139         * XplatUIX11.cs: Do not re-map the whole window when it's size
20140           becomes non-zero unless it's supposed to be actually visible
20141
20142 2005-10-18  Jackson Harper  <jackson@ximian.com>
20143
20144         * TreeView.cs: We don't need to keep a count anymore.
20145         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
20146         use the Grow method.
20147
20148 2005-10-18  Jackson Harper  <jackson@ximian.com>
20149
20150         * TreeNodeCollection.cs: Insert is not supported on arrays, so
20151         implement it manually here.
20152
20153 2005-10-18  Jackson Harper  <jackson@ximian.com>
20154
20155         * ImageList.cs: Dont kill the list when the colour depth is
20156         changed, just change the colour depth of all the images.
20157         - Same goes for setting the image size. Just resize them all
20158         instead of killing the list softly.
20159
20160 2005-10-18  Jackson Harper  <jackson@ximian.com>
20161
20162         * Control.cs: Don't invalidate empty rectangles.
20163
20164 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
20165
20166         * ListViewItem.cs:
20167           - Adds checked item to the Checked/Item lists (where empty before)
20168           - Do not add items to the Selected lists if they are already present
20169         * ListView.cs:
20170           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
20171           - When deleting items make sure that we delete them for the Selected
20172           and Checked list also.
20173
20174 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
20175
20176         * Label.cs: Dispose objects no longer used
20177         * ThemeWin32Classic.cs: Dispose objects no longer used
20178
20179 2005-10-18  Jackson Harper  <jackson@ximian.com>
20180
20181         * TabControl.cs: Don't refresh the whole control when the tabs are
20182         scrolled, we just need to refresh the tab area.
20183
20184 2005-10-17  Jackson Harper  <jackson@ximian.com>
20185
20186         * XplatUIX11.cs: Compress code a little bit. Only calculate the
20187         after handle when we need it.
20188
20189 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
20190
20191         * Control.cs: When the parent size changes, recalculate anchor 
20192           positions. Partial fix for #76462
20193
20194 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
20195
20196         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
20197           drawn. Fixes #76462
20198
20199 2005-10-17  Jackson Harper  <jackson@ximian.com>
20200
20201         * MonthCalendar.cs: Don't create the numeric up down until our
20202         handle is created. Otherwise our handle is created in the
20203         constructor and we don't know if we are a WS_CHILD or WS_POPUP
20204         yet.
20205
20206 2005-10-17  Jackson Harper  <jackson@ximian.com>
20207
20208         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
20209         correctly.
20210
20211 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20212         * TreeNode.cs : small logical fix (was using local var instead of field)
20213         
20214 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
20215
20216         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
20217
20218 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
20219
20220         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
20221
20222 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
20223
20224         * Control.cs: 
20225           - Re-implemented anchoring code. My first version was really broken.
20226             This fixes bug #76033. Unlike the previous implementation we will
20227             no longer have round errors since all numbers are calculated from
20228             scratch every time. Removed various anchor-related obsolete vars.
20229           - InitLayout no longer causes layout event firing and layout to be 
20230             performed
20231
20232 2005-10-16  Jackson Harper  <jackson@ximian.com>
20233
20234         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
20235         which was broken).
20236
20237 2005-10-16  Jackson Harper  <jackson@ximian.com>
20238
20239         * TabControl.cs: Remove debug code.
20240
20241 2005-10-16  Jackson Harper  <jackson@ximian.com>
20242
20243         * XEventQueue.cs: Increase the default queue size (very simple
20244         apps needed to grow the queue).
20245         * Hwnd.cs: No finalizer so we don't need to suppress
20246         finalization. Compute the invalid area manually so a new rectangle
20247         does not newto be created.
20248         * ScrollableControl.cs: Don't set any params (otherwise visibility
20249         isn't set correctly).
20250         * MdiChildContext.cs: New constructor takes the mdi parent so it
20251         doesn't have to be computed and avoids a crash on windows. Draw
20252         the window icon properly, and allow the text to be seen.
20253         * Form.cs: Use new MdiChildContext constructor. Make sure the
20254         child context isn't null in wndproc.
20255         * TabControl.cs: Don't set focus, this is muddling keyboard
20256         behavoir. Expand the tab rows when a window size increase will
20257         allow extra tabs to be seen. Don't allow tabs smaller than the
20258         width of a window to be scrolled out of view.
20259         * TreeNode.cs:
20260         * TreeView.cs: Use measure string to calculate a nodes width, the
20261         width is cached and only updated when the text or the font is
20262         changed. Don't check for expand/collapse clicks on the first level
20263         nodes if root lines are disabled.
20264         
20265 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
20266
20267         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
20268
20269 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
20270
20271         * DataGridBoolColumn.cs: fixes warning
20272
20273 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
20274
20275         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
20276         to match more to match more precisely the MS Net behavior
20277
20278 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
20279
20280         * Hwnd.cs: Added field to track if window is mapped
20281         * XplatUIX11.cs: 
20282           - Unmap windows if they become 0-size, re-map when 
20283             they are >0 again; fixes #76035
20284           - Re-set our error handler after initializing X11Desktop
20285             to override any error handlers Gtk or whatever was called
20286             may have set.
20287
20288 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
20289
20290         * CheckedListBox.cs: Removed unused vars
20291         * ListView.cs: Fixed signatures
20292         * RichTextBox.cs: Removed unused vars
20293         * TextBoxBase.cs: Removed unused vars
20294         * XplatUIWin32.cs: Removed unused vars
20295         * XplatUIX11.cs: Removed unused vars
20296         * XplatUI.cs: Updated version and date to latest published
20297
20298 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
20299
20300         * Cursor.cs: Added private .ctor to work around a bug in
20301           resourceset (Thanks to Geoff Norton for the help on this)
20302         * SplitterEventArgs.cs: Made fields accessible so we don't
20303           waste boatloads of objects and can reuse the same one
20304           in Splitter
20305         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
20306           any captions and borders when generating screen coordinates
20307         * Splitter.cs: Reimplemented control, now fully complete, uses
20308           rubberband drawing, supports and obeys all properties, has
20309           proper cursors
20310
20311 2005-10-13  Miguel de Icaza  <miguel@novell.com>
20312
20313         * Form.cs (Form): Setup default values for autoscale and
20314         autoscale_base_size;  Make these instance variables, not static
20315         variables. 
20316
20317         (OnLoad): on the first load, adjust the size of the form.
20318
20319 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
20320
20321         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
20322           width argument to DrawReversibleRectangle()
20323         * XplatUIWin32.cs, XplatUIX11.cs: 
20324           - Implemented width for DrawReversibleRectangle()
20325           - Added logic to DrawReversibleRectangle that recognizes a zero
20326             width or height and only draws a line in that situation
20327         
20328 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
20329
20330         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
20331         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
20332         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
20333           method (it uses our FosterParent window to get a graphics context)
20334
20335 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
20336
20337         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
20338           and SetWindowBackground methods
20339         * Control.cs:
20340           - Setting proper ControlStyles
20341           - We no longer call XplatUI.SetWindowBackground and XplatUI.
20342             EraseWindowBackground, instead we draw the window background
20343             ourselves in PaintControlBackground. This behaviour is
20344             required to match MS, where, when OnPaintBackground is not
20345             called, the background is not drawn.
20346           - Removed unneeded Refresh() in set_Text
20347         * Hwnd.cs: Dropped the ErasePending support. No longer needed
20348         * XplatUIX11.cs:
20349           - Created DeriveStyles method to translate from CreateParams to
20350             FormBorderStyle and TitleStyle, also handles BorderStyle (which
20351             matches FormBorderStyle enum values)
20352           - Consolidated SetHwndStyles and CalculateWindowRect border/title
20353             style calculations into single DeriveStyles method
20354           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
20355             from redrawing the whole window on any resize or expose.
20356           - Fixed CreateWindow usage of SetWindowValuemask. Before not
20357             all styles were applied to our whole/client window appropriately
20358           - Removed EraseWindowBackground() and SetWindowBackground() methods
20359           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
20360             no longer clear/redraw the background through X
20361           - Removed handling of erase_pending bit, we have no use for it (or
20362             so it seems)
20363         * XplatUIOSX.cs:
20364           - Removed generation and handling of WM_ERASEBKGND message
20365           - Removed EraseWindowBackground() and SetWindowBackground() methods
20366           - Removed handling of hwnd.ErasePending flag
20367         * XplatUIWin32.cs:
20368           - Removed EraseWindowBackground() and SetWindowBackground() methods
20369           - We no longer call EraseWindowBackground on PaintEventStart, we 
20370             ignore the fErase flag, erasing is handled in Control in the
20371             background handler
20372         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
20373           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
20374           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
20375           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
20376           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
20377           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
20378           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
20379
20380 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
20381
20382         * PropertyGrids.cs: Get sub properties
20383         * PropertyGridView.cs: Fix drawing code
20384
20385 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
20386
20387         * ListBox.cs: Fixes 76383
20388
20389 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
20390
20391         * DataGridTextBoxColumn.cs: Sets location and size before attachment
20392         * ThemeWin32Classic.cs: Fixes border drawing and calculations
20393         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
20394
20395
20396 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
20397
20398         * ComboBox.cs: Fixes border drawing
20399
20400 2005-10-10  Miguel de Icaza  <miguel@novell.com>
20401
20402         * MimeIcon.cs: Ignore errors if the file can not be read.
20403
20404 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
20405
20406         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
20407          - Fixed border calculations
20408          - Fixed horizontal scrolling in single column listboxes
20409          - Fixed drawing issues
20410
20411 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
20412
20413         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
20414           FormBorderStyle enum
20415         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
20416           code to determine FormBorderStyles from CreateParams
20417         * Form.cs:
20418           - Fixed bug where we'd set the wrong window styles if we were
20419             not creating an MDI window
20420           - Added call to XplatUI.SetBorderStyle when form borders are set
20421         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
20422         * Hwnd.cs:
20423           - Removed obsolete edge style
20424           - Switched from BorderStyle to FormBorderStyle
20425         
20426 2005-10-10  Jackson Harper  <jackson@ximian.com>
20427
20428         * Form.cs: Use the property to get the window handle instead of
20429         accessing it directly. Prevents a null reference exception.
20430
20431 2005-10-10  Jackson Harper  <jackson@ximian.com>
20432
20433         * TreeView.cs: Don't adjust the rect given to DrawString now that
20434         our libgdiplus draws correctly.
20435
20436 2005-10-08  Jackson Harper  <jackson@ximian.com>
20437
20438         * TreeView.cs: Don't try to find the clicked on node if there are
20439         no nodes in the tree.
20440
20441 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
20442
20443         * RichTextBox.cs:
20444
20445           restore
20446
20447 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
20448
20449         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
20450           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
20451           ErrorProvider.cs:
20452           Use ResPool for brushes and dispose System.Drawing objects that
20453           are not used anymore.
20454
20455 2005-10-07  Jackson Harper  <jackson@ximian.com>
20456
20457         * MdiChildContext.cs: Use the new borders instead of drawing them
20458         ourselves.
20459
20460 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
20461
20462         * Calling UpdateBounds after changing the window's BorderStyle 
20463         since the style can change the ClientSize
20464
20465 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
20466
20467         * Control.cs: Made PaintControlBackground virtual
20468         * Panel.cs: Overriding PaintControlBackground instead of using paint
20469           event; paint event method was interfering with 'real' users of the
20470           event.
20471
20472 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
20473
20474         * ThemeWin32Classic.cs: remove border drawing since it is handled
20475         by the base control class now and was causing double border drawing.
20476
20477 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
20478
20479         * Panel.cs: Redraw our background on paint. Not a pretty solution,
20480           but it does seem to match MS behaviour. This fixes bug #75324
20481
20482 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
20483
20484         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
20485           somewhat hackish looking
20486
20487 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
20488
20489         * TextBoxBase.cs:
20490           - We now accept Enter even if AcceptEnter is false, if the containing
20491             form does not have an AcceptButton configured (fixes bug #76355)
20492           - Calculations are now fixed to no longer use Width/Height, but
20493             ClientSize.Width/Height, since we now support borders (this was
20494             a result of fixing borders and therefore bug #76166)
20495           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
20496             true (fixes bug #76354)
20497         
20498 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
20499
20500         * Control.cs: 
20501           - Defaulting BorderStyle and setting it in XplatUI when our window 
20502             is created
20503           - Added enum check to InternalBorderStyle setter
20504         * XplatUIX11.cs: 
20505           - Added drawing of window borders
20506           - Now properly calculates WM decorations offset for toplevel 
20507             windows (fixes bug #74763)
20508         * XplatUIWin32.cs: 
20509           - Implemented BorderStyles for windows (we're letting win32 draw 
20510             the border for us)
20511           - Fixed the signature for SetWindowLong
20512         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
20513           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
20514           setting borders
20515         * UpDownBase.cs: Remove drawing of borders, this is handled by
20516           the driver, outside the client area
20517         * ListView.cs: Removed bogus border calculations. The control should
20518           be oblivious to borders, since those are not part of the client
20519           area. 
20520         * X11DesktopColors.cs: Commented out (currently) unneeded variables
20521         * ThemeWin32Classic.cs: Removed border calculations from ListView 
20522           drawing code
20523
20524 2005-10-06  Jackson Harper  <jackson@ximian.com>
20525
20526         * MdiChildContext.cs: Clear out the old virtual position remove
20527         all the unneeded calls to CreateGraphics.
20528
20529 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
20530
20531         * TextControl.cs: Use proper color for highlighted text; fixes #76350
20532
20533 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
20534
20535         * Form.cs: 
20536           - Added loading and setting of our new default icon
20537           - Only set icon if window is already created
20538
20539 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
20540
20541         * Label.cs:
20542           - Do not explicitly set the foreground and background colors, to
20543             allow inheriting from parents (fixes #76302)
20544           - Use Control's InternalBorderStyle property to deal with borders
20545
20546 2005-10-06  Jackson Harper  <jackson@ximian.com>
20547
20548         * MdiChildContext.cs: Use the new xplatui function to draw a
20549         reversible rect.
20550
20551 2005-10-06  Jackson Harper  <jackson@ximian.com>
20552
20553         * Form.cs: Add the parent before creating the child context cause
20554         we need the parent when setting up the child.
20555
20556 2005-10-06  Jackson Harper  <jackson@ximian.com>
20557
20558         * FolderBrowserDialog.cs: redo the tree population code so a
20559         second thread isn't used. Should be a lot faster and more stable
20560         now.
20561
20562 2005-10-05  Jackson Harper  <jackson@ximian.com>
20563
20564         * TreeView.cs: There are no expand/collapse boxes if the node has
20565         no children.
20566
20567 2005-10-05  Jackson Harper  <jackson@ximian.com>
20568
20569         * X11DesktopColors.cs: Get menu colours for the gtk theme.
20570
20571 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
20572
20573         * FileDialog.cs: Fix InitialDirectory
20574
20575 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
20576
20577         * ComboBox.cs:
20578                 - Fixes changing between styles
20579                 - Fixes simple mode
20580                 - Fixes last item crashing when navigating with keyboard
20581
20582 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
20583
20584         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
20585
20586 2005-10-05  Jackson Harper  <jackson@ximian.com>
20587
20588         * TreeView.cs: If updating the root node do a full refresh.
20589         * TreeNode.cs: The root node should be expanded by default. Also
20590         added a utility prop to tell if we are the root node.
20591         * TreeNodeCollection.cs: Only refresh if the node we are being
20592         added to is expanded. Also added a comment on a potential
20593         optimization.
20594         
20595 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
20596
20597         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
20598           in dispose method. Fixes #76330
20599
20600 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
20601
20602         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
20603
20604                 - Implements vertical and horizontal scrolling using XplatUI
20605                 - Fixes keyboard navagation
20606                 - Fixes EnsureVisible
20607                 - Drawing fixes
20608                 - Handles and draws focus properly
20609
20610
20611 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
20612
20613         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
20614           Create handle. NET_2_0: Destroy handle when value is null.
20615
20616 2005-10-03  Jackson Harper  <jackson@ximian.com>
20617
20618         * ScrollBar.cs: My last scrollbar patch was broken. This is a
20619         revert and a new patch to prevent the thumb from refreshing so
20620         much.
20621
20622 2005-10-02  Jackson Harper  <jackson@ximian.com>
20623
20624         * ScrollBar.cs: Don't update position if it hasn't actually
20625         changed. This occurs when you hold down the increment/decrement
20626         buttons and the thumb gets to the max/min.
20627
20628 2005-10-01  Jackson Harper  <jackson@ximian.com>
20629
20630         * Form.cs:
20631         * MdiChildContext.cs:
20632         * MdiClient.cs: Implement ActiveMdiChild in Form.
20633
20634 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
20635
20636         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
20637
20638 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
20639
20640         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
20641           be found
20642
20643 2005-09-30  Jackson Harper  <jackson@ximian.com>
20644
20645         * ListBox.cs: Don't do a full refresh unless some data has
20646         actually changed.
20647
20648 2005-09-30  Jackson Harper  <jackson@ximian.com>
20649
20650         * TreeView.cs: Make sure that the checkboxes size is factored in
20651         even when not visible.
20652
20653 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
20654
20655         * FileDialog.cs: Fix Jordi's build break
20656
20657 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
20658
20659         * FileDialog.cs: 
20660                 - Use standard the Windows colours for the combobox as espected
20661                 - Dispose objects that use resouces when no longer need them
20662
20663 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
20664
20665         * X11DesktopColors.cs: Initial incomplete implementation
20666         * XplatUIX11.cs: Added call to initialize X11DesktopColors
20667
20668 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
20669
20670         * Theme.cs: 
20671           - Switched Theme color names to match the names defined in 
20672             System.Drawing.KnownColors. Life's hard enough, no need to make 
20673             it harder.
20674           - Added setters to all theme color properties so themes can set
20675             their color schemes. The setters also propagate the color changes
20676             to System.Drawing.KnownColors via reflection
20677         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
20678           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
20679           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
20680           use the new, more logical theme color names
20681         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
20682           post-NT colors
20683         * ThemeWin32Classic.cs:
20684           - Removed code to set the old classic Windows colors. Instead it
20685             now relies on the colors returned by System.Drawing.KnownColors
20686             which will be either modern static colors (Unix) or colors
20687             read from the user's configuration (Win32)
20688           - Updated to use the new, more logical theme color names
20689           - Switched DataGrid drawing code to use only Theme colors instead of
20690             a mix of System.Drawing.KnownColors and Theme colors
20691           - DrawFrameControl(): Removed code that fills the button area, the
20692             fill would overwrite any previous fill done by a control. This
20693             fixes bug #75338 
20694           - Added DrawReversibleRectangle() stub
20695         * ScrollableControl.cs: Set visible state to false when scrollbars
20696           are removed (pdn fix)
20697         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
20698           DrawReversibleRectangle() method to allow drawing primitive 
20699           'rubber bands'
20700         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
20701
20702 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20703
20704         * ImageList.cs: Add(Icon): Create handle.
20705
20706 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
20707
20708         * ListView.cs:
20709         * ThemeWin32Classic.cs:
20710                 - Fixes detail mode
20711                 - Sets clippings
20712                 - Issues with drawing
20713
20714 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20715
20716         * ImageList.cs: Moved RecreateHandle back to ImageList as event
20717           source has to be the ImageList.
20718
20719 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20720
20721         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
20722
20723 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20724
20725         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
20726
20727 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20728
20729         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
20730
20731 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
20732         * GridItem.cs: Fixed TODOs
20733         * GridItemCollection.cs: Added ICollection interface
20734
20735 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
20736
20737         * ImageList.cs: Resize icons when needed.
20738
20739 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
20740
20741         * ListViewItem.cs
20742                 - Fixes GetBounds and returns on screen rects
20743         * ListView.cs:
20744                 - Fixes vertical and horzintal scrolling of items
20745         * ThemeWin32Classic.cs:
20746                 - Fixes drawing
20747                 
20748 2005-09-29  Raja R Harinath  <harinath@gmail.com>
20749
20750         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
20751
20752 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
20753
20754         * ImageList.cs: Added comments about handle creation. Moved Handle,
20755           HandleCreated and OnRecreateHandle implementations to ImageCollection.
20756           Handle is created in Add methods.
20757
20758 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
20759          
20760         * DataGridDrawingLogic.cs: 
20761                 - Takes rows into account on Colum calculations
20762                 - Returns the column when clickig
20763         * DataGrid.cs:
20764                 - Fixes default HitTestInfo values
20765                 - Fixes HitTestInfo.ToString
20766                 - Fixes ResetBackColor          
20767         
20768 2005-09-28  Jackson Harper  <jackson@ximian.com>
20769
20770         * MdiChildContext.cs: Obey rules for fixed sized windows (no
20771         sizing or cursor changes). Also added some temp code to draw the
20772         titlebars text (Makes dev a little easier).
20773
20774 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
20775
20776         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
20777
20778 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
20779          
20780         * ListBox.cs: Fixes bug 76253
20781
20782 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
20783
20784         * ImageList.cs: Added comments about the current implementation. Added
20785           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
20786           Format32bppArgb to preserve transparency and can use Graphics.FromImage
20787           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
20788           with Bitmap.LockBits for better performance. Revised the whole file to
20789           match MS.NET behaviour and provide better performance. Non-public
20790           interface members are calling public members even when they throw
20791           NotSupportedException for better maintainability. Moved ColorDepth,
20792           ImageSize, ImageStream and TransparentColor implementations to
20793           ImageCollection for better performance as these properties are not used
20794           by ImageList.
20795         * ImageListStreamer.cs: Added a new internal constructor that takes an
20796           ImageList.ImageCollection and serializes Images based on
20797           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
20798           match ImageList property name.
20799
20800 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
20801
20802         * ListBox.cs: Fixes IndexFromPoint for last item
20803
20804 2005-09-27  Jackson Harper  <jackson@ximian.com>
20805
20806         * Form.cs: Set the position of new mdi children correctly.
20807
20808 2005-09-27  Jackson Harper  <jackson@ximian.com>
20809
20810         * MdiClient.cs: New mdi children need to be added to the back of
20811         the controls collection so the zorder is set correctly. Also add a
20812         count of all the child windows that have been created.
20813
20814 2005-09-27  Jackson Harper  <jackson@ximian.com>
20815
20816         * Form.cs (CreateParams): Setup MDI forms correctly.
20817
20818 2005-09-27  Jackson Harper  <jackson@ximian.com>
20819
20820         * MdiChildContext.cs:
20821         * MonthCalendar.cs:
20822         * UpDownBase.cs:
20823         * ListBox.cs:
20824         * ListView.cs:
20825         * TextBoxBase.cs:
20826         * TreeView.cs:
20827         * ScrollableControl.cs:
20828         * ComboBox.cs: Add implicit controls using the new implict control
20829         functionality in ControlCollection. Also try to block multiple
20830         control add in a suspend/resume layout to save some cycles.
20831         
20832 2005-09-27  Jackson Harper  <jackson@ximian.com>
20833
20834         * Control.cs: Add functionality to the controls collection to add
20835         'implicit controls' these are controls that are created by the
20836         containing control but should not be exposed to the user. Such as
20837         scrollbars in the treeview.
20838         * Form.cs: The list var of the ControlsCollection is no longer
20839         available because of the potential of implicit controls getting
20840         ignored by someone accessing the list directly.
20841
20842 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
20843
20844         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
20845           loose it's parent. (Fixed bug introduced in r49103 when we added
20846           setting the child parent to null on Remove)
20847
20848 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
20849
20850         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
20851         * Splitter.cs: Added missing attributes for BorderStyle property.
20852         * TextBoxBase.cs: Marked Calculate* methods internal.
20853         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
20854         MS.NET.
20855
20856 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
20857          
20858         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
20859
20860 2005-09-25  Jackson Harper  <jackson@ximian.com>
20861
20862         * TreeView.cs: Update the node bounds correctly regardless of
20863         whether the node is visible.
20864
20865 2005-09-25  Jackson Harper  <jackson@ximian.com>
20866
20867         * ImageList.cs: Don't dispose the image after it is added to the
20868         image list. Only reformat images that need to be resized.
20869
20870 2005-09-25  Jackson Harper  <jackson@ximian.com>
20871
20872         * ImageList.cs: Don't set the format when changing the image.
20873
20874 2005-09-25  Jackson Harper  <jackson@ximian.com>
20875
20876         * TreeView.cs: We can't just assume the node has a font. Use the
20877         treeviews font if no node font is available.
20878
20879 2005-09-25  Jackson Harper  <jackson@ximian.com>
20880
20881         * TreeView.cs: Allow the scrollbars to be reset with negative
20882         values.
20883         - Don't add scrollbars to negative sized windows.
20884
20885 2005-09-23  Jackson Harper  <jackson@ximian.com>
20886
20887         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
20888         old Mono.Posix. Also remove some stray code that shouldn't have
20889         been committed.
20890
20891 2005-09-23  Jackson Harper  <jackson@ximian.com>
20892
20893         * TreeView.cs: Attempt at proper sizing of the horizontal
20894         scrollbar. Also don't resize the scrollbars unless they are
20895         visible.
20896
20897 2005-09-23  Jackson Harper  <jackson@ximian.com>
20898
20899         * TreeView.cs: We don't need to expand the invalid area when the
20900         selection changes, as this is all drawn in the node's bounding
20901         box. The area needs to be expanded (previous typo was contracting
20902         it) when the focus rect moves.
20903
20904 2005-09-23  Jackson Harper  <jackson@ximian.com>
20905
20906         * TreeView.cs: Display the selection box under the correct
20907         circumstances. We were rendering white text with no selection box
20908         before.
20909
20910 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
20911
20912         * TextControl.cs(Split): Now updates selection start/end if it points 
20913           into a line that's being split. Fixes a FIXME and bug #75258
20914
20915 2005-09-23  Jackson Harper  <jackson@ximian.com>
20916
20917         * Binding.cs:
20918         * ListControl.cs: Don't use the path when retrieving binding
20919         managers from the binding context. My bat sense tells me that the
20920         path is only used on insertion.
20921
20922 2005-09-22  Jackson Harper  <jackson@ximian.com>
20923
20924         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
20925
20926 2005-09-22  Jackson Harper  <jackson@ximian.com>
20927
20928         * Splitter.cs: There are special cursors used for splitting.
20929         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
20930
20931 2005-09-22  Jackson Harper  <jackson@ximian.com>
20932
20933         * Splitter.cs: Change the cursor appropriately when the splitter
20934         is moused over, so the user actually knows there is a splitter
20935         there.
20936
20937 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
20938
20939        * Label.cs : Fix ToString method to give same output as MS.NET
20940
20941 2005-09-22  Jackson Harper  <jackson@ximian.com>
20942
20943         * TreeView.cs: Create the scrollbars when the handle is created
20944         and add them right away, just make them invisble. Also account for
20945         the window being shrunk vertically to the point that the vert
20946         scrollbar needs to be added.
20947         - Remove some 0.5 adjustments to get around anti aliasing issues.
20948         
20949 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
20950          
20951         * MainMenu.cs: Fixes default value
20952         * MenuItem.cs: Fixes default value
20953
20954 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
20955
20956         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
20957
20958 2005-09-21  Jackson Harper  <jackson@ximian.com>
20959
20960         * Control.cs: Don't try to set the border style on the window if
20961         it hasn't been created. When the window is created the border
20962         style will be used.
20963
20964 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
20965
20966         * Control.cs (Update): Don't call XplatUI if we don't have a
20967           window handle yet
20968
20969 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
20970
20971         * ContainerControl.cs: Instead of throwing an exception, print
20972           a one-time warning about Validate not being implemented
20973         * XplatUIWin32.cs: Removed debug output
20974
20975 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
20976
20977         * Control.cs: Only set XplatUI background if we expect the windowing
20978           system to handle the background. This stops controls that draw their
20979           own background from flickering
20980
20981         * XplatUIX11.cs: Support custom visuals and colormaps for window 
20982           creation. This allows, amongst other things, using MWF X11 windows 
20983           with OpenGL.
20984
20985 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
20986
20987         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
20988           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
20989           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
20990           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
20991           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
20992           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
20993           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
20994           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
20995           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
20996           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
20997           GridColumnStylesCollection.cs, 
20998           IDataGridColumnStyleEditingNotificationService.cs,
20999           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
21000           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
21001           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
21002           TreeNodeCollection.cs, AmbientProperties.cs, 
21003           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
21004           DataObject.cs, ErrorProvider.cs, Splitter.cs,
21005           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
21006           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
21007           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
21008           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
21009           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
21010           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
21011           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
21012           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
21013           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
21014           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
21015           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
21016           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
21017           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
21018           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
21019           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
21020           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
21021           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
21022           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
21023           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
21024           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
21025           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
21026           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
21027           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
21028           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
21029           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
21030           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
21031           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
21032           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
21033           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
21034           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
21035           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
21036           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
21037           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
21038           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
21039           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
21040
21041 2005-09-21  Jackson Harper  <jackson@ximian.com>
21042
21043         * TreeNode.cs: Call Before/After Expand not Collapse when
21044         expanding.
21045
21046 2005-09-20  Jackson Harper  <jackson@ximian.com>
21047         
21048         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
21049
21050 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
21051          
21052         * ListViewItem.cs:
21053                 - Fixes bug 76120
21054                 - Fixes proper storing of subitems
21055                 - Fixes not updated items
21056
21057 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
21058
21059         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
21060           things if our window handle isn't created yet. Also disabled 
21061           debug for TextBoxBase
21062
21063 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
21064
21065         * MenuAPI.cs: Remove filtering of events to allow menu usage
21066
21067 2005-09-20  Miguel de Icaza  <miguel@novell.com>
21068
21069         * Cursor.cs: Allow null to be passed to Cursor.Current.
21070
21071 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
21072
21073         * ThemeWin32Classic.cs:
21074           - Change some private methods/fields to protected virtual so that 
21075             they can be accessed and overriden in derived classes
21076           - First refactoring of some methods. Derived themes now don't 
21077             need to duplicate the complete code from ThemeWin32Classic
21078         * ThemeNice.cs:
21079           - Added nice StatusBar
21080           - Derive from ThemeWin32Classic and not Theme
21081           - Removed duplicate ThemeWin32Classic code
21082
21083 2005-09-20  Miguel de Icaza  <miguel@novell.com>
21084
21085         * Control.cs (ControlCollection.Add): If the value null is passed
21086         the control is ignored. 
21087
21088         Optimize this loop.
21089
21090 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
21091
21092         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
21093           PostQuitMessage state.
21094         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
21095
21096 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
21097
21098         * Application.cs: Our constructor will never get called, move 
21099           initialization to fields; fixes bug #75933
21100
21101 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
21102
21103         * FileDialog.cs :
21104                 - Allow files to be selected properly using file name
21105                 combo box.
21106                 - Add ability to change diretory (absolute / relative)
21107                 using file name combo box.
21108
21109 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
21110          
21111         * ListBox.cs: 
21112                 - Fixes Multicolumn listboxes item wrong calculations
21113                 - Allows to click when only one item is in the listbox
21114                 - Fixes crash when no items using keyboard navigation
21115
21116 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
21117
21118         * ComboBox.cs: Reverted almost everything from the latest patch which
21119           broke ComboBox
21120
21121 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
21122         
21123         * ToolTip.cs:
21124                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
21125         * ComboBox.cs:
21126                 - When DropDownStyle is Simple, it does not show scrollbar 
21127                 to the last item of the list.
21128                 - When DropDownStyle is Simple, it crashed when the list was 
21129                 scrolled down with the down cursor key.
21130                 - Fixed a bug that when DropDownStyle is DropDownList, the 
21131                 selected item was not shown.
21132                 - The position of the selected item was not preserved when 
21133                 the next dropdown happened.
21134         * ThemeWin32Classic.cs:
21135                 - Items were wrapped at the right end.
21136         * CheckedListBox.cs:
21137                 - Fixed Add method
21138         * ListBox.cs:
21139                 - Items should be fully shown.
21140                 - When resizing and vertical scrollbar disappeared, the item 
21141                 of index 0 should be on the top of the list.
21142                 - GetItemRectangle should consider the size of ver. scrollbar
21143         * StatusBar.cs:
21144                 - SizingGrip area should not be allocated when it is not 
21145                 displayed.
21146                 - Now it reflects MinWidth of the containing panel and 
21147                 fixed a crash that happens when its width becomes so small.
21148
21149 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
21150
21151         * CheckedListBox.cs: Fixes bug 76028
21152         * ListBox.cs: Fixes bug 76028
21153
21154 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
21155
21156         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
21157         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
21158
21159 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
21160
21161         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
21162
21163 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
21164
21165         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
21166
21167 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
21168
21169         * IRootGridEntry.cs: Added
21170         * PropertyGridCommands.cs: Added
21171         * PropertiesTab.cs: Added missing methods and property
21172         * PropertyGridView.cs: Made class internal
21173         * PropertyGridTextBox.cs: Made class internal
21174
21175 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
21176
21177         * MimeIcon.cs: Try to check some other environment variables
21178           if "DESKTOP_SESSION" returns "default"
21179
21180 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
21181
21182         * ThemeNice.cs: Corrected background colors (e.g. menus)
21183         * ColorDialog.cs: Use correct background colors for controls
21184
21185 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
21186
21187         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
21188
21189 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
21190
21191         * RichTextBox.cs: Added initial implementation
21192         * lang.cs: Removed. Was accidentally checked in long time ago
21193         * TODO: Removed. Contents were obsolete
21194
21195 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
21196                                                                                 
21197         * PropertiesTab.cs : Added
21198
21199 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
21200                                                                                 
21201         * PropertyGrid.cs : Update
21202         * PropertyGridView.cs : Update
21203         * System.Windows.Forms.resx : Added images and strings
21204
21205 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
21206
21207         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
21208  
21209 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
21210
21211         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
21212           a busy loop right after the Ungrab the X11 display is otherwise 
21213           blocked
21214
21215 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
21216
21217         * ThemeWin32Classic.cs: Optimise the use of clipping
21218
21219 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
21220
21221         * DataGrid.cs: fixes recursion bug
21222
21223 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
21224
21225         * ThemeNice.cs: 
21226           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
21227           - Cleanup
21228
21229 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
21230
21231         * ThemeNice.cs: Draw nice ProgressBars
21232
21233 2005-09-01  Miguel de Icaza  <miguel@novell.com>
21234
21235         * VScrollBar.cs: Another buglet found by Aaron's tool. 
21236
21237         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
21238         bug finder.
21239
21240 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
21241
21242         * ThemeNice.cs:
21243           - Added nicer menu drawing
21244           - Updated DrawTab
21245           - some refactoring
21246
21247 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
21248
21249         * CreateParams.cs (ToString): Made output match MS
21250         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
21251             handle is already created (to avoid forcing window creation)
21252         * XplatUIX11.cs: Set window text to caption after creating window,
21253           in case Text was set before window was created
21254         * Form.cs: Use this.Text instead of a static string as caption
21255
21256 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
21257
21258         * NotifyIcon.cs: Don't set the window to visible; this screws
21259           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
21260           OnPaint without a bitmap)
21261         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
21262           happen very often anyway; we could add the check to the WM_PAINT 
21263           event generation code
21264
21265 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
21266
21267         * NotifyIcon.cs: Fill the icon area with a background color, to 
21268           avoid 'residue' when transparent icons are drawn
21269         * XplatUIX11.cs:
21270           - Handle whole_window == client_window when destroying windows
21271           - SystrayAdd(): Set client_window to whole_window value to
21272             get mouse and other events passed to NotifyIcon
21273
21274 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
21275
21276         * Form.cs: Set proper default for Opacity property
21277         * NotifyIcon.cs:
21278           - ShowSystray(): Don't bother creating telling the OS
21279             about the systray item if no icon is provided
21280           - Now handles WM_NCPAINT message to deal with whole/client window
21281             split
21282           - Create window as visible to not get caught by Expose optimization
21283         * Hwnd.cs: Removed debug message
21284         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
21285           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
21286             PaintEventStart/End to use new client argument
21287         * TextBoxBase.cs:
21288           - Commented out debug messages
21289           - Switched PaintEventStart/End to use new client argument
21290         * XplatUI.cs: Added client window bool to PaintEventStart()/
21291           PaintEventEnd() calls, to support drawing in non-client areas
21292         * XplatUIDriver.cs: 
21293           - Added client window bool to PaintEventStart()/PaintEventEnd() 
21294             calls, to support drawing in non-client areas
21295           - Added conditional compile to allow using MWF BeginInvoke 
21296             on MS runtime
21297         * XplatUIX11.cs:
21298           - Added some conditional debug output
21299           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
21300             whole/client window split
21301           - Implemented handling of client argument to PaintEventStart()/End()
21302         * Control.cs:
21303           - Throw exception if BeginInvoke() is called and the window handle
21304             or one of the window's parent handles is not created
21305           - Added conditional compile to allow using MWF BeginInvoke on
21306             MS runtime
21307           - get_Parent(): Only sets parent if handle is created. This avoids
21308             forcing window handle creation when parent is set.
21309           - Now fires Layout and Parent changed events in proper order
21310           - Switched to use Handle instead of window.Handle for Z-Order setting,
21311             the get_Parent() patch above causes us to possibly get null for 'window'
21312           - Implemented handling of client argument to PaintEventStart()/End()
21313           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
21314             default handling)
21315           - Now sends a Refresh() to all child windows when Refresh() is called
21316
21317 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
21318
21319         * Form.cs: Added (non-functional) Opacity property
21320         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
21321
21322 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
21323         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
21324           use export MONO_THEME=nice to activate it.
21325           Currently supported controls:
21326           - Button
21327           - ComboBox
21328           - ScrollBar
21329           - TabControl (TabAlignment.Top only, other will follow)
21330         * ThemeEngine.cs: Add theme nice
21331         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
21332           if enabled
21333
21334 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
21335
21336         * Splitter.cs: Resize docked control and its neighbor.
21337
21338 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
21339         -- Making Windows with Menus layout correctly --
21340         * Form.cs : The first leg of the fix
21341                 Menu setter - adjust Client Size as needed to make space for the menu
21342                 SetClientSizeCore - doesn't call base version to be able to pass the 
21343                         menu handle to XplatUI.CalculateWindowRect
21344         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
21345         * XplatUIX11.cs: The critical second leg of the fix
21346                 GetWindowPos needs to use a recalculated client_rect
21347                 so that resizing the window doesn't break layout of child controls. 
21348                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
21349                 Lots of \t\n killed
21350
21351 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
21352
21353         * Label.cs: Now properly recalculates width and height on Font and Text
21354           changes if AutoSize is set
21355
21356 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
21357         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
21358
21359 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
21360
21361         * ImageList.cs: Makes ToString method compatible with MS
21362
21363 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
21364
21365         * MenuAPI.cs: fixes bug 75716
21366
21367 2005-08-11 Umadevi S <sumadevi@novell.com>
21368         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
21369
21370 2005-08-11 Umadevi S <sumadevi@novell.com>
21371         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
21372
21373 2005-08-10  Umadevi S <sumadevi@novell.com>
21374         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
21375
21376 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
21377
21378         * Menu.cs: fixes bug 75700
21379         * MenuAPI.cs: fixes navigation issues
21380
21381 2005-08-09  Umadevi S <sumadevi@novell.com>
21382         * CheckedListBox.cs - simple fix for GetItemChecked.
21383
21384 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
21385
21386         * ComboBox.cs: Serveral fixes
21387         * ListBox.cs: Serveral fixes
21388
21389 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
21390
21391         * ComboBox.cs: Fixes FindString methods and GetItemHeight
21392         * ListBox.cs: Fixes FindString methods
21393
21394 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
21395
21396         * DataGrid.cs: fixes bugs exposed by new tests
21397
21398 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
21399
21400         * Mime.cs: Compile Mono assembly references only if compiling
21401           with Mono (Allows to build with VS.Net again)
21402
21403 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
21404
21405         * Control.cs (PaintControlBackground): Draw background image
21406         corrrectly.
21407         (CheckForIllegalCrossThreadCalls): Stubbed.
21408         
21409         * Form.cs (OnCreateControl): Center when should be centered.
21410         
21411         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
21412
21413 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
21414
21415         * Binding.cs: Binding to properties should be case unsensitive
21416
21417 2005-07-18 vlindos@nucleusys.com
21418
21419         * DataGrid.cs: fixes setmember order
21420
21421 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
21422
21423         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
21424         * FileDialog.cs: FileDialog is now resizable and uses the new
21425           MimeIconEngine
21426
21427 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
21428
21429         * DataGridTextBoxColumn.cs: default value
21430         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
21431         * GridTableStylesCollection.cs: fixes checking MappingName
21432         * DataGridDrawingLogic.cs: fixes drawing logic issues
21433         * DataSourceHelper.cs: rewritten to make compatible with more data sources
21434         * DataGrid.cs: fixes    
21435
21436 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
21437
21438         * MimeGenerated.cs: Use case sensitive comparer for
21439           NameValueCollections
21440
21441 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
21442
21443         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
21444         * ThemeWin32Classic.cs: bug fixes, code refactoring
21445         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
21446         * DataGrid.cs: bug fixes, code refactoring
21447         * DataGridTextBox.cs: bug fixes, code refactoring
21448         * DataGridColumnStyle.cs:  bug fixes, code refactoring
21449         * Theme.cs:  bug fixes, code refactoring
21450
21451 2005-07-01  Peter Bartok  <pbartok@novell.com> 
21452
21453         * TextControl.cs: Quick fix for the reported crash on ColorDialog
21454           and other text box usage
21455
21456 2005-07-01  Jackson Harper  <jackson@ximian.com>
21457
21458         * TabControl.cs: Make sure the bottom of the tab covers the pages
21459         border.
21460
21461 2005-06-30  Peter Bartok  <pbartok@novell.com> 
21462
21463         * Form.cs (ShowDialog): Assign owner of the dialog
21464         * TextBoxBase.cs: Always refresh caret size when deleting, caret
21465           might have been moved to a tag with different height
21466
21467 2005-06-30  Jackson Harper  <jackson@ximian.com>
21468
21469         * Form.cs: Don't create an infinite loop when setting focus
21470         * MenuItem.cs: Don't dirty the parents if we don't have any
21471
21472 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
21473
21474         * LibSupport.cs: Rename
21475
21476 2005-06-29  Peter Bartok  <pbartok@novell.com>
21477
21478         * TextBoxBase.cs: Re-align caret after deleting a character
21479         * TextControl.cs:
21480           - DeleteChars(): Ensure that tag covers the provided position
21481           - StreamLine(): Drop reference for dropped tag
21482
21483 2005-06-29  Peter Bartok  <pbartok@novell.com> 
21484
21485         * TextControl.cs: 
21486           - Selections now work properly, anchoring at the initial location
21487             and properly extending in either direction (SetSelectionToCaret(),
21488             SetSelectionStart() and SetSelectionEnd())
21489           - No longer redraws the whole control on selection change, now
21490             calculates delta between previous and new selection and only
21491             invalidates/redraws that area
21492           - Fixed FindPos() math off-by-one errors
21493           - Changed DeleteChars() to verify the provided tag covers the
21494             provided position, selections may have a tag that doesn't cover
21495             the position if the selection is at a tag border
21496           - Fixed off-by-one errors in DeleteChars()
21497           - Added missing streamlining check in DeleteChars() to remove
21498             zero-length tags
21499           - Implemented Invalidate() method, now properly calculates exposures
21500             between two given lines/positions
21501           - Implemented SetSelection()
21502           - Obsoleted and removed FixupSelection()
21503           - Improved RecalculateDocument() logic, removing code duplication
21504
21505 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21506
21507         * LibSupport.cs: changes to match different input/output arguments.
21508
21509 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21510
21511         * LibSupport.cs: added libsupport.so init routine.
21512
21513 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
21514         
21515         * ControlBindingsCollection.cs
21516                 - Throws an exception on null datasource when adding
21517                 - Checks for duplicated bindings when adding
21518
21519 2005-06-28  Jackson Harper  <jackson@ximian.com>
21520
21521         * TreeView.cs (OnKeyDown): Support left and right properly
21522         (navigates as well as expanding and collapsing.
21523         - Add support for Multiply, this expands all the selected nodes
21524         children.
21525         - Fix some tabbing.
21526
21527 2005-06-28  Jackson Harper  <jackson@ximian.com>
21528
21529         * TreeView.cs: Implement keyboard navigation, currently supports,
21530         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
21531         support for toggling checkboxes with the space bar.
21532
21533 2005-06-28  Jackson Harper  <jackson@ximian.com>
21534
21535         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
21536         tree.
21537
21538 2005-06-28  Jackson Harper  <jackson@ximian.com>
21539
21540         * TreeView.cs: Add missing event.
21541
21542 2005-06-27  Peter Bartok  <pbartok@novell.com> 
21543
21544         * TextControl.cs:
21545           - Made line ending size configurable (now allows for counting 
21546             lineendings as \n or \r\n)
21547           - Added margin to viewport to keep caret visible on right side
21548           - Fixed translation routines for line/pos to documentpos to consider
21549             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
21550           - Fixed some line-endings to be unix style
21551           - Fixed Document.FormatText to perform it's calculations 1-based
21552           - Added descriptions for a few methods that might otherwise get 
21553             used wrong
21554           - Added NOTE section with some basic conventions to remember at 
21555             the top of the file
21556           - Major fixup for RichTextBox selection drawing:
21557             * Fixed crashes when multiple tags on a single line were selected
21558             * fixed selection box drawing not overlaying text
21559             * fixed bogus offset calculation for tags not starting at index 1
21560             * Switched behaviour from using multiple Substrings of a 
21561               StringBuilder.ToString() to using multiple 
21562               StringBuilder.ToString(start, length) statements, hoping this is
21563               faster (kept original version commented out in the code, in case
21564               original version was faster)
21565         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
21566           alignment != Left
21567         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
21568           call it as well
21569
21570 2005-06-27  Jackson Harper  <jackson@ximian.com>
21571
21572         * TabControl.cs: Move to the left and right with the arrow
21573         keys. These keys don't cycle beyond first and last like
21574         tab. Refresh all the tabs when scrolling them to the left or
21575         right.
21576
21577 2005-06-27  Jackson Harper  <jackson@ximian.com>
21578
21579         * TabControl.cs:
21580           - ToString: Added method
21581           - CreateParams: Remove TODO and comment
21582           - OnKeyDown: Cycle through bounds properly.
21583           - SelectedIndex: Scroll to the right or left if we need to
21584           display the newly selected tab.
21585
21586 2005-06-23  Jackson Harper  <jackson@ximian.com>
21587
21588         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
21589         set.
21590
21591 2005-06-23  Jackson Harper  <jackson@ximian.com>
21592
21593         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
21594         CTRL-SHIFT-TAB, and HOME, END are there any others?
21595
21596 2005-06-23  Jackson Harper  <jackson@ximian.com>
21597
21598         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
21599
21600 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
21601         
21602         * DataGridTextBoxColumn.cs: fixes and enhancements
21603         * ThemeWin32Classic.cs: fixes and enhancements
21604         * DataGridBoolColumn.cs:  fixes and enhancements
21605         * DataGridDrawingLogic.cs:  fixes and enhancements
21606         * CurrencyManager.cs: fixes and enhancements
21607         * DataGrid.cs: fixes and enhancements
21608         * DataGridColumnStyle.cs:  fixes and enhancements
21609
21610 2005-06-22  Jackson Harper  <jackson@ximian.com>
21611
21612         * TabControl.cs: Add some missing methods that just call into the
21613         base. Make the TabPageCollection's IList interface behave in the
21614         same manner as the MS implementation.
21615
21616 2005-06-22  Peter Bartok  <pbartok@novell.com> 
21617
21618         * TextControl.cs: Added sanity check
21619         * TextBoxBase.cs: 
21620           - Fixed wrapping behaviour, don't set wrap on single line controls
21621             (this fixes the breakage of colordialog introduced in an earlier
21622              checkin)
21623           - Added rudimentary support for autoscrolling right-aligned controls
21624             (still needs fixing, also, center alignment scroll is missing)
21625
21626 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
21627         
21628         * ScrollBar.cs: Fixes thumbpos on Maximum values
21629
21630 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
21631         
21632         * PropertyGridView.cs: Pass context information to UITypeEditors 
21633
21634 2005-06-21  Peter Bartok  <pbartok@novell.com> 
21635
21636         * TextBoxBase.cs:
21637           - Now calling PositionCaret with absolute space coordinates
21638           - Enabled vertical scrolling
21639           - Better tracking of scrollbar changes, tied into WidthChange
21640             event
21641           - Improved cursor tracking
21642           - Removed debug output
21643         * TextControl.cs:
21644           - PositionCaret coordinates are now works in absolute space, not 
21645             the canvas
21646           - Improved tracking of document size
21647           - Added events for width and height changes
21648
21649 2005-06-21  Peter Bartok  <pbartok@novell.com>
21650
21651         * Form.cs: Set focus to active control when form is activated
21652         * TextControl.cs: 
21653           - Added word-wrap functionality to RecalculateLine() 
21654           - Added some short function descriptions for VS.Net to aid in
21655             writing dependent controls
21656           - Added Caret property, returning the current coords of the caret
21657           - Added ViewPortWidth and ViewPortHeight properties
21658           - Added Wrap property
21659           - Added CaretMoved event
21660           - Removed some old debug code
21661           - Split() can now create soft splits
21662           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
21663           - Added method to format existing text
21664           - Fixed size/alignment calculations to use viewport
21665           - RecalculateDocument now can handle changing line-numbers while
21666             calculating lines
21667
21668         * TextBox.cs:
21669           - Added some wrap logic, we don't wrap if alignment is not left
21670           - Added casts for scrollbar var, base class switched types to
21671             also support RichTextBoxA
21672           - Implemented handling of scrollbar visibility flags
21673
21674         * TextBoxBase.cs:
21675           - Switched scrollbars type to RichTextBoxScrollBars to support
21676             RichTextBox
21677           - Added tracking of canvas width/height
21678           - Switched scrollbars to be not selectable (to keep focus on text)
21679           - Added central CalculateDocument() method to handle all redraw
21680             requirements
21681           - Added ReadOnly support
21682           - Added WordWrap support
21683           - Fixed handling of Enter key (we now treat it as a DialogKey)
21684           - Fixed caret positioning when h or v scroll is not zero
21685           - Fixed placing/generation of vertical scrollbar
21686           - Added CalculateScrollBars() method to allow updating scrollbar
21687             limits and visibility
21688           - Fixed handling of horizontal scroll
21689           - Added handling of vertical scroll
21690           - Implemented auto-'jump' when caret moves to close to a left or
21691             right border and there is text to be scrolled into view (currently
21692             there's the potential for a stack overflow, until a bug in
21693             scrollbar is fixed)
21694
21695 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
21696         
21697         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
21698
21699 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
21700
21701         * Mime.cs:
21702         - added inodes.
21703         - return application/x-zerosize for files with size zero
21704           (if no extension pattern matches).
21705         - check matches collection for strings too.
21706         - return only the first mime type if the name value
21707           collection has more than one mime type.
21708
21709 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
21710         
21711         * PropertyGrid.cs: Cleaned up some TODOs
21712         * PropertyGridView.cs: Added support for UITypeEditors
21713
21714 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
21715         
21716         * DataGrid.cs: clears cached value
21717
21718 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
21719
21720         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
21721         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
21722         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
21723         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
21724         
21725 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
21726
21727         * ThemeWin32Classic.cs: fixes colour
21728
21729 2005-06-15  Peter Bartok  <pbartok@novell.com>
21730
21731         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
21732         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
21733         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
21734         * Control.cs: Added some MWFCategory and MWFDescription attributes
21735         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
21736
21737 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
21738
21739         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
21740         usage
21741
21742 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
21743
21744         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
21745         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
21746         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
21747         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
21748         * DataGrid.cs: default datagrid settings for Default Styles, fixes
21749         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
21750
21751 2005-06-13  Jackson Harper  <jackson@ximian.com>
21752
21753         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
21754         isn't printed when the user enables dropping. (X11 does accept
21755         drops).
21756         
21757 2005-06-13  Jackson Harper  <jackson@ximian.com>
21758
21759         * TreeView.cs: Remove some TODOS.
21760
21761 2005-06-13  Jackson Harper  <jackson@ximian.com>
21762
21763         * Form.cs: Hook into the mdi framework.
21764         * MdiClient.cs: Use the base control collections add method so
21765         parents get setup correctly. Set the default back colour and dock
21766         style.
21767         * MdiChildContext.cs: New class, this bad actor handles an
21768         instance of an MDI window. Right now there is only basic
21769         support. You can drag, close, and resize windows. Minimize and
21770         Maximize are partially implemented.
21771
21772 2005-06-13  Jackson Harper  <jackson@ximian.com>
21773
21774         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
21775         freaky when both vals are negative. NOTE: There are probably other
21776         places in XplatUIX11 that this needs to be done.
21777
21778 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
21779
21780         * DataGrid.cs: implement missing methods, move KeyboardNavigation
21781         * DataGridColumnStyle.cs: fixes signature
21782
21783 2005-06-12  Jackson Harper  <jackson@ximian.com>
21784
21785         * XplatUIX11.cs: Use sizing cursors similar to the ones on
21786         windows.
21787
21788 2005-06-11  Jackson Harper  <jackson@ximian.com>
21789
21790         * StatusBarPanel.cs: Signature cleanups. Implement
21791         BeginInit/EndInit.
21792
21793 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
21794
21795         * DataGridTextBoxColumn.cs: Honors aligment
21796         * GridColumnStylesCollection.cs: Contains is case unsensitive
21797         * GridTableStylesCollection.cs: several fixes
21798         * DataGridTableStyle.cs: default column creation
21799         * DataGridDrawingLogic.cs: fixes
21800         * CurrencyManager.cs: ListName property
21801         * DataGrid.cs: multiple styles support
21802         * DataGridColumnStyle.cs: fixes
21803         
21804
21805 2005-06-10  Peter Bartok  <pbartok@novell.com>
21806
21807         * Control.cs(Select): Moved SetFocus call to avoid potential
21808           loops if controls change the active control when getting focus
21809         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
21810           the up/down buttons
21811
21812 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
21813
21814         * ImageListConverter.cs: Implemented
21815
21816 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
21817
21818         * MonthCalendar.cs: Wired in NumericUpDown control for year
21819
21820 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
21821
21822         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
21823           DoubleClick events, since they are not meant to be fired.
21824
21825 2005-06-09  Peter Bartok  <pbartok@novell.com>
21826
21827         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
21828           Jonathan's standalone controls into MWF, implemented missing
21829           events, attributes and methods; added xxxAccessible classes
21830         * AccessibleObject.cs: Made fields internal so other classes
21831           can change them if needed
21832
21833 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
21834
21835         * UpDownBase.cs: Complete implementation
21836         * NumericUpDown.cs: Complete implementation
21837         * DomainUpDown.cs: Complete implementation
21838
21839 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
21840
21841         * DataGridTextBoxColumn.cs: drawing fixes
21842         * DataGridCell.cs: fixes ToString method to match MSNet
21843         * DataGridTableStyle.cs: fixes
21844         * DataGridBoolColumn.cs: fixes, drawing
21845         * DataGridDrawingLogic.cs: fixes, new methods
21846         * DataGridTextBox.cs: Keyboard and fixes
21847         * DataGrid.cs:
21848                 - Keyboard navigation
21849                 - Scrolling fixes
21850                 - Row selection (single, multiple, deletion, etc)
21851                 - Lots of fixes
21852         
21853 2005-06-07  Jackson Harper  <jackson@ximian.com>
21854
21855         * ThemeWin32Classic.cs: Clear the background area when drawing
21856         buttons.
21857
21858 2005-06-06  Peter Bartok  <pbartok@novell.com>
21859
21860         * ImageListStreamer.cs: Fixed signature for GetData
21861         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
21862         * ComboBox.cs:
21863           - Added missing ChildAccessibleObject class
21864           - Added missing OnXXXFocus overrides, switched to using those
21865             instead of the event handler
21866         * Control.cs:
21867           - Added Parent property for ControlAccessibleObject
21868           - Fixed signatures
21869           - Fixed attributes
21870           - Added ResetBindings()
21871         * ListBindingConverter.cs: Implemented some methods
21872         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
21873         * ImageList.cs: Implemented basic handle scheme, removed TODOs
21874         * ContainerControl.cs: Fixed signature, now subscribing to the
21875           ControlRemoved event instead of overriding the handler, LAMESPEC
21876         * CurrencyManager.cs: Added missing attribute
21877         * MonthCalendar.cs: Added missing properties
21878
21879 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
21880
21881         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
21882         
21883 2005-06-06  Gaurav Vaish and Ankit Jain
21884
21885         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
21886         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
21887         
21888 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
21889
21890         * Control.cs: fixes CreateParams Width / Height.
21891
21892 2005-06-05  Peter Bartok  <pbartok@novell.com>
21893
21894         * Win32DnD.cs: Removed compilation warnings
21895
21896 2005-06-05  Peter Bartok  <pbartok@novell.com>
21897
21898         * Control.cs (CreateParams): Since we don't know if one of the
21899           properties we use is overridden, lets make sure if we fail accessing
21900           we continue with a backup plan
21901
21902 2005-06-05  Peter Bartok  <pbartok@novell.com>
21903
21904         * Win32DnD.cs:
21905           - Removed debug output
21906           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
21907             struct
21908           - Plugged resource leak
21909         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
21910           MS size
21911
21912 2005-06-05  Peter Bartok  <pbartok@novell.com>
21913
21914         * XplatUIWin32.cs: Removed DnD code
21915         * Win32DnD.cs: Implemented drop source and drop target functionality
21916
21917 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21918
21919         * UpDownBase.cs: remove duplicate addition of event, enable some code
21920         that was commented out.
21921         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
21922         Validate input when a key is pressed. It works fine now for every
21923         combination of Hexadecimal. Only missing some drawing love when sharing
21924         space with other controls.
21925
21926 2005-06-04  Peter Bartok  <pbartok@novell.com>
21927
21928         * Control.cs:
21929           - We need to pass a window for DragDrop, so enable callback events
21930           - Added DnD callback events when being a DragSource
21931         * XplatUI.cs (StartDrag): Added window handle argument
21932         * XplatUIDriver.cs (StartDrag): Added window handle argument
21933         * QueryContinueDragEventArgs: Made fields internally accessible so
21934           drivers can set them
21935         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
21936           can set them
21937
21938 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
21939
21940         * DataGridTextBoxColumn.cs: column text editing
21941         * DataGridTableStyle.cs: Respect columns styles created by the user
21942         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
21943         * DataGridBoolColumn.cs: bool column editing
21944         * DataGrid.cs: fixes to scrolling, properties, etc
21945         * DataGridTextBox.cs: handle keyboard
21946         * DataGridColumnStyle.cs: fixes
21947
21948 2005-06-02  Jackson Harper  <jackson@ximian.com>
21949
21950         * ImageListStreamer.cs: Somewhat broken implementation of
21951         GetObjectData. The RLE needs some work to match MS properly.
21952
21953 2005-06-02  Jackson Harper  <jackson@ximian.com>
21954
21955         * X11Dnd.cs: Attempting to keep at least one file in MWF
21956         monostyled.
21957
21958 2005-06-02  Peter Bartok  <pbartok@novell.com>
21959
21960         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
21961           that way
21962
21963 2005-06-02  Peter Bartok  <pbartok@novell.com>
21964
21965         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
21966         * XplatUI.cs: Added DoDragDrop() method
21967         * XplatUIDriver.cs: Added DoDragDrop() method
21968
21969 2005-06-02  Jackson Harper  <jackson@ximian.com>
21970
21971         * Splitter.cs: Implement BorderStyle.
21972
21973 2005-06-02  Jackson Harper  <jackson@ximian.com>
21974
21975         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
21976         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
21977         X11 using XDND.
21978
21979 2005-06-02  Peter Bartok  <pbartok@novell.com>
21980
21981         * DataObject.cs:
21982           - Added Data setter
21983           - Fixed broken insertion code for SetData, now also
21984             overwrites any existing entry of the same format name
21985         * Hwnd.cs: Added list of pointers that automatically gets
21986           freed when the window is disposed
21987         * XplatUI.cs: Call driver initialization method when loading
21988           a driver
21989         * Control.cs:
21990           - OnDragLeave takes EventArgs, not DragEventArgs
21991           - Added setting of WS_EX_ACCEPTFILES style when dropping is
21992             supported
21993           - Forces style update when drop state changes
21994         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
21995           not perfect since we cannot (yet) call the IDataObject.GetData()
21996           method, we keep getting 0x80004005 error, dunno why)
21997
21998 2005-06-02  Peter Bartok  <pbartok@novell.com>
21999
22000         * DragEventArgs.cs: Make fields internal so we can cache the
22001           object and re-set the fields from XplatUI
22002
22003 2005-06-02  Jackson Harper  <jackson@ximian.com>
22004
22005         * Control.cs: Add some internal methods so the DnD subsystem can
22006         raise DnD events. Also call into the driver when AllowDrop is set.
22007         * XplatUI.cs:
22008         * XplatUIDriver.cs: New method for setting whether or not a window
22009         is allowed to accept drag and drop messages.
22010                 
22011 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
22012         
22013         * ScrollBar.cs: Make sure that values sent in Scroll events
22014         are always between Maximum and Minimum.
22015
22016 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
22017
22018         * Menu.cs: Call MenuChanged when menuitem visibility has been
22019         changed.
22020         * MenuItem.cs: Rebuild menu when item is (not) visible.
22021         * MainMenu.cs: MainMenu has special MenuChanged.
22022         * Theme.cs: Caption and FrameBorderSize are not fixed.
22023         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
22024         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
22025         * XplatUIX11.cs,
22026         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
22027         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
22028
22029 2005-05-30  Jackson Harper  <jackson@ximian.com>
22030
22031         * DataFormat.cs: We can't statically initialize this stuff because
22032         it calls into the xplatui and could create a loop. So we lazy init
22033         it.
22034
22035 2005-05-28  Jackson Harper  <jackson@ximian.com>
22036
22037         * Control.cs: Proper implementation of Product(Name/Version).
22038
22039 2005-05-27  Jackson Harper  <jackson@ximian.com>
22040
22041         * DataObject.cs: Dont crash if no data is found.
22042
22043 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
22044         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
22045                 as per status page, guessing it should be set to true
22046
22047 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
22048
22049         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
22050         * DataGridTableStyle.cs: set proper formatting text, def header text
22051         * ThemeWin32Classic.cs: new themable paramaters
22052         * DataGridBoolColumn.cs: paint check box, get data, fixes
22053         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
22054         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
22055         * DataGridColumnStyle.cs: fixes
22056         * Theme.cs: new themable paramaters
22057                 
22058 2005-05-26  Peter Bartok  <pbartok@novell.com>
22059
22060         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
22061
22062 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
22063         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
22064
22065 2005-05-24  Peter Bartok  <pbartok@novell.com>
22066
22067         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
22068           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
22069           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
22070           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
22071           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
22072           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
22073           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
22074           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
22075           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
22076           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
22077           missing attributes, etc
22078         * DataGridPreferredColumnWidthTypeConverter.cs: Added
22079
22080 2005-05-24  Peter Bartok  <pbartok@novell.com>
22081
22082         * Help.cs: Added, implemented trivial functions, throws up MessageBox
22083           when user tries to get help
22084         * DataObject.cs, DataFormats.cs, LinkArea.cs,
22085           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
22086           to suppress warnings
22087         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
22088           avoid unreachable code warning
22089
22090 2005-05-20  Peter Bartok  <pbartok@novell.com>
22091
22092         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
22093
22094 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
22095
22096         * DataGridTextBoxColumn.cs: Basic painting methods
22097         * DataGridTableStyle.cs: Set table style in the column
22098         * ThemeWin32Classic.cs: Use Theme for colors
22099         * DataGridDrawingLogic.cs: Implement more drawing
22100         * DataGrid.cs: drawing, theming, enhacements, fixes
22101         * DataGridColumnStyle.cs: fixes, drawing
22102         * Theme.cs: theming for Datagrid
22103
22104 2005-05-20  Peter Bartok  <pbartok@novell.com>
22105
22106         * Cursor.cs: Implemented GetObjectData() method
22107
22108 2005-05-20  Peter Bartok  <pbartok@novell.com>
22109
22110         * Cursors.cs: Added setting of cursor name
22111         * Cursor.cs:
22112           - Implemented constructors
22113           - Implemented Draw and DrawStretched
22114           - Implemented Current property
22115           - Implemented == and != operators
22116           - Implemented Dispose()
22117           - Implemented ToString
22118           - Added missing attributes
22119         * XplatUIX11.cs:
22120           - Added missing reset for OverrideCursor when DoEvents is called
22121           - Fixed creation of cursor, logic was wrong
22122         * XplatUIWin32.cs:
22123           - Added missing reset for OverrideCursor when DoEvents is called
22124           - Fixed creation of cursor, bit arrays were swapped
22125         * Clipboard.cs: Removed obsolete MonoTODO attribute
22126
22127 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
22128
22129         * ComboBox.cs: fixes OnSelectedItemChanged
22130         * ControlBindingsCollection.cs: fixes item range check
22131
22132 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
22133
22134         * UpDownBase.cs:
22135                 - Calc preferred height properly
22136                 - Implement missing properties
22137                 
22138         * NumericUpDown.cs: Implement missing events
22139
22140 2005-05-19  Jackson Harper  <jackson@ximian.com>
22141
22142         * TabControl.cs: New method that resizes the tab pages before
22143         redrawing them. This as needed as the control is double buffered
22144         and sizing will not be recalculated unless ResizeTabPages is
22145         called.
22146         * TabPage.cs: Set base.Text instead of Text in the constructor so
22147         that UpdateOwner does not get called. Use the new Redraw method of
22148         TabControl instead of Refresh so the sizing is recalculated.
22149         * ThemeWin32Classic.cs: Draw the text for button tabs.
22150
22151 2005-05-19  Jackson Harper  <jackson@ximian.com>
22152
22153         * Control.cs: Paint control background images. Fix typo where
22154         PaintControlBackground was not getting called correctly.
22155
22156 2005-05-19  Peter Bartok  <pbartok@novell.com>
22157
22158         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
22159           I can investigate, apparently I broke FileDialog
22160
22161 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
22162
22163         * AxHost.cs: Some simple properties.
22164         * Control.cs: window must be accessible after ctor.
22165         * Form.cs: Added TransparencyKey property.
22166         * TextBoxBase.cs: Implemented Clear. Text property can be null.
22167         * XplatUIWin32.cs: SetBorderStyle implemented.
22168
22169 2005-05-18  Peter Bartok  <pbartok@novell.com>
22170
22171         * DataObject.cs: Entries are not global but particular to the
22172           DataObject, now it behaves that way
22173         * XplatUIWin32.cs: Implemented Clipboard methods
22174         * Clipboard.cs: Implemented
22175         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
22176         * XplatUIOSX.cs: Updated to final clipboard prototypes
22177         * XplatUIX11.cs: Implemented Clipboard methods
22178         * XplatUIDriver.cs: Updated to final clipboard prototypes
22179         * XplatUIStructs.cs:
22180           - Added BITMAPINFOHEADER struct
22181           - Added ClipboardFormats enum
22182         * X11Structs.cs:
22183           - Added ClipboardStruct
22184           - Added Atom enum items for clipboard types
22185           - Fixed atom types for Selection event structures
22186         * DataFormats.cs:
22187           - Added internal properties and methods for drivers to enumerate
22188             all known formats
22189           - Switched initialization method to allow drivers to assign their
22190             own IDs even for the MS predefined clipboard IDs
22191         * XplatUI.cs: Updated to final clipboard interface
22192
22193 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
22194         * PropertyGridView.cs: Fixed compiler warnings.
22195
22196 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
22197         * PropertyGrid.cs: Added some event calls
22198         * PropertyGridView.cs: Change drawing code to use double buffering
22199         * PropertyGridTextBox.cs: Changed Text property name
22200         * GridItem.cs: Added Bounds property.
22201         * GridEntry.cs: Added Bounds property.
22202
22203 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
22204
22205         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
22206         since GetType() may not return the correct type if the object is
22207         a remoting proxy.
22208
22209 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
22210
22211         * TreeNodeCollection.cs: fixes get/set item ranges
22212         
22213 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
22214
22215         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
22216                 
22217 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
22218
22219         * ComboBox.cs: Fix item range comparation
22220         * ListView.cs: Fix item range comparation
22221
22222 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
22223
22224         * FontDialog.cs:
22225           - Clear example panel when OnPaint is called
22226           - Better solution for displaying the example panel text
22227           - Select default indexes in the ListBoxes
22228
22229 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
22230
22231         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
22232
22233 2005-05-11  Peter Bartok  <pbartok@novell.com>
22234
22235         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
22236         * SelectionRangeConverter.cs: Implemented
22237         * PropertyGrid.cs: Fixed attribute value
22238         * Control.cs:
22239           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
22240           - Added Sebastien Pouliot's CAS Stack Propagation fixes
22241         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
22242           that's common to all drivers. First methods to go there are
22243           Sebastien Pouliot's CAS Stack Propagation helper methods
22244         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
22245           Sebastien Pouliot for CAS Stack Propagation
22246
22247 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
22248
22249         * OSXStructs.cs:
22250           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
22251
22252 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
22253
22254         * DataGridTextBoxColumn.cs: fixed some members
22255         * GridColumnStylesCollection.cs: indexed column is case insensitive
22256         * DataGridTableStyle.cs: fixes
22257         * ThemeWin32Classic.cs: add new theme parameter
22258         * Theme.cs: add new theme parameter
22259         * DataGridDrawingLogic.cs: Datagrid's drawing logic
22260         * DataGrid.cs: fixes, new internal properties, etc.
22261         * DataGridColumnStyle.cs: allows to set grid value
22262         *
22263
22264 2005-05-10  Peter Bartok  <pbartok@novell.com>
22265
22266         * AccessibleObject.cs:
22267           - Removed MonoTODO attribute on help, method is correct
22268           - Fixed Bounds property
22269         * AxHost.cs: Moved MonoTODO
22270         * ButtonBase.cs: Now setting AccessibleObject properties
22271         * RadioButton.cs: Setting proper AccessibleObject role
22272         * CheckBox.cs: Setting proper AccessibleObject role
22273         * ControlBindingsCollection.cs: Added properties, methods and attributes
22274         * DataFormats.cs: Fixed awkward internal API, and changed to enable
22275           userdefined DataFormats.Format items as well
22276         * ListControl.cs: Removed data_member from the public eye
22277         * OpenFileDialog.cs:
22278           - Made class sealed
22279           - Added missing attributes
22280         * SaveFileDialog.cs: Added missing attributes
22281         * ImageListStreamer.cs: Fixed code that caused warnings
22282         * LinkLabel.cs: Removed unreachable code
22283         * TreeView.cs: Fixed code that caused warnings
22284         * PropertyGridView.cs: Fixed code that caused warnings
22285         * GridColumnStylesCollection.cs: Added missing attributes
22286         * GridTableStylesCollection: Added missing attribute
22287         * PropertyManager: Added .ctor
22288         * SecurityIDType: Added
22289         * DataObject.cs: Implemented class
22290         * LinkArea.cs: Added missing attribute
22291
22292 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
22293
22294         * RadioButton.cs: call base method to allow to fire OnClick event
22295         * UpDownBase.cs: OnMouseUp call base method
22296         * CheckedListBox.cs: call base method before returning
22297         * TrackBar.cs: call base method before returning
22298         
22299
22300 2005-05-10  Peter Bartok  <pbartok@novell.com>
22301
22302         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
22303           for messages
22304
22305 2005-05-10  Peter Bartok  <pbartok@novell.com>
22306
22307         * DataFormats.cs: Implemented
22308         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
22309           XplatUIX11.cs: Added Clipboard APIs
22310         * XplatUIWin32.cs: Implemented Clipboard APIs
22311         * FolderBrowserDialog.cs: Added missing event, attributes
22312
22313 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
22314
22315         * CheckBox.cs: call base method to allow to fire OnClick event
22316
22317 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
22318
22319         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
22320
22321 2005-05-06  Peter Bartok  <pbartok@novell.com>
22322
22323         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
22324         * Screen.cs: Implemented
22325         * HelpNavigator.cs: Added
22326         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
22327           property
22328         * HelpProvider.cs: Implemented all we can do until we have a CHM
22329           help library (which means that "What's This" does work now)
22330
22331 2005-05-06  Jackson Harper  <jackson@ximian.com>
22332
22333         * XplatUIX11.cs: Fix waking up the main loop.
22334                 
22335 2005-05-05  Peter Bartok  <pbartok@novell.com>
22336
22337         * XplatUI.cs: Updated revision
22338         * Form.cs: Removed enless loop
22339         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
22340         * Label.cs (OnPaint): Added call to base.OnPaint()
22341         * ToolTip.cs: Made ToolTipWindow reusable for other controls
22342         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
22343         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
22344         * AxHost.cs: Added
22345         * ButtonBase.cs: Moved base.OnPaint() call to end of method
22346         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
22347           to ToolTip.ToolTipWindow for drawing and size methods; this allows
22348           reuse of ToolTipWindow by other controls
22349         * SizeGrip.cs: Moved base.OnPaint() call to end of method
22350         * XplatUIX11.cs: Now clipping drawing area (experimental)
22351         * PictureBox.cs: Moved base.OnPaint() call to end of method
22352         * Theme.cs: Fixed ToolTip abstracts to match new format
22353         * ErrorProvider.cs: Implemented
22354
22355 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
22356
22357         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
22358         * LinkLabel.cs:
22359                 - Adds cursors
22360                 - Handles focus
22361                 - Implements LinkBehavior
22362                 - Fixes many issues
22363
22364 2005-05-03  Jackson Harper  <jackson@ximian.com>
22365
22366         * ListView.cs: Calculate the scrollbar positioning on resize and
22367         paint, so they get put in the correct place.
22368
22369 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
22370
22371         * ColorDialogs.cs: The small color panels are now handled by
22372           SmallColorControl. This fixes drawing of the focus rectangle
22373           and adds a 3D border.
22374
22375 2005-05-03  Peter Bartok  <pbartok@novell.com>
22376
22377         * Control.cs: Modified version of Jonathan Chamber's fix for
22378           double-buffering
22379
22380 2005-05-03  Jackson Harper  <jackson@ximian.com>
22381
22382         * ListView.cs: Remove redraw variable. Control now handles whether
22383         or not a redraw needs to be done, and will only raise the paint
22384         event if redrawing is needed.
22385
22386 2005-05-03  Jackson Harper  <jackson@ximian.com>
22387
22388         * Splitter.cs: No decorations for the splitter form. Cache the
22389         hatch brush.
22390
22391 2005-05-03  Jackson Harper  <jackson@ximian.com>
22392
22393         * TreeView.cs: Use dashed lines to connect nodes. Use the
22394         ControlPaint method for drawing the focus rect instead of doing
22395         that in treeview.
22396
22397 2005-05-02  Peter Bartok  <pbartok@novell.com>
22398
22399         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
22400
22401 2005-04-29  Jackson Harper  <jackson@ximian.com>
22402
22403         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
22404         entire image buffer. Just clear the clipping rectangle.
22405
22406 2005-04-29  Jackson Harper  <jackson@ximian.com>
22407
22408         * ThemeWin32Classic.cs: Don't draw list view items that are
22409         outside the clipping rectangle.
22410
22411 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
22412
22413         * ListBox.cs: added horizontal item scroll
22414
22415 2005-04-29  Jackson Harper  <jackson@ximian.com>
22416
22417         * ThemeWin32Classic.cs: Remove some old debug code that was
22418         causing flicker with the new double buffering code.
22419
22420 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
22421
22422         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
22423         behave like combobox and comboboxlist (still not sure if this is
22424         correct though).
22425
22426 2005-04-28  Jackson Harper  <jackson@ximian.com>
22427
22428         * ThemeWin32Classic.cs: Don't fill the middle of progress
22429         bars. This fills areas outside of the clip bounds that don't need
22430         to be filled.
22431
22432 2005-04-28  Jackson Harper  <jackson@ximian.com>
22433
22434         * Control.cs: Don't expose functionality to touch the image buffers.
22435         * ProgressBar.cs:
22436         * ListView.cs: We do not need to (and no longer can) manipulate
22437         the image buffers directly. All of this is handled by Control.
22438
22439 2005-04-28  Peter Bartok  <pbartok@novell.com>
22440
22441         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
22442           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
22443           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
22444
22445 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
22446
22447         * Combobox:
22448                 - Adjust control's height for non-simple comboboxes (bug fix)
22449                 - Remove dead code
22450         * MenuAPI.cs: remove unused var
22451         * ScrollBar.cs: remove unsed var
22452                  
22453         * ListBox.cs: unselect items when clearing
22454
22455 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
22456
22457         * ListControl.cs: honors OnPositionChanged and default Selected Item
22458         * ListBox.cs: unselect items when clearing
22459
22460 2005-04-27  Jackson Harper  <jackson@ximian.com>
22461
22462         * X11Keyboard.cs: Initialize a default keyboard and give a warning
22463         if a "correct" keyboard is not found. This will make us not crash,
22464         but might give some users bad keyboard layouts...seems to be the
22465         same thing rewind does.
22466
22467 2005-04-27  Jackson Harper  <jackson@ximian.com>
22468
22469         * BindingManagerBase.cs: Attach the current/position changed
22470         handlers to their respective events.
22471
22472 2005-04-27  Jackson Harper  <jackson@ximian.com>
22473
22474         * Control.cs: Make sure that the first WM_PAINT does a full draw,
22475         not just a blit.
22476         * ThemeWin32Classic.cs: Don't fill the background for picture
22477         boxes. This could overright user drawing.
22478         * ComboBox.cs: Just fill the clipping rect not the entire client
22479         rect when drawing the background. This prevents pieces of the
22480         image buffer from getting overwritten and is theoretically faster.
22481
22482 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
22483
22484         * ComboBox.cs: Databinding support fixes, fire missing events
22485         * ListControl.cs: implement missing methods and properties, fixes
22486         * ThemeWin32Classic.cs: Databiding support on Drawing
22487         * CheckedListBox.cs: Databinding support fixes, fire missing events
22488         * ListBox.cs: Databinding support fixes, fire missing events
22489         
22490 2005-04-25  Peter Bartok  <pbartok@novell.com>
22491
22492         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
22493
22494 2005-04-25  Jackson Harper  <jackson@ximian.com>
22495
22496         * TreeView.cs: Use the horizontal scrollbars height not width when
22497         determining how much of the client area is available.
22498
22499 2005-04-25  Jackson Harper  <jackson@ximian.com>
22500
22501         * Control.cs: Double buffering is handled differently now. As per
22502         the spec, the extra buffer is created in the WM_PAINT message and
22503         passed down to the control's drawing code.
22504         * GroupBox.cs:
22505         * Label.cs:
22506         * CheckBox.cs:
22507         * ProgressBar.cs:
22508         * RadioButton.cs:
22509         * ColorDialog.cs:
22510         * ComboBox.cs:
22511         * PropertyGridView.cs:
22512         * UpDownBase.cs:
22513         * MessageBox.cs:
22514         * MenuAPI.cs:
22515         * ListView.cs:
22516         * ButtonBase.cs:
22517         * SizeGrip.cs:
22518         * ScrollBar.cs:
22519         * ListBox.cs:
22520         * TrackBar.cs:
22521         * ToolBar.cs:
22522         * PictureBox.cs:
22523         * DateTimePicker.cs:
22524         * StatusBar.cs:
22525         * TreeView.cs: Update to new double buffering system.
22526         * MonthCalendar.cs: Uncomment block, as Capture is now
22527         working. Update to new double buffering
22528         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
22529         * PaintEventArgs.cs: New internal method allows us to set the
22530         graphics object. This is used for double buffering.
22531         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
22532         rectangle. The internal paint_area var has been removed from
22533         StatusBar. The clipping rect should be used instead.
22534         * Theme.cs: Give the PictureBox drawing method a clipping rect.
22535         * TabPage.cs: The RefreshTabs method was removed, so just call the
22536         tab controls Refresh method now.
22537         * TabControl.cs: Update to new double buffering. Make sure the
22538         handle is created before sizing the tab pages, otherwise we will
22539         get stuck in a loop.
22540
22541 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
22542
22543         * LinkLabel.cs: Fix typo, bug #74719; patch
22544           from Borja Sanchez Zamorano
22545
22546 2005-04-22  Jackson Harper  <jackson@ximian.com>
22547
22548         * TreeNode.cs: Implement Handle stuff.
22549         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
22550
22551 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
22552
22553         * DataGridTextBoxColumn.cs: call base constructors, fixes
22554         * GridColumnStylesCollection.cs: missing events, methods, and functionality
22555         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
22556         * DataGridTableStyle.cs: implements create default column styles
22557         * DataGridBoolColumn.cs: which types can handle
22558         * DataGrid.cs: missing methods, fixes, new functionality
22559         * DataGridColumnStyle.cs: fixes
22560
22561 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
22562         * FolderBrowserDialog.cs:
22563         - Use a thread to fill the TreeView
22564         - Adjusted some sizes
22565
22566 2005-04-19  Peter Bartok  <pbartok@novell.com>
22567
22568         * LinkLabel.cs: (Re-)create the pieces when setting the Text
22569           property. Fixes #74360.
22570
22571 2005-04-19  Jackson Harper  <jackson@ximian.com>
22572
22573         * XEventQueue.cs: Lock when getting the lockqueue size.
22574         * PictureBox.cs: Call base OnPaint
22575         
22576 2005-04-19  Peter Bartok  <pbartok@novell.com>
22577
22578         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
22579           messages were no longer being processed (this broke BeginInvoke)
22580
22581           
22582 2005-04-18  Jackson Harper  <jackson@ximian.com>
22583
22584         * TreeView.cs: buglet that caused node images to get drawn
22585         regardless of whether or not they were in the clipping rectangle.
22586
22587 2005-04-18  Jackson Harper  <jackson@ximian.com>
22588
22589         * CurrencyManager.cs: There are four rules for GetItemProperties:
22590         - If the type is an array use the element type of the array
22591         - If the type is a typed list, use the type
22592         - If the list contains an Item property that is not an object, use
22593         that property
22594         - use the first element of the list if there are any elements in
22595         the list.
22596         
22597 2005-04-17  Jackson Harper  <jackson@ximian.oom>
22598
22599         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
22600         click. This handles offsets for scrolling properly and reduces
22601         memory. Also fixed GetNode to not offset now that TopNode works
22602         properly.
22603         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
22604         
22605 2005-04-17  Jackson Harper  <jackson@ximian.com>
22606
22607         * CursorConverter.cs: Initial implementation.
22608
22609 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
22610
22611         * ListControl.cs: work towards complex data binding support on ListControl
22612         * CurrencyManager.cs: work towards complex data binding support on ListControl
22613         * ListBox.cs: work towards complex data binding support on ListControl
22614
22615
22616 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
22617
22618         * GridTableStylesCollection.cs: fixes name and constructor
22619         * DataGridTableStyle.cs: fixes
22620         * DataGridBoolColumn.cs: fixes names and constructors
22621         * DataGrid.cs: define methods and properties. Some init implementations
22622         * DataGridCell.cs: define methods and properties. Some init implementations
22623         * GridTablesFactory.cs: Define methods and properties
22624
22625 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
22626
22627         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
22628         graphics port changes.  We still want the coordinates in global screen
22629         coordinates.
22630
22631 2005-04-14  Jackson Harper  <jackson@ximian.com>
22632
22633         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
22634         check plus minus or checkbox clicks unless those features are enabled.
22635
22636 2005-04-14  Jackson Harper  <jackson@ximian.com>
22637
22638         * TreeView.cs: Add methods for setting the top and bottom visible
22639         nodes. TreeNode::EnsureVisible uses these methods.
22640         * TreeNode.cs: Implement EnsureVisible
22641
22642 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
22643
22644         * Form.cs: Pospone menu assignation if the window has not been created yet
22645         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
22646         size and position
22647
22648 2005-04-12  Jackson Harper  <jackson@ximian.com>
22649
22650         * TreeView.cs: Set the TopNode properly when scrolling
22651         occurs. This has the added benifit of reducing the amount of
22652         walking that needs to be done when drawing. Also removed an old
22653         misleading TODO.
22654         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
22655         
22656 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
22657
22658         * Timer.cs: fixes interval setting when the timer is already enabled
22659         
22660 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
22661
22662         * FolderBrowserDialog.cs: First approach
22663
22664 2005-04-09  Peter Bartok  <pbartok@novell.com>
22665
22666         * FolderBrowserDialog: Added
22667
22668 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
22669
22670         * LinkLabel.cs: move drawing code into the theme
22671         * ThemeWin32Classic.cs: drawing code and painting background bugfix
22672         * Theme.cs: define DrawLinkLabel method
22673
22674 2005-04-05  Jackson Harper  <jackson@ximian.com>
22675
22676         * BindingContext.cs: Use weak references so these bad actors don't
22677         stay alive longer then they need to.
22678
22679 2005-04-05  Jackson Harper  <jackson@ximian.com>
22680
22681         * ListControl.cs: Basic implementation of complex databinding.
22682         * ComboBox.cs:
22683         * ListBox.cs: Add calls to ListControl databinding methods.
22684
22685 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
22686
22687         * FileDialog.cs:
22688           - Don't change PopupButtonState to Normal when the
22689             PopupButton gets pressed several times.
22690           - Renamed ButtonPanel to PopupButtonPanel
22691
22692 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
22693
22694         * ColorDialog.cs: Use cached objects instead of creating them
22695         * LinkLabel.cs: Use cached objects instead of creating them
22696         * Splitter.cs: Use cached objects instead of creating them
22697         * FontDialog.cs: Use cached objects instead of creating them
22698         * PropertyGridView.cs: Use cached objects instead of creating them
22699         * MessageBox.cs: Use cached objects instead of creating them
22700         * FileDialog.cs: Use cached objects instead of creating them
22701         * ThemeWin32Classic.cs: Use cached objects instead of creating them
22702         * TreeView.cs: Use cached objects instead of creating them
22703         
22704 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
22705
22706         * Control.cs: use Equals to compare the font since no == op
22707         * ScrollBar.cs: use Equals to compare the font since no == op
22708
22709 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
22710
22711         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
22712
22713 2005-04-01  Jackson Harper  <jackson@ximian.com>
22714
22715         * Binding.cs: Implement IsBinding.
22716         * BindingManagerBase.cs:
22717         * PropertyManager.cs:
22718         * CurrencyManager.cs: Add IsSuspended property.
22719
22720 2005-04-01  Jackson Harper  <jackson@ximian.com>
22721
22722         * Binding.cs: Had some IsAssignableFrom calls backwards.
22723
22724 2005-04-01  Jackson Harper  <jackson@ximian.com>
22725
22726         * Binding.cs: Handle null data members when pulling data.
22727         * PropertyManager.cs: Handle the data member being a property that
22728         does not exist.
22729
22730 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
22731
22732         * DataGridTextBoxColumn.cs: fixes signature
22733         * DataGrid.cs: calls right constructor
22734
22735 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
22736
22737         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
22738         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
22739         * GridTableStylesCollection.cs: implements GridTableStylesCollection
22740         * DataGridTableStyle.cs: implements DataGridTableStyle
22741         * DataGridBoolColumn.cs: implements DataGridBoolColumn
22742         * DataGridTextBox.cs: implements DataGridTextBox
22743         * DataGridColumnStyle.cs: implements DataGridColumnStyle
22744
22745 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
22746
22747         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
22748
22749 2005-03-29  Peter Bartok  <pbartok@novell.com>
22750
22751         * Application.cs:
22752           - Properly implemented CompanyName property
22753           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
22754             returns a path that includes CompanyName, ProductName and
22755             Version (fixes bug #70330)
22756
22757 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
22758
22759         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
22760           fixes bug #72588.
22761
22762 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
22763
22764         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
22765         
22766           - Added ReadOnly CheckBox
22767           - Further refactoring: moved some code from Open-/SaveFileDialog
22768             to FileDialog
22769
22770 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
22771
22772         * OpenFileDialog.cs: Fixed CheckFileExists
22773         * FileDialog.cs:
22774           Moved FileView and DirComboBox outside FileDialog class.
22775           They can now be used outside FileDialog
22776
22777 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
22778
22779         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
22780         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
22781
22782 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
22783
22784         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
22785           - Added missing CreatePrompt property in SaveDialog
22786           - Overall SaveDialog handling should be better now
22787           - Added non standard ShowHiddenFiles property
22788           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
22789           - Added InitialDirectory and RestoreDirectory support
22790
22791 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
22792
22793         * FileDialog.cs: Made dirComboBox usable
22794
22795 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
22796
22797         * FileDialog.cs: Added Filter support (case sensitiv)
22798
22799 2005-03-24  Jackson Harper  <jackson@ximian.com>
22800
22801         * TabControl.cs: Need a couple more pixels for the lines.
22802
22803 2005-03-23  Jackson Harper  <jackson@ximian.com>
22804
22805         * TabControl.cs: Give the tab page focus when it is selected.
22806
22807 2005-03-23  Jackson Harper  <jackson@ximian.com>
22808
22809         * TabControl.cs: Account for the drawing of tabs borders when
22810         invalidating. If the slider was clicked dont do click detection on
22811         the tabs.
22812
22813 2005-03-23  Jackson Harper  <jackson@ximian.com>
22814
22815         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
22816
22817 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
22818
22819         * CategoryGridEntry.cs: Added
22820         * GridItem.cs: Added helper properties
22821         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
22822         * GridEntry.cs: Updated code for collection
22823         * PropertyGrid.cs: Cleaned up some formatting
22824         * PropertyGridView.cs: Added drop down functionality for enums.
22825         * GridItemCollection.cs: Added enumerator logic
22826         * PropertyGridEntry.cs: Added
22827
22828 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
22829
22830         * FileDialog.cs:
22831           - Removed unnecessary commented code
22832           - Fixed handling for entering the filename manually in the combobox
22833
22834 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
22835
22836         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
22837
22838 2005-03-18  Peter Bartok  <pbartok@novell.com>
22839
22840         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
22841           them being touching the border
22842
22843 2005-03-18  Peter Bartok  <pbartok@novell.com>
22844
22845         * TextControl.cs: Quick hack to center text better
22846
22847 2005-03-18  Peter Bartok  <pbartok@novell.com>
22848
22849         * ControlPaint.cs:
22850           - Don't throw NotImplemented exceptions, just print a notice once
22851             instead (requested by Miguel). This makes running existing SWF
22852             apps a bit easier
22853         * Control.cs:
22854           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
22855           - Added context menu trigger on right click
22856         * Panel.cs: Trigger invalidate on resize
22857         * StatusBar.cs:
22858           - Removed old double-buffer drawing
22859           - Added ResizeRedraw style to force proper update of statusbar
22860         * ListView.cs:
22861           - Removed debug output
22862         * ThemeWin32Classic.cs:
22863           - Fixed drawing of status bar, now draws Text property if there
22864             are no defined panels
22865
22866 2005-03-18  Jackson Harper  <jackson@ximian.com>
22867
22868         * ImageList.cs: When the image stream is set pull all the images
22869         from it.
22870         * ImageListStreamer.cs: Implement reading image list streams.
22871
22872 2005-03-18  Peter Bartok  <pbartok@novell.com>
22873
22874         * ThemeWin32Classic.cs (DrawPictureBox):
22875           - Fixed calculations for centered drawing
22876           - Fixed drawing for normal mode, not scaling the image on normal
22877
22878 2005-03-18  Peter Bartok  <pbartok@novell.com>
22879
22880         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
22881           textbox
22882         * FileDialog.cs:
22883           - Made Open/Save button the accept button for FileDialog
22884           - Tied the cancel button to the IButtonControl cancel button
22885           - Save/Open now properly builds the pathname
22886           - Now handles user-entered text
22887           - Preventing crash on right-click if no item is selected
22888           - Fixed Text property, now uses contents of textbox
22889           - Fixed SelectedText property, now just returns the text part that
22890             is selected in the text box
22891
22892 2005-03-18  Jackson Harper  <jackson@ximian.com>
22893
22894         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
22895         rect, make sure to de-adjust the interior rect after drawing the
22896         tab text.
22897
22898 2005-03-18  Peter Bartok  <pbartok@novell.com>
22899
22900         * MenuAPI.cs: Remove menu *before* executing selected action to
22901           prevent the menu from 'hanging around'
22902           
22903 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
22904
22905         * XplatUIOSX.cs: Implemented WorkingArea property
22906
22907 2005-03-17  Peter Bartok  <pbartok@novell.com>
22908
22909         * XplatUIX11.cs: Fixed menu coord calculations
22910         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
22911           for calculating offsets
22912
22913 2005-03-17  Peter Bartok  <pbartok@novell.com>
22914
22915         * Hwnd.cs: Do not consider menu presence for default client
22916           rectangle location/size
22917         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
22918           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
22919           translation functions
22920         * FileDialog.cs: Fixed (what I presume is a) typo
22921
22922 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
22923
22924         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
22925           X access (avoids X-Async errors)
22926
22927 2005-03-16  Jackson Harper  <jackson@ximian.com>
22928
22929         * TabControl.cs: Raise the SelectedIndexChanged event.
22930
22931 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
22932
22933         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
22934           - Removed vertical ToolBar and replaced it with a custom panel
22935             (desktop and home button already work)
22936           - Added Help button (some controls get resized or relocated then)
22937           - Draw correct text depending on Open or Save.
22938           - Fixed some typos...
22939
22940 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
22941
22942         * ScrollBar.cs:
22943           - Only change Maximum and Minimum when need it (bug fix)
22944
22945 2005-03-15  Peter Bartok  <pbartok@novell.com>
22946
22947         * Form.cs: Use Handle for icon, to trigger creation if
22948           the window does not yet exist
22949         * Control.cs:
22950           - CanSelect: Slight performance improvement
22951           - Focus(): Preventing possible recursion
22952           - Invalidate(): Removed ControlStyle based clear flag setting
22953           - WM_PAINT: fixed logic for calling OnPaintBackground
22954           - WM_ERASEBKGND: Fixed logic, added call to new driver method
22955             EraseWindowBackground if the control doesn't paint background
22956         * XplatUIWin32.cs:
22957           - Moved EraseWindowBackground() method to internal methods
22958           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
22959             is sent via SendMessage on BeginPaint call on Win32
22960         * XplatUIX11.cs:
22961           - Added EraseWindowBackground() method
22962           - No longer sends WM_ERASEBKGND on .Expose, but on call to
22963             PaintEventStart, which more closely matches Win32 behaviour
22964           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
22965           - Fixed SetFocus() to properly deal with client and whole windows
22966         * Hwnd.cs: Added ErasePending property
22967         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
22968         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
22969
22970 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
22971
22972         * XplatUIOSX.cs:
22973           - Fix hard loop when timers exist.
22974           - Fix bugs with middle and right click for 3 button mice.
22975
22976 2005-03-11  Peter Bartok  <pbartok@novell.com>
22977
22978         * XplatUIX11.cs:
22979           - get_WorkingArea: Need to call X directly, GetWindowPos only
22980             returns cached data now
22981           - Added sanity check to GetWindowPos hwnd usage
22982
22983 2005-03-11  Jackson Harper  <jackson@ximian.com>
22984
22985         * BindingManagerBase.cs: This method isn't used anymore as
22986         PullData now updates the data in the control.
22987
22988 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
22989
22990         * Form.cs: fixes menu drawing on X11
22991         * MenuAPI.cs:  fixes menu drawing on X11
22992
22993 2005-03-11  Peter Bartok  <pbartok@novell.com>
22994
22995         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
22996           from Jonathan Gilbert; should fix bug #73606
22997         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
22998           in Screen coordinates. Thanks, Jordi.
22999         * Form.cs: Added missing attribute
23000
23001 2005-03-11  Peter Bartok  <pbartok@novell.com>
23002
23003         * Form.cs:
23004           - Rudimentary Mdi support
23005           - Removed outdated FormParent code
23006           - Implemented lots of missing properties and methods, still missing
23007             transparency support
23008           - Added missing attributes
23009           - Implemented support for MaximumBounds
23010           - Added firing of various events
23011         * XplatUI.cs: Added SetIcon() method
23012         * XplatUIDriver.cs: Added SetIcon() abstract
23013         * XplatUIOSX.cs: Stubbed out SetIcon() method
23014         * XplatUIX11.cs:
23015           - Implemented SetIcon() support
23016           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
23017           - Switched to unix line endings
23018         * XplatUIWin32.cs:
23019           - Made POINT internal so for can access it as part of MINMAX
23020           - Implemented SetIcon() support
23021           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
23022             native Mdi support again, might have to go managed)
23023         * Control.cs: Now fires the StyleChanged event
23024         * MdiClient.cs: Added; still mostly empty
23025
23026 2005-03-10  Peter Bartok  <pbartok@novell.com>
23027
23028         * SaveFileDialog.cs: Added emtpy file
23029
23030 2005-03-08  Peter Bartok  <pbartok@novell.com>
23031
23032         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
23033           in turn triggers OnCreateContro) when creating a handle for the
23034           first time.
23035         * TextControl.cs: Fixed endless loop in certain cases when
23036           replacing the current selection
23037
23038 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
23039
23040         * ScrollBar.cs:
23041           - Honors NewValue changes in Scroll events allowing apps to change it
23042           - Adds First and Last Scroll events
23043           - Fixes Thumb events
23044
23045 2005-03-07  Peter Bartok  <pbartok@novell.com>
23046
23047         * Hwnd.cs: Added DefaultClientRectangle property
23048         * XplatUI.cs: Now using the X11 driver Where() method, which provides
23049           more detailed debug information
23050         * XplatUIX11.cs:
23051           - Fixed size-change feedback loop, where we would pull an old size
23052             off the queue and mistakenly change our window's size to an
23053             earlier value
23054           - Now compressing ConfigureNotify events, to reduce looping and
23055             redraw issues
23056         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
23057           is called
23058
23059 2005-03-07  Jackson Harper  <jackson@ximian.com>
23060
23061         * Binding.cs: Push data pushes from data -> property. Check if the
23062         property is readonly when attempting to set it.
23063
23064 2005-03-07  Jackson Harper  <jackson@ximian.com>
23065
23066         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
23067         instead of IsSubclassOf. Pulling data now sets the value on the
23068         control.
23069         * PropertyManager.cs:
23070         * CurrencyManager.cs: Just need to pull data when updating now,
23071         because PullData will set the value on the control.
23072
23073 2005-03-04  Jackson Harper  <jackson@ximian.com>
23074
23075         * Binding.cs: Implement data type parsing and converting on pulled
23076         data. TODO: Are there more ways the data can be converted?
23077
23078 2005-03-04  Jackson Harper  <jackson@ximian.com>
23079
23080         * Binding.cs: Support <Property>IsNull checks. Also bind to the
23081         controls Validating method so we can repull the data when the
23082         control loses focus.
23083
23084 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
23085
23086         * ColumnHeader.cs:
23087           - Fixes null string format
23088           
23089         * ListView.cs:
23090           - Adds enum type checks
23091           - Fixes redrawing and recalc need after changing some properties
23092           - Fixes on focus_item set after the event
23093           - Fixes adding columns after the control has been created
23094           
23095         * ThemeWin32Classic.cs:
23096           - Fixes CheckBox focus rectangle
23097           - Fixes ColumnHeader drawing
23098
23099
23100 2005-03-03  Jackson Harper  <jackson@ximian.com>
23101
23102         * Binding.cs: Bind to <Property>Changed events so we can detect
23103         when properties are changed and update the data.
23104
23105 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
23106
23107         * ImageList.cs:
23108           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
23109           - Fixes ImageList constructor with ImageList container
23110           - Fixes image scaling (wrong parameters at DrawImage)
23111
23112 2005-02-02  Jackson Harper  <jackson@ximian.com>
23113
23114         * Binding.cs: Make property searches case-insensitive. Eliminate
23115         some duplicated code.
23116
23117 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
23118
23119         * ComboBox.cs:
23120                 - Handle focus event
23121                 - Fix scrollbar events
23122                 - Discard highlighted item if remove it
23123                 - Fixes SelectedItem with strings
23124
23125 2005-03-01  Peter Bartok  <pbartok@novell.com>
23126
23127         * Control.cs:
23128           - Fixed Visible property, now follows (once again) parent chain
23129             to return false if any control in the chain is visible=false
23130           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
23131           - Fixed several places where is_visible instead of Visible was used
23132           - Implemented FIXME related to focus selection when setting focused
23133             control to be invisible
23134
23135         * XplatUIWin32.cs: Now using proper method to find out if window is
23136           visible. Thanks to Jordi for pointing it out
23137
23138 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
23139
23140         * ComboBox.cs: show/hide scrollbar instead of creating it
23141
23142 2005-02-27  Jackson Harper  <jackson@ximian.com>
23143
23144         * CurrencyManager.cs: Add PositionChanged stuff.
23145
23146 2005-02-27  Peter Bartok  <pbartok@novell.com>
23147
23148         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
23149         * XplatUIOSX.cs: Added GetMenuOrigin() stub
23150         * XplatUIWin32.cs: Implemented GetMenuOrigin()
23151         * XplatUIX11.cs:
23152           - Implemented GetMenuDC()
23153           - Implemented GetMenuOrigin()
23154           - Implemented ReleaseMenuDC()
23155           - Implemented generation of WM_NCPAINT message
23156           - Implemented generation and handling of WM_NCCALCSIZE message
23157         * Form.cs: Added debug helper message for Jordi's menu work
23158         * Hwnd.cs:
23159           - Modified ClientRect property; added setter, fixed getter to handle
23160             setting of ClientRect
23161           - Added MenuOrigin property
23162
23163 2005-02-26  Peter Bartok  <pbartok@novell.com>
23164
23165         * XplatUIX11.cs:
23166           - Destroys the caret if a window that's being destroyed contains it
23167           - Ignores expose events coming from the X11 queue for windows that
23168             already are destroyed
23169           - Now uses the proper variable for handling DestroyNotify, before we
23170             marked the wrong window as destroyed
23171           - Improved/added some debug output
23172
23173 2005-02-26  Peter Bartok  <pbartok@novell.com>
23174
23175         * X11Keyboard.cs: Fixes to work on 64bit systems
23176
23177 2005-02-26  Peter Bartok  <pbartok@novell.com>
23178
23179         * Control.cs:
23180           - Now calling OnHandleDestroyed from DestroyHandle()
23181             instead of Dispose()
23182           - Removed bogus call to controls.Remove() from DestroyHandle()
23183
23184 2005-02-26  Peter Bartok  <pbartok@novell.com>
23185
23186         * Control.cs: Properly destroy child windows when our handle is
23187           destroyed
23188
23189 2005-02-25  Peter Bartok  <pbartok@novell.com>
23190
23191         * XplatUI.cs:
23192           - Added 'DriverDebug' define to allow tracing XplatUI API calls
23193           - Alphabetized Static Methods and Subclasses
23194
23195         * XplatUIX11.cs:
23196           - Added XException class to allow custom handling of X11 exceptions
23197           - Created custom X11 error handler, tied into XException class
23198           - Added support for MONO_XEXCEPTIONS env var to allow the user
23199             to either throw an exception on X errors or continue running
23200             after displaying the error
23201           - Added handling of DestroyNotify message
23202           - Added handler for CreateNotify message (still disabled)
23203           - Improved (tried to at least) Where method to provide file and lineno
23204         * X11Structs.cs:
23205           - Added XErrorHandler delegate
23206           - Added XRequest enumeration (to suppor translation of errors)
23207
23208 2005-02-25  Jackson Harper  <jackson@ximian.com>
23209
23210         * PropertyManager.cs: Implement editing features
23211         * CurrencyManager.cs:
23212         * Binding.cs: First attempt at UpdateIsBinding
23213         * BindingManagerBase.cs: Call UpdateIsBinding before
23214         pushing/pulling data.
23215
23216 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
23217
23218         * MenuAPI.cs: Respect disabled items
23219         * ThemeWin32Classic.cs
23220                 - Caches ImageAttributes creation for DrawImageDisabled
23221                 - Fixes vertical menu line drawing
23222                 - Draws disabled arrows in disable menu items
23223
23224 2005-02-24  Peter Bartok  <pbartok@novell.com>
23225
23226         * Hwnd.cs:
23227           - Added UserData property to allow associating arbitrary objects
23228             with the handle
23229           - Fixed leak; now removing Hwnd references from static windows array
23230         * XplatUIWin32.cs:
23231           - Fixed Graphics leak in PaintEventEnd
23232           - Removed usage of HandleData, switched over to Hwnd class
23233         * HandleData.cs: Removed, obsoleted by Hwnd.cs
23234
23235 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
23236
23237         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
23238         * ScrollBar.cs: Fixes bug
23239         * TrackBar.cs: removes death code, clipping, mimize refreshes,
23240          keyboard navigation enhancements
23241
23242 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
23243
23244         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
23245         * GroupBox.cs: Add control styles
23246         * Label.cs: Add control styles
23247         * UpDownBase.cs: Add control styles
23248         * ListBox.cs: Add control styles
23249         * XplatUIWin32.cs: Fixes wrong parameter order
23250
23251
23252 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
23253
23254         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
23255
23256 2005-02-23  Jackson Harper  <jackson@ximian.com>
23257
23258         * PropertyManager.cs: Implement property binding. This doesn't
23259         seem to work yet though as (I think) there are some bugs in
23260         System.ComponentModel.PropertyDescriptor.
23261         * BindingContext.cs: Use new PropertyManager constructor.
23262
23263 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
23264
23265         * ProgressBar.cs: use clip region in ProgressBar
23266         * ThemeWin32Classic.cs: use clip region in ProgressBar
23267
23268 2004-02-22  Jackson Harper  <jackson@ximian.com>
23269
23270         * BindingsCollection.cs: Remove some debug code.
23271
23272 2005-02-22  Jackson Harper  <jackson@ximian.com>
23273
23274         * BindingContext.cs:
23275         * ControlBindingsCollection.cs:
23276         * CurrencyManager.cs:
23277         * Binding.cs:
23278         * BindingManagerBase.cs: Initial implementation
23279         * BindingsCollection.cs: Add an internal contains method that the
23280         BindingManagerBase uses to ensure bindings aren't added twice to
23281         the collection.
23282         * PropertyManager.cs: Stubbed out.
23283         * Control.cs:
23284         * ContainerControl.cs: Hook up databinding
23285         
23286 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
23287
23288         * XplatUIOSX.cs:
23289           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
23290           Fixed Invalidate/Update chain.
23291           Fixed tons of other minor bugs (this is almost a complete rewrite).
23292
23293 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
23294
23295         * ComboBox.cs: do subcontrol creation when the control is created
23296
23297 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
23298
23299         * Label.cs: fixes image drawing (image and imagelist)
23300         * ThemeWin32Classic.cs: cache brushes
23301         
23302 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
23303
23304         * Form.cs: Move menu drawing code to Theme class
23305         * ComboBox.cs: Move ComboBox drawing code to Theme class
23306         * MenuItem.cs: Move menu drawing code to Theme class
23307         * MenuAPI.cs: Move menu drawing code to Theme class
23308         * ThemeWin32Classic.cs: New methods
23309         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
23310         * ListBox.cs: Move Listbox drawing code to Theme class
23311         * Theme.cs: New methods
23312
23313 2005-02-20  Peter Bartok  <pbartok@novell.com>
23314
23315         * Control.cs:
23316           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
23317             only process mnemonics on those)
23318           - Fixed event sequence for key handling; first calling
23319             ProcessKeyEventArgs now
23320         * TextBoxBase.cs:
23321           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
23322             for processing non-character keys
23323           - Fixed WM_CHAR to generate proper event sequence before processing
23324         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
23325           generation
23326
23327 2005-02-19  Peter Bartok  <pbartok@novell.com>
23328
23329         * UserControl.cs: Added TextChanged event; added attributes
23330         * SizeGrip.cs: Implemented resizing and optional display of grip
23331         * Form.cs: Fixed attribute
23332         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
23333           Changed meaning of ScrollWindow bool argument; instead of the
23334           clear attribute (which will be true usually anyway), it gives the
23335           option of moving child controls as well.
23336         * XplatUIX11.cs:
23337           - Changed to match new ScrollWindow argument
23338           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
23339             now handles the implicit parent window a WM puts around us
23340         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
23341           to work)
23342         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
23343         * TreeView.cs: Adjusted to new ScrollWindow arguments
23344
23345 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
23346
23347         * Form.cs: Menu integration with non-client area
23348         * MenuItem.cs: Menu integration with non-client area
23349         * MenuAPI.cs: Menu integration with non-client area
23350
23351 2005-02-18  Peter Bartok  <pbartok@novell.com>
23352
23353         * MethodInvoker.cs: Added
23354         * MdiLayout.cs: Added
23355         * SendKeys.cs: Started implementation
23356         * ErrorIconAlignment.cs: Added
23357
23358 2005-02-18  Peter Bartok  <pbartok@novell.com>
23359
23360         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
23361         * Form.cs: Added handling for Menu-related Non-client messages
23362
23363 2005-02-17  Peter Bartok  <pbartok@novell.com>
23364
23365         * UpDownBase.cs: Fixed typo, compilation errors
23366         * DomainUpDown.cs: Fixed attribute value
23367
23368 2005-02-16  Miguel de Icaza  <miguel@novell.com>
23369
23370         * UpDownBase.cs: Attach entry events.
23371         Propagate events.
23372         Add ForeColor property, Focused, InterceptArrowKeys (interception
23373         does not work yet).
23374
23375 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
23376
23377         * Form.cs:
23378                 - Redraw non client are on Setmenu
23379                 - Calc proper menu starting point
23380
23381 2005-02-17  Peter Bartok  <pbartok@novell.com>
23382
23383         * Application.cs: Fixed message_filter check
23384
23385 2005-02-17  Peter Bartok  <pbartok@novell.com>
23386
23387         * Application.cs: Now calls registered message filters
23388         * DockStyle.cs: Fixed attribute
23389         * Form.cs: Fixed attribute
23390         * Menu.cs: Fixed attribute
23391         * ToolTip.cs: Fixed attribute
23392         * TreeNode.cs: Added missing attributes and arranged in regions
23393         * PropertyGrid.cs: Fixed signatures
23394         * TreeNodeCollection.cs: Added attributes
23395         * Splitter.cs: Added missing attributes; arranged into regions
23396         * TabPage.cs: Added missing attributes; arranged into regions
23397         * TextBoxBase.cs: Added missing attributes
23398         * TextBox.cs: Added missing attributes
23399         * ArrangeDirection.cs: Added missing attributes
23400         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
23401         * ToolBarButton.cs: Fixed attributes
23402         * AnchorStyles.cs: Fixed attribute
23403         * TrackBar.cs: Fixed attributes
23404         * TabControl.cs: Added missing attributes and arranged into regions
23405         * ToolBar.cs: Fixed attribute
23406         * StatusBar.cs: Fixed signature, organized into regions and added
23407           attributes
23408         * StatusBarPanel.cs: Fixed attributes
23409         * ContentsResizedEventArgs.cs: Implemented
23410         * ContentsResizedEventHandler.cs: Implemented
23411         * DateBoldEventArgs.cs: Implemented
23412         * DateBoldEventHandler.cs: Implemented
23413         * UpDownEventArgs.cs: Implemented
23414         * UpDownEventHandler.cs: Implemented
23415         
23416 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
23417
23418         * Form.cs: first Menu NC refactoring
23419         * MenuAPI.cs: first Menu NC refactoring
23420         
23421 2005-02-16  Peter Bartok  <pbartok@novell.com>
23422
23423         * ImeMode.cs: Added missing attributes
23424         * Menu.cs: Fixed attribute
23425         * GroupBox.cs: Fixed attribute
23426         * Label.cs: Fixed attribute
23427         * ColorDialog.cs (RunDialog): Removed TODO attribute
23428         * ComboBox.cs: Fixed attributes
23429         * ListControl.cs: Added missing attributes
23430         * PropertyGrid.cs: Fixed attributes
23431         * Control.cs: Fixed attributes
23432         * ListViewItem.cs: Added TypeConverter attribute
23433         * NotifyIcon.cs: Fixed attributes
23434         * ListView.cs: Fixed attributes
23435         * ButtonBase.cs: Fixed attribute
23436         * ImageList.cs: Added missing attributes
23437         * ContainerControl.cs: Fixed signature
23438         * CheckedListBox.cs: Fixed attribute; added missing attributes
23439         * Panel.cs: Fixed attributes
23440         * PropertyTabChangedEventArgs.cs: Added missing attribute
23441         * PropertyValueChangedEventArgs.cs: Added missing attribute
23442         * Binding.cs: Fixed attribute
23443         * ListViewItemConverter: Implemented ListViewSubItemConverter class
23444         * ListBox.cs: Fixed attribute; added missing attributes;
23445         * ScrollableControl.cs: Added missing attributes
23446         * PictureBox.cs: Added missing attributes; implemented missing property
23447         * DateTimePicker.cs: Added missing attributes
23448         * Theme.cs (ToolWindowCaptionHeight): Fixed type
23449         * MonthCalendar.cs: Fixed attributes
23450         * StatusBarPanel.cs: Added missing attributes
23451         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
23452
23453 2005-02-16  Peter Bartok  <pbartok@novell.com>
23454
23455         * TextBoxBase.cs: The previous method to enforce height yet remember
23456           the requested high was less than ideal, this is an attempt to do
23457           it better.
23458         * Control.cs: Added comment about possible problem
23459         * Copyright: Updated format
23460         * GridItemType.cs: Fixed swapped values
23461
23462 2005-02-15  Jackson Harper  <jackson@ximian.com>
23463
23464         * BaseCollection.cs: Use property so we never access an
23465         uninitialized list. Also initialize the list in the property.
23466
23467 2005-02-15  Peter Bartok  <pbartok@novell.com>
23468
23469         * GroupBox.cs (ProcessMnemonic): Implemented
23470         * Label.cs (ProcessMnemonic): Implemented
23471         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
23472           hotkeys
23473
23474 2005-02-15  Peter Bartok  <pbartok@novell.com>
23475
23476         * RadioButton.cs (ProcessMnemonic): Implemented
23477         * CheckBox.cs (ProcessMnemonic): Implemented
23478         * Control.cs:
23479           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
23480             handling
23481           - Added internal method to allow calling ProcessMnemonic from other
23482             controls
23483         * ContainerControl.cs:
23484           - Started support for handling validation chain handling
23485           - Implemented ProcessMnemonic support
23486           - Added Select() call to Active, to make sure the active control
23487             receives focus
23488         * Form.cs: Setting toplevel flag for Forms (this was lost in the
23489           FormParent rewrite)
23490         * ThemeWin32Classic.cs:
23491           - DrawCheckBox(): Fixed stringformat to show hotkeys
23492           - DrawRadioButton(): Fixed stringformat to show hotkeys
23493         * CommonDialog.cs: Removed WndProc override, not needed
23494
23495 2005-02-14  Peter Bartok  <pbartok@novell.com>
23496
23497         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
23498           missed those in the rewrite
23499
23500 2005-02-14  Miguel de Icaza  <miguel@novell.com>
23501
23502         * NumericUpDown.cs (Increment, ToString): Add.
23503         (DecimalPlaces): implement.
23504         
23505         Add attributes.
23506         
23507         * UpDownBase.cs: Add the designer attributes.
23508
23509 2005-02-13  Peter Bartok  <pbartok@novell.com>
23510
23511         * Panel.cs: Removed border_style, now in Control
23512         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
23513           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
23514
23515 2005-02-13  Peter Bartok  <pbartok@novell.com>
23516
23517         * MouseButtons.cs: Added missing attributes
23518         * XplatUIStructs.cs: Added enumeration for title styles
23519         * LeftRightAlignment.cs: Added missing attributes
23520         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
23521           it compatible with Graphics.FromHwnd()
23522         * SelectedGridItemChangedEventArgs.cs: Fixed property type
23523         * Keys.cs: Added missing attributes
23524         * SelectionRange.cs: Added missing attributes
23525         * SelectionRangeConverter.cs: Added
23526         * XplatUI.cs:
23527           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
23528             ReleaseMenuDC methods
23529           - Renamed ReleaseWindow to UngrabWindow
23530           - Added proper startup notice to allow version identification
23531         * Form.cs:
23532           - Added missing attributes
23533           - Removed FormParent concept
23534         * Label.cs: Removed border_style field, now in Control
23535         * RadioButton.cs: Now properly selects RadioButton when focus is
23536           received
23537         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
23538         * Control.cs:
23539           - Added missing attributes
23540           - Added borderstyle handling
23541           - Removed FormParent concept support
23542           - Fixed calls to XplatUI to match changed APIs
23543           - Fixed bug that would case us to use disposed Graphics objects
23544           - Removed unneeded internal methods
23545           - PerformLayout(): Fixed to handle DockStyle.Fill properly
23546           - SelectNextControl(): Fixed to properly check common parents
23547         * TextBoxBase.cs: Removed border_style field (now in Control)
23548         * MessageBox.cs:
23549           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
23550             fixed calculations for form size
23551           - Added support for localized strings and icons
23552           - Improved form size calculations, added border
23553         * ListView.cs: Removed border_style field (now in Control)
23554         * X11Structs.cs: Moved several structs from X11 driver here
23555         * X11Keyboard.cs: Changed debug message
23556         * Application.cs: Removed FormParent concept support
23557         * CommonDialog.cs:
23558           - Resetting end_modal flag
23559           - Removed FormParent concept support
23560         * NativeWindow.cs: Removed FormParent concept support
23561         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
23562           Client area and Non-Client whole window to allow support for WM_NC
23563           messages
23564         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
23565           prevent using it until it supports Hwnd as per Geoff Norton's request
23566         * ToolBar.cs: Fixed drawing, was not doing proper drawing
23567         * PictureBox.cs: Removed border_style field, now in Control
23568         * XplatUIWin32.cs: Added new driver methods
23569
23570 2005-02-12  Peter Bartok  <pbartok@novell.com>
23571
23572         * OpacityConverter.cs: Implemented
23573         * Hwnd.cs: Internal class to support drivers that need to emulate
23574           client area/non-client area window behaviour
23575
23576 2005-02-11  Peter Bartok  <pbartok@novell.com>
23577
23578         * KeysConverter.cs: Implemented
23579
23580 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
23581
23582         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
23583         * LinkLabel: Added missing attributes
23584         * MainMenu.cs: fixes ToString
23585         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
23586         * ListBox.cs: fixes event position
23587         * TrackBar.cs: adds missing attributes and events
23588         
23589 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
23590
23591         * MenuItem.cs: Use SystemInformation and bug fixes
23592         * MenuAPI.cs: Use SystemInformation and bug fixes
23593
23594 2005-02-09  Jackson Harper  <jackson@ximian.com>
23595
23596         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
23597         their keystate otherwise things like VK_MENU get stuck "on".
23598
23599 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
23600
23601         * ListBox.cs: Fixes AddRange bug
23602         
23603 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
23604
23605         * ProgressBar.cs
23606                 - Add missing attributes
23607                 - Add missing method
23608                 
23609         * CheckedListBox.cs: Added missing attributes
23610                 - Add missing attributes
23611                 - Remove extra method
23612         
23613         * ComboBox.cs: Added missing attributes
23614         * VScrollBar.cs: Added missing attributes
23615         * ScrollBar.cs:  Added missing attributes
23616         * ListBox.cs: Fixes signature, add missing consts
23617         * LinkArea.cs:   Added missing attributes
23618         
23619
23620 2005-02-08  Peter Bartok  <pbartok@novell.com>
23621
23622         * Menu.cs: Added missing attributes
23623         * MainMenu.cs: Added missing attributes
23624         * GroupBox.cs: Added missing attributes
23625         * Label.cs: Added missing attributes
23626         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
23627         * ColorDialog.cs:
23628           - Added Instance and Options properties
23629           - Added missing attributes
23630         * Cursor.cs: Made Serializable
23631         * NotifyIcon: Added missing attributes
23632         * MenuItem.cs: Added missing attributes
23633         * TextBoxBase.cs: Implemented AppendText() and Select() methods
23634         * Panel.cs: Added Missing attributes
23635         * MonthCalendar.cs: Fixed CreateParams
23636
23637 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
23638         
23639         * LinkLabel.cs:
23640                 - Fixes signature
23641                 - Fixes issues with links
23642                 - Adds the class attributes
23643
23644 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
23645         
23646         * ComboBox.cs:
23647                 - Fixes button when no items available in dropdown
23648                 - Fixes repainting problems
23649                 - Adds the class attributes
23650                 
23651 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
23652
23653         * XplatUIOSX.cs: Detect the menu bar and title bar height from
23654         the current theme.  Cache these on startup.
23655
23656 2005-02-07  Jackson Harper  <jackson@ximian.com>
23657
23658         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
23659         the scrollbar buttons when they are depressed.
23660
23661 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
23662
23663         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
23664         Get the display size from the main displayid.  We currently dont
23665         support multiple display configurations.
23666
23667 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
23668
23669         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
23670
23671 2005-02-07  Miguel de Icaza  <miguel@novell.com>
23672
23673         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
23674
23675 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
23676
23677         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
23678
23679 2005-02-04  Jackson Harper  <jackson@ximian.com>
23680
23681         * ThemeWin32Classic.cs: Respect the clipping rect when
23682         drawing. Only fill the intersection of clips and rects so there
23683         isn't a lot of large fills.
23684         * ScrollBar.cs: Pass the correct clipping rect to the theme
23685         engine. Remove some debug code.
23686
23687 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
23688         
23689         * DateTimePicker.cs:
23690                 - Fixed crash on DateTime.Parse, use Constructor instead
23691
23692 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
23693         
23694         * MenuItem.cs:
23695         * MenuAPI.cs:
23696                 - Owner draw support (MeasureItem and DrawItem)
23697
23698 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
23699         
23700         *  Menu.cs:
23701                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
23702                 - Fixes MenuItems.Add range
23703         * MenuItem.cs:
23704                 - MergeMenu and Clone and CloneMenu functions
23705
23706 2005-02-03  Jackson Harper  <jackson@ximian.com>
23707
23708         * ScrollBar.cs: Make abstract
23709         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
23710         is abstract.
23711
23712 2005-02-03  Jackson Harper  <jackson@ximian.com>
23713
23714         * ScrollBar.cs: First part of my scrollbar fixups. This removes
23715         all the unneeded refreshes and uses invalidates with properly
23716         computed rects.
23717
23718 2005-02-03  Peter Bartok  <pbartok@novell.com>
23719
23720         * ComponentModel.cs: Added
23721         * IDataGridEditingService.cs: Added
23722         * Timer.cs: Added missing attributes
23723         * ToolTip.cs: Added missing attributes
23724
23725 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
23726
23727         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
23728
23729 2005-02-03  Peter Bartok  <pbartok@novell.com>
23730
23731         * ListBox.cs: Added missing attributes
23732
23733 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
23734         
23735         * ListBox.cs:
23736                 - Fixes font height after font change
23737                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
23738                 
23739 2005-02-02  Peter Bartok  <pbartok@novell.com>
23740
23741         * HandleData.cs: Introduced static methods to allow class
23742           to be more self-contained and track it's own HandleData objects
23743         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
23744           HandleData to use new static methods
23745
23746 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
23747
23748         * Combobox.cs:
23749                 - Fixes default size and PreferredHeight
23750                 - Missing events
23751                 - ObjectCollection.Insert implementation
23752                 
23753         * ListControl.cs
23754                 - Fixes signature
23755         * ListBox.cs:
23756                 - Several fixes
23757                 - ObjectCollection.Insert implementation
23758                 - No selection after clean
23759                 - Small fixes
23760
23761 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
23762
23763         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
23764
23765 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
23766
23767         * Combobox.cs:
23768                 - Caches ItemHeight calculation for OwnerDrawVariable
23769                 - Handles dropdown properly
23770                 - Fixes several minor bugs
23771
23772 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
23773
23774         * ListBox.cs:
23775                 - Fixes 71946 and 71950
23776                 - Fixes changing Multicolumn on the fly
23777                 - Fixes keyboard navigation on Multicolumn listboxes
23778
23779 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
23780         
23781         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
23782         crash reporter log.
23783
23784 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
23785
23786         * XplatUIOSX.cs: Allow applications to actually exit.
23787
23788 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
23789
23790         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
23791         their parent at creation time rather than lazily later.  Fixes a major
23792         regression we were experiencing.
23793
23794 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
23795
23796         * ThemeWin32Classic.cs: more date time picker painting fixes
23797         * DateTimePicker.cs: more monthcalendar drop down fixes
23798         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
23799
23800 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
23801
23802         * ScrollBar.cs:
23803                 - When moving the thumb going outside the control should stop the moving
23804                 - Adds the firing of missing events
23805                 - Fixes no button show if Size is not specified
23806                 - End / Home keys for keyboard navigation
23807
23808 2005-01-30  Peter Bartok  <pbartok@novell.com>
23809
23810         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
23811           sanity check to prevent theoretical loop
23812         * XplatUIWin32.cs (SetVisible): Removed debug output
23813         * XplatUIX11.cs (SystrayChange): Added sanity check
23814         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
23815         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
23816           behaviour, valid until the X11 client window rewrite is done
23817         * TextBox.cs (ctor): Setting proper default foreground and background
23818           colors
23819
23820 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
23821
23822         * Theme: Added DrawDateTimePicker to interface
23823         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
23824         * DateTimePicker.cs: Created (still needs keys and painting code)
23825         * DateTimePickerFormat.cs: added
23826         * MonthCalendar.cs: fixed CreateParams for popup window mode
23827           
23828 2005-01-29  Peter Bartok  <pbartok@novell.com>
23829
23830         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
23831           this should also the calculations for ligher/darker
23832         * Theme.cs: Fixed defaults for ScrollBar widths/heights
23833
23834 2005-01-29  Peter Bartok  <pbartok@novell.com>
23835
23836         * ArrangeDirection.cs: Added
23837         * ArrangeStartingPositon.cs: Added
23838         * SystemInformation.cs: Implemented
23839         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
23840           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
23841           used by SystemInformation class
23842         * X11Strucs.cs: Added XSizeHints structure
23843         * MenuAPI.cs:
23844           - Fixed CreateParams to make sure the menu window is always visible
23845           - TrackPopupMenu: Added check to make sure we don't draw the
23846             menu offscreen
23847
23848 2005-01-29  Peter Bartok  <pbartok@novell.com>
23849
23850         * HandleData.cs: Added method for altering invalid area
23851         * TextBoxBase.cs: Implemented TextLength
23852
23853 2005-01-28  Peter Bartok  <pbartok@novell.com>
23854
23855         * XplatUIX11.cs: Improvement over last patch, not sending
23856           the WM_PAINT directly anymore, instead we scroll any pending
23857           exposed areas and let the system pick out the WM_PAINT later
23858
23859 2005-01-28  Peter Bartok  <pbartok@novell.com>
23860
23861         * SWF.csproj: Deleted, no longer used. Instead,
23862           Managed.Windows.Forms/SWF.csproj should be used
23863         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
23864           directly, to avoid a potential race condition with the next
23865           scroll
23866
23867 2005-01-28  Peter Bartok  <pbartok@novell.com>
23868
23869         * XplatUI.cs: Made class internal
23870
23871 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
23872
23873         * CheckedListBox.cs:
23874                 - Draw focus
23875                 - Fixed Drawing
23876                 - Missing methods and events
23877
23878 2005-01-27  Peter Bartok  <pbartok@novell.com>
23879
23880         * Application.cs (Run): Don't use form if we don't have one
23881
23882 2005-01-27  Peter Bartok  <pbartok@novell.com>
23883
23884         * TextBoxBase.cs (get_Lines): Fixed index off by one error
23885
23886 2005-01-27  Peter Bartok  <pbartok@novell.com>
23887
23888         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
23889         * GridItem.cs: Added; Patch by Jonathan S. Chambers
23890         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
23891         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
23892         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
23893         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
23894         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
23895         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
23896         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
23897         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
23898         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
23899         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
23900
23901 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
23902
23903         * Combobox.cs:
23904                 - Draw focus on Simple Combobox
23905                 - Fixes drawing issues
23906                 - fixes 71834
23907
23908 2005-01-27  Peter Bartok  <pbartok@novell.com>
23909
23910         * Form.cs:
23911           - Place window in default location, instead of hardcoded 0/0
23912           - Send initial LocationChanged event
23913         * Control.cs:
23914           - UpdateBounds after creation to find out where the WM placed us
23915           - Make sure that if the ParentForm changes location the Form
23916             is notified
23917         * XplatUIX11.cs: XGetGeometry will not return the coords relative
23918             to the root, but to whatever the WM placed around us.
23919             Translate to root coordinates before returning toplevel
23920             coordinates
23921         * XplatUIWin32.cs: Removed debug output
23922         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
23923           flag to GetWindowPos, to allow translation of coordinates on X11
23924
23925 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
23926
23927         * ListBox.cs: connect LostFocus Event
23928
23929 2005-01-27  Peter Bartok  <pbartok@novell.com>
23930
23931         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
23932           XplatUIX11.cs: Extended the Systray API
23933         * Form.cs: Removed debug output
23934         * Application.cs: Fixed focus assignment, always need to call
23935           XplatUI.Activate() since Form.Activate() has rules that may
23936           prevent activation
23937         * NotifyIcon.cs: Should be complete now
23938         * ToolTip.cs: Worked around possible timer bug
23939
23940 2005-01-27  Jackson Harper  <jackson@ximian.com>
23941
23942         * TabControl.cs:
23943         - Only invalidate the effected tabs when the
23944         selected index changes. This reduces drawing and gets rid of some
23945         flicker.
23946         - Only refresh if the tabs need to be shifted, otherwise only
23947         invalidate the slider button.
23948         - On windows the tabs are not filled to right if the slider is
23949         visible.
23950         
23951 2005-01-27  Jackson Harper  <jackson@ximian.com>
23952
23953         * TabControl.cs: Only refresh on mouseup if we are showing the
23954         slider. Also only invalidate the button whose state has changed.
23955
23956 2005-01-26  Peter Bartok  <pbartok@novell.com>
23957
23958         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
23959         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
23960           and SystrayRemove() methods
23961         * XplatUIOSX.cs: Stubbed Systray methods
23962         * XplatUIX11.cs:
23963           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
23964             methods
23965           - Fixed broken XChangeProperty calls (marshalling messed up things)
23966         * X11Structs.cs: Added enums and structs required for Size hinting
23967         * NotifyIcon.cs: Added & implemented
23968
23969 2005-01-26  Jackson Harper  <jackson@ximian.com>
23970
23971         * TabControl.cs: Space vertically layed out tabs properly.
23972
23973 2005-01-26  Peter Bartok  <pbartok@novell.com>
23974
23975         * Form.cs (CreateClientParams): Always set the location to 0,0
23976           since we're a child window.
23977
23978         * Control.cs (SetVisibleCore): Always explicitly setting the location
23979           of a toplevel window, apparently X11 doesn't like to move windows
23980           while they're not mapped.
23981
23982 2005-01-26  Jackson Harper  <jackson@ximian.com>
23983
23984         * TabControl.cs: Implement FillToRight size mode with vertically
23985         rendered tabs.
23986
23987 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
23988
23989         * ControlPaint.cs, ThemeWin32Classic.cs
23990                 - Fixes DrawFocusRectangle
23991
23992 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
23993
23994         * MenuAPI.cs:
23995                 - MenuBar tracking only starts when item is first clicked
23996                 - Fixes menu hidding for multiple subitems
23997                 - Unselect item in MenuBar when item Executed
23998                 - Fixes bug 71495
23999
24000 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
24001
24002         * ListControl.cs:
24003                 - IsInputKey for ListBox
24004         * ListBox.cs:
24005                 - Focus item
24006                 - Shift and Control item selection
24007                 - Implement SelectionMode.MultiExtended
24008                 - Fixes RightToLeft
24009         * ComboBox.cs:
24010                 - IsInputKey implemented
24011                 - Do not generate OnTextChangedEdit on internal txt changes
24012                 
24013 2005-01-23  Peter Bartok  <pbartok@novell.com>
24014
24015         * AccessibleObject.cs: Partially implemented Select()
24016         * MonthCalendar.cs: Added missing attributes and events
24017         * Form.cs: Fixed CreateParams behaviour, now controls derived from
24018           form can properly override CreateParams.
24019         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
24020           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
24021           Control performs Invalidate & Update
24022         * NativeWindow (CreateHandle): Added special handling for Form
24023           and Form.FormParent classes to allow overriding of From.CreateParams
24024         * Control.cs:
24025           - ControlNativeWindow: Renamed 'control' variable to more intuitive
24026             name 'owner'
24027           - ControlNativeWindow: Added Owner property
24028           - Removed usage of Refresh() on property changes, changed into
24029             Invalidate(), we need to wait until the queue is processed for
24030             updates, direct calls might cause problems if not all vars for
24031             Paint are initialized
24032           - Added call to UpdateStyles() when creating the window, to set any
24033             styles that CreateWindow might have ignored.
24034           - Added support for Form CreateParent overrides to UpdateStyles()
24035         * MessageBox.cs: Removed no longer needed FormParent override stuff,
24036           CreateParams are now properly overridable
24037         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
24038           CreateParams are now properly overridable
24039
24040 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
24041
24042         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
24043         OnTextBoxChanged.
24044
24045         Capture LostFocus and OnTextBoxChanged.  The later introduces a
24046         recursive invocation that I have not figured out yet.
24047
24048         Reset the timer when not using (it was accumulating).
24049
24050
24051         (OnTextBoxChanged): Set UserEdit to true here to track whether the
24052         user has made changes that require validation.
24053
24054         Reset changing to avoid loops.
24055
24056 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
24057
24058         * NumericUpDown.cs: Display value at startup.
24059
24060         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
24061         ValidateEditText.
24062
24063         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
24064         filled in.  Added some basic parsing of text.
24065
24066         Still missing the OnXXX method overrides, and figuring out the
24067         events that must be emitted.
24068
24069         * UpDownBase.cs: Handle UserEdit on the Text property.
24070         
24071 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
24072
24073         * ComboBox.cs:
24074           - Fixes IntegralHeight
24075           - ToString method
24076
24077 2005-01-21  Jackson Harper  <jackson@ximian.com>
24078
24079         * TabControl.cs: Set the SelectedIndex property when SelectedTab
24080         is set so that the page visibility is updated and the tabs are
24081         sized correctly.
24082
24083 2005-01-21  Jackson Harper  <jackson@ximian.com>
24084
24085         * TabControl.cs: Use cliping rectangle for blitting. Give the
24086         theme the clipping rect so we can do clipping while
24087         drawing. Remove some debug code.
24088
24089 2005-01-21  Jackson Harper  <jackson@ximian.com>
24090
24091         * TabPage.cs: Add a new method so tab pages can force the tab
24092         control to recalculate the tab page sizes.
24093         * TabControl.cs: UpdateOwner needs to make the tab control recalc
24094         sizes.
24095
24096 2005-01-20  Jackson Harper  <jackson@ximian.com>
24097
24098         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
24099
24100 2005-01-20  Jackson Harper  <jackson@ximian.com>
24101
24102         * TreeView.cs: Set the bounds for nodes properly. They were
24103         getting screwed up when checkboxes were not enabled, but images
24104         were.
24105
24106 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
24107
24108         * ListBox.cs:
24109                 - Owner draw support
24110                 - Fixes
24111                 
24112 2005-01-20  Jackson Harper  <jackson@ximian.com>
24113
24114         * XplatUIStructs.cs: More misc keys
24115         * X11Keyboard.cs: Ignore some control keys.
24116
24117 2005-01-20  Jackson Harper  <jackson@ximian.com>
24118
24119         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
24120         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
24121
24122 2005-01-19  Peter Bartok  <pbartok@novell.com>
24123
24124         * Control.cs: Un-selecting the control when it is loosing focus
24125
24126 2005-01-19  Jackson Harper  <jackson@ximian.com>
24127
24128         * TreeView.cs: Hook up to the text controls leave event so we can
24129         end editing when the users clicks outside the text box.
24130         
24131 2005-01-19  Jackson Harper  <jackson@ximian.com>
24132
24133         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
24134         get set in the conversion array.
24135
24136 2005-01-19  Peter Bartok  <pbartok@novell.com>
24137
24138         * Application.cs (ModalRun): Added a call to CreateControl to ensure
24139           focus is properly set
24140         * Button.cs:
24141           - Added missing attributes
24142           - removed styles, those are already set in the base class
24143         * ButtonBase.cs:
24144           - Added missing attributes
24145           - Added clip window styles
24146         * CheckBox.cs: Added missing attributes
24147         * CommonDialog.cs:
24148           - FormParentWindow.CreateParams: Added required clip styles
24149         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
24150           also filters modifier keys
24151         * MessageBox.cs:
24152           - Added assignment of Accept and Cancel button to enable Enter
24153             and Esc keys in MessageBox dialogs
24154           - FormParentWindow.CreateParams: Added required clip styles
24155         * RadioButton.cs: Added missing attributes
24156         * TextControl.cs: No longer draws selection if control does not
24157           have focus
24158         * TextBoxBase.cs:
24159           - Now draws simple rectangle around test area to make it obvious
24160             there's a control. This is a hack until we properly support borders
24161           - A few simple fixes to support selections better, now erases selected
24162             text when typing, and resets selection when using movement keys
24163
24164 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
24165
24166         * UpDownBase.cs: Added some new properties.
24167
24168         * DomainUpDown.cs: Implement a lot to get my test working.
24169
24170 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
24171
24172         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
24173
24174 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
24175
24176         * OSXStructs (WindowAttributes): Fixed csc complaints
24177
24178 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
24179
24180         * XplayUIOSX.cs:
24181           OSXStructs.cs: Initial refactor to move enums and consts into
24182           OSXStructs and use them in the driver for greater readability.
24183
24184 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
24185
24186         * XplatUIOSX.cs: Initial support for Standard Cursors.
24187         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
24188
24189 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
24190
24191         * ComboBox.cs: ability to change style when the ctrl is already
24192         created, missing methods and events, bug fixes, signature fixes
24193
24194 2005-01-19  Peter Bartok  <pbartok@novell.com>
24195
24196         * Cursors.cs (ctor): Added ctor to fix signature
24197
24198 2005-01-18  Peter Bartok  <pbartok@novell.com>
24199
24200         * Button.cs: Implemented DoubleClick event
24201         * ButtonBase.cs:
24202           - Fixed keyboard handling to behave like MS, where the press of
24203             Spacebar is equivalent to a mousedown, and the key release is
24204             equivalent to mouseup. Now a spacebar push will give the same
24205             visual feedback like a mouse click.
24206           - Added missing attributes
24207           - Added ImeModeChanged event
24208           - Added support for generating DoubleClick event for derived classes
24209         * CheckBox.cs:
24210           - Implemented DoubleClick event
24211           - Added missing attributes
24212         * CommonDialog.cs: Added missing attribute
24213         * ContextMenu.cs: Added missing attributes
24214         * RadioButton.cs:
24215           - AutoChecked buttons do not allow to be unselected when clicked
24216             (otherwise we might end up with no selected buttons in a group)
24217           - Added missing attributes
24218           - Implemented DoubleClickEvent
24219         * ThreadExceptionDialog.cs: Enabled TextBox code
24220
24221 2005-01-18  Peter Bartok  <pbartok@novell.com>
24222
24223         * Form.cs: Removed debug output
24224         * Button.cs: Added support for DoubleClick method
24225
24226 2005-01-18  Peter Bartok  <pbartok@novell.com>
24227
24228         * Form.cs:
24229           - Added method to parent window that allows triggering size
24230             calculations when a menu is added/removed
24231           - set_Menu: Cleaned up mess from early days of Form and Control,
24232             now properly triggers a recalc when a menu is added/removed
24233           - Added case to select form itself as focused form if no child
24234             controls exist
24235           - Added PerformLayout call when showing dialog, to ensure properly
24236             placed controls
24237         * Control.cs:
24238           - Select(): Made internal so Form can access it
24239           - Focus(): Only call Xplat layer if required (avoids loop), and sets
24240             status
24241         * Application.cs (Run): Removed hack and calls PerformLayout instead
24242           to trigger calculation when Form becomes visible
24243
24244 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
24245
24246         * ComboBox.cs: fixes for ownerdraw
24247
24248 2005-01-18  Peter Bartok  <pbartok@novell.com>
24249
24250         * TextControl.cs:
24251           - Sentinel is no longer static, each Document gets it's own, this
24252             avoids locking or alternatively overwrite problems when more
24253             than one text control is used simultaneously.
24254           - Switched to use Hilight and HilightText brushes for text selection
24255
24256         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
24257
24258 2005-01-18  Peter Bartok  <pbartok@novell.com>
24259
24260         * Control.cs:
24261           - Hooked up the following events:
24262                 o ControlAdded
24263                 o ControlRemoved
24264                 o HandleDestroyed
24265                 o ImeModeChanged
24266                 o ParentChanged
24267                 o TabStopChanged
24268                 o Invalidated
24269                 o SystemColorsChanged
24270                 o ParentFontChanged
24271                 o Move
24272           - Removed debug output
24273           - Added a call to the current theme's ResetDefaults when a color change
24274             is detected
24275         * Form.cs: Now setting the proper ImeMode
24276         * Theme.cs: Defined a method to force recreation of cached resources
24277           and rereading of system defaults (ResetDefaults())
24278         * ThemeWin32Classic.cs: Added ResetDefaults() stub
24279
24280 2005-01-17  Peter Bartok  <pbartok@novell.com>
24281
24282         * Control.cs: Added missing attributes
24283
24284 2005-01-17  Jackson Harper  <jackson@ximian.com>
24285
24286         * TreeNode.cs: Implement editing. Add missing properties selected
24287         and visible.
24288         * TreeView.cs: Implement node editing. Also some fixes to use
24289         Invalidate (invalid area) instead of Refresh when selecting.
24290
24291 2005-01-17  Peter Bartok  <pbartok@novell.com>
24292
24293         * Control.cs:
24294           - Implemented InvokeGotFocus() method
24295           - Implemented InvokeLostFocus() method
24296           - Implemented InvokePaint() method
24297           - Implemented InvokePaintBackground() method
24298           - Implemented InvokeClick() method
24299           - Implemented FindForm() method
24300           - Implemented RectangleToClient() method
24301           - Implemented ClientToRectangle() method
24302           - Implemented ResetBackColor() method
24303           - Implemented ResetCursor() method
24304           - Implemented ResetFont() method
24305           - Implemented ResteForeColor() method
24306           - Implemented ResetImeMode() method
24307           - Implemented ResetLeftToRight() method
24308           - Implemented ResetText() method
24309           - Implemented Scale() methods
24310           - Implemented ScaleCore() method
24311           - Implemented Update() method
24312           - Removed unused variables
24313           - Stubbed AccessibilityNotifyClients and
24314             ControlAccessibleObject.NotifyClients() methods (dunno what to do
24315             with those yet)
24316           - Now setting proper default for RightToLeft property
24317           - Fixed bug in SetClientSizeCore that would cause windows to get
24318             really big
24319           - Now sending Click/DoubleClick events
24320           - Now selecting controls when left mouse button is clicked on
24321             selectable control
24322         * AccessibleEvents.cs: Added
24323         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
24324         * XplatUIOSX.cs: Stubbed UpdateWindow() method
24325         * XplatUIWin32.cs: Implemented UpdateWindow() method
24326         * XplatUIX11.cs: Implemented UpdateWindow() method
24327         * Form.cs: Removed stray semicolon causing CS0162 warning
24328         * ThemeWin32Classic.cs: Fixed unused variable warnings
24329         * ScrollableControl.cs: Now calls base method for ScaleCore
24330         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
24331           style to avoid interference with internal click handler (which is
24332           different than standard Control click handling)
24333         * RadioButton.cs:
24334           - Now unchecks all sibling radio buttons when control is
24335             selected (Fixes #68756)
24336           - Removed internal tabstop variable, using the one inherited from
24337             Control
24338
24339 2005-01-17  Jackson Harper  <jackson@ximian.com>
24340
24341         * NavigateEventArgs.cs: Fix base type.
24342         * LinkLabel.cs: Sig fix
24343         
24344 2005-01-17  Jackson Harper  <jackson@ximian.com>
24345
24346         * TreeView.cs: Only invalidate the effected nodes bounds when
24347         selecting nodes.
24348
24349 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
24350
24351         * XplatUIWin32.cs: fixes Win32 marshaling
24352         * XplatUIX11.cs: fixes method signature
24353
24354 2005-01-17  Peter Bartok  <pbartok@novell.com>
24355
24356         * XplatUIX11.cs: Clean up resources when we no longer need them
24357
24358 2005-01-17  Peter Bartok  <pbartok@novell.com>
24359
24360         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
24361           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
24362           and DestroyCursor() methods.
24363         * Cursor.cs: Partially implemented, now supports standard cursors;
24364           still contains some debug code
24365         * Cursors.cs: Implemented class
24366         * Control.cs:
24367           - WndProc(): Added handling of WM_SETCURSOR message, setting the
24368             appropriate cursor
24369           - Implemented Cursor property
24370           - Replaced break; with return; more straightforwar and possibly
24371             faster
24372           - Now properly setting the result for WM_HELP
24373         * X11Structs.cs: Added CursorFontShape enum
24374         * XplatUIStructs.cs:
24375           - Added StdCursor enum (to support DefineStdCursor() method)
24376           - Added HitTest enum (to support sending WM_SETCURSOR message)
24377         * XplatUIX11.cs:
24378           - Now sends the WM_SETCURSOR message
24379           - Implemented new cursor methods
24380         * XplatUIOSX.cs: Stubbed new cursor methods
24381         * XplatUIWin32.cs:
24382           - Implemented new cursor methods
24383           - Added GetSystemMetrics function and associated enumeration
24384
24385 2005-01-15  Peter Bartok  <pbartok@novell.com>
24386
24387         * Control.cs:
24388           - WndProc(): Now handles EnableNotifyMessage
24389           - SelectNextControl(): Fixed bug where if no child or sibling
24390             controls exist we looped endlessly
24391
24392 2005-01-14  Jackson Harper  <jackson@ximian.com>
24393
24394         * TreeView.cs: Recalculate the tab pages when a new one is added
24395         so that the proper bounding rects are created.
24396
24397 2005-01-14  Jackson Harper  <jackson@ximian.com>
24398
24399         * TreeView.cs: Draw a gray box instead of a grip in the lower
24400         right hand corner when there are both horizontal and vertical
24401         scroll bars.
24402
24403 2005-01-14  Jackson Harper  <jackson@ximian.com>
24404
24405         * Control.cs: When erasing backgrounds use FromHwnd instead of
24406         FromHdc when there is a NULL wparam. This occurs on the X driver.
24407         * XplatUIX11.cs: Set the wparam to NULL.
24408
24409 2005-01-13  Jackson Harper  <jackson@ximian.com>
24410
24411         * PictureBox.cs: Implement missing methods (except ToString, need
24412         to test that on windows) and events. When visibility is changed we
24413         need to redraw the image because the buffers are killed. When size
24414         is changed refresh if the sizemode needs it.
24415
24416 2005-01-13  Peter Bartok  <pbartok@novell.com>
24417
24418         * Control.cs (SelectNextControl): Was using wrong method to select
24419           a control
24420
24421 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
24422
24423         * ComboBox.cs: fixes dropstyle
24424
24425 2005-01-13  Peter Bartok  <pbartok@novell.com>
24426
24427         * Form.cs:
24428           - Implemented Select() override
24429           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
24430           - Now sets keyboard focus on startup
24431         * Control.cs (SelectNextControl): Now properly handles directed=true
24432         * TextBoxBase.cs:
24433           - WndProc: Now passes tab key on to base if AcceptTabChar=false
24434           - Added (really bad) focus rectangle (mostly for testing)
24435         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
24436           to enforce redraw on focus changes
24437         * ContainerControl.cs:
24438           - Fixed detection of Shift-Tab key presses
24439           - Fixed traversal with arrow keys
24440         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
24441           gonna keep this or if it's complete yet
24442         
24443 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
24444
24445         * ComboBox.cs: missing properties, fixes
24446
24447 2005-01-13  Peter Bartok  <pbartok@novell.com>
24448
24449         * Panel.cs (ctor): Setting Selectable window style to off
24450         * Splitter.cs (ctor): Setting Selectable window style to off
24451         * GroupBox.cs (ctor): Setting Selectable window style to off
24452         * Label.cs (ctor): Setting Selectable window style to off
24453
24454 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
24455
24456         * UpDownBase.cs (InitTimer): If the timer has been already
24457         created, enable it.
24458
24459         Use a TextBox instead of a Label.
24460
24461 2005-01-12  Jackson Harper  <jackson@ximian.com>
24462
24463         * TreeView.cs: Refresh the tree after sorting the nodes. Always
24464         draw the connecting node lines (when ShowLines is true).
24465         * TreeNode.cs: The nodes index can now be updated. This is used
24466         when a node collection is sorted.
24467         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
24468         insert or an existing unsorted node collection can be sorted.
24469         
24470 2005-01-12  Peter Bartok  <pbartok@novell.com>
24471
24472         * ContainerControl.cs: Implemented ProcessDialogKeys()
24473
24474 2005-01-12  Peter Bartok  <pbartok@novell.com>
24475
24476         * Control.cs:
24477           - Implemented SelectNextControl() method
24478           - Several focus related bug fixes
24479           - Fixed Docking calculations to match MS documentation and
24480             behaviour
24481
24482 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
24483
24484         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
24485         bug fixes
24486
24487 2005-01-12  Peter Bartok  <pbartok@novell.com>
24488
24489         * Control.cs:
24490           - Fixed broken Contains() method
24491           - Implemented GetNextControl() method. Finally. This is the pre-
24492             requisite for focus handling.
24493
24494 2005-01-12  Peter Bartok  <pbartok@novell.com>
24495
24496         * OSXStrucs.cs: Added
24497
24498 2005-01-12  Peter Bartok  <pbartok@novell.com>
24499
24500         * XplatUIWin32.cs:
24501           - Removed PeekMessageFlags
24502           - Implemented SetWindowStyle() method
24503         * XplatUIStructs.cs: Added PeekMessageFlags
24504         * X11Structs: Added missing border_width field to XWindowChanges struct
24505         * XplatUIX11.cs:
24506           - PeekMessage: Now throws exception if flags which are not yet
24507             supported are passed
24508           - Implemented SetWindowStyle() method
24509           - Fixed SetZOrder to handle AfterHwnd properly
24510         * XplatUI.cs: Added SetWindowStyle() method
24511         * XplatUIDriver.cs: Added SetWindowStyle() abstract
24512         * Control.cs:
24513           - Implemented UpdateStyles() method
24514           - Implemented UpdateZOrder() method
24515         * XplatUIOSX.cs: Added SetWindowStyle() stub
24516
24517 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
24518
24519         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
24520         button mouse).
24521
24522
24523 2005-01-11  Jackson Harper  <jackson@ximian.com>
24524
24525         * TreeView.cs: Still need to draw lines to siblings even if out of
24526         the current node is out of the clip.
24527
24528 2005-01-11  Jackson Harper  <jackson@ximian.com>
24529
24530         * TreeView.cs: When setting the hbar/vbar/grip position use
24531         SetBounds so that perform layout is only called once. Also suspend
24532         and resume layout so layout is only done once for all controls.
24533         - Removed some debug fluff
24534         * SizeGrip.cs: Call base implmentation in overriding methods.
24535         - When visibility is changed the drawing buffers are killed so we
24536         need to redraw.
24537
24538 2005-01-11  Jackson Harper  <jackson@ximian.com>
24539
24540         * TreeView.cs: Calculate the open node count while drawing. This
24541         saves us an entire tree traversal for every paint operation. Use
24542         a member var for the open node count so less vars are passed around.
24543
24544 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
24545
24546         * MonthCalendar.cs:
24547         - fixed selection to use mousemove, not mouse polling on timer
24548         * ThemeWin32Classic.cs
24549         - removed redundant unused variable "no_more_content"
24550         
24551 2005-01-11  Peter Bartok  <pbartok@novell.com>
24552
24553         * XplatUIX11.cs (DoEvents): Needs to return when no more events
24554           are pending, so it now calls PeekMessage instead of GetMessage;
24555           implemented a incomplete version of PeekMessage
24556         
24557 2005-01-11  Peter Bartok  <pbartok@novell.com>
24558
24559         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
24560           I18n issues
24561         * TextBoxBase.cs: Added sending of TextChanged event
24562
24563 2005-01-10  Jackson Harper  <jackson@ximian.com>
24564
24565         * TreeView.cs: Try not to draw outside the clipping rectangle on
24566         each node element.
24567
24568 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
24569
24570         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
24571
24572 2005-01-10  Jackson Harper  <jackson@ximian.com>
24573
24574         * TreeView.cs:
24575         - Implement fast scrolling. Now only the newly
24576         exposed nodes are drawn and the old image is moved using the
24577         XplatUI::ScrollWindow method.
24578         - Factor in height of nodes when calculating whether or not the
24579         node is in the clipping rect.
24580
24581 2005-01-10  Jackson Harper  <jackson@ximian.com>
24582
24583         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
24584
24585 2005-01-10  Peter Bartok  <pbartok@novell.com>
24586
24587         * Application.cs: Added temporary hack to resolve all our resize
24588           required issues on startup. This will get fixed properly at
24589           some point in the future
24590
24591 2005-01-10  Jackson Harper  <jackson@ximian.com>
24592
24593         * SizeGrip.cs: New internal class that is used as a sizing
24594         grip control...hence the name.
24595
24596 2005-01-10  Peter Bartok  <pbartok@novell.com>
24597
24598         * Control.cs: Implemented proper TabIndex handling, now assigning
24599           a tabindex when a control is added to a container
24600         * GroupBox.cs (ctor): Now sets the Container style bit, required
24601           for Control.GetNextControl()
24602
24603 2005-01-09  Jackson Harper  <jackson@ximian.com>
24604
24605         * TextBoxBase.cs: Clear window when scrolling (fixes build).
24606
24607 2005-01-09  Peter Bartok <pbartok@novell.com>
24608
24609         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
24610           XplatUIX11.cs: Added ability to control ScrollWindow expose and
24611           an overload for ScrollWindow to allow only scrolling a rectangle
24612
24613 2005-01-09  Peter Bartok <pbartok@novell.com>
24614
24615         * Form.cs:
24616           - Implemented SetDesktopBounds method
24617           - Implemented SetDesktopLocation method
24618
24619 2005-01-08  Jackson Harper  <jackson@ximian.com>
24620
24621         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
24622         the node count has changed, this removes to VScroll::Refresh calls
24623         when drawing.
24624
24625 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
24626
24627         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
24628
24629 2005-01-07  Jackson Harper  <jackson@ximian.com>
24630
24631         * TreeNode.cs: Just update the single node when it is
24632         checked. Don't refresh after toggling, the Expand/Collapse already
24633         handles this.
24634         * TreeView.cs: Respect clipping a little more when drawing. Try
24635         not to redraw things that don't need to be redrawn. Just hide the
24636         scrollbars when they are no longer needed instead of removing
24637         them, so they don't have to be created again and again.
24638         
24639 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
24640
24641         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
24642         coordinates to window space to place the caret properly, FIXED.
24643         Implement GetWindowState & SetWindowState
24644
24645 2005-01-06  Peter Bartok <pbartok@novell.com>
24646
24647         * Form.cs:
24648           - Implemented ClientSize property
24649           - Implemented DesktopBounds property
24650           - Implemented DesktopLocation property
24651           - Implemented IsRestrictedWindow property
24652           - Implemented Size property
24653           - Implemented TopLevel property
24654           - Implemented FormWindowState property
24655         * Control.cs:
24656           - Implemented GetTopLevel() method
24657           - Implemented SetTopLevel() method
24658         * X11Structs.cs (Atom):
24659           - Added AnyPropertyType definition
24660           - Added MapState definiton and updated XWindowAttribute struct
24661         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
24662         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
24663         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
24664         * XplatUIWin32.cs:
24665           - Implemented GetWindowState() and SetWindowState() methods
24666           - Fixed Win32GetWindowLong return type
24667         * XplatUIX11.cs:
24668           - Introduced central function for sending NET_WM messages
24669           - Implemented GetWindowState() and SetWindowState() methods
24670         * TextBoxBase.cs (set_Lines):
24671           - Now uses Foreground color for text added via Text property (Duh!)
24672           - Added code to remember programmatically requested size (fixes
24673             behaviour when Multiline is set after Size)
24674           - Added AutoSize logic
24675
24676 2005-01-06  Jackson Harper  <jackson@ximian.com>
24677
24678         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
24679
24680 2005-01-06  Jackson Harper  <jackson@ximian.com>
24681
24682         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
24683         set to less then 0.
24684
24685 2005-01-06  Jackson Harper  <jackson@ximian.com>
24686
24687         * ScrollableControl.cs: Lazy init the scrollbars.
24688         
24689 2005-01-06  Jackson Harper  <jackson@ximian.com>
24690
24691         * Theme.cs: Speed up getting pens and solid brushes, by using
24692         their ARGB as a hash instead of tostring and not calling Contains.
24693
24694 2005-01-06  Peter Bartok <pbartok@novell.com>
24695
24696         * Form.cs:
24697           - Implemented OnActivated and OnDeactivate event trigger
24698           - Implemented Activate() method
24699           - Fixed ShowDialog() to activate the form that was active before
24700             the dialog was shown
24701         * XplatUIX11.cs:
24702           - Added global active_window var that tracks the currently active
24703             X11 window
24704           - Now always grabs Property changes from the root window to always
24705             catch changes on the active window property
24706           - Added code to PropertyNotify handler to send Active/Inactive
24707             messages when state changes. This puts X11 and Win32 en par on
24708             WM_ACTIVATE notifications (except for double notifications when
24709             the user clicks away from our modal window to another one of our
24710             windows)
24711
24712 2005-01-05  Jackson Harper  <jackson@ximian.com>
24713
24714         * ImageList.cs: Implment ctor
24715
24716 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
24717
24718         * XplatUIOSX.cs: Implement Activate/SetTopmost
24719
24720 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
24721
24722         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
24723
24724 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
24725
24726         * XplatUIOSX.cs: Implement GetActive/SetFocus.
24727
24728 2005-01-05  Peter Bartok <pbartok@novell.com>
24729
24730         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
24731           XplatUIOSX.cs: Added GetActive method to return the currently
24732           active window for the application (or null, if none is active)
24733         * Form.cs:
24734           - Implemented ActiveForm
24735           - Commented out owner assignment for modal dialogs (causes problems
24736             on Win32, since the owner will be disabled)
24737           - Reworked some Active/Focus handling (still incomplete)
24738         * CommonDialog.cs: Commented out owner assignment for modal dialogs
24739           (causes problems on Win32, since the owner will be disabled)
24740         * IWin32Window: Added ComVisible attribute
24741
24742 2005-01-05  Peter Bartok <pbartok@novell.com>
24743
24744         * ToolTip.cs (WndProc): Enable setting focus now that we have the
24745           required XplatUI functions.
24746
24747 2005-01-05  Peter Bartok <pbartok@novell.com>
24748
24749         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
24750           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
24751           to implement focus and activation handling; still incomplete and
24752           with debug output
24753
24754 2005-01-04  Peter Bartok <pbartok@novell.com>
24755
24756         * TextBoxBase.cs: Changed access level for Document property to
24757           match switch to internal for TextControl
24758
24759 2005-01-04  Peter Bartok <pbartok@novell.com>
24760
24761         * AccessibleObject: Added ComVisible attribute
24762
24763 2005-01-04  Jackson Harper  <jackson@ximian.com>
24764
24765         * X11Keyboard.cs: Remove unneeded var.
24766
24767 2005-01-04  Jackson Harper  <jackson@ximian.com>
24768
24769         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
24770         but PAINT.
24771         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
24772         ClientMessage. This makes apps exit cleanly (more often).
24773         
24774 2005-01-04  Jackson Harper  <jackson@ximian.com>
24775
24776         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
24777         handling focus, return correct colors and fonts,
24778         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
24779         handle selection, horizontal scrolling, and mouse interaction.
24780
24781 2005-01-04  Peter Bartok <pbartok@novell.com>
24782
24783         * ICommandExecutor.cs: Added
24784         * IDataGridColumnStyleEditingNotificationService.cs: Added
24785         * IFeatureSupport.cs: Added
24786         * IFileReaderService.cs: Added
24787         * IDataObject.cs: Added ComVisible attribute
24788         * AmbientProperties.cs: Added
24789         * BaseCollection.cs: Added missing attributes
24790         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
24791         * BaseCollection.cs: Added missing attributes
24792         * Binding.cs: Added TypeConverter attribute
24793         * BindingContext.cs: Added DefaultEvent attribute
24794         * BindingsCollection.cs: Added DefaultEvent attribute
24795         * Button.cs: Added DefaultValue attribute
24796         * DragEventArgs.cs: Added ComVisible attribute
24797         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
24798         * KeyEventArgs.cs: Added ComVisible attribute
24799         * KeyPressEventArgs.cs: Added ComVisible attribute
24800         * MouseEventArgs.cs: Added ComVisible attribute
24801         * NavigateEventArgs.cs: Added
24802         * NavigateEventHandler.cs: Added
24803         * FeatureSupport.cs: Added
24804         * OSFeature.cs: Added
24805         * Theme.cs: Added abstract Version property to support OSFeature
24806         * ThemeWin32Classic.cs: Added Version property to
24807           support OSFeature.Themes
24808         * ProgressBar.cs: Removed OnPaintBackground override, not required since
24809           the proper styles to avoid background drawing are set, also doesn't
24810           match MS signature
24811         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
24812         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
24813         * ScrollEventArgs.cs: Added ComVisible attribute
24814         * SplitterEventArgs.cs: Added ComVisible attribute
24815         * AccessibleSelection.cs: Added Flags attribute
24816         * Appearance.cs: Added ComVisible attribute
24817         * Border3DSide.cs: Added ComVisible attribute
24818         * Border3DStyle.cs: Added ComVisible attribute
24819         * BorderStyle.cs: Added ComVisible attribute
24820         * DragAction.cs: Added ComVisible attribute
24821         * ErrorBlinkStyle.cs: Added
24822         * ScrollEventType.cs: Added ComVisible attribute
24823         * AnchorStyles.cs: Added Editor attribute
24824         * DockStyle.cs: Added Editor attribute
24825         * HorizontalAlignment.cs: Added ComVisible attribute
24826         * HelpEventArgs.cs: Added ComVisible attribute
24827         * PaintEventArgs.cs: Added IDisposable
24828
24829 2005-01-04  Peter Bartok <pbartok@novell.com>
24830
24831         * TextControl.cs: Switched Line, LineTag and Document classes to
24832           internal
24833
24834 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
24835
24836         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
24837         Simple mode, fixes, IntegralHeight, etc.
24838
24839 2005-01-04  Peter Bartok <pbartok@novell.com>
24840
24841         * TextBoxBase.cs: Using proper font variable now
24842
24843 2005-01-04  Peter Bartok <pbartok@novell.com>
24844
24845         * Form.cs (ShowDialog): Set parent to owner, if provided
24846         * GroupBox.cs: Removed unused vars
24847         * TextControl.cs:
24848           - Added GetHashCode() for Document and LineTag classes
24849           - Removed unused variables
24850           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
24851             to allow translation between continuous char position and line/pos
24852         * CheckBox.cs: Removed vars that are provided by base class
24853         * RadioButton.cs: Removed vars that are provided by base class, added
24854           new keyword where required
24855         * LinkLabel.cs: Added new keyword where required
24856         * Control.cs (WndProc): Removed unused variable
24857         * TextBoxBase.cs:
24858           - Finished SelectionLength property
24859           - Implemented SelectionStart property
24860           - Implemented Text property
24861           - Removed unused vars
24862         * MessageBox.cs: Added new keyword where required
24863         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
24864           WndProc signature
24865         * MenuAPI.cs: Added new keyword where required
24866         * ButtonBase.cs: Removed vars that are provided by base class, added
24867           new keyword where required
24868         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
24869           argument to double, to allow compiling with csc 2.0 (Atsushi ran
24870           into this)
24871         * Application.cs (Run): Now triggers the ThreadExit event
24872         * CommonDialog.cs: Added new keyword where required; now properly sets
24873           parent (owner) for dialog
24874         * XplatUIX11.cs: Commented out unused vars
24875         * StatusBar.cs: Fixed signature for Text property
24876         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
24877
24878 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
24879
24880         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
24881         TrackBar.cs, MonthCalendar.cs: remove unused vars
24882
24883 2005-01-03  Jackson Harper  <jackson@ximian.com>
24884
24885         * ThemeWin32Classic.cs:
24886         * X11Keyboard.cs: Remove unused vars.
24887
24888 2005-01-03  Peter Bartok  <pbartok@novell.com>
24889
24890         * TextBox.cs:
24891           - set_Text: Tied into TextControl
24892           - set_TextAlignment: Tied into TextControl
24893         * TextControl.cs:
24894           - Added alignment properties and implemented alignment handling
24895             and drawing (still has a bug, not generating proper expose events)
24896           - Added new Line() constructor to allow passing the line alignment
24897           - Fixed selection setting, properly handling end<start now
24898           - Added aligment considerations to RecalculateDocument()
24899         * TextBoxBase.cs:
24900           - Now properly enforces control height for single line controls
24901           - Added support for CharacterCasing
24902           - Added IsInputKey override
24903           - Fixed Keys.Enter logic
24904           - Added SetBoundsCore override
24905           - Fixed mouse selection handling
24906
24907 2005-01-03  Jackson Harper  <jackson@ximian.com>
24908
24909         * TreeView.cs:
24910           - Collapse and uncheck all nodes when CheckBoxes is disabled.
24911           - Checkboxes are always aligned to the bottom of the node,
24912           regardless of item height.
24913           - Use the node bounds to draw the text so we can center it when
24914           the item height is greater then the font height.
24915           - Node::Bounds are only the text part of the node.
24916         * TreeNode.cs: New method to combine collapsing and unchecking all
24917           nodes recursively.
24918
24919 2005-01-02  Jackson Harper  <jackson@ximian.com>
24920
24921         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
24922         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
24923         tree when a check is changed. TODO: Only refresh the checked node.
24924
24925 2004-12-30  Jackson Harper  <jackson@ximian.com>
24926
24927         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
24928         * TreeNode.cs: When collapsing make sure to never collapse the
24929         root node.
24930
24931 2004-12-29  Jackson Harper  <jackson@ximian.com>
24932
24933         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
24934         
24935 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
24936
24937         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
24938
24939 2004-12-28  Peter Bartok  <pbartok@novell.com>
24940
24941         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
24942           not yet assigned
24943
24944 2004-12-28  Peter Bartok  <pbartok@novell.com>
24945
24946         * Control.cs (WndProc): Added WM_HELP handler, now generates
24947           HelpRequested event
24948         * Form.cs: Added HelpButton property and required support code
24949         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
24950
24951 2004-12-28  Peter Bartok  <pbartok@novell.com>
24952
24953         * CommonDialog.cs:
24954           - Made DialogForm.owner variable internal
24955           - Added check to ensure owner form is set before setting
24956             owner properties in CreateParams
24957
24958 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
24959
24960         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
24961           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
24962           GetCursorPos.  Fix major visibility issues.  Rework the windowing
24963           system to support borderless/titleless windows (implements menus).
24964           Fix GetWindowPos.  Implement initial background color support for
24965           views.
24966
24967 2004-12-28  Peter Bartok  <pbartok@novell.com>
24968
24969         * Form.cs (get_CreateParams): Make sure we have an owner before using
24970           the owner variable. Implement proper default if no owner exists
24971
24972 2004-12-28  Peter Bartok  <pbartok@novell.com>
24973
24974         * In preparation for making Managed.Windows.Forms the default build target
24975           for System.Windows.Forms, the following stubbed files were added.
24976           Dialogs are currently being implemented by contributors and are only
24977           short-term place holders.
24978         * ColorDialog.cs: Initial check-in (minmal stub)
24979         * DataGrid.cs: Initial check-in (minimal stub)
24980         * DataGridLineStyle.cs: Initial check-in (minimal stub)
24981         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
24982         * DataGridTableStyle.cs: Initial check-in (minimal stub)
24983         * FontDialog.cs: Initial check-in (minimal stub)
24984         * FileDialog.cs: Initial check-in (minimal stub)
24985         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
24986         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
24987         * OpenFileDialog: Initial check-in (minimal stub)
24988         * IComponentEditorPageSite.cs: Initial check-in
24989         * Splitter.cs: Initial check-in (for Jackson)
24990         * SplitterEventArgs.cs: Initial check-in (for Jackson)
24991         * SplitterEventHandler.cs: Initial check-in (for Jackson)
24992         * TextBox.cs: Initial check-in; still needs some wiring to
24993           TextControl backend
24994         * Form.cs: Implemented ControlBox property
24995         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
24996         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
24997         * TextControl.cs: Added selection functionality; added todo header
24998         * TextBoxBase.cs:
24999           - Implemented Lines property
25000           - Implemented TextHeight property
25001           - Implemented SelectedText property
25002           - Implemented SelectionLength property
25003           - Implemented SelectAll method
25004           - Implemented ToString method
25005           - Removed and cleaned up some debug code
25006           - Implemented (still buggy) mouse text selection
25007
25008 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
25009
25010         * ComboBox.cs: Complete DropDownList implementation, fixes.
25011
25012 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
25013
25014         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
25015         * ComboBoxStyle.cs: ComboBoxStyle enum
25016         * ComboBox.cs: Initial work on ComboBox control
25017
25018 2004-12-21  Peter Bartok  <pbartok@novell.com>
25019
25020         * Control.cs (ctor, CreateParams): Moved setting of is_visible
25021           forward so that anything that creates a window gets the default,
25022           also no longer uses Visible property in CreateParams to avoid
25023           walking up the parent chain and possibly get the wrong visible
25024           status. Fixed IsVisible to no longer walk up to the parent.
25025
25026 2004-12-21  Peter Bartok  <pbartok@novell.com>
25027
25028         * Form.cs (ShowDialog): Unset modality for the proper window
25029  
25030 2004-12-20  Peter Bartok  <pbartok@novell.com>
25031
25032         * CommonDialog.cs: Initial check-in
25033
25034 2004-12-20  Peter Bartok  <pbartok@novell.com>
25035
25036         * Control.cs (Visible): Now uses the parent window instead of the
25037           client area window for the property
25038
25039         * Form.cs
25040           - ShowDialog(): Now uses the proper window for modality
25041           - The default visibility state for the form parent is now false. This
25042             will prevent the user from seeing all the changes to the form and
25043             its controls before the application hits Application.Run()
25044           - Removed some stale commented out code
25045
25046         * NativeWindow.cs:
25047           - Added FindWindow() method to have a method to check for existence
25048             of a window handle
25049           - Added ability to override default exception handling (for example
25050             when debugging with VS.Net; to do this the ExternalExceptionHandler
25051             define must be set
25052           - Removed some useless debug output
25053
25054         * XplatUIX11.cs:
25055           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
25056             not working as expected
25057           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
25058             property to allow switching back to the modal window if focus is
25059             given to another one of our windows (Application Modal)
25060           - Now only sets override_redirect if we create a window
25061             without WS_CAPTION
25062           - Moved EventMask selection before mapping of newly created window
25063             so we can catch the map event as well
25064           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
25065           - Added various Atom related DllImports
25066           - Implemented Exit() method
25067           - .ctor() : No longer shows window if WS_VISIBLE is not defined
25068             in the CreateParams
25069
25070         * MessageBox.cs: Now properly deals with the FormParent window by
25071           providing an override the FormParent CreateParams property to
25072           set as POPUP instead of OVERLAPPED window.
25073
25074 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
25075
25076         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
25077         Minor code cleanup.
25078
25079 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
25080         
25081         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
25082
25083 2004-12-18  Peter Bartok  <pbartok@novell.com>
25084
25085         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
25086           implementing SetModal() method
25087
25088 2004-12-18  Peter Bartok  <pbartok@novell.com>
25089
25090         * X11Structs.cs (XGCValues): Fixed type of function element
25091         * XplatUI.cs: Added ScrollWindow() method
25092         * XplatUIDriver.cs: Added ScrollWindow() abstract
25093         * XplatUIWin32.cs: Implemented ScrollWindow() method
25094         * XplatUIX11.cs: Implemented ScrollWindow() method
25095         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
25096
25097 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
25098
25099         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
25100         Some more keyboard support (INCOMPLETE)
25101
25102 2004-12-17  Peter Bartok  <pbartok@novell.com>
25103
25104         * TextControl.cs:
25105         - Added color attribute to line tags.
25106         - Added color argument to all functions dealing with tags
25107         - Added color argument support to various functions
25108         - Fixed miss-calculation of baseline/shift in certain circumstances
25109
25110         * TextBoxBase.cs: Added new color option to test code
25111
25112 2004-12-17  Jackson Harper  <jackson@ximian.com>
25113
25114         * TreeNode.cs:
25115         * MonthCalendar.cs: Signature fixes
25116
25117 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
25118
25119         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
25120         keyboard event moved it.  Create a new graphics context for each paint resolves this
25121
25122 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
25123
25124         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
25125         Make caret exist and go blink blink.  Initial keyboard support.
25126         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
25127         works.
25128
25129 2004-12-17  Jackson Harper  <jackson@ximian.com>
25130
25131         * XplatUIStructs.cs: Updated set of virtual keycodes.
25132         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
25133
25134 2004-12-17  Jackson Harper  <jackson@ximian.com>
25135
25136         * XplatUIX11.cs: Prune old keyboard code.
25137
25138 2004-12-17  Jackson Harper  <jackson@ximian.com>
25139
25140         * XplatUIX11.cs: When generating mouse wparams get the modifier
25141         keys from the ModifierKeys property.
25142
25143 2004-12-17  Jackson Harper  <jackson@ximian.com>
25144
25145         * X11Keyboard.cs: Send up/down input when generating
25146         messages. Remove some unused vars.
25147
25148 2004-12-17  Jackson Harper  <jackson@ximian.com>
25149
25150         * TabControl.cs:
25151         * TreeView.cs: get rid of warnings.
25152
25153 2004-12-17  Jackson Harper  <jackson@ximian.com>
25154
25155         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
25156
25157 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
25158
25159         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
25160           CheckedListBox.cs: Implementation
25161
25162 2004-12-17  Peter Bartok  <pbartok@novell.com>
25163
25164         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
25165
25166 2004-12-16  Peter Bartok  <pbartok@novell.com>
25167
25168         * TextControl.cs:
25169           - InsertCharAtCaret(): Fixed start pos fixup
25170           - CaretLine_get: No longer derives the line from the tag, the tag
25171             could be stale if lines in the document have been added or deleted
25172           - RebalanceAfterDelete(): Fixed bug in balancing code
25173           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
25174           - Line.Streamline(): Now can also elminate leading empty tags
25175           - DumpTree(): Added a few more tests and prevented exception on
25176             uninitialized data
25177           - Added Debug section for Combining lines
25178           - Delete(): Now copies all remaining properties of a line
25179           
25180         * TextBoxBase.cs:
25181           - Left mousebutton now sets the caret (and middle button still acts
25182             as formatting tester, which must go away soon)
25183           - Added Debug section for Deleting/Combining lines
25184           - Fixed calculations for UpdateView after Combining lines
25185
25186 2004-12-16  Peter Bartok  <pbartok@novell.com>
25187
25188         * TextControl.cs: Now properly aligns text on a baseline, using the
25189           new XplatUI.GetFontMetrics() method. Simplified several calculations
25190         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
25191           defined
25192
25193 2004-12-16  Peter Bartok  <pbartok@novell.com>
25194
25195         * XplatUI.cs: Added GetFontMetrics() method
25196         * XplatUIDriver.cs: Added GetFontMetrics() abstract
25197         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
25198           into libgdiplus, our private GetFontMetrics function
25199         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
25200         * XplatUIWin32.cs: Implemented GetFontMetrics() method
25201
25202 2004-12-16  Jackson Harper  <jackson@ximain.com>
25203
25204         * XplatUIStruct.cs: Add enum for dead keys
25205         * X11Keyboard.cs: Map and unmap dead keys.
25206
25207 2004-12-16  Jackson Harper  <jackson@ximian.com>
25208
25209         * X11Keyboard.cs: Detect and use the num lock mask.
25210
25211 2004-12-16  Peter Bartok  <pbartok@novell.com>
25212
25213         * Control.cs (CreateGraphics): Added check to make sure the
25214           handle of the window exists before calling Graphics.FromHwnd()
25215
25216 2004-12-16  Peter Bartok  <pbartok@novell.com>
25217
25218         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
25219           contains a lot of code that's not supposed to be there for the
25220           real thing, but required for developing/testing the textbox
25221           backend.
25222
25223 2004-12-16  Peter Bartok  <pbartok@novell.com>
25224
25225         * TextControl.cs:
25226         - Fixed Streamline method
25227         - Added FindTag method to Line
25228         - Added DumpTree method for debugging
25229         - Added DecrementLines() method for deleting lines
25230         - Fixed UpdateView to update the cursor to end-of-line on single-line
25231           updates
25232         - Added PositionCaret() method
25233         - Fixed MoveCaret(LineDown) to move into the last line, too
25234         - Added InsertChar overload
25235         - Fixed InsertChar tag offset calculations
25236         - Added DeleteChar() method
25237         - Added Combine() method for folding lines
25238         - Fixed Delete() method, no longer allocates wasted Line object and
25239           now copies all properties when swapping nodes
25240         - Delete() method now updates document line counter
25241
25242 2004-12-15  Jackson Harper  <jackson@ximian.com>
25243
25244         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
25245         * X11Keyboard.cs: Expose the currently selected modifier keys
25246         through a property.
25247
25248 2004-12-15  Peter Bartok  <pbartok@novell.com>
25249
25250         * TextControl.cs: Initial check-in. Still incomplete
25251
25252 2004-12-15  Jackson Harper  <jackson@ximian.com>
25253
25254         * TreeNode.cs:
25255         * TreeView.cs: Fix build on csc (second time today ;-))
25256
25257 2004-12-15  Jackson Harper  <jackson@ximian.com>
25258
25259         * TreeView.cs: Store the treenodes plus/minus box bounds when it
25260         is calculated and use this for click testing.
25261         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
25262
25263 2004-12-15  Jackson Harper  <jackson@ximian.com>
25264
25265         * TreeView.cs: Pass the nodes image index to the image list when
25266         drawing that image.
25267
25268 2004-12-15  Jackson Harper  <jackson@ximian.com>
25269
25270         * X11Keyboard.cs: Set messages hwnd.
25271         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
25272         post_message calls.
25273
25274 2004-12-15  Jackson Harper  <jackson@ximian.com>
25275
25276         * X11Keyboard.cs: Fix to compile with csc.
25277         
25278 2004-12-15  Jackson Harper  <jackson@ximian.com>
25279
25280         * X11Structs.cs: Add key mask values
25281         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
25282         * X11Keyboard.cs: New file - Extrapolates and interpolates key
25283         down/up foo into WM_CHAR foo
25284         * KeyboardLayouts.cs: Common keyboard layouts
25285         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
25286         post messages into the main queue.
25287
25288 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
25289
25290         * Button.cs: implement ProcessMnemonic
25291         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
25292           brushes everytime
25293         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
25294         * ButtonBase.cs: Show HotkeyPrefix (not the &)
25295
25296 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
25297         
25298         * MonthCalendar.cs: Implemented click-hold for next/previous month
25299           and date selection
25300           
25301 2004-12-11  Peter Bartok  <pbartok@novell.com>
25302
25303         * X11Structs.cs:
25304           - Added XKeyboardState (moved from XplatUIX11.cs)
25305           - Added XCreateGC related enums and structures
25306           - Added GXFunction for XSetFunction
25307
25308         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
25309
25310         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
25311           CaretVisible() calls
25312
25313         * ToolTip.cs: Added code to prevent stealing focus from app windows
25314
25315         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
25316           DestroyCaret, SetCaretPos and CaretVisible)
25317
25318         * XplatUIX11.cs:
25319           - Added implementation for caret functions
25320           - Moved hover variables into a struct, to make it a bit easier
25321             on the eyes and to debug
25322           - Removed XKeyboardState (moved to XplatUIX11.cs)
25323           - Moved Keyboard properties into the properties region
25324
25325         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
25326           call to get a graphics context for our control
25327
25328         * XplatUIOSX.cs: Added empty overrides for the new caret functions
25329
25330         * TreeView.cs: Fixed bug. No matter what color was set it would always
25331           return SystemColors.Window
25332
25333         * XplatUIWin32.cs: Implemented caret overrides
25334
25335 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
25336
25337         * ListBox.cs: fire events, implement missing methods and properties,
25338         sorting.
25339
25340 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
25341
25342         * MonthCalendar.cs: invalidation bug fixing
25343         * ThemeWin32Classic.cs: paint fixing
25344
25345 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
25346
25347         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
25348         prepare the CGContextRef there now.
25349
25350 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
25351
25352         * MonthCalendar.cs:
25353           - optimisationL only invalidate areas that have changed
25354         * ThemeWin32Classic.cs:
25355           - only paint parts that intersect with clip_area
25356
25357 2004-12-09  Peter Bartok  <pbartok@novell.com>
25358
25359         * Application.cs: Undid changes from r37004 which cause problems
25360         on X11
25361
25362 2004-12-09  Ravindra  <rkumar@novell.com>
25363
25364         * ToolBar.cs: Added support for displaying ContextMenu
25365         attached to a button on ToolBar.
25366         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
25367         property.
25368
25369 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
25370
25371         * Label.cs: autosize works in text change and removes unnecessary
25372         invalidate
25373
25374 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
25375
25376         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
25377         remove warnings
25378
25379 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
25380
25381         * XplatUIOSX.cs: Added mouse move/click/grab support
25382         Remove some debugging WriteLines not needed anymore.
25383         Add window resizing/positioning.
25384         Fix visibility on reparenting.
25385
25386 2004-12-08  Peter Bartok  <pbartok@novell.com>
25387
25388         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
25389
25390 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
25391
25392         * XplatUIOSX.cs: Initial checkin
25393         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
25394
25395 2004-12-03  Ravindra <rkumar@novell.com>
25396
25397         * ListView.cs: Added some keybindings and fixed scrolling.
25398         ScrollBars listen to ValueChanged event instead of Scroll
25399         Event. This would let us take care of all changes being
25400         done in the scrollbars' values programmatically or manually.
25401         * ListView.cs (CanMultiselect): Added a check for shift key.
25402         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
25403         * ListViewItem.cs (Clone): Fixed. We need to make a copy
25404         of ListViewSubItemCollection as well.
25405
25406 2004-12-06  Peter Bartok <pbartok@novell.com>
25407
25408         * Control.cs (Parent): Added check and exception to prevent
25409         circular parenting
25410
25411 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
25412
25413         * ListBox.cs: implemented clipping, selection single and multiple,
25414         bug fixing
25415
25416 2004-12-03  Ravindra <rkumar@novell.com>
25417
25418         * ListView.cs (ListView_KeyDown):
25419         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
25420         when CTRL key is pressed.
25421         * ListViewItem.cs (Selected): Fixed setting the property.
25422
25423 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
25424
25425         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
25426
25427         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
25428         MinimizeBox, ShowInTaskbar, TopMost properties.
25429
25430         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
25431         will be implemented).
25432
25433 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
25434
25435         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
25436
25437         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
25438         tests.
25439         
25440         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
25441         
25442         * TreeView.cs: BackColor is Colors.Window.
25443
25444 2004-12-01  Jackson Harper  <jackson@ximian.com>
25445
25446         * TreeView.cs: When resizing the tree if the user is making it
25447         smaller we don't get expose events, so we need to handle adding
25448         the horizontal scrollbar in the size changed handler as well as
25449         the expose handler.
25450
25451 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
25452
25453         * DrawItemState.cs: fixes wrong enum values
25454
25455 2004-12-01  Jackson Harper  <jackson@ximian.com>
25456
25457         * TreeView.cs: Resize the hbar as well as the vbar on resize.
25458
25459 2004-12-01  Jackson Harper  <jackson@ximian.com>
25460
25461         * NodeLabelEditEventArgs.cs:
25462         * NodeLabelEditEventHandler.cs:
25463         * OpenTreeNodeEnumerator.cs:
25464         * TreeNode.cs:
25465         * TreeNodeCollection.cs:
25466         * TreeView.cs:
25467         * TreeViewAction.cs:
25468         * TreeViewCancelEventArgs.cs:
25469         * TreeViewCancelEventHandler.cs:
25470         * TreeViewEventArgs.cs:
25471         * TreeViewEventHandler.cs: Initial implementation.
25472
25473 2004-12-01  Ravindra <rkumar@novell.com>
25474
25475         * ListView.cs (CalculateListView): Fixed scrolling related
25476         calculations. Also, removed some debug statements from other
25477         places.
25478         * ListViewItem.cs: Changed access to 'selected' instance variable
25479         from private to internal.
25480         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
25481
25482 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
25483
25484         * ThemeWin32Classic.cs: remove cache of brush and pens for
25485         specific controls and use the global system, fixes scrollbutton
25486         bugs (for small sizes, disabled, etc)
25487         
25488         * ScrollBar.cs: does not show the thumb for very small controls
25489         (as MS) and allow smaller buttons that the regular size
25490
25491 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
25492
25493         * UpDownBase.cs: Add abstract methods for the interface.
25494         Add new virtual methods (need to be hooked up to TextEntry when it
25495         exists).
25496         Add override methods for most features.
25497         Computes the size, forces the height of the text entry.
25498
25499         * NumericUpDown.cs: Put here the current testing code.
25500
25501         * Set eol-style property on all files that do not have mixed line
25502         endings, to minimize the future problems.  There are still a few
25503         files with mixed endings, and someone should choose whether they
25504         want to move it or not.
25505
25506 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
25507
25508         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
25509         System.Colors
25510         
25511 2004-11-30  Ravindra <rkumar@novell.com>
25512
25513         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
25514         drawing and replaced use of SystemColors by theme colors.
25515         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
25516         * ListView.cs (ListViewItemCollection.Add): Throw exception when
25517         same ListViewItem is being added more than once.
25518
25519 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
25520
25521         * MonthCalendar.cs:
25522           - ControlStyles love to make the control not flicker
25523           
25524 2004-11-30  Peter Bartok  <pbartok@novell.com>
25525
25526         * CharacterCasing.cs: Added
25527
25528 2004-11-29  Peter Bartok  <pbartok@novell.com>
25529
25530         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
25531           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
25532           I am removing these files as they conflict with already completed
25533           work. While it is fantastic to get contributions to MWF, I
25534           respectfully ask that everyone please coordinate their contributions
25535           through mono-winforms-list or #mono-winforms at this time. We're
25536           explicitly avoiding stubbing and don't want controls that don't have
25537           their basic functionality implemented in svn. Please also see
25538           http://www.mono-project.com/contributing/winforms.html
25539
25540
25541 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
25542
25543         * Application.cs (ModalRun): Don't hang after exit.
25544
25545         * Theme.cs: New TreeViewDefaultSize property.
25546
25547         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
25548         with less hardcoded SystemColors constant.
25549         Implemented TreeViewDefaultSize.
25550
25551         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
25552         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
25553
25554
25555 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
25556
25557         * MonthCalendar.cs:
25558           - Fix NextMonthDate and PrevMonthDate click moving calendar
25559
25560 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
25561
25562         * MonthCalendar.cs:
25563           - Fix usage of ScrollChange Property when scrolling months
25564
25565 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
25566
25567         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
25568          - Fixes menu destroying
25569          - Support adding and removing items on already created menus
25570
25571 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
25572
25573         * MonthCalendar.cs:
25574           - Re-worked all bolded dates handling to match win32
25575         * ThemeWin32Classic.cs:
25576           - Fixed rendering with bolded dates
25577
25578 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
25579
25580         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
25581         - Horizontal scroolbar
25582         - Multicolumn
25583         - Fixes
25584
25585
25586 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
25587
25588         * MonthCalendar.cs:
25589           - Fix Usage of MaxSelectionCount from SelectionRange
25590           - Fixed Shift + Cursor Selection
25591           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
25592           - Fixed normal cursor selection to be compat with win32
25593           - Fixed Shift + Mouse Click selection
25594
25595 2004-11-24  Peter Bartok <pbartok@novell.com>
25596
25597         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
25598         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
25599         * XplatUIX11.cs:
25600           - CreatedKeyBoardMsg now updates keystate with Alt key
25601           - Added workaround for timer crash to CheckTimers, Jackson will
25602             develop a proper fix and check in later
25603           - Implemented DispatchMessage
25604           - Removed calling the native window proc from GetMessage (call
25605             now moved to DispatchMessage)
25606
25607         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
25608           the keydata (Fixes bug #69831)
25609
25610         * XplatUIWin32.cs:
25611           - (DispatchMessage): Switched to return IntPtr
25612           - Added DllImport for SetFocus
25613
25614 2004-11-24  Ravindra <rkumar@novell.com>
25615
25616         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
25617         background drawing.
25618         * ListViewItem.cs: Fixed various properties, calculations
25619         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
25620         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
25621         and some internal properties. Fixed MouseDown handler and Paint
25622         method.
25623
25624 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
25625
25626         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
25627
25628 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
25629
25630         * ContainerControl.cs: correct accidental check in of local changes
25631
25632 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
25633
25634         * ThemeWin32Classic.cs:
25635                 - Fixed Drawing Last month in grid (sometimes not showing)
25636         * MonthCalendar.cs:
25637                 - Fixed title width calculation bug (makeing title small)
25638
25639 2004-11-23  Peter Bartok <pbartok@novell.com>
25640
25641         * XplatUIX11.cs:
25642           - Added generation of WM_MOUSEHOVER event
25643           - Added missing assignment of async_method atom
25644           - Fixed WM_ERASEBKGND; now only redraws the exposed area
25645
25646 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
25647
25648         * ThemeWin32Classic.cs:
25649                 - Fixed Drawing of today circle when showtodaycircle not set
25650                 - fixed drawing of first and last month in the grid (gay dates)
25651         * MonthCalendar.cs:
25652                 - Fixed Drawing of today circle
25653                 - Fixed drawing of grady dates
25654                 - Fixed HitTest for today link when ShowToday set to false
25655                 - Fixed DefaultSize to obey ShowToday
25656
25657 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
25658
25659         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
25660         * System.Windows.Forms/Theme.cs
25661         * MonthCalendar.cs: added for MonthCalendar
25662         * SelectionRange.cs: added for MonthCalendar
25663         * Day.cs: added for MonthCalendar: added for MonthCalendar
25664         * DateRangeEventArgs.cs: added for MonthCalendar
25665         * DateRangeEventHandler.cs: added for MonthCalendar
25666
25667 2004-11-22  Ravindra <rkumar@novell.com>
25668
25669         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
25670         property.
25671
25672 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
25673
25674         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
25675         event handler.
25676         
25677         * NumericUpDown.cs: Added new implementation.
25678         * UpDownBase.cs: Added new implementation.
25679
25680         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
25681         implementations.
25682         
25683         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
25684         implementations.
25685
25686         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
25687         methods.
25688
25689 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
25690
25691         * Timer.cs  (Dispose): Should call the base dispose when
25692         overriding.
25693
25694 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
25695
25696         * ScrollBar.cs: updates thumb position when max, min or increment
25697         is changed
25698
25699 2004-11-21  Ravindra <rkumar@novell.com>
25700
25701         * ListView.cs: Implemented item selection, activation and
25702         column header style. Fixed properties to do a redraw, if
25703         required. Added support for MouseHover, DoubleClick, KeyDown
25704         and KeyUp event handling and some minor fixes.
25705         * ListViewItem.cs: Fixed constructor.
25706         * ThemeWin32Classic.cs: Improved drawing for ListView.
25707
25708 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
25709
25710         * ThemeWin32Classic.cs: initial listbox drawing code
25711         * DrawMode.cs: new enumerator
25712         * ListControl.cs: stubbed class
25713         * ListBox.cs: initial implementation
25714         * Theme.cs: new methods definitions
25715         * SelectionMode.cs: new enumerator
25716
25717 2004-11-17  Peter Bartok  <pbartok@novell.com>
25718
25719         * XplatUIWin32.cs: Added double-click events to the class style
25720         * Control.cs (WndProc):
25721           - Added handling of click-count to MouseDown/ MouseUp events.
25722           - Added handling of middle and right mouse buttons
25723           - Removed old debug code
25724
25725 2004-11-17  Jackson Harper  <jackson@ximian.com>
25726
25727         * XplatUIX11.cs: Use the new Mono.Unix namespace.
25728
25729 2004-11-17  Ravindra <rkumar@novell.com>
25730
25731         * ListView.cs: Added event handling for MouseMove/Up/Down.
25732         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
25733         * ThemeWin32Classic.cs: We need to clear the graphics context and
25734         draw column header in a proper state.
25735
25736
25737 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
25738
25739         *  Menu.cs: fixes signature
25740
25741 2004-11-16  Peter Bartok  <pbartok@novell.com>
25742
25743         * XplatUIX11.cs (GetMessage): Implemented generation of
25744           double click mouse messages
25745
25746 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
25747
25748         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
25749         not by menu
25750
25751 2004-11-11  Peter Bartok  <pbartok@novell.com>
25752
25753         * HandleData.cs: Added Visible property
25754         * XplatUIX11.cs (IsVisible): Now uses Visible property from
25755           HandleData
25756         * XplatUIX11.cs: Removed old debug leftovers
25757         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
25758         * Control.cs (WndProc): Removed old debug leftovers,
25759           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
25760           needed WM_SIZE handling
25761
25762 2004-11-11  Jackson Harper  <jackson@ximian.com>
25763
25764         * OwnerDrawPropertyBag.cs:
25765         * TreeViewImageIndexConverter.cs: Initial implementation
25766
25767 2004-11-10  Jackson Harper  <jackson@ximian.com>
25768
25769         * ThemeWin32Classic.cs:
25770         * TabControl.cs: instead of moving tabs by the slider pos just
25771         start drawing at the tab that is offset by the slider. This way
25772         scrolling always moves by exactly one tab.
25773
25774 2004-11-10  Jackson Harper  <jackson@ximian.com>
25775
25776         * TabControl.cs: You can only scroll left when the slider has
25777         already ben moved right.
25778         
25779 2004-11-10  Jackson Harper  <jackson@ximian.com>
25780
25781         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
25782         the clip area.
25783         
25784 2004-11-10  Jackson Harper  <jackson@ximian.com>
25785
25786         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
25787         clip area.
25788         
25789 2004-11-09  Jackson Harper  <jackson@ximian.com>
25790
25791         * TabControl.cs (CalcXPos): New helper method so we can determine
25792         the proper place to start drawing vertical tabs.
25793         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
25794         
25795 2004-11-09  Jackson Harper  <jackson@ximian.com>
25796
25797         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
25798         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
25799         and Bottom, left and right are illegal values for this and
25800         multiline is enabled when the alignment is set to left or right.
25801         (DrawTab): Each alignment block should draw the text itself now
25802         because Left requires special love. Also add rendering for Left
25803         aligned tabs.
25804         
25805 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
25806
25807         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
25808         does not destroy the windows, removes debugging messages
25809
25810 2004-11-09  jba  <jba-mono@optusnet.com.au>
25811
25812         * ThemeWin32Classic.cs
25813         (DrawButtonBase): Fix verticle text rect clipping in windows
25814         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
25815         rendering and incorrect text rect clipping
25816         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
25817         rendering and incorrect text rect clipping
25818         
25819 2004-11-08  Jackson Harper  <jackson@ximian.com>
25820
25821         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
25822         bottom when they are bottom aligned so the bottoms of the tabs get
25823         displayed.
25824         * TabControl.cs (DropRow): Move rows up instead of down when the
25825         tab control is bottom aligned.
25826
25827 2004-11-08 13:59  pbartok
25828
25829         * XplatUIX11.cs:
25830           - Added handling for various window styles
25831           - Added handling for popup windows
25832           - Added SetTopmost handling
25833
25834 2004-11-08 13:55  pbartok
25835
25836         * XplatUIWin32.cs:
25837           - Added argument to SetTopmost method
25838           - Fixed broken ClientToScreen function
25839
25840 2004-11-08 13:53  pbartok
25841
25842         * XplatUIStructs.cs:
25843           - Added missing WS_EX styles
25844
25845 2004-11-08 13:53  pbartok
25846
25847         * XplatUI.cs, XplatUIDriver.cs:
25848           - Added argument to SetTopmost
25849
25850 2004-11-08 13:52  pbartok
25851
25852         * X11Structs.cs:
25853           - Added XSetWindowAttributes structure
25854           - Improved XWindowAttributes structure
25855           - Added SetWindowValuemask enum
25856           - Added window creation arguments enum
25857           - Added gravity enum
25858           - Added Motif hints structure
25859           - Added various Motif flags and enums
25860           - Added PropertyMode enum for property functions
25861
25862 2004-11-08 13:50  pbartok
25863
25864         * Form.cs:
25865           - Fixed arguments for updated SetTopmost method
25866
25867 2004-11-08 13:49  pbartok
25868
25869         * ToolTip.cs:
25870           - Fixed arguments for updated SetTopmost function
25871           - Fixed usage of PointToClient
25872
25873 2004-11-08 13:44  pbartok
25874
25875         * MenuAPI.cs:
25876           - Added Clipping of children and siblings
25877
25878 2004-11-08 13:41  pbartok
25879
25880         * MainMenu.cs:
25881           - Removed SetMenuBarWindow call. We do this in Form.cs
25882
25883 2004-11-08 13:40  jackson
25884
25885         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
25886           scrolling jimmi in the correct location with bottom aligned tabs
25887
25888 2004-11-08 13:36  pbartok
25889
25890         * ContainerControl.cs:
25891           - Implemented BindingContext
25892           - Implemented ParentForm
25893
25894 2004-11-08 12:46  jackson
25895
25896         * TabControl.cs: Put bottom rendered tabs in the right location
25897
25898 2004-11-08 07:15  jordi
25899
25900         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
25901           removes dead code
25902
25903 2004-11-05 17:30  jackson
25904
25905         * TabControl.cs: When selected tabs are expanded make sure they
25906           don't go beyond the edges of the tab control
25907
25908 2004-11-05 14:57  jackson
25909
25910         * TabControl.cs: Reset show_slider so if the control is resized to
25911           a size where it is no longer needed it's not displayed anymore
25912
25913 2004-11-05 13:16  jackson
25914
25915         * TabControl.cs: Make tab pages non visible when added to the
25916           control
25917
25918 2004-11-05 12:42  jackson
25919
25920         * TabControl.cs: Implement SizeMode.FillToRight
25921
25922 2004-11-05 12:16  jackson
25923
25924         * Control.cs: Do not call CreateHandle if the handle is already
25925           created
25926
25927 2004-11-05 11:46  jackson
25928
25929         * TabControl.cs: Remove superflous call to CalcTabRows
25930
25931 2004-11-05 09:07  jackson
25932
25933         * XplatUIX11.cs: Update for Mono.Posix changes
25934
25935 2004-11-05 07:00  ravindra
25936
25937         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
25938           scrolling.
25939
25940 2004-11-04 22:47  jba
25941
25942         * ThemeWin32Classic.cs:
25943           - Fix Button rendering for FlatStyle = Flat or Popup
25944           - Fix RadioButton and CheckBox rendering when Appearance = Button
25945             (normal and flatstyle).
25946           - Correct outer rectangle color when drawing focus rectangle
25947           - Adjust button bounds to be 1 px smaller when focused
25948           - Make button not draw sunken 3d border when pushed (windows compat)
25949           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
25950           - Offset the text in RadioButton and Checkbox when being rendered as
25951           a button.
25952           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
25953           radiobuttons
25954           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
25955           - Fixed disabled text rendering for normally rendered radiobuttons
25956
25957 2004-11-04 10:26  jackson
25958
25959         * TabControl.cs: Recalculate tab rows when resizing
25960
25961 2004-11-04 07:47  jordi
25962
25963         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
25964           collection completion, drawing issues, missing features
25965
25966 2004-11-04 05:03  ravindra
25967
25968         * ScrollBar.cs:
25969                 - We need to recalculate the Thumb area when
25970                 LargeChange/maximum/minimum values are changed.
25971           - We set the 'pos' in UpdatePos() method to minimum, if it's less
25972                 than minimum. This is required to handle the case if large_change is
25973                 more than max, and use LargeChange property instead of large_change
25974                 variable.
25975           - We return max+1 when large_change is more than max, like MS does.
25976
25977 2004-11-04 04:29  ravindra
25978
25979         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
25980                 - Changed default value signatures (prefixed all with ListView).
25981                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
25982                 ListView.
25983           - Fixed calculations for ListViewItem and implemented Clone()
25984           method.
25985
25986 2004-11-04 04:26  ravindra
25987
25988         * Theme.cs, ThemeWin32Classic.cs:
25989                 - Changed default ListView values signatures (prefixed all with
25990                 ListView).
25991           - Fixed default size values for VScrollBar and HScrollBar.
25992                 - Fixed DrawListViewItem method.
25993
25994 2004-11-04 04:05  ravindra
25995
25996         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
25997
25998 2004-11-04 04:04  ravindra
25999
26000         * ImageList.cs: Implemented the missing overload for Draw method.
26001
26002 2004-11-03 19:29  jackson
26003
26004         * TabControl.cs: Handle dropping rows on selection properly
26005
26006 2004-11-03 11:59  jackson
26007
26008         * TabControl.cs: remove debug code
26009
26010 2004-11-03 11:52  jackson
26011
26012         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
26013           the scrolly widgerywoo
26014
26015 2004-11-02 13:52  jackson
26016
26017         * TabControl.cs: Resize the tab pages and tabs when the tab control
26018           is resized
26019
26020 2004-11-02 13:40  jackson
26021
26022         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
26023           selected tab to the bottom
26024
26025 2004-11-02 13:39  jackson
26026
26027         * TabPage.cs: Store the tab pages row
26028
26029 2004-11-02 12:33  jordi
26030
26031         * MenuItem.cs: fixes handle creation
26032
26033 2004-11-02 11:42  jackson
26034
26035         * TabControl.cs: signature fix
26036
26037 2004-11-02 08:56  jackson
26038
26039         * TabControl.cs: Calculate whether the tab is on an edge properly.
26040           Remove top secret debugging code
26041
26042 2004-11-01 19:57  jackson
26043
26044         * TabControl.cs: Add click handling, and proper sizing
26045
26046 2004-11-01 19:47  jackson
26047
26048         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
26049           tab controls
26050
26051 2004-11-01 19:39  jackson
26052
26053         * TabPage.cs: add internal property to store the bounds of a tab
26054           page
26055
26056 2004-10-30 04:23  ravindra
26057
26058         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
26059           values.
26060
26061 2004-10-30 04:21  ravindra
26062
26063         * ListView.cs, ListViewItem.cs: Added support for scrolling and
26064           fixed calculations.
26065
26066 2004-10-30 03:06  pbartok
26067
26068         * XplatUIX11.cs:
26069           - Removed extension of DllImported libs
26070
26071 2004-10-29 09:55  jordi
26072
26073         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
26074           navigation, itemcollection completion, menu fixes
26075
26076 2004-10-27 22:58  pbartok
26077
26078         * XplatUIX11.cs:
26079           - Now throws a nice error message when no X display could be opened
26080
26081 2004-10-26 13:51  jordi
26082
26083         * ListView.cs: removes warning
26084
26085 2004-10-26 03:55  ravindra
26086
26087         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
26088           ThemeWin32Classic.cs: Some formatting for my last checkins.
26089
26090 2004-10-26 03:36  ravindra
26091
26092         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
26093           control and default values.
26094
26095 2004-10-26 03:35  ravindra
26096
26097         * Theme.cs: Added some default values for ListView control.
26098
26099 2004-10-26 03:33  ravindra
26100
26101         * ToolBar.cs: ToolBar should use the user specified button size, if
26102           there is any. Added a size_specified flag for the same.
26103
26104 2004-10-26 03:33  ravindra
26105
26106         * ColumnHeader.cs: Added some internal members and calculations for
26107           ColumnHeader.
26108
26109 2004-10-26 03:32  ravindra
26110
26111         * ListViewItem.cs: Calculations for ListViewItem.
26112
26113 2004-10-26 03:31  ravindra
26114
26115         * ListView.cs: Added some internal members and calculations for
26116           ListView.
26117
26118 2004-10-22 13:31  jordi
26119
26120         * MenuAPI.cs: speedup menus drawing
26121
26122 2004-10-22 13:16  jackson
26123
26124         * XplatUIX11.cs: Make sure to update exposed regions when adding an
26125           expose event
26126
26127 2004-10-22 11:49  jackson
26128
26129         * Control.cs: oops
26130
26131 2004-10-22 11:41  jackson
26132
26133         * Control.cs: Check to see if the window should have its background
26134           repainted by X when drawing.
26135
26136 2004-10-22 11:31  jackson
26137
26138         * XplatUIX11.cs: When invalidating areas only use XClearArea if
26139           clear is true, this way we do not get flicker from X repainting the
26140           background
26141
26142 2004-10-22 11:28  jackson
26143
26144         * XEventQueue.cs: Queue properly
26145
26146 2004-10-21 09:38  jackson
26147
26148         * XEventQueue.cs: Fix access modifier
26149
26150 2004-10-21 09:36  jackson
26151
26152         * XEventQueue.cs: Don't loose messages
26153
26154 2004-10-21 09:22  jackson
26155
26156         * XEventQueue.cs: Don't loose messages
26157
26158 2004-10-20 04:15  jordi
26159
26160         * BootMode.cs: enum need it by SystemInfo
26161
26162 2004-10-19 21:58  pbartok
26163
26164         * XplatUIWin32.cs:
26165           - Small sanity check
26166
26167 2004-10-19 21:56  pbartok
26168
26169         * Form.cs:
26170           - Added private FormParentWindow class which acts as the container
26171             for our form and as the non-client area where menus are drawn
26172           - Added/Moved required tie-ins to Jordi's menus
26173           - Fixed/Implemented the FormStartPosition functionality
26174
26175 2004-10-19 21:52  pbartok
26176
26177         * Control.cs:
26178           - Removed unneeded locals
26179           - Added code to all size and location properties to understand and
26180             deal with the parent container of Form
26181
26182 2004-10-19 21:33  pbartok
26183
26184         * Application.cs:
26185           - Fixed to deal with new Form subclasses for menus
26186
26187 2004-10-19 17:48  jackson
26188
26189         * XEventQueue.cs: commit correct version of file
26190
26191 2004-10-19 16:50  jackson
26192
26193         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
26194
26195 2004-10-19 16:15  jordi
26196
26197         * MenuAPI.cs: MenuBarCalcSize returns the height
26198
26199 2004-10-19 08:31  pbartok
26200
26201         * Control.cs:
26202           - Added missing call to PreProcessMessage before calling OnXXXKey
26203           methods
26204
26205 2004-10-19 00:04  ravindra
26206
26207         * ToolTip.cs: Fixed constructor.
26208
26209 2004-10-18 09:31  jordi
26210
26211         * MenuAPI.cs: menuitems in menubars do not have shortcuts
26212
26213 2004-10-18 09:26  jordi
26214
26215         * MenuItem.cs: fixes MenuItem class signature
26216
26217 2004-10-18 08:56  jordi
26218
26219         * MenuAPI.cs: prevents windows from showing in the taskbar
26220
26221 2004-10-18 00:28  ravindra
26222
26223         * ToolTip.cs: Suppressed a warning message.
26224
26225 2004-10-18 00:27  ravindra
26226
26227         * Control.cs: Default value of visible property must be true.
26228
26229 2004-10-17 23:19  pbartok
26230
26231         * ToolTip.cs:
26232           - Complete implementation
26233
26234 2004-10-17 23:19  pbartok
26235
26236         * XplatUIX11.cs:
26237           - Added EnableWindow method
26238           - Added SetModal stub
26239           - Added generation of WM_ACTIVATE message (still needs testing)
26240           - Added SetTopMost stub
26241           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
26242
26243 2004-10-17 23:17  pbartok
26244
26245         * XplatUIWin32.cs:
26246           - Removed VirtualKeys to XplatUIStructs
26247           - Implemented SetTopMost method
26248           - Implemented EnableWindow method
26249           - Bugfix in ScreenToClient()
26250           - Bugfixes in ClientToScreen()
26251
26252 2004-10-17 22:51  pbartok
26253
26254         * XplatUIStructs.cs:
26255           - Added WS_EX styles to WindowStyles enumeration
26256
26257 2004-10-17 22:50  pbartok
26258
26259         * XplatUI.cs, XplatUIDriver.cs:
26260           - Added method for enabling/disabling windows
26261           - Added method for setting window modality
26262           - Added method for setting topmost window
26263
26264 2004-10-17 22:49  pbartok
26265
26266         * ThemeWin32Classic.cs:
26267           - Added ToolTip drawing code
26268
26269 2004-10-17 22:49  pbartok
26270
26271         * Theme.cs:
26272           - Added ToolTip abstracts
26273
26274 2004-10-17 22:47  pbartok
26275
26276         * Form.cs:
26277           - Fixed Form.ControlCollection to handle owner relations
26278           - Added Owner/OwnedForms handling
26279           - Implemented Z-Ordering for owned forms
26280           - Removed unneeded private overload of ShowDialog
26281           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
26282             so I hope)
26283           - Fixed Close(), had wrong default
26284           - Added firing of OnLoad event
26285           - Added some commented out debug code for Ownership handling
26286
26287 2004-10-17 22:16  pbartok
26288
26289         * Control.cs:
26290           - Fixed/implemented flat list of controls
26291
26292 2004-10-17 22:14  pbartok
26293
26294         * Application.cs:
26295           - Added code to simulate modal dialogs on Win32
26296
26297 2004-10-17 16:11  jordi
26298
26299         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
26300           mouse event
26301
26302 2004-10-17 13:39  jordi
26303
26304         * MenuAPI.cs: menu drawing fixes
26305
26306 2004-10-15 09:10  ravindra
26307
26308         * StructFormat.cs: General Enum.
26309
26310 2004-10-15 09:09  ravindra
26311
26312         * SizeGripStyle.cs: Enum for Form.
26313
26314 2004-10-15 09:08  ravindra
26315
26316         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
26317           in Theme for ListView.
26318
26319 2004-10-15 09:06  ravindra
26320
26321         * ColumnHeader.cs: Flushing some formatting changes.
26322
26323 2004-10-15 09:05  ravindra
26324
26325         * ListViewItem.cs: Implemented GetBounds method and fixed coding
26326           style.
26327
26328 2004-10-15 09:03  ravindra
26329
26330         * ListView.cs: Implemented Paint method and fixed coding style.
26331
26332 2004-10-15 07:34  jordi
26333
26334         * MenuAPI.cs: fix for X11
26335
26336 2004-10-15 07:32  ravindra
26337
26338         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
26339                 - Renamed Paint() method to Draw() for clarity. Also, moved
26340                 DrawImage() to OnPaint().
26341
26342 2004-10-15 07:25  ravindra
26343
26344         * CheckBox.cs, RadioButton.cs:
26345                 - Removed Redraw (), we get it from ButtonBase.
26346                 - Implemented Paint (), to do class specific painting.
26347
26348 2004-10-15 07:16  ravindra
26349
26350         * ButtonBase.cs:
26351                 - Redraw () is not virtual now.
26352                 - Added an internal virtual method Paint (), so that
26353                 derived classes can do their painting on their own.
26354                 - Modified OnPaint () to call Paint ().
26355
26356 2004-10-15 06:43  jordi
26357
26358         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
26359           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
26360
26361 2004-10-15 00:30  ravindra
26362
26363         * MessageBox.cs:
26364                 - MessageBox on windows does not have min/max buttons.
26365                 This change in CreateParams fixes this on Windows. We
26366                 still need to implement this windowstyle behavior in
26367                 our X11 driver.
26368
26369 2004-10-14 05:14  ravindra
26370
26371         * ToolBar.cs:
26372                 - Changed Redraw () to do a Refresh () always.
26373                 - Fixed the MouseMove event handling when mouse is pressed,
26374                 ie drag event handling.
26375                 - Replaced the usage of ToolBarButton.Pressed property to
26376                 ToolBarButton.pressed internal variable.
26377
26378 2004-10-14 05:10  ravindra
26379
26380         * ToolBarButton.cs:
26381                 - Added an internal member 'inside' to handle mouse move
26382                 with mouse pressed ie mouse drag event.
26383                 - Changed 'Pressed' property to return true only when
26384                 'inside' and 'pressed' are both true.
26385                 - Some coding style love.
26386
26387 2004-10-14 00:17  ravindra
26388
26389         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
26390           public method.
26391
26392 2004-10-14 00:15  ravindra
26393
26394         * ButtonBase.cs: Redraw () related improvements.
26395
26396 2004-10-14 00:14  ravindra
26397
26398         * MessageBox.cs: Moved InitFormSize () out of Paint method and
26399           removed unnecessary calls to Button.Show () method.
26400
26401 2004-10-13 17:50  pbartok
26402
26403         * XplatUIX11.cs:
26404           - Formatting fix
26405           - Removed destroying of window until we solve the problem of X
26406             destroying the window before us on shutdown
26407
26408 2004-10-13 16:32  pbartok
26409
26410         * ButtonBase.cs:
26411           - Now Redraws on MouseUp for FlatStyle Flat and Popup
26412
26413 2004-10-13 14:18  pbartok
26414
26415         * XplatUIX11.cs:
26416           - Added code to destroy the X window
26417
26418 2004-10-13 14:18  pbartok
26419
26420         * XplatUIWin32.cs:
26421           - Added code to destroy a window
26422
26423 2004-10-13 14:12  pbartok
26424
26425         * ButtonBase.cs:
26426           - Added the Redraw on Resize that got dropped in the last rev
26427
26428 2004-10-13 09:06  pbartok
26429
26430         * ThemeWin32Classic.cs:
26431           - Path from John BouAntoun:
26432             * Fix check rendering (centre correctly for normal style, offset
26433               correctly for FlatStyle).
26434             * Fix border color usage (use backcolor) for FlatStyle.Popup
26435             * Use checkbox.Capture instead of checkbox.is_pressed when
26436               rendering flatstyle states.
26437
26438 2004-10-12 21:48  pbartok
26439
26440         * ThemeWin32Classic.cs:
26441           - Removed all occurences of SystemColors and replaced them with the
26442             matching theme color
26443
26444 2004-10-12 21:41  pbartok
26445
26446         * ThemeWin32Classic.cs:
26447           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
26448             him using the function for flatstyle drawing
26449           - Changed functions to use the new version of CPDrawBorder3D
26450
26451 2004-10-12 21:15  pbartok
26452
26453         * ControlPaint.cs:
26454           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
26455             match MS documentation. They need to return defined colors if the
26456             passed color matches the configured control color. Thanks to John
26457             BouAntoun for pointing this out.
26458
26459 2004-10-12 20:57  pbartok
26460
26461         * Control.cs:
26462           - Fix from John BouAntoun: Raise ForeColorChanged event when text
26463             color is changed
26464
26465 2004-10-12 20:46  pbartok
26466
26467         * CheckBox.cs:
26468           - Fix from John BouAntoun: Now properly sets the Appearance property
26469
26470 2004-10-12 20:45  pbartok
26471
26472         * ThemeWin32Classic.cs:
26473           - Fixes from John BouAntoun: now handles forecolors and backcolors
26474             for flatstyle rendered controls much better; It also fixes normal
26475             checkbox rendering when pushed or disabled.
26476
26477 2004-10-08 02:50  jordi
26478
26479         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
26480           work
26481
26482 2004-10-07 08:56  jordi
26483
26484         * ThemeWin32Classic.cs: Removes deletion of cached brushes
26485
26486 2004-10-06 03:59  jordi
26487
26488         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
26489           XplatUIWin32.cs: removes warnings from compilation
26490
26491 2004-10-05 12:23  jackson
26492
26493         * RadioButton.cs: Fix ctor
26494
26495 2004-10-05 11:10  pbartok
26496
26497         * MessageBox.cs:
26498           - Partial implementation by Benjamin Dasnois
26499
26500 2004-10-05 10:15  jackson
26501
26502         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
26503           by John BouAntoun
26504
26505 2004-10-05 03:07  ravindra
26506
26507         * ToolBar.cs:
26508                 - Removed a private method, Draw ().
26509                 - Fixed the ButtonDropDown event handling.
26510                 - Fixed MouseMove event handling.
26511
26512 2004-10-05 03:04  ravindra
26513
26514         * ThemeWin32Classic.cs:
26515                 - Added DrawListView method and ListViewDefaultSize property.
26516                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
26517                 - Changed DOS style CRLF to Unix format (dos2unix).
26518
26519 2004-10-05 03:03  ravindra
26520
26521         * Theme.cs:
26522                 - Added DrawListView method and ListViewDefaultSize property.
26523
26524 2004-10-05 02:42  ravindra
26525
26526         * ToolBarButton.cs: Added an internal member dd_pressed to handle
26527           clicks on DropDown arrow.
26528
26529 2004-10-04 22:56  jackson
26530
26531         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
26532           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
26533           Control handle the buffers, derived classes should not have to
26534           CreateBuffers themselves.
26535
26536 2004-10-04 21:20  jackson
26537
26538         * StatusBar.cs: The control handles resizing the buffers now.
26539
26540 2004-10-04 21:18  jackson
26541
26542         * Control.cs: When resizing the buffers should be invalidated. This
26543           should be handled in Control not in derived classes.
26544
26545 2004-10-04 14:45  jackson
26546
26547         * TabPage.cs: oops
26548
26549 2004-10-04 02:14  pbartok
26550
26551         * LeftRightAlignment.cs:
26552           - Initial check-in
26553
26554 2004-10-04 01:09  jordi
26555
26556         * ThemeWin32Classic.cs: fixes right button position causing right
26557           button not showing on horizontal scrollbars
26558
26559 2004-10-02 13:12  pbartok
26560
26561         * XplatUIX11.cs:
26562           - Simplified the Invalidate method by using an X call instead of
26563             generating the expose ourselves
26564           - Added an expose when the window background is changed
26565           - Implemented ClientToScreen method
26566
26567 2004-10-02 13:08  pbartok
26568
26569         * XplatUIWin32.cs:
26570           - Added Win32EnableWindow method (test for implementing modal
26571           dialogs)
26572           - Added ClientToScreen method and imports
26573
26574 2004-10-02 13:07  pbartok
26575
26576         * XplatUI.cs, XplatUIDriver.cs:
26577           - Added ClientToScreen coordinate translation method
26578
26579 2004-10-02 13:06  pbartok
26580
26581         * KeyPressEventArgs.cs:
26582           - Fixed access level for constructor
26583
26584 2004-10-02 13:06  pbartok
26585
26586         * NativeWindow.cs:
26587           - Changed access level for the window_collection hash table
26588
26589 2004-10-02 13:05  pbartok
26590
26591         * Form.cs:
26592           - Added KeyPreview property
26593           - Added Menu property (still incomplete, pending Jordi's menu work)
26594           - Implemented ProcessCmdKey
26595           - Implemented ProcessDialogKey
26596           - Implemented ProcessKeyPreview
26597
26598 2004-10-02 13:02  pbartok
26599
26600         * Control.cs:
26601           - Added private method to get the Control object from the window
26602           handle
26603           - Implemented ContextMenu property
26604           - Implemented PointToScreen
26605           - Implemented PreProcessMessage
26606           - Implemented IsInputChar
26607           - Implemented IsInputKey
26608           - Implemented ProcessCmdKey
26609           - Completed ProcessKeyEventArgs
26610           - Fixed message loop to call the proper chain of functions on key
26611           events
26612           - Implemented ProcessDialogChar
26613           - Implemented ProcessDialogKey
26614           - Implemented ProcessKeyMessage
26615           - Implemented ProcessKeyPreview
26616           - Added RaiseDragEvent stub (MS internal method)
26617           - Added RaiseKeyEvent stub (MS internal method)
26618           - Added RaiseMouseEvent stub (MS Internal method)
26619           - Added RaisePaintEvent stub (MS Internal method)
26620           - Added ResetMouseEventArgs stub (MS Internal method)
26621           - Implemented RtlTranslateAlignment
26622           - Implemented RtlTranslateContent
26623           - Implemented RtlTranslateHorizontal
26624           - Implemented RtlTranslateLeftRight
26625           - Added generation of KeyPress event
26626
26627 2004-10-02 05:57  ravindra
26628
26629         * ListViewItem.cs: Added attributes.
26630
26631 2004-10-02 05:32  ravindra
26632
26633         * ListView.cs: Added attributes.
26634
26635 2004-10-01 11:53  jackson
26636
26637         * Form.cs: Implement the Close method so work on MessageBox can
26638           continue.
26639
26640 2004-09-30 14:06  pbartok
26641
26642         * XplatUIX11.cs:
26643           - Bug fixes
26644
26645 2004-09-30 11:34  jackson
26646
26647         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
26648
26649 2004-09-30 07:26  ravindra
26650
26651         * ListViewItemConverter.cs: Converter for ListViewItem.
26652
26653 2004-09-30 07:26  ravindra
26654
26655         * SortOrder.cs: Enum for ListView control.
26656
26657 2004-09-30 07:25  ravindra
26658
26659         * ColumnHeader.cs: Supporting class for ListView control.
26660
26661 2004-09-30 07:24  ravindra
26662
26663         * ListView.cs, ListViewItem.cs: Initial implementation.
26664
26665 2004-09-30 07:20  ravindra
26666
26667         * ItemActivation.cs: Enum for ListView Control.
26668
26669 2004-09-29 20:29  pbartok
26670
26671         * XplatUIX11.cs:
26672           - Added lookup of pixel value for background color; tries to get a
26673             color 'close' to the requested color, it avoids having to create a
26674             colormap.  Depending on the display this could mean the used color
26675             is slightly off the desired color. Might have to change it to a more
26676             resource intensive colormap approach, but it will work as a
26677           workaround to avoid red screens.
26678
26679 2004-09-29 14:27  jackson
26680
26681         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
26682
26683 2004-09-28 12:44  pbartok
26684
26685         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
26686           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
26687           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
26688           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
26689           TrackBar.cs, VScrollBar.cs:
26690           - Streamlined Theme interfaces:
26691             * Each DrawXXX method for a control now is passed the object for
26692               the control to be drawn in order to allow accessing any state the
26693               theme might require
26694
26695             * ControlPaint methods for the theme now have a CP prefix to avoid
26696               name clashes with the Draw methods for controls
26697
26698             * Every control now retrieves it's DefaultSize from the current
26699             theme
26700
26701 2004-09-28 12:17  jackson
26702
26703         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
26704           drawing
26705
26706 2004-09-24 14:57  jackson
26707
26708         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
26709           Gives us a nice little performance boost.
26710
26711 2004-09-24 12:02  jackson
26712
26713         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
26714           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
26715           Control and supporting classes. Initial checkin
26716
26717 2004-09-23 13:08  jackson
26718
26719         * Form.cs: Temp build fixage
26720
26721 2004-09-23 01:39  ravindra
26722
26723         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
26724           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
26725           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
26726           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
26727           EventHandlers needed by ListView Control.
26728
26729 2004-09-22 14:12  pbartok
26730
26731         * ScrollableControl.cs:
26732           - Implemented DockPadding property
26733           - Implemented AutoScroll property
26734           - Implemented AutoScrollMargin property
26735           - Implemented AutoScrollMinSize property
26736           - Implemented AutoScrollPosition property
26737           - Implemented DisplayRectangle property (still incomplete)
26738           - Implemented CreateParams property
26739           - Implemented HScroll property
26740           - Implemented VScroll property
26741           - Implemented OnVisibleChanged property
26742
26743 2004-09-22 14:09  pbartok
26744
26745         * Form.cs:
26746           - Added Form.ControllCollection class
26747           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
26748             RemoveOwnedForm (still incomplete, missing on-top and common
26749             minimize/maximize behaviour)
26750           - Added StartPosition property (still incomplete, does not use when
26751             creating the form)
26752           - Added ShowDialog() methods (still incomplete, missing forcing the
26753             dialog modal)
26754
26755 2004-09-22 14:05  pbartok
26756
26757         * Application.cs:
26758           - Added message loop for modal dialogs
26759
26760 2004-09-22 14:02  pbartok
26761
26762         * GroupBox.cs:
26763           - Fixed wrong types for events
26764
26765 2004-09-22 14:00  pbartok
26766
26767         * Shortcut.cs, FormWindowState.cs:
26768           - Fixed wrong values
26769
26770 2004-09-22 12:01  jackson
26771
26772         * Control.cs: Text is never null
26773
26774 2004-09-20 22:14  pbartok
26775
26776         * XplatUIWin32.cs:
26777           - Fixed accessibility level for Idle handler
26778
26779 2004-09-20 18:54  jackson
26780
26781         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26782           XplatUIX11.cs: New message loop that uses poll so we don't get a
26783           busy loop
26784
26785 2004-09-17 10:43  pbartok
26786
26787         * ScrollBar.cs:
26788           - Fixed behaviour of arrow buttons. Now properly behaves like
26789             Buttons (and like Microsoft's scrollbar arrow buttons)
26790
26791 2004-09-17 10:14  pbartok
26792
26793         * ScrollBar.cs:
26794           - Added missing release of keyboard/mouse capture
26795
26796 2004-09-17 06:18  jordi
26797
26798         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
26799           Theme.cs: Very early menu support
26800
26801 2004-09-16 17:45  pbartok
26802
26803         * XplatUIWin32.cs:
26804           - Fixed sending a window to the front
26805           - Added overload for SetWindowPos to avoid casting
26806
26807 2004-09-16 17:44  pbartok
26808
26809         * Control.cs:
26810           - Added SendToBack and BringToFront methods
26811
26812 2004-09-16 07:00  ravindra
26813
26814         * Copyright: Added Novell URL.
26815
26816 2004-09-16 07:00  ravindra
26817
26818         * ToolBar.cs: Invalidate should be done before redrawing.
26819
26820 2004-09-15 21:19  ravindra
26821
26822         * ColumnHeaderStyle.cs: Enum for ListView Control.
26823
26824 2004-09-15 21:18  ravindra
26825
26826         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
26827           ListView Control.
26828
26829 2004-09-13 18:26  jackson
26830
26831         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
26832           properly
26833
26834 2004-09-13 18:13  jackson
26835
26836         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
26837           a second thread and post messages into the main threads message
26838           queue. This makes timing much more consistent. Both win2K and XP
26839           have a minimum timer value of 15 milliseconds, so we now do this
26840           too.
26841
26842 2004-09-13 15:18  pbartok
26843
26844         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26845           XplatUIX11.cs:
26846           - Added Z-Ordering methods
26847
26848 2004-09-13 10:56  pbartok
26849
26850         * Form.cs:
26851           - Fixed #region names
26852           - Moved properties and methods into their proper #regions
26853
26854 2004-09-13 10:51  pbartok
26855
26856         * Form.cs:
26857           - Added Accept and CancelButton properties
26858           - Added ProcessDialogKey() method
26859
26860 2004-09-13 08:18  pbartok
26861
26862         * IWindowTarget.cs:
26863           - Initial check-in
26864
26865 2004-09-10 21:50  pbartok
26866
26867         * Control.cs:
26868           - Added DoDragDrop() [incomplete]
26869           - Properly implemented 'Visible' handling
26870           - Added SetVisibleCore()
26871           - Implemented FindChildAtPoint()
26872           - Implemented GetContainerControl()
26873           - Implemented Hide()
26874
26875 2004-09-10 19:28  pbartok
26876
26877         * Control.cs:
26878           - Moved methods into their appropriate #regions
26879           - Reordered methods within regions alphabetically
26880
26881 2004-09-10 18:57  pbartok
26882
26883         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26884           - Added method to retrieve text from window
26885
26886 2004-09-10 18:56  pbartok
26887
26888         * Control.cs:
26889           - Moved some internal functions into the internal region
26890           - Implemented FontHeight
26891           - Implemented RenderRightToLeft
26892           - Implemented ResizeRedraw
26893           - Implemented ShowFocusCues
26894           - Implemented ShowKeyboardCues
26895           - Implemented FromChildHandle
26896           - Implemented FromHandle
26897           - Implemented IsMnemonic
26898           - Implemented ReflectMessage
26899           - All public and protected Static Methods are now complete
26900
26901 2004-09-10 16:54  pbartok
26902
26903         * Control.cs:
26904           - Implemented remaining missing public instance properties
26905           - Alphabetized some out of order properties
26906
26907 2004-09-10 05:51  ravindra
26908
26909         * PictureBox.cs: Added a check for null image.
26910
26911 2004-09-10 00:59  jordi
26912
26913         * GroupBox.cs: remove cvs tag
26914
26915 2004-09-09 05:25  ravindra
26916
26917         * ToolBar.cs: Make redraw accessible from ToolBarButton.
26918
26919 2004-09-09 05:23  ravindra
26920
26921         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
26922           parent redraw.
26923
26924 2004-09-09 02:28  pbartok
26925
26926         * ThemeWin32Classic.cs:
26927           - Improve disabled string look
26928
26929 2004-09-09 01:15  jordi
26930
26931         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
26932           args and handler
26933
26934 2004-09-08 23:56  ravindra
26935
26936         * ItemBoundsPortion.cs: It's enum, not a class!
26937
26938 2004-09-08 23:47  ravindra
26939
26940         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
26941           Enums for Form.
26942
26943 2004-09-08 21:13  ravindra
26944
26945         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
26946           ListView control.
26947
26948 2004-09-08 21:03  ravindra
26949
26950         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
26951           avoid crash.
26952
26953 2004-09-08 21:01  ravindra
26954
26955         * ScrollableControl.cs: Removed unreachable code.
26956
26957 2004-09-08 06:45  jordi
26958
26959         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
26960
26961 2004-09-08 01:00  jackson
26962
26963         * XplatUIX11.cs: Only run the timers when updating the message
26964           queue. This effectively gives X messages a higher priority then
26965           timer messages. Timers still need love though
26966
26967 2004-09-07 14:01  jackson
26968
26969         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
26970           this for us and the handle is no longer valid.
26971
26972 2004-09-07 13:59  jackson
26973
26974         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
26975           loop that manages to not crash. TODO: Add poll and cleanup timers
26976
26977 2004-09-07 11:12  jordi
26978
26979         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
26980
26981 2004-09-07 03:40  jordi
26982
26983         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
26984           fixes, methods, multiple links
26985
26986 2004-09-06 06:55  jordi
26987
26988         * Control.cs: Caches ClientRectangle rectangle value
26989
26990 2004-09-05 02:03  jordi
26991
26992         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
26993           certain situations
26994
26995 2004-09-04 11:10  jordi
26996
26997         * Label.cs: Refresh when font changed
26998
26999 2004-09-02 16:24  pbartok
27000
27001         * Control.cs:
27002           - Added sanity check to creation of double buffer bitmap
27003
27004 2004-09-02 16:24  pbartok
27005
27006         * ButtonBase.cs:
27007           - Fixed selection of text color
27008           - Fixed handling of resize event; now properly recreates double
27009             buffering bitmap
27010           - Added missing assignment of TextAlignment
27011           - Added proper default for TextAlignment
27012
27013 2004-09-02 14:26  pbartok
27014
27015         * RadioButton.cs:
27016           - Added missing RadioButton.RadioButtonAccessibleObject class
27017
27018 2004-09-02 14:26  pbartok
27019
27020         * Control.cs:
27021           - Added missing Control.ControlAccessibleObject class
27022           - Started to implement Select()ion mechanisms, still very incomplete
27023
27024 2004-09-02 14:25  pbartok
27025
27026         * AccessibleObject.cs:
27027           - Added missing methods
27028
27029 2004-09-02 14:23  pbartok
27030
27031         * AccessibleNavigation.cs, AccessibleSelection.cs:
27032           - Initial check-in
27033
27034 2004-09-02 10:32  jordi
27035
27036         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
27037           pool for pens, brushes, and hatchbruses
27038
27039 2004-09-01 15:30  jackson
27040
27041         * StatusBar.cs: Fix typo
27042
27043 2004-09-01 14:44  pbartok
27044
27045         * RadioButton.cs:
27046           - Fixed state
27047
27048 2004-09-01 14:39  pbartok
27049
27050         * Button.cs, RadioButton.cs:
27051           - Functional initial check-in
27052
27053 2004-09-01 14:01  pbartok
27054
27055         * CheckBox.cs:
27056           - Added missing default
27057           - Added missing region mark
27058
27059 2004-09-01 09:10  jordi
27060
27061         * Label.cs: fixes method signatures, new methods, events, fixes
27062           autosize
27063
27064 2004-09-01 07:19  jordi
27065
27066         * Control.cs: Init string variables with an empty object
27067
27068 2004-09-01 04:20  jordi
27069
27070         * Control.cs: fires OnFontChanged event
27071
27072 2004-08-31 20:07  pbartok
27073
27074         * ButtonBase.cs:
27075           - Enabled display of strings
27076
27077 2004-08-31 20:05  pbartok
27078
27079         * Form.cs:
27080           - Added (partial) implementation of DialogResult; rest needs to be
27081             implemented when the modal loop code is done
27082
27083 2004-08-31 19:55  pbartok
27084
27085         * CheckBox.cs:
27086           - Fixed to match the removal of the needs_redraw concept
27087
27088 2004-08-31 19:55  pbartok
27089
27090         * ButtonBase.cs:
27091           - Removed the rather odd split between 'needs redraw' and redrawing
27092           - Now handles the events that require regeneration (ambient
27093             properties and size)
27094
27095 2004-08-31 19:41  pbartok
27096
27097         * Control.cs:
27098           - Added firing of BackColorChanged event
27099           - Added TopLevelControl property
27100           - Fixed handling of WM_ERASEBKGRND message
27101
27102 2004-08-31 12:49  pbartok
27103
27104         * ButtonBase.cs:
27105           - Removed debug
27106           - Minor fixes
27107
27108 2004-08-31 12:48  pbartok
27109
27110         * CheckBox.cs:
27111           - Finished (famous last words)
27112
27113 2004-08-31 04:35  jordi
27114
27115         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
27116           scrolling bugs, adds new methods
27117
27118 2004-08-30 14:42  pbartok
27119
27120         * CheckBox.cs:
27121           - Implemented CheckBox drawing code
27122
27123 2004-08-30 14:42  pbartok
27124
27125         * ButtonBase.cs:
27126           - Made Redraw() and CheckRedraw() virtual
27127           - Improved mouse up/down/move logic to properly track buttons
27128
27129 2004-08-30 09:44  pbartok
27130
27131         * CheckBox.cs:
27132           - Updated to fix broken build. Not complete yet.
27133
27134 2004-08-30 09:28  pbartok
27135
27136         * CheckState.cs:
27137           - Initial checkin
27138
27139 2004-08-30 09:17  pbartok
27140
27141         * Appearance.cs:
27142           - Initial check-in
27143
27144 2004-08-27 16:12  ravindra
27145
27146         * ToolBarButton.cs: Added TypeConverter attribute.
27147
27148 2004-08-27 16:07  ravindra
27149
27150         * ImageIndexConverter.cs: Implemented.
27151
27152 2004-08-27 14:17  pbartok
27153
27154         * Control.cs:
27155           - Removed unneeded stack vars
27156           - First attempt to fix sizing issues when layout is suspended
27157
27158 2004-08-25 15:35  jordi
27159
27160         * ScrollBar.cs: more fixes to scrollbar
27161
27162 2004-08-25 14:04  ravindra
27163
27164         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
27165           Added the missing divider code and grip for ToolBar Control.
27166
27167 2004-08-25 13:20  pbartok
27168
27169         * Control.cs:
27170           - Control now properly passes the ambient background color to child
27171             controls
27172
27173 2004-08-25 13:20  jordi
27174
27175         * ScrollBar.cs: small bug fix regarding bar position
27176
27177 2004-08-25 12:33  pbartok
27178
27179         * Timer.cs:
27180           - Now only calls SetTimer or KillTimer if the enabled state has
27181           changed
27182
27183 2004-08-25 12:33  pbartok
27184
27185         * XplatUIWin32.cs:
27186           - Fixed timer handling, now seems to work
27187           - Improved error message for window creation
27188
27189 2004-08-25 12:32  pbartok
27190
27191         * Control.cs:
27192           - Fixed generation of MouseUp message
27193
27194 2004-08-25 12:29  jordi
27195
27196         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
27197           and fixes for progressbar
27198
27199 2004-08-24 18:43  ravindra
27200
27201         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
27202           in ToolBar control.
27203
27204 2004-08-24 17:15  pbartok
27205
27206         * Panel.cs:
27207           - Added #region
27208           - Added missing events
27209           - Alphabetized
27210
27211 2004-08-24 17:14  pbartok
27212
27213         * StatusBar.cs, PictureBox.cs:
27214           - Now uses Control's CreateParams
27215
27216 2004-08-24 16:36  pbartok
27217
27218         * XplatUIX11.cs:
27219           - Fixed background color handling
27220           - Fixed sending of enter/leave events on a grab
27221
27222 2004-08-24 16:35  pbartok
27223
27224         * X11Structs.cs:
27225           - Refined definitions for CrossingEvent
27226
27227 2004-08-24 12:37  jordi
27228
27229         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
27230           formmating, methods signature, and adds missing events
27231
27232 2004-08-24 12:24  jordi
27233
27234         * Control.cs: fire OnEnabledChanged event
27235
27236 2004-08-24 11:17  pbartok
27237
27238         * XplatUIWin32.cs:
27239           - Implemented SetTimer() and KillTimer()
27240
27241 2004-08-24 11:16  pbartok
27242
27243         * XplatUIX11.cs:
27244           - Now uses Remove instead of Add to kill the timer
27245
27246 2004-08-24 10:16  jackson
27247
27248         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
27249           picture boxes in the theme now. Draw picture box borders and obey
27250           sizing modes
27251
27252 2004-08-24 05:49  jackson
27253
27254         * Timer.cs: Remove top secret debugging code
27255
27256 2004-08-24 05:34  jackson
27257
27258         * PictureBox.cs: Temp hack to make picture boxes draw their full
27259           image
27260
27261 2004-08-24 05:29  jackson
27262
27263         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27264           XplatUIX11.cs: Move timers to the driver level. On X they are
27265           queued by the driver and checked on idle.
27266
27267 2004-08-24 01:07  jackson
27268
27269         * XplatUIX11.cs: Use a queue for async messages instead of passing
27270           them as ClientMessages since that was totally broken. Also simply
27271           check for events and return an idle message if none are found. This
27272           gives us an idle handler, and prevents deadlocking when no messages
27273           are in the queue.
27274
27275 2004-08-23 18:19  ravindra
27276
27277         * XplatUIWin32.cs: Removed the unwanted destructor.
27278
27279 2004-08-23 17:27  pbartok
27280
27281         * ButtonBase.cs:
27282           - Finishing touches. Works now, just needs some optimizations.
27283
27284 2004-08-23 16:53  jordi
27285
27286         * ScrollBar.cs: small fix
27287
27288 2004-08-23 16:45  pbartok
27289
27290         * Application.cs:
27291           - Removed debug output
27292           - Simplifications
27293
27294 2004-08-23 16:43  jordi
27295
27296         * ScrollBar.cs: [no log message]
27297
27298 2004-08-23 16:10  pbartok
27299
27300         * Form.cs:
27301           - Fixed handling of WM_CLOSE message
27302           - Removed debug output
27303
27304 2004-08-23 16:09  pbartok
27305
27306         * Application.cs:
27307           - Added handling of Idle event
27308           - Added handling of form closing
27309           - Fixed reporting of MessageLoop property
27310           - Removed some unneeded code, should provide a bit of a speedup
27311
27312 2004-08-23 15:22  pbartok
27313
27314         * Control.cs:
27315           - Added InitLayout() method
27316           - Added code to properly perform layout when Anchor or Dock property
27317             is changed
27318           - Changed 'interpretation' of ResumeLayout. MS seems to have a
27319             LAMESPEC, tried to do it in a way that makes sense
27320
27321 2004-08-23 14:10  jordi
27322
27323         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
27324           properties and methods
27325
27326 2004-08-23 13:55  pbartok
27327
27328         * Control.cs:
27329           - Properly fixed Jordi's last fix
27330           - Now uses Cursor's Position property instead of calling XplatUI
27331           directly
27332
27333 2004-08-23 13:44  jordi
27334
27335         * PaintEventHandler.cs: Adding missing attribute
27336
27337 2004-08-23 13:39  pbartok
27338
27339         * Cursor.cs:
27340           - Implemented Position property
27341
27342 2004-08-23 13:39  pbartok
27343
27344         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
27345           - Added method to move mouse cursor
27346
27347 2004-08-23 13:39  pbartok
27348
27349         * XplatUIX11.cs:
27350           - Fixed setting of background color
27351           - Added method to move mouse cursor
27352
27353 2004-08-23 13:16  jordi
27354
27355         * Control.cs: avoids null exception
27356
27357 2004-08-22 17:46  jackson
27358
27359         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
27360           PictureBox
27361
27362 2004-08-22 17:40  jackson
27363
27364         * XplatUIX11.cs: Add some missing locks
27365
27366 2004-08-22 15:10  pbartok
27367
27368         * Control.cs, Form.cs:
27369           - Removed OverlappedWindow style from Control, instead it's default
27370             now is child
27371           - Made form windows OverlappedWindow by default
27372
27373 2004-08-22 13:34  jackson
27374
27375         * ScrollBar.cs: Update the position through the Value property so
27376           the OnValueChanged event is raised.
27377
27378 2004-08-22 12:04  pbartok
27379
27380         * SWF.csproj:
27381           - Added Cursor.cs and UserControl.cs
27382
27383 2004-08-22 12:03  pbartok
27384
27385         * Cursor.cs:
27386           - Started implementation, not usable yet
27387
27388 2004-08-22 12:00  pbartok
27389
27390         * UserControl.cs:
27391           - Implemented UserControl (complete)
27392
27393 2004-08-21 19:20  ravindra
27394
27395         * ToolBar.cs: Correcting the formatting mess of VS.NET.
27396
27397 2004-08-21 18:49  ravindra
27398
27399         * ToolBar.cs: Probably this completes the missing attributes in
27400           toolbar control.
27401
27402 2004-08-21 18:03  ravindra
27403
27404         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
27405           Fixed toolbar control signatures.
27406
27407 2004-08-21 16:32  pbartok
27408
27409         * LinkLabel.cs:
27410           - Signature Fixes
27411
27412 2004-08-21 16:30  pbartok
27413
27414         * Label.cs:
27415           - Signature fixes
27416
27417 2004-08-21 16:19  pbartok
27418
27419         * Control.cs, Label.cs:
27420           - Signature fixes
27421
27422 2004-08-21 15:57  pbartok
27423
27424         * ButtonBase.cs:
27425           - Added loads of debug output for development
27426           - Fixed typo in method name
27427
27428 2004-08-21 15:52  pbartok
27429
27430         * ToolBarButtonClickEventArgs.cs:
27431           - Added missing base class
27432
27433 2004-08-21 14:53  pbartok
27434
27435         * Control.cs:
27436           - Updated to match new GrabWindow signature
27437
27438 2004-08-21 14:51  pbartok
27439
27440         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
27441           - Added method to get default display size
27442
27443 2004-08-21 14:23  pbartok
27444
27445         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
27446           - Added method to query current grab state
27447           - Added argument to allow confining a grab to a window
27448
27449 2004-08-21 14:22  pbartok
27450
27451         * Keys.cs:
27452           - Added [Flags] attribute so that modifiers can be used in bitwise
27453           ops
27454
27455 2004-08-21 14:21  pbartok
27456
27457         * TrackBar.cs, ScrollBar.cs:
27458           - Replaced direct XplatUI calls with their Control counterpart
27459
27460 2004-08-21 13:32  pbartok
27461
27462         * Control.cs:
27463           - Implemented Created property
27464
27465 2004-08-21 13:28  pbartok
27466
27467         * Control.cs:
27468           - Implemented ContainsFocus
27469
27470 2004-08-21 13:26  pbartok
27471
27472         * Control.cs:
27473           - Implemented CausesValidation
27474
27475 2004-08-21 13:21  pbartok
27476
27477         * Control.cs:
27478           - Implemented CanFocus
27479           - Implemented CanSelect
27480           - Implemented Capture
27481
27482 2004-08-21 12:35  pbartok
27483
27484         * XplatUIWin32.cs:
27485           - Fixed bug with Async message handling
27486           - Implemented getting the ModifierKeys
27487
27488 2004-08-21 12:32  jackson
27489
27490         * AsyncMethodResult.cs: Make sure we have the mutex before we
27491           release it. Fixes BeginInvoke on windows
27492
27493 2004-08-21 11:31  pbartok
27494
27495         * XplatUIWin32.cs, XplatUIX11.cs:
27496           - Drivers now return proper mouse state
27497
27498 2004-08-21 10:54  jackson
27499
27500         * Control.cs: Implement EndInvoke
27501
27502 2004-08-21 10:48  jackson
27503
27504         * Timer.cs: Remove unneeded finalizer
27505
27506 2004-08-20 19:52  ravindra
27507
27508         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
27509           in mouse event handling in the ToolBar control.
27510
27511 2004-08-20 19:50  ravindra
27512
27513         * ImageList.cs: Changed draw method to use the arguments passed in
27514           to draw the image.
27515
27516 2004-08-20 18:58  pbartok
27517
27518         * XplatUIStructs.cs:
27519           - Added private message for async communication
27520
27521 2004-08-20 17:38  ravindra
27522
27523         * Control.cs: Made RightToLeft property virtual and removed a
27524           Console.WriteLine.
27525
27526 2004-08-20 14:39  jordi
27527
27528         * ThemeGtk.cs: use style_attach
27529
27530 2004-08-20 14:39  pbartok
27531
27532         * XplatUIWin32.cs:
27533           - Added jackson's Async code from X11 to Win32
27534
27535 2004-08-20 14:09  pbartok
27536
27537         * SWF.csproj:
27538           - Added all new files
27539
27540 2004-08-20 14:09  pbartok
27541
27542         * Control.cs:
27543           - Added call to set window background color
27544
27545 2004-08-20 14:03  pbartok
27546
27547         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
27548           - Added method for setting the window background
27549
27550 2004-08-20 14:02  pbartok
27551
27552         * XplatUIWin32.cs:
27553           - Added method for setting the background color
27554           - Added handling for erasing the window background
27555
27556 2004-08-20 13:45  jordi
27557
27558         * TrackBar.cs: fixes timer, new properties and methods
27559
27560 2004-08-20 13:34  jackson
27561
27562         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
27563           correct thread
27564
27565 2004-08-20 13:22  jackson
27566
27567         * Timer.cs: Timer Tick events are now handed through Controls Async
27568           mechanism so the callbacks are executed in the same thread as X
27569
27570 2004-08-20 13:19  jackson
27571
27572         * XplatUIDriver.cs: Expose functionality to send async messages
27573           through the driver
27574
27575 2004-08-20 13:18  jackson
27576
27577         * Control.cs: Implement Begininvoke
27578
27579 2004-08-20 13:14  jackson
27580
27581         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
27582           messages through the driver
27583
27584 2004-08-20 13:12  jackson
27585
27586         * XplatUIX11.cs: Lock before all X operations. Also added Async
27587           method functionality through XSendEvent
27588
27589 2004-08-20 13:11  jackson
27590
27591         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
27592           This will screw up on 64 bit systems)
27593
27594 2004-08-20 13:10  jackson
27595
27596         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
27597           Async messages through X/Win32
27598
27599 2004-08-19 19:39  pbartok
27600
27601         * XplatUIX11.cs:
27602           - Updated code to match new HandleData.DeviceContext type
27603
27604 2004-08-19 19:38  pbartok
27605
27606         * HandleData.cs:
27607           - Made DeviceContext a generic object to allow usage from various
27608           drivers
27609           - Added support for queueing Windows messages
27610
27611 2004-08-19 19:37  pbartok
27612
27613         * XplatUIWin32.cs:
27614           - Added generation of MouseEnter, MouseLeave and MouseHover events
27615           - Added cleanup on EndPaint
27616
27617 2004-08-19 19:17  pbartok
27618
27619         * Control.cs:
27620           - Added handling of WM_MOUSEHOVER
27621           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
27622           code
27623
27624 2004-08-19 18:55  jordi
27625
27626         * ThemeGtk.cs: fixes button order
27627
27628 2004-08-19 18:12  jordi
27629
27630         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
27631
27632 2004-08-19 17:09  pbartok
27633
27634         * Control.cs:
27635           - Added Right property
27636           - Added RightToLeft property
27637
27638 2004-08-19 16:27  jordi
27639
27640         * ThemeGtk.cs: experimental GTK theme support
27641
27642 2004-08-19 16:26  jordi
27643
27644         * ITheme.cs, Theme.cs: move themes from an interface to a class
27645
27646 2004-08-19 16:25  jordi
27647
27648         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
27649           theme enhancaments
27650
27651 2004-08-19 16:04  pbartok
27652
27653         * XplatUIX11.cs:
27654           - Added colormap basics
27655           - Added a way to re-initialize with a different display handle
27656           - Fixed setting of the window background color
27657           - Added various X11 imports related to colors and colormaps
27658
27659 2004-08-19 15:51  pbartok
27660
27661         * X11Structs.cs:
27662           - Removed packing hints (Paolo suggested this a while back)
27663           - fixed colormap type
27664           - Added default Atom types
27665           - Added Screen and color structs and enums
27666
27667 2004-08-19 15:39  pbartok
27668
27669         * ImageList.cs:
27670           - Added missing Draw() method
27671           - Added missing RecreateHandle event
27672
27673 2004-08-19 15:30  pbartok
27674
27675         * Form.cs:
27676           - Added handling of WM_CLOSE
27677
27678 2004-08-18 13:16  jordi
27679
27680         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
27681           a table
27682
27683 2004-08-18 09:56  jordi
27684
27685         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
27686
27687 2004-08-17 15:31  ravindra
27688
27689         * SWF.csproj: Updated project.
27690
27691 2004-08-17 15:25  pbartok
27692
27693         * Control.cs:
27694           - Drawing improvement; don't call UpdateBounds if we are not visible
27695             (or have been minimized)
27696
27697 2004-08-17 15:24  pbartok
27698
27699         * XplatUIWin32.cs:
27700           - Finished IsVisible
27701           - Added Win32GetWindowPlacement
27702
27703 2004-08-17 15:08  jackson
27704
27705         * Panel.cs: Initial checkin of the Panel
27706
27707 2004-08-17 14:25  pbartok
27708
27709         * Control.cs:
27710           - Fixed broken handling of default window sizes
27711
27712 2004-08-17 13:29  jackson
27713
27714         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
27715           has a large startup time.
27716
27717 2004-08-17 10:25  jackson
27718
27719         * HandleData.cs: union areas properly
27720
27721 2004-08-17 10:12  jackson
27722
27723         * HandleData.cs: union areas properly
27724
27725 2004-08-16 20:00  ravindra
27726
27727         * ToolBar.cs, ToolBarButton.cs: Added attributes.
27728
27729 2004-08-16 18:48  ravindra
27730
27731         * ToolBar.cs: Added attributes.
27732
27733 2004-08-16 17:17  ravindra
27734
27735         * SWF.csproj: Updated project.
27736
27737 2004-08-16 17:16  jackson
27738
27739         * XplatUIX11.cs: Check for more expose events before sending a
27740           WM_PAINT so they can all be grouped together. This makes dragging a
27741           window across another window redraw in a sane way.
27742
27743 2004-08-16 15:47  pbartok
27744
27745         * Control.cs:
27746           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
27747             support OnMouseEnter/Leave()
27748           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
27749             exposure handling
27750
27751 2004-08-16 15:46  pbartok
27752
27753         * XplatUIStructs.cs, XplatUIX11.cs:
27754           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
27755           OnMouseEnter/Leave()
27756
27757 2004-08-16 15:34  jackson
27758
27759         * XplatUIX11.cs: Group multiple expose events in HandleData, make
27760           sure messages get the message field set to WM_NULL if they are not
27761           handled.
27762
27763 2004-08-16 15:24  jackson
27764
27765         * HandleData.cs: HandleData is used for storing message information
27766           for window handles
27767
27768 2004-08-15 17:23  ravindra
27769
27770         * ColorDepth.cs: Added attribute.
27771
27772 2004-08-15 17:23  ravindra
27773
27774         * SWF.csproj: Updated project for ToolBar Control.
27775
27776 2004-08-15 17:20  ravindra
27777
27778         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
27779           control and also dos2unix format.
27780
27781 2004-08-15 17:13  ravindra
27782
27783         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
27784           ToolBarButtonClickEventArgs.cs,
27785           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
27786           ToolBarTextAlign.cs: First Implementation of ToolBar control.
27787
27788 2004-08-15 15:31  pbartok
27789
27790         * ButtonBase.cs:
27791           - First (mostly) working version
27792
27793 2004-08-13 16:15  pbartok
27794
27795         * Control.cs:
27796           - Fixed Anchor default
27797
27798 2004-08-13 15:43  pbartok
27799
27800         * Control.cs:
27801           - Changed GetCursorPos signature
27802
27803 2004-08-13 15:42  pbartok
27804
27805         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
27806           - Changed signature for GetCursorPos
27807
27808 2004-08-13 15:25  pbartok
27809
27810         * XplatUIX11.cs:
27811           - Cleanup
27812           - Fixed resizing/exposure handling
27813
27814 2004-08-13 15:22  jordi
27815
27816         * ThemeWin32Classic.cs: removes redundant code and fixes issues
27817           with tickposition
27818
27819 2004-08-13 14:55  jordi
27820
27821         * TrackBar.cs: change from wndproc to events
27822
27823 2004-08-13 13:00  jordi
27824
27825         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27826           XplatUIX11.cs: implements PointToClient (ScreenToClient)
27827
27828 2004-08-13 12:53  pbartok
27829
27830         * XplatUIWin32.cs:
27831           - Changed GetWindowPos to also provide client area size
27832           - Fixed broken prototypes for several win32 functions
27833
27834 2004-08-13 12:53  pbartok
27835
27836         * XplatUI.cs, XplatUIDriver.cs:
27837           - Changed GetWindowPos to also provide client area size
27838
27839 2004-08-13 12:52  pbartok
27840
27841         * XplatUIX11.cs:
27842           - Added generation of WM_POSCHANGED
27843           - Changed GetWindowPos to also provide client area size
27844
27845 2004-08-13 12:52  pbartok
27846
27847         * Control.cs:
27848           - Added Dispose() and destructor
27849           - Fixed resizing and bounds calculation
27850           - Fixed Layout
27851           - Added memory savings for invisible windows
27852
27853 2004-08-13 12:46  jordi
27854
27855         * TrackBar.cs: adds timer and grap window
27856
27857 2004-08-13 10:25  jackson
27858
27859         * Timer.cs: SWF Timer
27860
27861 2004-08-12 16:59  pbartok
27862
27863         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
27864           - Implemented method to get current mouse position
27865
27866 2004-08-12 14:29  jordi
27867
27868         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
27869           enhancement, fix mouse problems, highli thumb, etc
27870
27871 2004-08-12 13:31  pbartok
27872
27873         * Control.cs:
27874           - Fixed Anchoring bugs
27875
27876 2004-08-12 13:01  jackson
27877
27878         * StatusBar.cs: Don't forget things
27879
27880 2004-08-12 12:54  jackson
27881
27882         * ThemeWin32Classic.cs: Handle owner draw status bars
27883
27884 2004-08-12 12:54  jackson
27885
27886         * StatusBar.cs: Implement missing properties, events, and methods.
27887           Handle mouse clicking
27888
27889 2004-08-12 10:19  jackson
27890
27891         * StatusBarPanelClickEventArgs.cs,
27892           StatusBarPanelClickEventHandler.cs: Classes for handling status
27893           bar panel click events
27894
27895 2004-08-12 10:10  jackson
27896
27897         * Control.cs: Add missing properties
27898
27899 2004-08-12 09:46  pbartok
27900
27901         * BindingsManagerBase.cs:
27902           - Name changed to BindingManagerBase.cs
27903
27904 2004-08-12 09:25  jordi
27905
27906         * ScrollableControl.cs: calls ctrlbase instead of exeception
27907
27908 2004-08-11 16:28  pbartok
27909
27910         * InputLanguageChangingEventArgs.cs:
27911           - Never check in before compiling. Fixes the last check-in
27912
27913 2004-08-11 16:26  pbartok
27914
27915         * InputLanguageChangingEventArgs.cs:
27916           - More signature fixes
27917
27918 2004-08-11 16:20  pbartok
27919
27920         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
27921           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
27922           ImageListStreamer.cs, InputLanguage.cs,
27923           InputLanguageChangedEventArgs.cs,
27924           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
27925           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
27926           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
27927           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
27928           - Signature fixes
27929
27930 2004-08-11 16:16  pbartok
27931
27932         * Application.cs:
27933           - Fixed Signature
27934           - Added .Net 1.1 method
27935
27936 2004-08-11 15:25  pbartok
27937
27938         * SWF.csproj:
27939           - Fixed BindingManagerBase.cs filename
27940
27941 2004-08-11 15:22  pbartok
27942
27943         * BindingManagerBase.cs:
27944           - Was checked in with wrong filename
27945
27946 2004-08-11 14:50  pbartok
27947
27948         * SWF.csproj:
27949           - Updated
27950
27951 2004-08-11 13:41  jordi
27952
27953         * XplatUIWin32.cs: Fixes ClientRect
27954
27955 2004-08-11 13:19  pbartok
27956
27957         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27958           XplatUIX11.cs:
27959           - We had SetWindowPos and MoveWindow to set window positions and
27960             size, removed MoveWindow. We have GetWindowPos, so it made sense to
27961             keep SetWindowPos as matching counterpart
27962           - Added some X11 sanity checking
27963
27964 2004-08-11 12:59  pbartok
27965
27966         * Control.cs:
27967           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
27968             (It seems that SetBounds is just a front for SetBoundsCore and
27969              SetBoundsCore updates the underlying window system and
27970              UpdateBounds is responsible for updating the variables associated
27971              with the Control and sending the events)
27972           - Major cleanup of Size handling; we now have two sizes, client_size
27973             and bounds. Bounds defines the window with decorations, client_size
27974             without them.
27975
27976 2004-08-11 12:55  pbartok
27977
27978         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
27979           - Added method to calculate difference between decorated window and
27980             raw client area
27981
27982 2004-08-11 12:54  pbartok
27983
27984         * Label.cs:
27985           - Forcing redraw on resize
27986
27987 2004-08-11 11:43  pbartok
27988
27989         * ImageList.cs:
27990           - Removed disposing of the actual images when the list is disposed
27991
27992 2004-08-11 09:13  pbartok
27993
27994         * Control.cs:
27995           - Now properly reparents windows
27996
27997 2004-08-11 08:37  pbartok
27998
27999         * Control.cs:
28000           - Duh!
28001
28002 2004-08-11 07:47  pbartok
28003
28004         * Control.cs:
28005           - Rewrote the collection stuff. Might not be as fast now, not
28006             keeping the number of children around and accessible directly, but
28007             it's more straightforward
28008
28009 2004-08-11 07:44  pbartok
28010
28011         * AccessibleObject.cs:
28012           - Fixed to match ControlCollection rewrite
28013
28014 2004-08-11 07:43  pbartok
28015
28016         * ImageList.cs:
28017           - Added missing creation of the collection list
28018
28019 2004-08-10 20:08  jackson
28020
28021         * StatusBar.cs: Get the paint message from WndProc
28022
28023 2004-08-10 19:31  jackson
28024
28025         * ThemeWin32Classic.cs: Create Brushes as little as possible
28026
28027 2004-08-10 19:20  jackson
28028
28029         * UICues.cs: Add Flags attribute
28030
28031 2004-08-10 19:19  jackson
28032
28033         * StatusBarPanel.cs: Signature cleanup
28034
28035 2004-08-10 19:10  jackson
28036
28037         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
28038           Initial implementation of status bar item drawing
28039
28040 2004-08-10 17:27  jordi
28041
28042         * TrackBar.cs: add missing methods, properties, and restructure to
28043           hide extra ones
28044
28045 2004-08-10 16:24  jackson
28046
28047         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
28048           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
28049           attribute
28050
28051 2004-08-10 13:21  jordi
28052
28053         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
28054           enhancements and standarize on win colors defaults
28055
28056 2004-08-10 12:52  jackson
28057
28058         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
28059           ThemeWin32Classic.cs: Implement DrawItem functionality
28060
28061 2004-08-10 12:47  jordi
28062
28063         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
28064
28065 2004-08-10 12:32  jordi
28066
28067         * Control.cs: throw ontextchange event
28068
28069 2004-08-10 11:43  pbartok
28070
28071         * Control.cs:
28072           - Added more to the still unfinished Dock/Anchor layout code
28073
28074 2004-08-10 11:39  pbartok
28075
28076         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
28077           - Added GetWindowPos method
28078
28079 2004-08-10 11:36  pbartok
28080
28081         * XplatUIWin32.cs:
28082           - Implemented several methods
28083
28084 2004-08-10 09:47  jackson
28085
28086         * TrackBar.cs: Allow control to handle buffering
28087
28088 2004-08-10 09:41  jackson
28089
28090         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
28091
28092 2004-08-10 09:24  jackson
28093
28094         * Label.cs, LinkLabel.cs: Let Control handle buffering.
28095
28096 2004-08-10 09:09  jackson
28097
28098         * StatusBar.cs: Let Control handle all the buffering.
28099
28100 2004-08-10 09:08  jackson
28101
28102         * Control.cs: Control will now handle the buffering code, so each
28103           control does not have to implement this.
28104
28105 2004-08-10 08:34  jackson
28106
28107         * XplatUIDriver.cs: Use default colors from the theme
28108
28109 2004-08-09 17:12  pbartok
28110
28111         * ImageList.cs:
28112           - Fixed several bugs Ravindra pointed out
28113
28114 2004-08-09 16:11  pbartok
28115
28116         * Control.cs:
28117           - Added incomplete dock layout code
28118           - Added support for mouse wheel
28119
28120 2004-08-09 16:09  pbartok
28121
28122         * XplatUIX11.cs:
28123           - Added handling for middle and right mousebutton
28124           - Added handling for mouse wheel
28125           - Added handling for key state and mouse state and position
28126           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
28127           messages
28128
28129 2004-08-09 15:40  jackson
28130
28131         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
28132           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
28133           checkin
28134
28135 2004-08-09 15:37  jackson
28136
28137         * StatusBar.cs: Initial implementation of StatusBar
28138
28139 2004-08-09 15:36  jackson
28140
28141         * ITheme.cs: Add support for drawing status bar and getting status
28142           bar item sizes
28143
28144 2004-08-09 15:35  pbartok
28145
28146         * MouseButtons.cs:
28147           - Fixed values
28148
28149 2004-08-09 15:34  jackson
28150
28151         * ThemeWin32Classic.cs: Add support for drawing status bar and get
28152           status bar item sizes
28153
28154 2004-08-09 15:21  jackson
28155
28156         * ThemeWin32Classic.cs: Use known colors for default control
28157           colours
28158
28159 2004-08-09 15:12  jackson
28160
28161         * ThemeWin32Classic.cs: Make the default font static, it is static
28162           in control so this doesn't change functionality and creating fonts
28163           is sloooooow.
28164
28165 2004-08-09 14:56  pbartok
28166
28167         * X11Structs.cs:
28168           - Added GrabMode enum
28169
28170 2004-08-09 14:55  pbartok
28171
28172         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
28173           - Removed Run method, was only required for initial development
28174
28175 2004-08-09 14:51  pbartok
28176
28177         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
28178           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
28179           capture
28180
28181 2004-08-09 13:48  pbartok
28182
28183         * XplatUIX11.cs:
28184           - Fixed default sizing for child windows
28185
28186 2004-08-09 12:56  pbartok
28187
28188         * XplatUIX11.cs:
28189           - Added generation of WM_DESTROY message
28190           - Added handling of window manager induced shutdown
28191
28192 2004-08-09 11:31  jackson
28193
28194         * ThemeWin32Classic.cs: New names for control properties
28195
28196 2004-08-09 11:25  jackson
28197
28198         * Control.cs: Use new color names
28199
28200 2004-08-09 11:02  jackson
28201
28202         * XplatUI.cs: Get default window properties from the theme
28203
28204 2004-08-09 11:01  jackson
28205
28206         * ITheme.cs: The theme engine now controls default window
28207           properties
28208
28209 2004-08-09 11:00  jackson
28210
28211         * ThemeWin32Classic.cs: Add default window color properties
28212
28213 2004-08-09 10:17  jackson
28214
28215         * ThemeWin32Classic.cs: Use correct default back color
28216
28217 2004-08-09 10:05  jackson
28218
28219         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
28220           the theme now.
28221
28222 2004-08-09 09:56  jackson
28223
28224         * XplatUI.cs: Remove defaults, these are handled by the theme now.
28225
28226 2004-08-09 09:54  jackson
28227
28228         * Control.cs: Get default properties from the theme.
28229
28230 2004-08-09 09:53  jackson
28231
28232         * ITheme.cs: Themes now handle default control properties
28233
28234 2004-08-09 09:53  jackson
28235
28236         * ThemeWin32Classic.cs: Themes now handle default control
28237           properties so coloring will be consistent
28238
28239 2004-08-08 16:54  jordi
28240
28241         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
28242
28243 2004-08-08 15:08  jordi
28244
28245         * XplatUIX11.cs: fixes keyboard crash
28246
28247 2004-08-08 13:47  jordi
28248
28249         * Label.cs: add cvs header info
28250
28251 2004-08-08 12:09  jackson
28252
28253         * ThemeWin32Classic.cs: Add pen_buttonface
28254
28255 2004-08-08 11:52  jordi
28256
28257         * Label.cs, LinkLabel.cs: [no log message]
28258
28259 2004-08-08 11:34  jordi
28260
28261         * ThemeWin32Classic.cs: Use Windows Standard Colours
28262
28263 2004-08-07 17:32  jordi
28264
28265         * TrackBar.cs: throw exceptions of invalid enums values
28266
28267 2004-08-07 17:31  jordi
28268
28269         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
28270           draw method name
28271
28272 2004-08-07 16:56  jackson
28273
28274         * HorizontalAlignment.cs: Initial checkin
28275
28276 2004-08-07 13:16  jordi
28277
28278         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
28279           methods
28280
28281 2004-08-07 13:05  jordi
28282
28283         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
28284           GetSysColor defines
28285
28286 2004-08-06 18:01  pbartok
28287
28288         * ThemeWin32Classic.cs:
28289           - Fixed some rounding issues with float/int
28290
28291 2004-08-06 18:00  jackson
28292
28293         * DockStyle.cs, AnchorStyles.cs:
28294
28295                   Add flags and serializable attributes.
28296
28297 2004-08-06 17:46  pbartok
28298
28299         * XplatUIX11.cs:
28300           - Implemented GetParent
28301
28302 2004-08-06 17:18  pbartok
28303
28304         * TrackBar.cs:
28305           - Fixed some rounding issues with float/int
28306
28307 2004-08-06 17:17  pbartok
28308
28309         * X11Structs.cs, XplatUIX11.cs:
28310           - Fixed Refresh and Invalidate
28311
28312 2004-08-06 15:30  pbartok
28313
28314         * Control.cs, X11Structs.cs, XplatUIX11.cs:
28315           - Fixed recursive loop when resizing
28316           - Improved/fixed redrawing on expose messages
28317
28318 2004-08-06 09:53  jordi
28319
28320         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
28321           keyboard navigation
28322
28323 2004-08-06 08:02  pbartok
28324
28325         * X11Structs.cs, XplatUIX11.cs:
28326           - Fixed reparenting
28327           - Fixed window border creation
28328
28329 2004-08-05 15:38  pbartok
28330
28331         * XplatUIX11.cs:
28332           - Attempted fix for reparenting problems
28333
28334 2004-08-04 15:14  pbartok
28335
28336         * Control.cs:
28337           - Fixed Invalidation bug (calculated wrong client area)
28338           - Added ClientSize setter
28339
28340 2004-08-04 15:13  pbartok
28341
28342         * Form.cs:
28343           - Added AutoScale properties
28344
28345 2004-08-04 15:13  pbartok
28346
28347         * SWF.csproj:
28348           - Added latest files
28349
28350 2004-08-04 14:11  pbartok
28351
28352         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
28353           XplatUIX11.cs:
28354           - Added Invalidate handling
28355
28356 2004-08-03 17:09  jordi
28357
28358         * XplatUIDriver.cs: fixes spelling mistake
28359
28360 2004-07-27 09:53  jordi
28361
28362         * TrackBar.cs: fixes trackbar events, def classname, methods
28363           signature
28364
28365 2004-07-27 09:29  jordi
28366
28367         * ScrollBar.cs: fixes scrollbar events
28368
28369 2004-07-27 04:38  jordi
28370
28371         * Control.cs: changes to be able to run winforms samples
28372
28373 2004-07-26 11:42  jordi
28374
28375         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
28376           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
28377
28378 2004-07-26 05:41  jordi
28379
28380         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
28381           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
28382           implementation
28383
28384 2004-07-22 09:22  jordi
28385
28386         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
28387           check link overlapping, implement events, and fixes
28388
28389 2004-07-21 10:28  jordi
28390
28391         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
28392
28393 2004-07-21 10:19  jordi
28394
28395         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
28396           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
28397           LinkLabelLinkClickedEventArgs.cs,
28398           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
28399           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
28400           implementation
28401
28402 2004-07-19 13:09  jordi
28403
28404         * Control.cs, Label.cs: label control re-written: added missing
28405           functionlity, events, and properties
28406
28407 2004-07-19 10:49  jordi
28408
28409         * Control.cs: fixes SetBounds logic
28410
28411 2004-07-19 01:29  jordi
28412
28413         * Control.cs: Call RefreshWindow only if the window has created
28414
28415 2004-07-15 14:05  pbartok
28416
28417         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
28418           - Implemented ImageList and ImageList.ImageCollection classes
28419           - Added ColorDepth enumeration
28420           - Updated SWF VS.Net project
28421
28422 2004-07-15 11:06  jordi
28423
28424         * XplatUIStructs.cs: added MsgButons enum
28425
28426 2004-07-15 11:03  jordi
28427
28428         * Control.cs: added basic mouse handeling events
28429
28430 2004-07-15 03:38  jordi
28431
28432         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
28433           Vertical TrackBar control implementation
28434
28435 2004-07-13 09:33  jordi
28436
28437         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
28438
28439 2004-07-13 09:31  jordi
28440
28441         * Control.cs, Form.cs: commit: new properties and fixes form size
28442           problems
28443
28444 2004-07-09 14:13  miguel
28445
28446         * ProgressBar.cs: Spelling
28447
28448 2004-07-09 11:25  pbartok
28449
28450         * ProgressBar.cs:
28451           - Removed usage of Rectangle for drawing. Miguel pointed out it's
28452           faster
28453
28454 2004-07-09 11:17  miguel
28455
28456         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
28457
28458                 * ProgressBar.cs: Fixed spelling for `block'
28459
28460                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
28461                 style guidelines.
28462
28463                 Avoid using the += on rect.X, that exposed a bug in the compiler.
28464
28465 2004-07-08 23:21  pbartok
28466
28467         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
28468           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
28469           BaseCollection.cs, Binding.cs, BindingContext.cs,
28470           BindingMemberInfo.cs, BindingsCollection.cs,
28471           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
28472           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
28473           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
28474           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
28475           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
28476           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
28477           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
28478           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
28479           FrameStyle.cs, GiveFeedbackEventArgs.cs,
28480           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
28481           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
28482           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
28483           InputLanguageChangedEventArgs.cs,
28484           InputLanguageChangedEventHandler.cs,
28485           InputLanguageChangingEventArgs.cs,
28486           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
28487           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
28488           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
28489           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
28490           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
28491           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
28492           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
28493           QueryAccessibilityHelpEventArgs.cs,
28494           QueryAccessibilityHelpEventHandler.cs,
28495           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
28496           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
28497           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
28498           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
28499           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
28500           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
28501           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
28502           XplatUIX11.cs, lang.cs:
28503           - Initial check-in
28504
28505