d7d4a571f2405e3ce49218df265b905930a66c85
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / ChangeLog
1 2010-07-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
2
3         * ThemeWin32Classic.cs: implement ResetDefaults.
4         Fixes bug #581956.
5
6 2010-07-05  Dick Porter  <dporter@codicesoftware.com>
7
8         * MenuAPI.cs: Only handle mnemonic key shortcuts when the context
9         menu is visible.  Fixes bug 616739.
10
11 2010-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12
13         * ThemeWin32Classic.cs: The images drawn in the column header must be
14         vertically centered. Fixes #616432.
15         Patch by Thomas Goldstein (stifu@free.fr).
16
17 2010-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18
19         * TabControl.cs: Don't use the Font property of our TabPages - use our
20         own Font property instead, as .Net does.
21         Fixes some bits of #551032.
22
23 2010-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24
25         * TabControl.cs: Call Invalidate when removing a tab page. We were
26         depending on the redraw routines of SelectedIndex, which could be not
27         enough to detect the real affected area.
28
29 2010-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
30
31         * TabControl.cs: Don't set SelectedTabIndex when getting the focus *at
32         all*.
33         Fixes #613765.
34
35 2010-06-24  Dick Porter  <dporter@codicesoftware.com>
36
37         * Fix NullReferenceException when keyboard shortcut activates
38         disabled context menu item.  Fixes bug 615940.
39
40 2010-06-22  Dick Porter  <dporter@codicesoftware.com>
41
42         * TextControl.cs, XplatUIX11.cs, XplatUICarbon.cs: Expand paint
43         regions slightly so that the full extents of text get painted.
44         Fixes bug 464464.
45
46 2010-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
47
48         * TreeNode.cs: Clone should detect the type of the current instance
49         and properly create the correct object.
50         Fixes #613708.
51
52 2010-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
53
54         * TabControl.cs: When setting SelectedIndex and the new selected tab
55         bounds are obscured by the scrollers, take into account the self tab
56         when looking for the proper bounds to adjust the slider. This is specially
57         important when we need to adjust the slider pos for the *last* tab page.
58         Fixes #615382.
59
60 2010-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
61
62         * TabControl.cs: Show the tooltip depending on the value 
63         of ShowTooltips.
64         Fixes #615376.
65
66 2010-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
67
68         * TabControl.cs: Implement ToolTip support for our tab pages.
69         Fixes part of #515045.
70
71 2010-06-19  Jonathan Pobst  <monkey@jpobst.com>
72
73         * FontDialog.cs: Make the 16 colors in the color drop down
74         match .Net.  Patch by Thomas Goldstein (stifu@free.fr).
75         [Fixes bug #506726]
76
77 2010-06-19  Jonathan Pobst  <monkey@jpobst.com>
78
79         * FontDialog.cs: Show all 16 colors in the color drop down
80         to match .Net.  Patch by Thomas Goldstein (stifu@free.fr).
81         [Fixes bug #508523]
82
83 2010-06-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
84
85         * TabControl.cs: When calculating the size of our tabs use
86         MinimumTabWidth only if SizeMode is other than Fixed.
87         Patch by Thomas Goldstein (stifu@free.fr).
88
89 2010-05-20  Andreia Gaita <avidigal@novell.com> 
90
91         * X11Dnd.cs: Fix a few crashers, making sure the client window is valid
92         when dragging
93
94 2010-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
95
96         * TabControl.cs: Properly implement ItemSize, which should depend on
97         Font and ImageList -if available-, instead of having a fixed height.
98         Setting ImageList should cause a Redraw also.
99         Fixes #599950.
100
101 2010-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
102
103         * TabControl.cs: ItemSize should be returning two times the padding
104         values instead of one.
105
106 2010-05-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
107
108         * TabControl.cs: ItemSize should include the padding value.
109         Update the retrieval of this info in SizeTab as well.
110         Fixes part of #604034.
111
112 2010-05-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
113
114         * ScrollableControl.cs: It seems .Net is creating DockPadding lazyly,
115         which means that *any* padding for children controls is not applied
116         *until* DockPadding is accesed using its getter.
117         * FlowLayoutPanel.cs:
118         * TableLayoutPanel.cs:
119         * Form.cs: These children classes need to have the DockPadding
120         property available *always*, so create it for them in their respective
121         constructors.
122         Fixes #599506.
123
124 2010-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
125
126         * ListView.cs: Properly adjust SmallChange and LargeChange values for
127         our scrollbars depending on the view. Also, update the maximum allowed
128         value when setting the values from SetScrollValue to use the already
129         available information contained within them.
130         Fixes the remaining bits of #543785.
131
132 2010-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
133
134         * ListView.cs: When calculating the scrollbars, take into account the
135         height of the horizontal scrollbar (if visible) to assign the maximum
136         value for our vertical one.
137         Fixes #543785.
138
139 2010-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
140
141         * TreeNodeCollection.cs: Do some clean up by renaming some of our
142         local vars in Add and AddSorted, so we have better readibility.
143         Patch from Thomas Goldstein (stifu@free.fr).
144
145 2010-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
146
147         * TreeNodeCollection.cs: When adding a sorted node return the correct
148         position of that node instead of returning the count.
149         Patch from Thomas Goldstein (stifu@free.fr).
150
151 2010-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
152
153         * TreeNodeCollection.cs: In SetupNode remove the redundant check,
154         since we only need to have a valid tree view to call UpdateBelow.
155         Patch from Thomas Goldstein (stifu@free.fr).
156
157 2010-05-04  Geoff Norton  <gnorton@novell.com>
158
159         * XplatUICarbon.cs: Patch from adrian.taylor@realvnc.com to avoid
160         blocking the message loop while processing events.
161
162 2010-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
163
164         * ListView.cs: Just as we did with TreeView, start the drag
165         computation in MouseDown instead of MouseMove, in order to avoid
166         firing the ItemDrag event more than one time per clicked item.
167
168 2010-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
169
170         * ComboBox.cs: our internal textbox should show selection only if it
171         is enabled. Don't set HideSelection since it's preventing us
172         from correctly hide the selection when needed. Finally connect a
173         handler in case our parent ComboBox gets its Enabled state changed.
174         Fixes #600433.
175
176 2010-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
177
178         * TreeView.cs: Set our internal fields related to the starting drag
179         position from MouseDown to MouseMove - we need to make sure
180         that the OnItemDragged event is fired only *one* time per element
181         clicked.
182         Fixes #551734.
183
184 2010-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
185
186         * TreeNodeCollection.cs: Instead of Sorting from SetupNode, do it
187         directly from Add (which uses AddSorted for this purpose) and Insert.
188         This way we first avoid a double sort, take advantage of our fast
189         version of Add for the default sorting, and also supress the call to Sort
190         when using our indexer setter (.Net ignores the sorting in this case).
191
192 2010-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
193
194         * TreeNodeCollection.cs: When Adding a new node don't remove it from
195         any previous collection. Even if this seems a little buggy, this is
196         what .Net does.
197         Fixes #601766.
198
199 2010-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
200
201         * StatusStrip.cs: In SetDisplayedItems call ClearInternal on
202         displayed_items instead of Clear, since this is only an internal
203         collection and we don't want to have our items have their Parent/Owner
204         modified.
205         Fixes the remaining bits of #590100.
206
207 2010-05-02  Ivan Zlatev  <ivan@ivanz.com>
208
209         * DataGridViewCell.cs: Avoid a NRE in GetValue if the cell doesn't 
210         have a DataGridView associated yet.
211         [Fixes bug #600786]
212
213 2010-05-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
214
215         * ToolStripItemCollection.cs: When calling Clear set Owner and Parent
216         properties to null for each of the items in the collection, just as
217         Remove/RemoveAt do. Implement a ClearInternal method that clears the
218         collection without modifying the mentioned properties.
219         * ToolStrip.cs:
220         * ToolStripOverflow.cs: Call ToolStripItemCollection.ClearInternal
221         for our internal collections.
222         This should fix #590100, which producing a race when the garbage
223         collector was calling ToolStripItem.Dispose, which in turn was firing
224         a Layout in the ToolStrip.
225
226 2010-04-27  Ivan Zlatev  <ivan@ivanz.com>
227
228         * DataGridView.cs: Fix multiple issues when inserting and adding new 
229         columns.
230
231 2010-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
232
233         * ToolStripSplitButton.cs:
234         * ToolStripDropDownItem.cs:
235         * ToolStripMenuItem.cs: Update overrides.
236         * ToolStripItem.cs: Pass the number of clicks to HandleClick when
237         firing OnMouseUp, so we can later fire either OnClick or
238         OnDoubleClick.
239
240         Fixes #558632.
241
242 2010-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
243
244         * RichTextBox.cs: When emitting the complete RTF value escape chars
245         above 0x80, at .Net seems to do. This way we are able to make
246         round-trip assignations between the setter and getter of the
247         RichTextBox.Rtf property.
248         Fixes part of #586901.
249
250 2010-04-26  Ivan Zlatev  <ivan@ivanz.com>
251
252         * DataGridView.cs: Handle all possible cases for when a new column is 
253         added and there are existing rows with existing cells both in the 
254         non-databound and the databound scenario.
255         [Fixes bug #583387]
256
257 2010-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
258
259         * XplatUIX11.cs: When retrieving data from the x11 clipboard and we
260         are using either XA_STRING or OEMTEXT try to detect if we have escaped
261         unicode chars, and unescape them as needed. This us used by some
262         (gnome) applications to pass unicode chars in a non-unicode context.
263         Fixes #596402.
264
265 2010-04-25  Ivan Zlatev  <ivan@ivanz.com>
266
267         * DataGridViewCellCollection.cs, DataGridView.cs: 
268         Ensure column cell templates are properly applied.
269         [Fixes bug #583404]
270
271 2010-04-24  Ivan Zlatev  <ivan@ivanz.com>
272
273         * DataGridViewColumnCollection.cs: When adding a column also 
274         set the DisplayIndex if its now set by the user already.
275         [Fixes bug #583387]
276
277 2010-04-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
278
279         * NotifyIcon.cs: Make BalloonWindow expose the owner's Handle.
280         * Theme.cs:
281         * ThemeWin32Classic.cs: Add a HideBalloonWindow method to force to
282         close an active balloon window.
283         * XplatUIX11.cs: When removing from the system tray try to close
284         the balloon window. This is important when we hide a NotifyIcon and
285         thus need to close its related balloon window as well.
286         Fixes bits of #590093.
287
288 2010-04-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
289
290         * XplatUIX11.cs: When adding a NotifyIcon to the system tray, mark its
291         Hwnd.mapped as true, since its handle is going to be mapped later by
292         the tray (not us), but we need to know it's alive and can later properly unmap
293         it.
294         Fixes part of #590093.
295
296 2010-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
297
298         * TreeNodeCollection.cs: When adding/inserting/setting a new node call
299         TreeView.Sort if needed, and update/recalculate this entire
300         collection in that case.
301         * TreeView.cs: Make 'sorted' internal, instead of directly using
302         Sorted, as this one could trigger a complete Sort() operation.
303
304 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
305
306         * TreeView.cs: We must use the comparer supplied by TreeViewNodeSorter
307         *always*, since it is used recursively, so checking for a number of
308         top level nodes is useless. This should fix a case where we were not
309         sorting any node with a single root node.
310
311 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
312
313         * DataGridView.cs: Call the base Paint impl last, instead of do that
314         at the beginning, to let handlers draw on top of us. 
315         Fixes the remaining bits of #587563.
316
317 2010-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
318
319         * ToolStripItem.cs: Separate the background rendering from the Paint
320         routine, so we can both make sure the background stuff is done first,
321         and we also let our items fire the OnPaint event handlers before or
322         after their own routines.
323         * ToolStripLabel.cs: Move the base call to OnPaint to the end, so any
324         user's Paint handler can draw on top of us, like .Net does.
325         Fixes #587563.
326
327 2010-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
328
329         * XplatUIX11.cs: When checking for the values returned by
330         _NET_WORKAREA, use current_desktop+1 instead of current_desktop, since
331         we need the actual value, instead of the index (which is 0 based, and
332         is not working in this case). Patch by Andy Stühr
333         (andysmuell@hammerhartes.de).
334         Fixes #494234.
335
336 2010-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
337
338         * ToolTip.cs: Make TipState internal.
339         * ToolStrip.cs: Use the same idea of ToolTip'state to have our
340         internal timer close the tooltip window after a delay, instead of
341         waiting for the mouse to move to a different item. Also, hide the
342         tooltip window when the handle is destroyed, and also when the control
343         is getting hidden.
344         Fixes #581273.
345
346 2010-03-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
347
348         * ListView.cs: Selection should be available after the first time the
349         handle has been created, even if later the handle is destroyed or
350         temporary invalidated.
351         Fixes #584070.
352
353 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
354
355         * TreeView.cs: When receiving a double click on a node, toggle it only
356         if it has one or more nodes - just as .net does.
357         Fixes #578079.
358
359 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
360
361         * X11Keyboard.cs: Small correction for the previous patch: I forgot to
362         take into account the case where the buffer used in XLookupString is
363         not empty, but filled with garbage.
364
365 2010-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
366
367         * X11Keyboard.cs: When handling the key events, sometimes calling
368         either Xutf8LookupString or XLookupString with special chars (such
369         backspace and enter) can result in a buffer filled with garbage, or
370         empty - thus re-use the value returned by the same functions to fill
371         the gap.
372         Fixes #582691.
373
374 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
375
376         * Control.cs: ControllCollaction IList implementation wasn't calling the 
377         Add implementation causing ParentChanged and all sorts of other events not to 
378         get fired.
379         [Fixes bug #580042]
380
381 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
382
383         * DataGridView.cs: If we are setting a new data source and it is 
384         data bindable clear DataMember before binding.
385         [Fixes bug #554296]
386
387 2010-02-25  Ivan Zlatev  <ivan@ivanz.com>
388
389         * DataGridViewCheckBoxCell.cs: Toggle the checkbox on Space key press.
390         [Fixes bug #574259]
391
392 2010-02-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
393
394         * RichTextBox.cs: When retrieving SelectedRtf/Rtf properly escape any
395         RTF reserved char, so we don't end up messing around the actual rtf
396         values.
397         Fixes part of #575731.
398
399 2010-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
400
401         * Line.cs: When setting the Text property, if the new text is larger
402         than the previous one, call Grow to update our internal 'widths'
403         array, to be properly in sync with the new text.
404         Fixes #569530.
405
406 2010-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
407
408         * TabControl.cs: When calculating the layout for the tab pages, take
409         into account the ImageList size info if it exists, even if it is
410         empty.
411
412 2010-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
413
414         * StatusStrip.cs:
415         * XplatX11.cs:
416         * X11Structs: Implement the new BeginMoveResize method, designed to
417         instruct the window manager to init a resize operation on a top level
418         form. This is used by StatusStrip.
419         * XplatUI.cs:
420         * XplatUIDriver.cs:
421         * XplatUIWin32.cs:
422         * XplatUICarbon.cs: Fill the gaps by creating stubs and updating the
423         method calls.
424         Fixes #573299.
425
426 2010-02-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
427
428         * ComboBox.cs: When creating DrawItemEventArgs pass the fore color and
429         back color arguments depending on the higlight/focus state, just like
430         .net.
431         Fixes #572643.
432
433 2010-01-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
434
435         * ComboBox.cs: When the normal drop down window is closed, make sure
436         that the auto complete list -if any- is closed as well, instead of
437         stay open without need.
438
439 2010-01-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
440
441         * TextBox.cs: When showing the autocomplete listbox, make sure it's on
442         top, by calling the raw XplatUI.SetZOrder for it, since we can't
443         properly call BringToFront on it as it is parentless. This fixes an
444         issue when using this feature with ComboBox's own parentless listbox.
445         Fixes the remaining bits of #489339.
446
447 2010-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
448
449         * XplatUI.cs:
450         * XplatUIDriver:
451         * XplatUICarbon:
452         * XplatUIWin32:
453         * XplatUIX11.cs: 
454         * XplatUIStructs: Implement support for different kind of audible
455         alerts in Windows, and update the requiered classes.
456         * MessageBox.cs: 
457         * TextBoxBase.cs: Update calls to XplatUI.AudibleAlert.
458         Fixes #473725.
459
460 2010-01-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
461
462         * ComboBox.cs: When use manually setting DropDownHeight, ignore the
463         MaxDropDownHeight property - also rename our field 'count' to
464         'visible_items_count' to avoid confusion as much as possible.
465         Fixes an issue with several items, showing an incorrect layout.
466
467 2010-01-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
468
469         * RichTextBox.cs: SelectedText should set Modified to true. Observe
470         that this is happening just here, not for the Text property, and
471         neither for the TextBoxBase impl.
472         Fixes #569950.
473
474 2010-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
475
476         * ToolStripMenuItem.cs: Put the Checked/CheckState logic in a single
477         place and synchronize the events properly. Fixes a lack of
478         coordination between the events - which should be fired together.
479
480 2010-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
481
482         * TrackBar.cs: Move our events code to a single method, allowing it to
483         optionally fire the Scroll event. This way we both avoid the
484         duplicated calls to OnScroll and also will be able to fire Scroll
485         *before* OnValueChanged in other places.
486         Fixes #568026.
487
488 2010-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
489
490         * RadioButton.cs: When drawing, if Appearance is Button use the old
491         normal routine in the theme engine, instead of using the one in 2.0,
492         since this last one doesn't support proper rendering of the control as
493         a button.
494         Fixes #567904.
495
496 2010-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
497
498         * GroupBoxRenderer.cs: Properly use SystemColors.GrayText to draw to
499         text of the group box if it is disabled.
500         Fixes #567847.
501
502 2009-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
503
504         * Control.cs: When changing the cursor and updating it, do update the
505         cursor immediately even if there's a child control under the current
506         cursor position - this is exactly what .net does.
507         Fixes #555780.
508
509 2009-11-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
510
511         * DataGrid.cs: In OnLeave, do cancel or end current edit, depending on
512         the commit_new_row value, instead of just trying to cancel if a new
513         row had been added. This is important when modifying existing rows and
514         then moving the focus out of the control.
515
516 2009-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
517
518         * XplatUICarbon.cs: Implement the overriden AudibleAlert
519         function in XplatUICarbon.  Currently it throws
520         NotImplementedException which will kill a WinForms application showing
521         a dialog box.
522         Patch by  Erik Ylvisaker (erik@agatelib.org).
523
524 2009-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
525
526         * DataGrid.cs: In CurrentCell, the check to do nothing in case we are
527         in the same cell as specified *and* not editing is wrong.
528
529 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
530
531         * DataGrid.cs: When removing the cells, don't do anything if the
532         specified row is the extra cell we use to add new ones.
533
534 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
535
536         * DataGrid.cs: CurrentCell should be *used* if the new value is the
537         same as the current one, since we could need to activate the edition
538         in the current row. Also, when beginning the edition, do nothing if,
539         basides having an empty source, we are sure we don't have the new
540         cell, which could obviously start it.
541         Fixes other bits of #323154.
542
543 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
544
545         * DataGrid.cs: When we get notified by a change in the position of our
546         data source, don't set CurrentRow if the source is empty, as there's
547         no need to do anything else in the first place, and second, the logic
548         in the CurrentRow setter (public property) will add a new row by
549         default in this case (that is, when the source is empty).
550         Fixes part of #323154.
551
552 2009-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
553
554         * ToolStripMenuItem.cs: Don't try to use SystemColors.MenuText if fore
555         color is SystemColors.ControlText, as this system color detection
556         should be done *completely*. This is specially important when
557         detecting colors in systems running Gtk+ and dark themes.
558
559 2009-11-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
560
561         * DataGrid.cs: Add a new internal property to get the maximum possible
562         visible rows in the grid. We cannot use VisibleRowCount since this
563         value can, depending on the scroll position, return a +1 or -1 value,
564         so we need an absolute way to know whether we need a scroll bar or
565         not. Also, update VLargeChange to avoid code duplication.
566         Fixes a vertical scroll mismatch happening trying to add a new row
567         while the scrollbar has reached its maximum value.
568
569 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
570
571         * DataGridTextBoxColumn.cs:
572         * DataGrid.cs: Position the cursor in the add row should *not* show
573         yet another new row - that will happen till we get any real input data
574         from the user. When that happens, we will also mark the new row as
575         ready to commit - otherwise, when the cursor moves to a different row,
576         the just added row will be discarded. This is exactly what .Net seems
577         to do.
578
579 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
580
581         * DataGrid.cs: The large value for our vertical scrollbar should
582         depend on the number of visible rows, instead of trying to re-use the
583         value of VisibleRowCount, which is the value of *current* visible
584         rows, and can easily end messed up if new rows are added/removed.
585
586 2009-11-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
587
588         * DataGrid.cs: When moving the scroll, *dont* ever end the current
589         edit - this could seriously mess up our current edit cycle, specially
590         when adding new rows.
591
592 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
593
594         * TabControl.cs: In OnKeyDown call the base implementation first -
595         this way we let the user tell us whether we should handle the key or
596         not.
597         Fixes #543717.
598
599 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
600
601         * DataGrid.cs: Implement removal of rows the Correct Way by creating a
602         copy of the indexes, as any direct write access to the source will cause to
603         reset the entire selection - also, do the linear de-selection in
604         reverse order to avoid any index mismatch in the source, due to out of
605         synchronization removing the rows.
606
607 2009-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
608
609         * DataGridTextBoxColumn.cs:
610         * DataGrid.cs: Don't use this add-pending behaviour to try to add a
611         new row until we have the first input char - it was helping us to fix
612         other issues we have/had, but it's not matching .net.
613
614 2009-10-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
615
616         * TextBoxBase.cs: When returning the preferred height, and we are
617         supposed to be borderless, return the TopMargin value - usually in
618         borderless mode it has a value of 0, but in the ToolStrip controls we
619         need to set the margin manually.
620         Fixes #551214.
621
622 2009-10-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
623
624         * ToolTip.cs: ShowAlways works at the form level, not at the control
625         level. Fixes #544565.
626
627 2009-10-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
628
629         * ButtonBase.cs: Usually the click routines are handled in Control,
630         but in this class we are handling it ourselved, thus we need to have
631         the same calls, and we were missing the call to MouseClick.
632         Patch by Eric Petit <surfzoid@gmail.com>.
633
634 2009-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
635
636         * ComboBox.cs: When setting Text and data source is being used, if the
637         passed value is not matching any of the items in the source, don't
638         pass it to GetItemText, since it's useless, as GetItemText expects a
639         valid item.
640         Fixes #546009.
641
642 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
643
644         * ListView.cs: When retrieving an item in virtual mode, as part of the
645         process calculate its layout, instead of trying to do it later.
646         * ListViewItem.cs: There's no need to try to infer whether we need to
647         compute layout or not anymore - we just do it every time we are
648         returning an item.
649         This way we should be fixing View changes with cached items, which
650         were storing the previous value, and not updating their contents
651         properly.
652
653 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
654
655         * ColumnHeader.cs: Remove the double linear search in the Index
656         property, by removing the call to Contains, which is not needed.
657         Also, Columns collection can never be null.
658
659 2009-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
660
661         * ColumnHeader.cs: When calculating the width and height of the
662         column, try to expand to the right and use all the free space if we
663         are the last column *and* the resize mode is set to -2/header content.
664         Fixes #544716.
665
666 2009-10-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
667
668         * ListView.cs: When retrieving the top item, take into account the
669         offset represented by the header control, to retrieve the proper
670         value. Patch by Christoph von Wittich (Christoph at ApiViewer.de)
671         Fixes the remaining bits of #543773.
672
673 2009-10-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
674
675         * ListView.cs: TopItem setter should set the value as the top, not
676         only ensuring its visibility.
677         Fixes part of #543773.
678
679 2009-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
680
681         * ListView.cs: For virtual mode, when navigating the items using keyboard,
682         don't use the matrix of positions, and instead calculate the positions
683         based on the number of cols and rows, taking advantage of the fixed
684         positions of items. Use the same idea to implement FirstVisibleIndex,
685         so we avoid iterating over all the items. Patch by Stephen Robinson
686         mono at esar.org.uk.
687         Fixes part of #467418.
688
689 2009-10-12  Dick Porter  <dporter@codicesoftware.com>
690
691         * Splitter.cs: Adjust offsets when more than one splitter is
692         present in a control.  Fixes bug 509472.
693
694 2009-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
695
696         * ListView.cs: When computing the value for groups height don't use
697         text_size field, since in LargeIcon view it sometimes contains a
698         double height value - use Font.Height directly, and also improve the
699         padding value.
700         * ThemeWin32Classic: The same as above.
701         This way the space between the group header, the line, and the items
702         area is not that big in LargeIcon view.
703
704 2009-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
705
706         * ListView.cs: When retrieving the fixed positions for the items in
707         virtual mode, use the row value to compute the coords of the item,
708         instead of the col value, as opposed to SmallIcon/LargeIcon views.
709
710 2009-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
711
712         * ListView.cs: The location of the items should be computed on the fly
713         in virtual mode - that decreased speed overall, but reduces the load
714         time.that decreased speed overall, but reduces the load time. Also,
715         handle the cases where we were using data structures we don't need to
716         use/create for this mode.
717         Fixes part of #467418.
718
719 2009-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
720
721         * ListView.cs: Tile view and VirtualMode can't be applied together.
722         Patch by Stephen Robinson <mono@esar.org.uk>.
723
724 2009-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
725
726         * ListView.cs: When calculating the layout for Details view, don't ask
727         for the items *at all* in case we are in virtual mode. This should
728         re-enable the proper behaviour of virtual mode.
729
730 2009-09-26  Jonathan Pobst  <monkey@jpobst.com>
731
732         * TreeNode.cs: When we invalidate a node, make sure we start at
733         0, instead of the node's Bounds.Left, which does not include
734         the +/-, checkbox, or stateimages.
735         [Fixes bug #542481]
736
737 2009-09-24  Ivan N. Zlatev  <contact@i-nz.net>
738
739         * DataGridView.cs: Compare the name and not displayname of properties 
740         when checking if the column is already bound.
741
742 2009-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
743
744         * RichTextBox.cs: For SelectedRtf, after inserting the stream, adjust
745         the position of the caret by adding the needed chars represented by the new line chars,
746         according to the system, using rich *or* hard new lines as needed. Also do a
747         check to be sure we don't move the cursor position beyond the limits
748         of our text. This should avoid problems with text being pasted,
749         regarding the position of the caret.
750
751 2009-09-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
752
753         * RichTextBox.cs: When SelectedRtf is set, and we are in the 0
754         position in the x axis, force to re-use any already available line,
755         even if it is not empty. This way pasting text into our textbox in the
756         beginning for non empty lines should work fine.
757
758 2009-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
759
760         * RichTextBox.cs: When we are inserting a flow of rtf text, and we are
761         *not* loading it from a file, try to re-use a line if already
762         available, since the default behaviour of the parser is to create new
763         lines for the document.
764         This should fix a regressions we found after the last fix for #513030.
765
766 2009-09-14  Tom Hindle <tom_hindle@sil.org>
767
768         * ToolStripOverflow.cs: Fixes #536036 by adding null ptr check.
769
770 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
771
772         * PropertyGrid.cs: Hide the splitter when the help is hidden.
773
774 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
775
776         * InternalWindowManager.cs: Call Invalidate-Update instead of 
777         Refresh for MS compitability. Note also that Refresh is virtual 
778         and several controls override it in order to provide data refresh 
779         functionallity on top of the redraw and they do not expect this 
780         extra refresh call.
781         * Control.cs: In Refresh Invalidate the control and all children 
782         insead of calling Refresh for each of them.
783         [Fixes bug #538336]
784
785 2009-09-11  Ivan N. Zlatev  <contact@i-nz.net>
786
787         * PropertyGrid.cs: Always set the help panel properties on the 
788         internal control, because they are inherited and can change with 
789         the parent.
790         [Fixes bug #525305]
791
792 2009-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
793
794         * RichTextBox.cs: When processing rtf, don't add a new line if we
795         already have one for that position. This way we avoid overriding by
796         mistake our lines when copying/pasting.
797         Fixes #513030.
798
799 2009-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
800
801         * TextControl.cs: When inserting new lines, look for the end of file
802         char, and remove chars after it. This is unlikely to happeng either
803         loading a file, pasting text or pressing a char, but can happen using
804         the TextBox.Text property.
805         Fixes #535884.
806
807 2009-09-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
808
809         * Line.cs: In DeleteCharacters, cache line.Length for every tag, since
810         tag.Start changes will modify it indirectly and then we would end up
811         with wrong values.
812         Fixes #512521.
813
814 2009-09-03  Ivan N. Zlatev  <contact@i-nz.net>
815
816         * BindingSource.cs: Implement support for chained data sources.
817         * ListBindingHelper.cs: Add support for ICurrencyManagerProvider and 
818         clean up.
819         [Fixes part of bug #536547]
820
821 2009-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
822
823         * RichTextBox.cs: When saving the text to a file using SaveFile use
824         Environment.NewLine to separate the lines. This way we should be
825         saving the files according to the system.
826         Fixes the remaining part of #511515.
827
828 2009-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
829
830         * RichText.cs: Remove some unix new line characters and use
831         Environment.NewLine. Fixes part of #511515.
832
833 2009-08-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
834
835         * TextBoxBase.cs: Modified should *not* be modified from the Text
836         property, as our new tests show. It should be to false, however, in
837         Append and Clear; and Paste, Cut, Undo, and direct user input should set it
838         to true. Also, as opposed to what the .net docs say -but proven by our
839         tests-, the changes should be generating a ModifiedChanged event
840         (thus we set the property, instead of the field).
841         Fixes #511267.
842
843 2009-08-27  Ivan N. Zlatev  <contact@i-nz.net>
844
845         * DataGridView.cs: Fire the CellDoubleClicked event.
846         [Fixes bug #533430]
847
848 2009-08-27  Ivan N. Zlatev  <contact@i-nz.net>
849
850         * DataGridView.cs: Add support for column DataGridViewAutoSizeColumnMode
851         DisplayedCells and DisplayedCellsExceptHeader.
852         [Fixes bug #533435]
853
854 2009-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
855
856         * TextControl.cs: When removing a simple char, actually record the
857         action in the undo manager. This way we both support undoing the
858         removal of chars using backspace/delete, as well as keeping data
859         integrity when other undo tasks are performed.
860         Fixes #531983.
861
862 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
863
864         * Control.cs: Remove the ancient code in ResetText, which was setting
865         the internal field to String.Empty, instead of doing it for our Text
866         property, as .net does (which also causes a TextChanged event and all
867         the other related routines).
868         Fixes #531587.
869
870 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
871
872         * TreeNodeCollection.cs: Correctly implement Contains by using a
873         linear search - there's no possible way to use a binary search, since
874         the node instances are not implementing IComparable, nor have a
875         specific order.
876         Fixes #529927.
877
878 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
879
880         * DataGrid.cs: If we are *not* changing a row
881         already added to the source, and thus we are adding a new 
882         row instead, try to move to the previous row when Esc is
883         pressed -if possible-.
884         Fixes some bits of #322974.
885
886 2009-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
887
888         * DataGridTextBoxColumn.cs:
889         * DataGrid.cs: Moving the cell to the add row (the last one) should
890         not immediately add a new row - this should happen until the very
891         first change happens in that textbox.
892         Fixes part of #322974.
893
894 2009-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
895
896         * ToolStripDropDown.cs: When assigning the owner item, use its Font as
897         well.
898
899 2009-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
900
901         * ToolStripItem.cs: When the owner changes its Font, call the
902         OnFontChanged event, so we let our users know that we likely have a
903         new font - since Font is an ambient property.
904         * ToolStripDropDownItem.cs: When our Font changes, propagate that
905         information to our DropDown control, if any.
906         Fixes #531515.
907
908 2009-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
909
910         * DataGrid.cs: 
911         * ThemeWin32Classic.cs: When the user clicks on a new cell, we should reset any
912         previous selection, just like .net does. Also, in the cases where a
913         cell is being edited and it keeps the selected status, use the normal
914         colors for it, and use the selected colors for the rest of the columns of
915         that row.
916         Fixes the remaining bits of #323051.
917
918 2009-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
919
920         * DataGrid.cs: When getting ProcessKeyPreview fired, call Edit() if we
921         are not editing already - so the edition is actually active on our
922         column style textbox. Also, it seems the code handling process the
923         grid keys is repeated, but instead of removing it, just comment it for
924         now.
925         Fixes part of #323051.
926
927 2009-08-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
928
929         * AsyncMethodResult.cs: Store a exception field in case the called
930         method actually caused an exception. This way we can throw it later.
931         * XplatUIDriver.cs: Check if the async method result has an exception
932         - throw it if needed. 
933         The idea is that Control.Invoke throws the exception from the thread
934         that called it, not the main MWF thread. 
935         Patch by Tom Spink <tspink@gmail.com>. Fixes #497175.
936
937 2009-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
938
939         * DataGrid.cs: In mouse move we need to shift the selection in case
940         the pointer is on the row headers.
941         Fixes #323052.
942
943 2009-08-11  Ivan N. Zlatev  <contact@i-nz.net>
944
945         * SplitContainer.cs: Avoid updating the splitter distance if it hasn't 
946         moved. Updating the distance was causing a re-layout which was resetting 
947         the clicks counter and preventing DoubleClick from every firing.
948         [Fixes bug #521387]
949
950 2009-08-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
951
952         * DataGrid.cs: When a new TableStyle is added, don't create new
953         columns for it unless it is empty - this is the correct way to both
954         respect the columns if they were provided by our user, or create them
955         for him in case the column collection is empty.
956         Fixes #323111.
957
958 2009-08-10  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
959
960         * DataGrid.cs: Actually call BindColumns in the handler for
961         ListManager.MetaDataChanged, since the current code is already taking
962         into account the scenario when a custom table style is used - this was
963         confusing us before, and that's why we commented the call to
964         BindColumns. Also call CallAreasAndInvalidate, to properly reflect the
965         changes as needed.
966         Fixes #465021.
967
968 2009-08-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
969
970         * DataGrid.cs: When setting the data source, if we have a user
971         provided table style available, force a complete bind in case the
972         column styles for that table style is empty.
973
974 2009-08-09  Ivan N. Zlatev  <contact@i-nz.net>
975
976         * DataGridViewCell.cs: Handle null and DBNull values.
977
978 2009-08-07 Rodrigo Kumpera  <rkumpera@novell.com>
979
980         * ListBindingHelper.cs: Fix the 1.0 build by making this type available
981         under that profile.
982
983 2009-08-07  Ivan N. Zlatev  <contact@i-nz.net>
984
985         * CurrencyManager.cs: Remove duplicate code.
986
987 2009-08-07  Ivan N. Zlatev  <contact@i-nz.net>
988
989         * DataGridView.cs, DataGridViewCell.cs, DataGridViewColumn.cs: 
990         Massive population performance boost. From seconds to ms.
991         [Fixes bug #528887]
992
993 2009-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
994
995         * DataGrid.cs: When handling mouse down on a column, don't do any sort
996         even if the list supports it if we are empty. This way we avoid an exc
997         sorting the empty list, and keep the UI compatible with .net.
998
999 2009-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1000
1001         * DataGrid.cs: In Edit () check we have any row before trying to use
1002         the current row. Fixes a IOOR exc with an empty data grid.
1003
1004 2009-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1005
1006         * DataGridColumnStyle.cs: Don't call CheckValidDataSource when setting
1007         the owner DataGrid - even if this seems to be the right thing to do,
1008         .net is not doind this check at this point, but in later operations.
1009         Fixes #465019.
1010
1011 2009-07-28  Mike Gorse  <mgorse@novell.com>
1012
1013         * ToolStripMenuItem.cs: Added UIA CheckOnClickChanged event.
1014
1015 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1016
1017         * Application.cs: Make FilterMessage internal for 1.1. Fixes the 1.1 build.
1018
1019 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1020
1021         * XplatUIX11.cs:
1022         * XplatUIWin32.cs: We need to filter the messages using
1023         Application.FilterMessage for our DoEvents implementations. Observe
1024         that I don't like the idea of XplatUI call the upper level Application
1025         class, but at this point is easier and simpler to do this call - based
1026         on the fact it's only one simple call.
1027         Fixes #516735.
1028
1029 2009-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1030
1031         * TreeNodeCollection.cs: When removing the selected node, set the
1032         SelectedNode value of TreeView to null if there aren't more nodes left - 
1033         this is better than to clear the selected node in Clear, since we need
1034         to handle the situation in the Remove methods as well.
1035         Fixes #525002.
1036
1037 2009-07-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1038
1039         * ToolStripItemCollection.cs: Find should do a case insensitive
1040         search, and should throw an ArgumentNullException if the parameter is
1041         an empty string.
1042
1043 2009-07-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1044
1045         * PropertyGrid.cs: Use click handlers for each ToolStripButton instead
1046         of using a global handler for the ToolStrip. This way the buttons can
1047         be recovered and can have its PerformClick method called properly.
1048         Fixes #522454.
1049
1050 2009-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1051
1052         * X11Dnd.cs: Implement support for XdndActionList, so we can get the
1053         complete list of the supported actions in the drag source, and use the
1054         action passed in the Position message only as a fallback. This will
1055         help us with dnd operations with non winforms apps.
1056         Fixes #402158.
1057
1058 2009-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1059
1060         * ToolStripItemCollection.cs: Use a List<> instead of an ArrayList in
1061         Find. This should fix the exception we were getting when trying to
1062         convert the ArrayList to an array of objects (since we were losing the
1063         type parameter).
1064         Fixes #519944.
1065
1066 2009-07-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1067
1068         * RadioButton.cs: Setting Checked when none of the sibligs is checked
1069         should happen *not* in GotFocus, but in the Enter event. This is
1070         specially important since we should get that Checked behaviour even if
1071         no handle is created yet - and thus, no actual GotFocus call happens at
1072         the time.
1073         Fixes #520764.
1074
1075 2009-07-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1076
1077         * ComboBox.cs: Adjust manually the top border for out internal
1078         ComboBox, since removing the border from it leaves it without any
1079         margin. This is not noticeable in a default ComboBox, but it is in an
1080         instance shown on top of ToolStrip.
1081         Fixes the remaining part of #507462.
1082
1083 2009-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1084
1085         * TextBoxBase.cs: Expose the margin top width as a property, to keep
1086         the code clean.
1087         * ToolStripTextBox.cs: Since we are actually using no border in the
1088         default TextBox impl, and we are drawing the border ourselves, we need
1089         to manually set the top margin.
1090         Fixes part of #507462.
1091
1092 2009-07-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1093
1094         * PrintPreviewDialog.cs: Record when left was pressed, so we can
1095         simulate Tab+Alt when moving the focus throughout our buttons and
1096         controls.
1097         Fixes the remaining bits of #509142.
1098
1099 2009-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1100
1101         * TabControl.cs: When computing the width of each tab page, use the
1102         page's Font instead of the tab control one.
1103         Fixes #514368.
1104
1105 2009-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1106
1107         * MenuAPI.cs: When handling the Keys.Left key, don't close the menu if
1108         the current menu is specifically a ContextMenu (this is what .net does
1109         as well). This way we also avoid a crash caused by MenuTracker trying
1110         to use the menu when it was already hidden.
1111
1112 2009-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1113
1114         * PrintPreviewDialog.cs: Remove the code used to handle the
1115         DropDown menu, since we are now doing it by default in ToolBar, and
1116         just call the base impl as needed.Also, deactivate the dropdown menu
1117         before moving the focus to a different button in our toolbar, as .net
1118         does.
1119         * ContextMenu.cs:
1120         * MenuAPI.cs: Make as internal the needed bits to deactivate a
1121         ContextMenu, and also to keep some beauty in our api.
1122
1123 2009-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1124
1125         * ToolBar.cs: When handling the key down message, if we are on a
1126         drop down button, either show the DropDownMenu or pass the key to its
1127         ProcessCmdKey method as needed.
1128         Fixes the remaining bits of #509985.
1129
1130 2009-06-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1131
1132         * ToolBar.cs: Isolate the event logic related to OnButtonClick. Also
1133         set current_item when navigating with the keyboard, so we can use it
1134         properly later. Finally, handle both Enter and Space to fire
1135         OnButtonClick *only*, without any other impact, as .net does.
1136         Fixes part of #509985.
1137
1138 2009-06-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1139
1140         * MenuAPI.cs: Close any active menu when we get a simple Alt.
1141         Fixes #509299.
1142
1143 2009-06-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1144
1145         * ToolBar.cs: In OnButtonClick only change the Pushed value for
1146         buttons with toogle style. We were previously doing it for
1147         DropDownButton's buttons, but that's not what .net is doing.
1148         Fixes #510030.
1149
1150 2009-06-26  Atsushi Enomoto  <atsushi@ximian.com>
1151
1152         * XplatUICarbon.cs : support multi-byte text input.
1153           Fixed bug #501276.
1154
1155 2009-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1156
1157         * ListBox.cs: When creating DrawItemEventArgs, pass either
1158         Theme.ColorHighlightText or ForeColor depending on the selected state
1159         of our item, as .net does.
1160         Fixes #512115.
1161
1162 2009-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1163
1164         * ComboBox.cs: When handling WM_CHAR, process the message first, and
1165         send it to the textbox only if it wasn't handled.
1166         Fixes #507459.
1167
1168 2009-06-18  Jonathan Pobst  <monkey@jpobst.com>
1169
1170         * ComboBox.cs: Only do my big sort at the end of AddRange if
1171         the combobox is actually set to Sorted.
1172
1173 2009-06-18 Tom Hindle <tom_hindle@sil.org>
1174         
1175         * XplatUIX11.cs: Enabled Text to coexist with custom data formats.
1176         Fixes #511849.
1177
1178 2009-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1179
1180         * ListBox.cs: When calculating the scrollbars for non MultiColumn
1181         mode, force the use of the horizontal scrollbar only if
1182         ScrollAlwaysVisible is true as well.
1183         Fixes #513029.
1184
1185 2009-06-17  Jonathan Pobst  <monkey@jpobst.com>
1186
1187         * ComboBox.cs: When using AddRange on a sorted combobox, don't
1188         try to use our inefficient sorted insert method, just append
1189         it and sort the whole thing at then end.
1190         [Fixes bug #511247]
1191
1192 2009-06-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1193
1194         * ToolBar.cs: Expose as internal the code used to show a dropdown menu.
1195         * PrintPreviewDialog.cs: Handle the down/up arrow keys for our
1196         DropDown element.
1197         Fixes #509152.
1198
1199 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
1200
1201         * DataGridView.cs: Scrolling fixes.
1202         [Fixes bug #512816]
1203
1204 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
1205
1206         * DataGridView.cs, DataGridViewRowCollection.cs: Clean up a bit and 
1207         optimize for batch adding rows.
1208
1209 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
1210
1211         * DataGridView.cs: Avoid calling ReBind twice during the initial data 
1212         binding.
1213         [Fixes bug #512807]
1214
1215 2009-06-16  Ivan N. Zlatev  <contact@i-nz.net>
1216
1217         * DataGridView.cs: Suppress invalidation during data binding.
1218         [Fixes part of bug #512807]
1219
1220 2009-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1221
1222         * PrintPreviewDialog.cs: Tune the navigation among the buttons and
1223         controls that are part of our ToolBar, so we can mimic the behaviour
1224         observed in .Net, by handling also the arrow keys and doing the
1225         preprocess for them too.
1226         Fixes the remaining bits of #509142.
1227
1228 2009-06-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1229
1230         * ToolBar.cs: Expose the current item as internal.
1231         * PrintPreviewDialog.cs: Tune the TabStop property for
1232         PrintPreviewControl/ToolBar so we match the .net scenario regarding
1233         Tab navigation. Also implement support to navigate throughout the
1234         items in the ToolBar.
1235         Fixes #509142.
1236
1237 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1238
1239         * DataGridViewComboBoxCell.cs, DataGridViewComboBoxColumn.cs: 
1240         Implement items syncing in the non-databound scenario.
1241         [Fixes bug #494031]
1242
1243 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1244
1245         * DataGridView.cs: Call OnCellValidating and OnCellValidated and 
1246         handle the Cancel accordingly.
1247         [Fixes bug #506838]
1248
1249 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1250
1251         * DataGridViewBand.cs: Fix a typo in DefaultHeaderCellType.
1252         [Fixes bug #506796]
1253
1254 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1255
1256         * DataGridViewColumnCollection.cs, DataGridViewRowCollection.cs, 
1257         DataGridView.cs: Fire CollectionChangeAction.Refresh collection 
1258         changed when Clearing the collections so that the DataGridView 
1259         can know and reset the current cell.
1260         [Fixes bug #492549]
1261
1262 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1263
1264         * BindingSource.cs: In ResetBindings use the ListChangedEventArgs ctor 
1265         with the PropertyDescriptor parameter instead of index, because the 
1266         latter will set some irelevant indices. Fixes a bug uncovered by recent
1267          fix to ListChangedEventArgs.
1268
1269 2009-06-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1270
1271         * DataObject.cs: When looking for any specific format, do a case
1272         insensitive search, as .net does.
1273         Fixes #509199.
1274
1275 2009-06-09  Ivan N. Zlatev  <contact@i-nz.net>
1276
1277         * CurrencyManager.cs: In AllowNew firstly check if the list is a 
1278         IBindingList and proxy to AllowNew. IBindingList has slightly differet 
1279         logic and eventhough it's an IList IsReadOnly should not be used in this 
1280         case as it might be True but AllowNew could be True as well.
1281         Fixes a bug uncovered by a fix to the Array class.
1282
1283 2009-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1284
1285         * ListBindingHelper.cs: In GetListItemType do a null check when
1286         looking for IList.Item, since the impl could be explicit, and thus
1287         private. Fix by Florent Fayolle (p.ricca at odyssee-ingenierie.com).
1288         Fixes the remaining part of #507120
1289
1290 2009-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1291
1292         * DataObject.cs: Map StringFormat/Text/UnicodeText formats properly,
1293         to match them in all the cases, as this is exactly what .net does.
1294         Fixes #510728.
1295
1296 2009-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1297
1298         * ListBindingHelper.cs: In GetListItemType handle gracefully the case
1299         where an instance of IEnumerator returns a null value for its Current
1300         property. Fix by Florent Fayolle (p.ricca at odyssee-ingenierie.com).
1301         Fixes #507120.
1302
1303 2009-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1304
1305         * ComboBox.cs: Properly detect whether we need to use our vertical
1306         scrollbar or not, specially for DropDownList/DropDown styles,
1307         depending on the value of DropDownHeight.
1308         Fixes #508541.
1309
1310 2009-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1311
1312         * ToolTip.cs: Call the base implementation in Dispose, but do it
1313         before anything else to avoid a regression. This way we do the default
1314         routines related to any System.ComponentModel.Container.
1315         Fixes #508586.
1316
1317 2009-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1318
1319         * Clipboard.cs:
1320         * XplatUIX11.cs:
1321         * DataFormats.cs: Implement support for serializable types in our
1322         clipboard.
1323         Fixes #357642.
1324
1325 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1326
1327         * ColorDialog.cs: Actually add the help button to the form, so it can
1328         be visible.
1329         Fixes #478555.
1330
1331 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1332
1333         * PrintPreviewDialog.cs: Don't use Dock.Fill for the
1334         PrintPreviewControl, since it will be hidden in the top by our
1335         toolbar. Use manual location and anchoring instead.
1336         Fixes #474889.
1337
1338 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1339
1340         * FileDialog.cs: When saving the size of the dialog, use the
1341         ClientSize instead of Size, so we have always the same size for the
1342         form. Patch by Alex Shulgin.
1343         Fixes #503064.
1344
1345 2009-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1346
1347         * MessageBox.cs: When showing the dialog call XplatUI.AudibleAlert to
1348         show a beep, similar to what .net does. 
1349         Fixes #473725.
1350
1351 2009-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1352
1353         * ContainerControl.cs:
1354         * MenuStrip.cs
1355         * ToolStrip.cs: Implicit mnemonic processing should happen for every
1356         ToolStrip child, not only for MenuStrip, so we are going to do that in
1357         ToolStrip.ProcessMnemonic, where we already had that exactly
1358         functionality, but we are only just checking that either this instance
1359         is a ToolStripDropDownMenu instance or Alt has been pressed. Finally
1360         remove the extra code, since we are not going to use it now.
1361         Fixes the remaining bits of #503663.
1362
1363 2009-05-21  Neville Gao  <nevillegao@gmail.com>
1364
1365         * ContextMenu.cs: Cleaned up UIA properties.
1366
1367 2009-05-20  Dick Porter  <dick@acm.org>
1368
1369         * XplatUICarbon.cs: Add more locking around MessageQueue
1370         manipulations.
1371
1372 2009-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1373
1374         * DateTimePicker.cs: Call Focus in HideMonthCalendar to avoid
1375         duplication of code, as well as actually getting the focus back in
1376         *any* scenario where the drop down is closed.
1377
1378 2009-05-18 Tom Hindle <tom_hindle@sil.org>
1379         * ScrollableControl.cs: Ignore setting properties HScroll and 
1380         VScroll when AutoScroll is true.
1381         [Fixes bug #500213]
1382
1383 2009-05-18  Jonathan Pobst  <monkey@jpobst.com>
1384
1385         * ToolStripRenderer.cs: Apply patch from Thomas Goldstein to make
1386         disabled graphics look closer to the ones that .Net produces.
1387         [Fixes bug #473660]
1388
1389 2009-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1390
1391         * DateTimePicker.cs: When calculating the max width for the year part,
1392         use the current value, since *all* the possible values are exactly a 4
1393         digits number. This way we avoid a ArgumentOutOfRangeException trying
1394         to check against different values.
1395         Fixes #500917.
1396
1397 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1398
1399         * MessageBox.cs: When handling ProcessDialogChar, check that
1400         CancelButton is not null before trying to use it, to avoid a null ref
1401         exception. We don't need to do that on the ok/yes buttons, since they
1402         always exist.
1403         Fixes #503935.
1404
1405 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1406
1407         * ListBox.cs: Handle the key down event in WndProc instead of doing it
1408         in an event handler, as we need to avoid any operation in case
1409         the user has handled it in its own OnKeyDown handler, and this can't
1410         be achieved since our handler would be the first one always.
1411         * FontDialog.cs: Update the calls since our method handling key down
1412         has been renamed.
1413         Fixes #503469.
1414
1415 2009-05-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1416
1417         * Application.cs: We should dismiss the active ToolStrip when we
1418         receive a WM_SYSKEYDOWN message, instead of WM_SYSKEYUP, so the next
1419         keyboard short cut can be properly processed by another menu item.
1420         Fixes part of #503663.
1421
1422 2009-05-13  Andreia Gaita  <avidigal@novell.com>
1423
1424         * HtmlDocument.cs: If the objects are strings, wrap them in ""
1425
1426 2009-05-13  Andreia Gaita  <avidigal@novell.com>
1427
1428         * HtmlDocument.cs: Fix InvokeScript call (duh).
1429
1430 2009-05-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1431
1432         * TextBox.cs: Expose IsAutoCompleteAvailable as internal.
1433         * ComboBox.cs: If auto complete is being used, it is needed to update
1434         the actual value of the combo box, doing it immediately if the user
1435         presses Enter, or doing it when our combo box loses focus. Finally,
1436         when handling Enter and Escape keys for the combobox, don't try to
1437         hide the listbox if it is not visible in the first place. 
1438         Fixes part of #489339.
1439
1440 2009-05-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1441
1442         * ToolStripDropDownMenu.cs: Use the height returned by
1443         ToolStripItem.GetPreferredHeight to calculate our own height.
1444
1445 2009-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1446
1447         * TreeNode.cs: When setting Checked, do a double null check, since the
1448         current node can still get a null parent handling
1449         TreeView.OnAfterCheck.
1450         Fixes #502567.
1451
1452 2009-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1453
1454         * Control.cs: When assigning ContextMenu, do a null check before
1455         assigning its container field.
1456
1457 2009-05-08  Brad Taylor  <brad@getcoded.net>
1458
1459         * DateTimePicker.cs: Add a UIA-specific property to ensure that if
1460         is_checkbox_checked is changed, we won't break.
1461
1462 2009-05-08  Andrés G. Aragoneses  <aaragoneses@novell.com>
1463
1464         * ToolStripItem.cs: Prevent NRE when our holder is a
1465         ToolStripDropDownButton and we get Select()ed.
1466
1467 2009-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1468
1469         * ToolStripControlHost.cs: DefaultSize must return the current size of
1470         the Control, not the value returned by GetPreferredSize. Also connect
1471         a handle to the control Resize event, and use it to fire
1472         OnHostedControlReize.
1473         Fixes the remaining bits of #483146.
1474
1475 2009-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1476
1477         * ToolStripDropDown.cs: When performing the layout, use
1478         ToolStripItem.GetPreferredSize ().Height instead of
1479         ToolStripItem.Height, since we are already using it that way in this
1480         same method.
1481         Fixes part of ##483146.
1482
1483 2009-05-08  Brad Taylor  <brad@getcoded.net>
1484
1485         * DateTimePicker.cs: Wrap UIA specific code in NET_2_0 wrappers.  Send
1486         OnUIASelectionChanged when ShowCheckbox is true and the checkbox
1487         recieves focus.  Part of fix for #502029.
1488
1489 2009-05-06  Mike Gorse  <mgorse@novell.com>
1490
1491         * FileDialog.cs: Add UIAFocusedItemChanged to PopupButtonPanel.
1492         Add PerformClick and PerformDoubleClick to PopupButton.
1493         Fixes #499851.
1494
1495 2009-05-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
1496
1497         * TabControl.cs: call Focus() to emit GotFocus event at the
1498         proper time when SelectionIndex changes. Fixes #499887.
1499
1500 2009-05-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1501
1502         * MonthCalendar.cs: In SetBoundsCore always do the bounds check to
1503         have valid values, even if BoundSpecified is not including
1504         Size/Height/Width - this is useful when we are in a control using Dock
1505         or Anchor.
1506         Fixes part of #483146.
1507
1508 2009-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1509
1510         * ComboBox.cs: When losing the focus, if our textbox is not null,
1511         close its auto complete list, if any.
1512         Fixes part of #489339.
1513
1514 2009-04-27  Andrés G. Aragoneses  <aaragoneses@novell.com>
1515
1516         * ListView.cs: Make OnColumnClick +internal to be used by a11y.
1517
1518 2009-04-27  Brad Taylor  <brad@getcoded.net>
1519
1520         * ToolStripButton.cs: Emit an internal event when CheckOnClick is
1521         changed.
1522
1523 2009-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1524
1525         * XplatUIX11.cs: Properly support UTF8 when handling the
1526         SelectionRequest event - this is helpful supporting some window
1527         managers, such KDE, that explictly request the text in utf8, as
1528         opposed to gnome, that supports ascii.
1529         Fixes #489393.
1530
1531 2009-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1532
1533         * ToolStripDropDownItem.cs: When assigning a new
1534         ToolStripDropDownMenu, let it know we are its OwnerItem. This way the
1535         Capture duties performed by Application/ToolStripManager are handled
1536         nicely and we don't end up in an inconsisten stat.
1537         Fixes #492815.
1538
1539 2009-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1540
1541         * ToolStrip.cs: Even if we are not exactly a MenuStrip instance, close
1542         any ToolStripDropDownItem when receiving a mouse down event in an
1543         empty area.
1544
1545 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1546
1547         * ToolBarButton.cs: add UIA events for style and dropdownmenu changes.
1548
1549 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1550
1551         * ToolBarButton.cs: rename a method to include UIA prefix.
1552
1553 2009-04-24  Andrés G. Aragoneses  <aaragoneses@novell.com>
1554
1555         * ToolBarButton.cs: change visibility of some UIA methods from
1556         protected virtual to private.
1557
1558 2009-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1559
1560         * ToolStripDropDown.cs: In OnVisibleChanged, if we have an OwnerItem,
1561         fire OnDropDownOpened/OnDropDownClosed depending on the new
1562         visibility. This also ensures that any direct access to this instance
1563         will fire the mentioned events for the OwnerItem.
1564         * ToolStripDropDownItem.cs: Remove the invocations to
1565         OnDropDownOpened/OnDropDownClosed, since they are handled in
1566         ToolStripDropDown, as well as updating the
1567         OnDropDownHide/OnDropDownShow calls to be in the right order.
1568         Fixes #496193.
1569
1570 2009-04-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1571
1572         * Control.cs, ContextMenuStrip.cs, ToolStripMenuItem.cs: Only process any 
1573         shortchut in ToolStripMenuItem.ProcessCmdKey if the control generating the 
1574         event is the same as the owner of the menu item. Also set properly 
1575         SourceControl for ContextMenuStrip, as well as add an internal field to 
1576         contain the control that owns the ContextMenuStrip (we need to know this 
1577         even before the public property is assigned).
1578         Fixes bits of #393775.
1579
1580 2009-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1581
1582         * StatusStrip.cs: Use the same icon as .net when the mouse is over the
1583         size grip.
1584         Fixes #492828.
1585
1586 2009-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1587
1588         * ComboBox.cs: When calculating the height of the ComboListBox,
1589         specially for the 2.0 profile, use MaxDropDownItems if the
1590         DropDownHeight property hasn't been set, and use the later if it has
1591         been set. This way we support both properties.
1592         Fixes #493308.
1593
1594 2009-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1595
1596         * ThreadExceptionDialog.cs: Draw the error icon, previously missing.
1597         Fixes #474253.
1598
1599 2009-04-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1600
1601         * ContainerControl.cs: Implement support for Control.CausesValidation,
1602         by adding a pending list of controls to be validated in the top
1603         container control, and postpone validation as needed. 
1604         Also remove any control in the validation chain in case it gets removed 
1605         from its owner before the pending validation actually happens.
1606         Fixes #457170.
1607
1608 2009-04-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1609
1610         * ListBox.cs: The default instance StringFormat field used to draw our
1611         items should use the StringFormatFlags.NoWrap value, so it doesn't try
1612         to put in a different line the text that doesn't fit our bounds, but
1613         show it partially.
1614         Fixes #475581.
1615
1616 2009-04-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1617
1618         * CheckedListbox.cs: When executing OnItemClick check that the index
1619         is different to -1 before trying to retrieve an item using that value.
1620         Fixes a ArgumentOutOfRangeException thrown when the horizontal
1621         scrollbar was visible but not needed, and then a clicked was received
1622         on its area.
1623
1624 2009-04-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1625
1626         * MaskedTextBox.cs: If Insert is pressed, change the internal
1627         overwrite mode for our default value.
1628         Fixes some bits of #477395.
1629
1630 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1631
1632         * ListView.cs: In EnsureVisible avoid any direct access to items if we
1633         are using virtual mode - otherwise use the bounds stored in a specific
1634         item in a given index. This is specially important when using groups
1635         or when items are re-arranged, since the position in the items
1636         collection can be different than that one being displayed.
1637         Fixes the rest of ##491978.
1638
1639 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1640
1641         * ThemeWin32Classic.cs: Include the previous check for ListView in a
1642         2.0 define as needed.
1643
1644 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1645
1646         * ThemeWin32Classic.cs: Don't draw ListView's gridlines if we are using groups.
1647         Fixes part of #491978.
1648
1649 2009-04-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1650
1651         * ToolTip.cs: New fields to store the title/icon information.
1652         * ThemeWin32Classic.cs: Implement support for tooltip's title and
1653         icon.
1654         Fixes #491978.
1655
1656 2009-04-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1657
1658         * TabControl.cs: When removing a tab that was previously selected, set
1659         internally the value of selected_index to -1, to avoid trying to
1660         access the previous one when trying to set the new one (and was
1661         already removed from the collection). This is what .net seems to do
1662         too.
1663         Fixes #490937.
1664
1665 2009-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1666
1667         * XplatUIX11.cs, X11Clipboard.cs: Text and Rtf formats must be
1668         separated, and we cannot fallback on Text if Rtf is requested but not
1669         present.
1670         * Clipboard.cs: Actually use the format specified by our user when
1671         putting data.
1672
1673 2009-03-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1674
1675         * X11Clipboard.cs: Actually look for the RtfText format when calling
1676         GetRftText in our clipboard formats list, instead of using the
1677         generical Text format.
1678
1679 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1680
1681         * TextBox.cs: Process auto completion properly when we are using the
1682         internal source provided by ComboBox, and also remove some repeated
1683         checks.
1684         Fixes #489339.
1685
1686 2009-03-30 Tom Hindle <tom-hindle@sil.org>
1687         
1688         * DataGridView added Support for Invisible Columns to 
1689         AutoFillColumnsInternal method.
1690
1691 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1692
1693         * X11Structs:
1694         * X11Clipboard.cs: Move internal ClipboardStruct from X11Structs to
1695         its own file, since it is adding some functionality and thus is not a
1696         simple struct as before.
1697         * XplatUIX11.cs: Add support to store different formats that could
1698         have been specified by the user when puting data in the Clipboard -
1699         this is important when more than one format is supported (such plain
1700         text and rtf text). Update in the needed places, as well as simplify
1701         the code.
1702         Fixes #489625.
1703
1704 2009-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1705
1706         * XplatUIX11.cs: When handling the SelectionRequest event, use
1707         SelectionRequestEvent instead of SelectionEvent, so we get the right
1708         data for the app asking for clipboard data. Set the member of
1709         SelectioneEvent.property to indicate the place where we are storing
1710         the information as well - this is specially important for gnome/kde
1711         apps using the TARGETS atom to ask for the supported permission before
1712         actually asking for a specific format.
1713         Fixes #489393.
1714
1715 2009-03-28  Ivan N. Zlatev  <contact@i-nz.net>
1716
1717         * DataGridViewCell.cs: We don't support drawing all types of cell borders, 
1718         so fallback and at least draw something instead of nothing.
1719
1720 2009-03-27  Ivan N. Zlatev  <contact@i-nz.net>
1721
1722         * DataGridView.cs: If the column header isn't visible allow resizing 
1723         using the cell column border. Also be sure to reset the cursor properly.
1724         [Fixes bug #489929]
1725
1726 2009-03-26   Carlos Alberto Cortez <calberto.cortez@gmail.com>
1727
1728         * ToolStrip.cs: When disposing, iterate over the items in reverse
1729         order, since disposing the items modifies the collection.
1730         * ToolStripItem.cs: Remove from the owner when disposing.
1731         Fixes #485769.
1732
1733 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1734
1735         * DataGridView.cs: Add an implementation for UpdateRowHeightInfo. No 
1736         longer throws a NotImplementedException.
1737           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1738         [Fixes bug #488319]
1739
1740 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1741
1742         * DataGridView.cs: Implement IsCurrentRowDirty. No longer throws 
1743         NotImplementedException.
1744
1745 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1746
1747         * DataGridViewColumn.cs, DataGridViewTextBoxColumn.cs: 
1748         Fix SortMode clash handling.
1749         [Fixes bug #488263]
1750
1751 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1752
1753         * DataGridView.cs: Do not show the vertical scrollbar if there is only 
1754         one row or less. For the sake of MSNET compatibility.
1755         [Fixes bug #487988]
1756
1757 2009-03-26  Ivan N. Zlatev  <contact@i-nz.net>
1758
1759         * DataGridView.cs: When the current cell is moved out of the editing row 
1760         be sure to reset it back to a place holder row.
1761
1762 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1763
1764         * DataGridView.cs: If IsHandleCreated and the very first row is added 
1765         to the grid in a non-databound scenario - select the first cell.
1766         [Fixes bug #486881]
1767
1768 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1769
1770         * DataGridView.cs: If we are not databound and empty once the first row 
1771         gets added select the first cell.
1772         [Fixes bug #486881]
1773
1774 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1775
1776         * DataGridView.cs, DataGridViewColumn.cs: Do not set Row/CellTemplate's
1777         DataGridView. They do not belong to a DataGridView.
1778         [Fixes bug #486645]
1779
1780 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1781
1782         * DataGridViewCellCollection.cs, DataGridViewColumnCollection.cs: 
1783         Set indices and associate with DataGridView only after the item is 
1784         add to the internal list.
1785         [Fixes part of bug #486645]
1786
1787 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1788
1789         * DataGridView.cs: Do not add any cells to the FullRowTemplate in RowCount. 
1790         FullRowTemplate already contains all the cells.
1791         [Fixes part of bug #486645]
1792
1793 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1794
1795         * DataGridView.cs, DataGridViewCellCollection.cs: Split the column removal 
1796         to perform Pre and Post removal actions to allow the current cell to be 
1797         moved and all events fired properly before the column is removed.
1798
1799 2009-03-19  Ivan N. Zlatev  <contact@i-nz.net>
1800
1801         * DataGridView.cs, DataGridViewRow.cs: Split the row removal to perform Pre and 
1802         Post removal action to allow the current cell to be moved and all events fired 
1803         properly before the row is removed.
1804
1805 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1806
1807         * DataGridView.cs: Fire CellEnter and CellLeave events for the Cell.
1808         [Fixes bug #486640]
1809
1810 2009-03-18  Jonathan Pobst  <monkey@jpobst.com>
1811
1812         * XplatUICarbon.cs: Commit patch from Alex Shulgin that fixes window
1813         placement of popup windows on OSX.
1814
1815 2009-03-18  Matt Guo  <matt@mattguo.com>
1816
1817         * FontDialog.cs: Override "ToString" for FontDialog.ColorComboBox.ColorComboBoxItem
1818         [Fixes bug #482690]
1819
1820 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1821
1822         * DataGridView.cs: Implement the CellMouseDoubleClick event.
1823         [Fixes bug #486262]
1824
1825 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1826
1827         * DataGridView.cs: Fix scrolling to take into account that the 
1828         scrollbars are actually inside the client area of the datagridview.
1829
1830 2009-03-18  Ivan N. Zlatev  <contact@i-nz.net>
1831
1832         * DataGridView.cs: Implement mouse wheel scrolling.
1833         [Fixes bug #486159]
1834
1835 2009-03-17  Ivan N. Zlatev  <contact@i-nz.net>
1836
1837         * DataGridView.cs: When DataSource changes the rebinding should happen 
1838         not if IsHandleCreated but if BindingContext != null.
1839         [Fixes bug #486013]
1840
1841 2009-03-17  Ivan N. Zlatev  <contact@i-nz.net>
1842
1843         * DataGridView.cs: Browsable(false) properties should be skipped when 
1844         autogenerating the columns.
1845         [Fixes bug #486021]
1846
1847 2009-03-16  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1848
1849         * DomainUpDown.cs: When ReadOnly is true, all the text entered by the
1850         user should use a different handling, trying to use every pressed char
1851         as a unique and only one prefix to compare against the items. Also,
1852         refactor some input check code to avoid duplication.
1853         Fixes #458607.
1854
1855 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1856
1857         * DataGridViewCell.cs: In OwningColumng Handle invalid column index 
1858         silently.
1859         [Fixes bug #485278]
1860
1861 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1862
1863         * DataGridViewBand.cs: Update our State whenever a property changes.
1864         * DataGridView.cs: Don't be so generous in reseting Displayed, because 
1865         it will spawn lots and lots of unneeded State changed events.
1866         [Fixes bug #484989]
1867
1868 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1869
1870         * DataGridView.cs, DataGridViewRow.cs, DataGridViewColumn.cs: 
1871         Add support for invisible rows and columns.
1872         [Fixes bug #484951]
1873
1874 2009-03-16  Ivan N. Zlatev  <contact@i-nz.net>
1875
1876         * DataGridViewCell.cs: Escape literal { in ToString.
1877         * DataGridViewTextBoxCell.cs: Fix ToString.
1878         [Fixes bug #484923]
1879
1880 2009-03-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1881
1882         * MenuAPI.cs: When navigating items using the keyboard properly handle
1883         the case when no item is selected - this way we should try to select
1884         the first or the last item depending on the direction, but no the
1885         second or third one, etc.
1886
1887 2209-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1888
1889         * Form.cs: When calling ProcessCmdKey, just after checking for any
1890         MainMenu, check if there's an active ContextMenu that is *not* owned
1891         by the form - this is needed when a non-focusable control owns a
1892         ContextMenu but its ProcessCmdKey method can't be called since it
1893         can't receive any input.
1894         Fixes #477655.
1895
1896 2009-03-13  Neville Gao  <nevillegao@gmail.com>
1897
1898         * ToolBar.cs: Sent ButtonClick events when button style is DropDown.
1899         * ContextMenu.cs: Add UIA Framework property UIAVisible to detect if
1900         ContextMenu is displayed.
1901
1902 2009-03-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1903
1904         * XplatUIX11.cs: In GetMessage when F1 gets pressed, besides sending a
1905         WM_HELP message for the associated window, don't call
1906         NativeWindow.WndProc *at all*, since this could send a WM_*
1907         key-related to Control.WndProc. Also, return the keypress message, in
1908         case it needs to be preprocessed for any menu.
1909         Fixes #478476.
1910
1911 2009-03-08  Ivan N. Zlatev  <contact@i-nz.net>
1912
1913         * DataGridView.cs: When removing the first displayed row and moving 
1914         the current cell up one we must invalidate the first displayed row 
1915         index before calculating the row heights, etc.
1916         [Fixes bug #483202]
1917
1918 2009-03-08  Ivan N. Zlatev  <contact@i-nz.net>
1919
1920         * DataGridView.cs: Fix three column bugs:
1921            - Rows should be cleared (but not removed) if columns become 0.
1922            - The current cell should get moved
1923            - ColumnCount increase was adding too many columns.
1924
1925 2009-03-07  Ivan N. Zlatev  <contact@i-nz.net>
1926
1927         * DataGridView.cs: Fix RowCount decrease which wasn't working well 
1928         in both scenarions - with and without editing row.
1929
1930 2009-03-06  Ivan N. Zlatev  <contact@i-nz.net>
1931
1932         * DataGridView.cs: Be compatible with MS in that the scroll to 
1933         selection has a synchronous effect. The trick here is that in 
1934         order to avoid unnecessary calculations each time a row/column 
1935         is added/removed we recalculate the whole grid size just before 
1936         just before the scroll to selection.
1937         [Fixes bug #482478]
1938
1939 2009-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
1940
1941         * RichTextBox.cs: LoadFile(string path) should pass by default
1942         RichTextBoxStreamType.RichText, without caring about the detection or
1943         extension of the file.
1944
1945 2009-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1946
1947         * RichTextBox.cs: When calling LoadFile, remove the extra EOL
1948         introduced by StreamReader, since it will convert the EOF to an EOL.
1949         Fixes #479646.
1950
1951 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1952
1953         * ToolStripDropDownMenu.cs: Use Math.Max instead of calculating
1954         preferred size twice.
1955
1956 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1957
1958         * ToolStripMenuItem.cs: Don't draw the dropdown arrow or shortcut
1959         string if we aren't on a ToolStripDropDownMenu.
1960
1961 2009-03-06  Jonathan Pobst  <monkey@jpobst.com>
1962
1963         * ToolStripDropDownButton.cs, ToolStripItem.cs: Refactor some Button
1964         code from Item to Button.  Patch from Alex Shulgin.
1965
1966 2009-03-05  Jonathan Pobst  <monkey@jpobst.com>
1967
1968         * ToolStripDrowDown.cs: Remove some hardcoded values and assumptions.
1969         * ToolStripDropDownButton.cs: This should use a ToolStripDropDownMenu,
1970         not a ToolStripDropDown.
1971         * ToolStripItem.cs: Don't use the item margins on a ToolStripDropDown.
1972
1973 2009-03-04  Ivan N. Zlatev  <contact@i-nz.net>
1974
1975         * DataGridView.cs: Fix RowCount/ColumnCount decreasing.
1976
1977           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1978           [Fixes bug #482133]
1979
1980 2009-03-04  Ivan N. Zlatev  <contact@i-nz.net>
1981
1982         * DataGridView.cs, DataGridViewElement.cs: 
1983            - Always calls OnDataGridViewChanged() if the new DGV is 
1984            not the same/null as the current one.
1985            - Do not throw NREs when setting TopLeftHeaderCell to null
1986            - Unset the DGV for TopLeftHeaderCell when replacing it
1987           Based on a patch by Tom Hindle <tom_hindle@sil.org>
1988           [Fixes bug #481681]
1989
1990 2009-03-04  Jonathan Pobst  <monkey@jpobst.com>
1991
1992         * ToolStripDropDown.cs: When dismissing control due to ESC, don't
1993         hit a NRE if we are a ContextMenuStrip and do not have a parent.
1994         [Fixes bug #478616]
1995
1996 2009-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1997
1998         * ListView.cs: When removing items from a ListViewItemCollection
1999         contained in ListView (not in ListViewGroup), before actually removing
2000         the items remove them also from their -if any- associated groups. If
2001         the item is present in ListViewGroup.Items but not in ListView.Items,
2002         then don't remove it - this is *exactly* what .net seems to do.
2003         Fixes the remaining bits of #478689.
2004
2005 2009-02-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2006
2007         * ListView.cs: In our MouseDown handler in ItemControl use the item in
2008         the very specific *real* position where the mouse was pressed, using
2009         GetItemAtDisplayIndex for that purpose, instead of directly accessing
2010         Items - this is specially useful when groups with Details view is
2011         used. This is what we do in other places when using groups.
2012         Fixes part of #478689.
2013
2014 2009-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2015
2016         * MaskedTextBox.cs: Properly replace selection when a new valid key
2017         is pressed - even when IsOverwriteMode is false. This is what .net
2018         does.
2019
2020 2009-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2021
2022         * MaskedTextBox.cs: When setting Text and RejectOnFirstFailure is
2023         true, use MaskedTextProvider.Set instead of MaskedTextProvider.Replace, 
2024         since Set will keep the previous value in case of error (just what we
2025         need), but still call MaskedTextProvider.Clear if
2026         RejectOnFirstFailure is false - match .net.
2027
2028 2009-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2029
2030         * MaskedTextBox.cs: When setting Text use the very precise algorithm
2031         that .net uses: iterate over every char of the new value, trying to
2032         use every char, and use a normal call to MaskedTextProvider.Replace
2033         call if RejectInputOnFirstFailure is true. Fire OnMaskInputRejected 
2034         in case of error in both cases, as well.
2035         Fixes #477408.
2036
2037 2009-02-25  Neville Gao  <nevillegao@gmail.com>
2038
2039         * ColorDialog.cs: Added UIA Framwork Property:
2040         UIASelectedSmallColorControl.
2041
2042 2009-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2043
2044         * MaskedTextBox.cs: Forgot to update the call of the new method
2045         introduces in the previous patch.
2046
2047 2009-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2048
2049         * MaskedTextBox.cs: Handle OnKeyDown to properly process the Delete
2050         key. Also create a new method to avoid code duplication between
2051         OnKeyDown and OnKeyPress.
2052         Fixes #477388.
2053
2054 2009-02-24  Ivan N. Zlatev  <contact@i-nz.net>
2055
2056         * DataGridViewCell.cs: Invalidate the datagrid when the cell is selected 
2057         or deselected.
2058         [Fixes bug #479124]
2059
2060 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2061
2062         * MaskedTextBox.cs: In OnKeyPress the IsOverwriteMode check is
2063         actually inversed, so put it the right way. Also, don't automatically
2064         look for the next editable item after adding a new one, but way for
2065         the next insertion (this is what .net does) - this is not needed when
2066         MaskedTextProvider.InsertAt is called however, since it already looks for the
2067         next editable position.
2068         Fixes the remaining bits of #477383.
2069
2070 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2071
2072         * MaskedTextBox.cs: In OnKeyPress handle backspace by calling
2073         MaskedTextProvider.RemoveAt method. Also for setting the SelectionStart
2074         property after the text was modified, adjust the testPosition value
2075         depending on what method was called.
2076         Fixes part of #477383.
2077
2078 2009-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2079
2080         * ListView.cs: For EnsureVisible, adjust the view port bounds based on
2081         the existence of the column headers, as well as using this information
2082         to adjust the vscrollbar value, so items never get hidden by the
2083         column headers.
2084         Fixes #478498.
2085
2086 2009-02-23  Ivan N. Zlatev  <contact@i-nz.net>
2087
2088         * DataGridView.cs: Make the ScrollBars property work properly.
2089
2090 2009-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2091
2092         * TextBox.cs: Some code lifting for AutoComplete's support. First,
2093         when handling non-navigation keys, save the original Text typed by the
2094         user, and don't motify it BEFORE. This was a design mistake, since the
2095         re-assignation happens only when navigating the append/suggest list,
2096         not while creating the matches. Also, process the Delete key just like 
2097         the backspace one. Finally, when handling WM_CHAR, ignore both Escape
2098         and Enter keys.
2099         Fixes some missing bits of #469967.
2100
2101 2009-02-22  Ivan N. Zlatev  <contact@i-nz.net>
2102
2103         * DataGridView.cs: Fix row removal in the data-bound scenario.
2104
2105 2009-02-19  Ivan N. Zlatev  <contact@i-nz.net>
2106
2107         * DataGridViewCell.cs: Use strict equality comparison in order to 
2108         prevent superfluous CellValueChanged events.
2109
2110 2009-02-19  Ivan N. Zlatev  <contact@i-nz.net>
2111
2112         * DataGridView.cs: Do not reset the columns when the data list changes, 
2113         but only the rows. Fixes multiple bugs related to sorting, custom 
2114         column styles being reset and more.
2115
2116 2009-02-19  Jonathan Pobst  <monkey@jpobst.com>
2117
2118         * ThemeWin32Classic.cs: Respect a PictureBox's Padding when
2119         drawing the image.
2120
2121 2009-02-18  Andrés G. Aragoneses  <aaragoneses@novell.com>
2122
2123         * ToolBarButton.cs: Oops, use the correct event (fix r127298).
2124
2125 2009-02-17  Andrés G. Aragoneses  <aaragoneses@novell.com>
2126
2127         * ToolBarButton.cs: Event for Enabled property (needed to fix
2128           UIA #474197).
2129
2130 2009-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2131
2132         * TextBox.cs: When handling WndProc with autocomplete activated,
2133         event if the new text is not causing any change in the look up
2134         algorithm, save it as we normally do when numbers and letters.
2135         Fixes #469967.
2136
2137 2009-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2138
2139         * TreeNode.cs: When Text/StateImageIndex/StateImageKey/NodeFont change
2140         Invalidate the proper bounds in the TreeView, not only resetting the
2141         width.
2142         Fixes #475542.
2143
2144 2009-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2145
2146         * TreeNode.cs: Don't return TreeView.BackColor when retrieving our own
2147         BackColor property. This is what .net does in both 1.1 and 2.0.
2148         * TreeView.cs: When selected_node is not the same as highlighted_node,
2149         we need to handle the back color in a different way, trying to use the
2150         node's BackColor if it's not Color.Empty.
2151         Fixes #464200.
2152
2153 2009-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2154
2155         * TreeView.cs: When canceling selection in our MouseUp handler,
2156         invalidate also the previous selected node bounds.
2157         Fixes #464191.
2158
2159 2009-02-07  Ivan N. Zlatev  <contact@i-nz.net>
2160
2161         * DataGridView.cs: End or if end fails then cancel the current edit 
2162         operation before clearing the data source.
2163
2164 2009-02-07  Ivan N. Zlatev  <contact@i-nz.net>
2165
2166         * DataGridView.cs: Data-bind only after the handle is created.
2167         [Fixes bug #473680]
2168
2169 2009-02-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2170
2171         * TreeView.cs: When handling the MouseMove event, check if
2172         focused_node and selected_node fields are null - usually they are non
2173         null, since we have always a selected node, but canceling selection by
2174         handling BeforeSelect event leaves the two of them as null.
2175         Fixes #470451.
2176
2177 2009-02-06  Neville Gao  <nevillegao@gmail.com>
2178
2179         * TabControl.cs: Control enabled to support accessibility.
2180         [Fixes Bug #472428]
2181
2182 2009-02-05  Ivan N. Zlatev  <contact@i-nz.net>
2183
2184         * DataGridViewRowCollection.cs, DataGridView.cs: Fix row insertation: 
2185            - Use ArrayList.Insert instead of the Item property so that the item 
2186            is actually inserted and not an existing item replaced.
2187            - Call DataGridView.OnRowsAddedInternal and drop internal from 
2188            OnRowsAdded for binary compitability. This also fixes several 
2189            redrawing issues.
2190         [Fixes bug #472968]
2191
2192 2009-02-05  Andrés G. Aragoneses  <aaragoneses@novell.com>
2193
2194         * ToolBarButton.cs: Doh, fire OnUIATextChanged *after* setting
2195           the value.
2196
2197 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
2198
2199         * ToolBarButton.cs: Add another event (OnUIATextChanged).
2200
2201 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
2202
2203         * ToolBarButton: Fix typo in previous commit (r125704).
2204
2205 2009-02-04  Andrés G. Aragoneses  <aaragoneses@novell.com>
2206
2207         * ToolBar.cs, ToolBarButton.cs: Add new UIA events to know
2208         when a button gets focus, firing the events from the ToolBar.
2209         r: jpobst
2210
2211 2009-02-04  Mario Carrion  <mcarrion@novell.com>
2212
2213         * ColumnHeader.cs: Raising ListView.ColumnWidthChanged when setting 
2214         Width.
2215         * ListView.cs: Internal method added: RaiseColumnWidthChanged, used by
2216         ColumnHeader to raise ColumnWidthChanged.
2217         [Fixes Bug #467086]
2218
2219 2009-02-03  Ivan N. Zlatev  <contact@i-nz.net>
2220
2221         * DataGridViewRowCollection.cs, DataGridView.cs: Move row completion 
2222         code in the row collection code, so that the completion happens before 
2223         the CollectionChanged event, also better encapsulation.
2224         [Fixes bug #471987]
2225
2226 2009-02-02  Ivan N. Zlatev  <contact@i-nz.net>
2227
2228         * DataGridView.cs: When editing is finished do not remove the editing 
2229         row, because it has already become a real one. Instead add a new one.
2230         [Fixes bug #471754]
2231
2232 2009-02-02  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2233
2234         * TreeView.cs: When drawing the node's image, check that the index
2235         specified by the node is valid for the ImageList.
2236         Fixes #471094.
2237
2238 2009-02-02  Andrés G. Aragoneses  <aaragoneses@novell.com>
2239
2240         * ToolBar.cs: Add new UIAPerformClick method to be called by
2241         UIAutomationWinforms when someone calls Invoke() on the
2242         ToolBarButtonProvider. r: jpobst
2243
2244 2009-02-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2245
2246         * XplatUIX11.cs: Don't send a WM_SHOWWINDOW message when receiving
2247         MapNotify/UnmapNotify events - we are already firing those events in
2248         the proper places, so we avoid this way to send the same message two
2249         times. I'm leaving the handling code in case we could break something
2250         in the future, as this change seems dangerous (but needed).
2251         Fixes #467546.
2252
2253 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
2254
2255         * DataGridView.cs: Complete incomplete rows when they are added to 
2256         the grid.
2257         [Fixes bug #471068]
2258
2259 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
2260
2261         * DataGridView.cs, DataGridViewColumnCollection.cs: Ensure that the 
2262         binding is cleared prior to setting it to null. Fixes a regression 
2263         causing exceptions when the DataSource is set to null and then set 
2264         again to a data source.
2265
2266 2009-02-01  Ivan N. Zlatev  <contact@i-nz.net>
2267
2268         * DataGridView.cs, DataGridViewImageColumn.cs, DataGridViewCell.cs: 
2269            - Make Image/Bitmap cells work.
2270            - Handle images with size greater than the cell.
2271            - Default to MiddleCenter alignment for image cells.
2272         [Fixes bug #471101]
2273
2274 2009-01-30  Ivan N. Zlatev  <contact@i-nz.net>
2275
2276         * UpDownBase.cs: Force Height to PreferredHeight.
2277
2278 2009-01-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2279
2280         * XplatUIX11.cs: We should use utf8 handling clipboard transference
2281         with other x11 applications, and use utf16 when handling clipboard
2282         data in the class library. Update the related points as well.
2283         Fixes #468683.
2284
2285 2009-01-28  Ivan N. Zlatev  <contact@i-nz.net>
2286
2287         * DataGridViewCell.cs: Format strings according to the supplied 
2288         CellStyle.Format.
2289         [Fixes bug #470384]
2290
2291 2009-01-28  Ivan N. Zlatev  <contact@i-nz.net>
2292
2293         * DataGridView.cs: Reset the hover cell if it gets moved due to row(s) 
2294         addition or removal. Fixes multiple crashes in OnMouseMove.
2295
2296 2009-01-27  Ivan N. Zlatev  <contact@i-nz.net>
2297
2298         * DataGridView.cs: Fix a NRE when setting the CurrentCell to null.
2299
2300 2009-01-27  Ivan N. Zlatev  <contact@i-nz.net>
2301
2302         * XplatUIX11.cs: Fire Timer.Tick even if there is no MainForm for the 
2303         current context.
2304         [Fixes bug #469239]
2305
2306 2009-01-26  Andreia Gaita  <avidigal@novell.com>
2307
2308         * WebBrowser.cs: fix initial value of ScrollbarsEnabled, so they
2309         won't be disabled by default.
2310         Fixes #468690
2311
2312 2009-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2313
2314         * DataGridView.cs: Do not clear the rows if we are not databound.
2315
2316 2009-01-26  Ivan N. Zlatev  <contact@i-nz.net>
2317
2318         * DataGridView.cs: Do not be too smart about selecting the first cell 
2319         when the first row is added as this is not what MS does. Fixes the 
2320         failing unit tests.
2321
2322 2009-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2323
2324         * TreeNode.cs: NextVisibleNode and PrevVisibleNode properties don't
2325         take into account the fact that OpenTreeNodeEnumerator needs to call
2326         MoveNext/MovePrevious to actually put the passed node as the one
2327         retrieved in Current. This way this property should work as really
2328         expected in .net.
2329         Fixes part of #467225.
2330
2331 2000-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2332
2333         * TreeView.cs: When calculating the scrollbars, don't use
2334         TreeNode.Bounds, since it still can have the values of the previous
2335         -and now invalid- layout -which depends on TreeView.skipped_nodes, and
2336         could not have been updated as well-, and use the actual number of
2337         visible number of nodes to compute the height needed to contain all
2338         the nodes. Also reset the value of vbar to 0 when disabled - this way
2339         we make sure that, when re-enabled, it will update the visible area of
2340         the treeview, even if the previous value before disabling it is the
2341         same as now. Finally don't do anything for the vbar.ValueChanged
2342         handler - for the case wheer we manually set the value but don't the
2343         vbar is disabled already.
2344         Fixes part of #467225.
2345
2346 2009-01-23  Jonathan Pobst  <monkey@jpobst.com>
2347
2348         * ToolStrip.cs: Switch from foreach to for, in case the collection
2349         somehow changes while enumerating it.
2350
2351 2009-01-23  Ivan N. Zlatev  <contact@i-nz.net>
2352
2353         * DataGridView.cs, DataGridViewCell.cs: Fix crashes when there is no 
2354         editing control.
2355
2356 2009-01-23  Ivan N. Zlatev  <contact@i-nz.net>
2357
2358         * DataGridView.cs: Fix new row adding/editing in the non-databound 
2359         scenario.
2360
2361 2009-01-21  Mike Gorse  <mgorse@novell.com>
2362
2363         * TrackBar.cs: Make LargeIncrement/Decrement internal so that UIA can
2364           use them.
2365           Added UIAValueParamChangedEvent.
2366
2367 2009-01-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2368
2369         * TreeView.cs: In CollapseAll, set vbar to the maximum value, instead
2370         of trying to set as top node the highest parent of the previous top
2371         node. Moving to the bottom of the TreeView after a call to CollapseAll
2372         is exactly what .net does. This should avoid some nasty issue when
2373         CollapseAll is called and we don't need the vertical scroll bar.
2374
2375 2009-01-21  Mario Carrion <mcarrion@novell.com>
2376
2377         * Form.cs: UIA Support: Internal events added: UIAWindowStateChanged
2378         and UIATopMostChanged.
2379
2380 2009-01-21  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2381
2382         * MenuItem.cs: Add UIACheckChanged, UIARadioCheckChanged,
2383         UIAEnabledChanged, and UIATextChanged events.
2384
2385         * Form.cs: Add UIAMenuChanged event.
2386
2387         * Menu.cs:
2388         * MenuAPI.cs: Note which internal APIs are being used by UIA.
2389
2390 2009-01-21  Neville Gao  <nevillegao@gmail.com>
2391
2392         * ToolBar.cs: Control enabled to support accessibility.
2393         [Fixes Bug #455950]
2394
2395 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2396
2397         * TreeView.cs: When handling mouse up event, check whether
2398         highlighted_node is null or not - usually it should be non-null
2399         alwaays, since the mouse down handler sets it, but some externa
2400         operations, such TreeNodeCollection.Clear, could set it to null.
2401         Fixes #438650.
2402
2403 2009-01-19  Ivan N. Zlatev  <contact@i-nz.net>
2404
2405         * ThemeWin32Classic.cs: Draw the menu item shortcut even if the menu 
2406         item is disabled.
2407
2408 2009-01-19  Ivan N. Zlatev  <contact@i-nz.net>
2409
2410         * MenuAPI.cs: Do not handle shortcuts if the menu item is disabled.
2411         [Fixes bug #467285]
2412
2413 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2414
2415         * MonthCalendar.cs: When handling the selection changes using the
2416         mouse, don't set SelectionRange if the selection range didn't actually
2417         change. This matters because, even if we set the range to the same
2418         previous range, an extra DateChanged event is fired. Just to be clear:
2419         SelectionRage property doesn't check whether the new value is
2420         different to the previous one (by ref equals doesn't work here).
2421         Fixes other bits of #364914.
2422
2423 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2424
2425         * MonthCalendar.cs: Remove the extra OnDateChanged call when handling
2426         selection using the keyboard, since we are already firing this event
2427         when setting SelectionRange. Also don't set SelectionRange if the
2428         previous and the new value are the same (the property, just as .net
2429         does, doesn't check whether the previous value and the new one are the
2430         same). This saves us from firing OnDateChanged event if the selection
2431         range didn't change actually.
2432         Fixes the remaining bits of #364914.
2433
2434 2009-01-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2435
2436         * ListBox.cs: When removing an item and the last item is selected,
2437         remove it from the selection, and if selection mode is One try to
2438         select the new last item.
2439         Fixes #465422.
2440
2441 2009-01-16  Mike Gorse  <mgorse@novell.com>
2442
2443         * Splitter.cs: Make MaxSize internal so that UIA code can use it.
2444
2445 2009-01-16  Mario Carrion <mcarrion@novell.com>
2446
2447         * ColumnHeader.cs: UIA Support: raising internal event UIATextChanged 
2448         when changing Text. 
2449
2450 2009-01-16  Carlos Alberto Cortez <calberto.cortez@ggmail.com>
2451
2452         * X11Structs.cs:
2453         * XplatUIX11.cs: Properly encode/decode the unicode strings we
2454         store/retrieve in the Clipboard. Also, since we try to convert the
2455         data to different formats, separate the source and the result of
2456         it, so we can always fallback to the original and don't mix wrong
2457         conversions.
2458
2459 2009-01-16  Mike Gorse  <mgorse@novell.com>
2460
2461         * TextControl.cs: Add UIASelectionChanged event.
2462
2463 2009-01-16  Ivan N. Zlatev  <contact@i-nz.net>
2464
2465         * DataGridView.cs: Forward the first key events to the editing control.
2466         [Fixes bug #457307]
2467
2468 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2469
2470         * Application.cs: Oops, launch the copied handler of PreRun instead of
2471         the global one (gendarme would bark otherwise). (Improving r123375)
2472
2473 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2474
2475         * XplatUI.cs:
2476         * Application.cs: Move the PreRun event fire to the end of the XplatUI
2477         static ctor (we don't move the PreRun event to this class because its
2478         usage would cause the call to the static ctor). This way we can get
2479         a11y support for dialogs that run without App.Run.
2480
2481 2009-01-14  Andrés G. Aragoneses  <aaragoneses@novell.com>
2482
2483         * ListView.cs: New internal property to know the inner array's length of
2484         the location of items, in order to avoid a try-catch strategy for the
2485         case when this array has not been resized yet (for reference, look at
2486         r123288). r: jpobst
2487
2488 2009-01-13  Andrés G. Aragoneses  <aaragoneses@novell.com>
2489
2490         * Application.cs: Simplify UIA initialization, reducing it from 4 to 1
2491         reflection calls. This requires UIAutomationWinforms r123213.
2492
2493 2009-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2494
2495         * MonthCalendar.cs: Detect selection changes in MouseDown/MouseMove
2496         handlers and fire the DateSelected event until MouseUp is reached,
2497         like .net does, instead of firing it for each mouse event.
2498         Fixes part of #364914.
2499
2500 2009-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2501
2502         * TreeView.cs: When the selection gets canceled using the BeforeSelect
2503         event, invalidate the previous highlighted_node bounds, to show the
2504         user that the item was *not* selected.
2505         Fixes #464191.
2506
2507 2009-01-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2508
2509         * ComboBox.cs: Separate some scroll logic: setting SelectedIndex, as
2510         well as -in DropDown and Simple modes- writing in the textbox should
2511         try to set the requested item as the top one, but navigating with the
2512         keyboard and handling mouse selection don't need that behaviour. Also,
2513         when resetting selected_index handling key press events, reset
2514         ComboListBox.HighlightIndex. 
2515         Fixes the remaining bits of #464188.
2516
2517 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2518
2519         * DataGridView.cs: Fix crashes when shortcut keys are pressed, but 
2520         there are no cells:
2521            - CurrentCellAddress should be -1, -1 and not 0, 0.
2522            - Be tolerant and fall back to clearing the current cell if either 
2523            column or row is -1 in MoveCurrentCell.
2524            - Misc. more -1 checks.
2525
2526 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2527
2528         * DataGridView.cs: Preserve the column index. Fixes a regression 
2529         introduced by the data binding position tracking code.
2530
2531 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2532
2533         * DataGridView.cs: If the bottom of the row matches the client height 
2534         do not regard the row as partially visible. Fixes the weird scrolling 
2535         when there is no scrollbar.
2536
2537 2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
2538
2539         * DataGridViewComboBoxCell.cs: Implement/Fix the data binding.
2540
2541 2009-01-09  Mario Carrion  <mcarrion@novell.com>
2542
2543         * MessageBox.cs: Fixed internal UIAIconRectangle property.
2544
2545 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2546
2547         * DataGridViewCheckBoxCell.cs: Respect the ReadOnly state of the Cell.
2548
2549 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2550
2551         * DataGridView.cs: Track the Position in the CurrencyManager.
2552
2553 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2554
2555         * DataGridView.cs: Implement data-bound new item editing/addition.
2556         * DataGridViewRowCollection.cs: Make it possible for us to internally 
2557         remove the edit row.
2558         [Fixes bugs #457107, #457308, #325240]
2559
2560 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2561
2562         * CurrencyManager.cs: Even if Position is set to a greater value than the 
2563         list count reset it to position of the last item.
2564
2565 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2566
2567         * BindingSource.cs: AddNew doesn't set index/add_pending for IBindingList. 
2568         Fix that in order to make CancelNew to work.
2569
2570 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2571
2572         * BindingSource.cs: When adding a new item try to delegate to the internal 
2573         list first before throwing an exception.
2574
2575 2009-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2576
2577         * ComboBox.cs: When setting the text and adjusting the top_item, do it
2578         *only* if the current item is *not* visible already.
2579         Fixes part of #464188.
2580
2581 2009-01-09  Ivan N. Zlatev  <contact@i-nz.net>
2582
2583         * DataGridView.cs: Requesting the CurrencyManager for the first time can 
2584         lead to unexpected OnBindingContextChanged calls and recursive rebinding. 
2585         Fix that.
2586         [Fixes bug #464493]
2587
2588 2009-01-08  Brad Taylor  <brad@getcoded.net>
2589
2590         * ComboBox.cs: Expose a few private fields as internal UIA properties.
2591
2592 2009-01-07  Mario Carrion <mcarrion@novell.com>
2593         
2594         * DataGrid.cs: CWL removed.
2595
2596 2009-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2597
2598         * RadioButton.cs: When setting Checked, we should first update the
2599         check state of the current RadioButton, as well as invalidating it,
2600         and after that actually update the siblings. This is done to match
2601         .net.
2602         Fixes the remaining bits of #463028.
2603
2604 2009-01-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2605
2606         * RadioButton.cs: Setting Checked to false should set TabStop to stop
2607         as well. Also, when we get the focus and no other RadioButton is
2608         selected in the parent control, we should mark ourselves as Checked.
2609         Fixes part of #463028.
2610
2611 2009-01-05  Mario Carrion <mcarrion@novell.com>
2612
2613         * DataGrid.cs: UIA suppport. internal events: 
2614         UIAGridCellChanged, UIAColumnsHeadersVisibleChanged, 
2615         UIASelectionChanged, UIACollectionChanged. Internal properties: 
2616         UIARowHeight, UIACellsArea, UIACaptionArea, 
2617         UIAColumnHeadersArea, UIASelectedRows, UIACurrentTableStyle, 
2618         UIAVScrollBar and UIAHScrollBar.
2619
2620 2009-01-05  Jonathan Pobst  <monkey@jpobst.com>
2621
2622         * ToolStripSplitStackLayout.cs: Enable the overflow button if any
2623         of the buttons are set to Overflow = Always.
2624         [Fixes bug #463013]
2625
2626 2009-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2627
2628         * BindingNavigator.cs: Properly enable/disable the toolstrip buttons,
2629         based on whether the binding source is availble or not. Fixes #463008.
2630
2631 2009-01-03  Ivan N. Zlatev  <contact@i-nz.net>
2632
2633         * DataGridViewCell.cs: We should return a value even if we are not bound 
2634         to a DataGridView.
2635
2636 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2637
2638         * CurrencyManager.cs, DataGrid.cs: 
2639            - Rename CanAddRows to AllowNew. The CurrencyManager has no 
2640            concept of "rows".
2641            - Add two more internal properties AllowRemove and AllowEdit.
2642         * DataGridView.cs: Refactor in a data-bound situation AllowUserToAddRows, 
2643         AllowUserToDeleteRows and cell ReadOnly state to be also checked against the 
2644         CurrencyManager data source.
2645
2646 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2647
2648         * DataGridView.cs: Fix crashes caused by assigning negative values to 
2649         ScrollBar.LargeIncrement when the ClientSize.Width/Height is less than 
2650         the column/row heights/widths.
2651         [Fixes bug #462684]
2652
2653 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2654
2655         * DataGridView.cs: Non-autogenerated columns that have a data property 
2656         set that exists in the current datasource should be set to be data-bound.
2657
2658 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2659
2660         * DataGridView.cs: Fix column sorting for columns containing null 
2661         values. A "null" value is not always "null" (e.g could be String.Empty) 
2662         and thus parsing numeric types throwed an exception for "null" values.
2663
2664 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2665
2666         * DataGridView.cs: Detach the editing control when the edit is 
2667         finished.
2668
2669 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2670
2671         * DataGridView.cs: Multiple fixes to handle last column/row removal 
2672         and cell movement after that instead of throwing exceptions.
2673
2674 2009-01-02  Ivan N. Zlatev  <contact@i-nz.net>
2675
2676         * DataGridViewCellCollection.cs: When cells are removed the column 
2677         indices become invalid if the cell is not the last one and have to 
2678         be refreshed.
2679
2680 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2681
2682         * DataGridView.cs: Return false in CommitEdit if there was an error.
2683
2684 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2685
2686         * DataGridView.cs: Remove a leftover Console.WriteLine.
2687
2688 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2689
2690         * DataGridViewRow.cs: Access the indexer of the data manager directly 
2691         instead of the internal list.
2692
2693 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2694
2695         * DataGridViewCell.cs, DataGridView.cs, DataGridViewCheckBoxCell.cs: 
2696         Rewrite the value getting, setting, parsing, formatting logic:
2697            - If data-bound value get/set should actually get and set from the 
2698              data source.
2699            - Make proper usage of TypeConverters for value parsing/formatting.
2700            - Raise DataError if setting the new value fails.
2701            - Get rid off the internal valueType field and get/set the ValueType 
2702            property instead.
2703         [Fixes bug #462051]
2704
2705 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2706
2707         * DataGridView.cs: Rewrite the DataBinding layer:
2708            - Get rid off all BindingSource/IBindingList/DataSet/DataTable 
2709            specific code.
2710            - Get rid off the per DataSource type column autogeneration code.
2711            - Use the CurrencyManager for everything that is DataBinding related.
2712
2713 2009-01-01  Ivan N. Zlatev  <contact@i-nz.net>
2714
2715         * CurrencyManager.cs: Do not fire duplicate ListChanged events.
2716
2717 2008-12-31  Ivan N. Zlatev  <contact@i-nz.net>
2718
2719         * DataGridView.cs, DataGridViewRow.cs: Add a new internal property 
2720         DataManager to fetch the CurrencyManager for the DataGridView and to 
2721         spare this logic for the other components to follow.
2722
2723 2008-12-31  Mario Carrion  <mcarrion@novell.com>
2724
2725         * MessageBox.cs: UIA support: new properties: UIAMessage, 
2726         UIAMessageRectangle and UIAIconRectangle.
2727
2728 2008-12-31  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2729
2730         * FileDialog.cs: Add PopupButtonPanel.PopupButton.PerformClick method
2731         and DirComboBox.DirComboBoxItem.ToString override for UIA support.
2732
2733 2008-12-31  Ivan N. Zlatev  <contact@i-nz.net>
2734
2735         * DataGridView.cs: Do not autogenerate duplicate column for a 
2736         data member that has already problematically been assigned one.
2737         [Fixes bug #457305]
2738
2739 2008-12-30  Jonathan Pobst  <monkey@jpobst.com>
2740
2741         * ProfessionalColorTable.cs: Better detection of user's theme.
2742         [Fixes bug #462766]
2743
2744 2008-12-30  Ivan N. Zlatev  <contact@i-nz.net>
2745
2746         * DataGridView.cs: In the case where there are no autogenerated 
2747         columns and the user adds columns problematically we must generate 
2748         the rows after the very first column is added.
2749
2750 2008-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2751
2752         * DateTimePicker.cs: When increasing/decreasing the value of month
2753         with ShowUpDown set to true, moving from december to january, and
2754         moving from january to december should adjust the year to the next and
2755         the previous year, respectively.
2756         Fixes the remaining bits of #459674.
2757
2758 2008-12-30  Ivan N. Zlatev  <contact@i-nz.net>
2759
2760         * DataGridView.cs: If a new cell is selected edit mode should be 
2761         immediately enabled only if EditOnEnter is set. Whether the mouse 
2762         or not was used to select the cell is irrelevant.
2763
2764 2008-12-29  Ivan N. Zlatev  <contact@i-nz.net>
2765
2766         * DataGridView.cs: Remove a bogus ReBind call, which was causing 
2767         recursive rebinding.
2768
2769 2008-12-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2770
2771         * DateTimePicker.cs: Handle the "MMMM" month format.
2772         Fixes #459674.
2773
2774 2008-12-23  Ivan N. Zlatev  <contact@i-nz.net>
2775
2776         * DataGridView.cs: 
2777            - Make ReBind private and refactor various calls to call ReBind 
2778            instead of ClearBinding/DoBinding
2779            - Rebind when the column collection changes
2780         * DataGridViewColumnCollection.cs: 
2781            - Leave the rebinding on change to be handled by the DataGridView.
2782
2783 2008-12-23  Jonathan Pobst  <monkey@jpobst.com>
2784
2785         * DataGridView.cs: Add a ReBind convenience method.
2786         * DataGridViewColumnCollection.cs: Rebind when a column is added.
2787         [Fixes bug #462019]
2788
2789 2008-12-23  Neville Gao  <nevillegao@gmail.com>
2790
2791         * StatusBar.cs: Modified argument variable.
2792         * SplitContainer.cs: Control enabled to support accessibility.
2793         [Fixes Bug #455950]
2794
2795 2008-12-22  Jonathan Pobst  <monkey@jpobst.com>
2796
2797         * ToolStripMenuItem.cs: Guard against an NRE.
2798         [Fixes bug #457110]
2799
2800 2008-12-22  Mario Carrion  <mcarrion@novell.com>
2801
2802         * Control.cs: AccessibleXXXX properties don't return 
2803         AccessibleObject.XXXX, instead a local referece is returned.
2804
2805 2008-12-22  Neville Gao  <nevillegao@gmail.com>
2806
2807         * PrintPreviewControl.cs: Added internal properties to support
2808         accessibility.
2809         [Fixes Bug #459699]
2810
2811 2008-12-19  Mario Carrion  <mcarrion@novell.com>
2812
2813         * Control.cs: Reverted r121561. 
2814
2815 2008-12-19  Andrés G. Aragoneses  <aaragoneses@novell.com>
2816
2817         * X11DesktopColors.cs: Since r121873 we don't need gtk a11y checks here,
2818         it has been moved to the bridge.
2819
2820 2008-12-18  Brad Taylor  <brad@getcoded.net>
2821
2822         * DateTimePicker.cs: Add a few UIA specific events, and a couple
2823         internal methods useful for UIA.
2824
2825 2008-12-18  Mario Carrion <mcarrion@novell.com>
2826
2827         * ListBox.cs: Fixed GetItemRectangle when MultiColumn is true.
2828         [Fixes Bug #455752]
2829
2830 2008-12-17  Mike Gorse  <mgorse@novell.com>
2831
2832         * ListView.cs, ListViewItem.cs: Send OnUIAFocusedItemChanged if an
2833           item's Focused property is set.
2834
2835 2008-12-17  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2836
2837         * TreeView.cs:
2838         * TreeNode.cs:
2839         * TreeNodeCollection.cs: Add events for UIA support:
2840         UIACheckBoxesChanged, UIALabelEditChanged, UIANodeTextChanged, and
2841         UIACollectionChanged.
2842
2843 2008-12-17  Bill Holmes  <billholmes54@gmail.com>
2844
2845         * ListViewItem.cs (ListViewSubItem.ctor): Initalizing the 
2846           SubItemStyle member field. 
2847
2848         Contributed under MIT/X11 license.
2849
2850 2008-12-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2851
2852         * ListBox.cs: In MultiColumn mode don't use top_index to calculate the
2853         y coord, since it's useless in this case, and we need to rely only on
2854         the number of rows and ItemHeight to compute this value.
2855         Fixes part of #257471.
2856
2857 2008-12-15  Mike Gorse  <mgorse@novell.com>
2858
2859         * StatusBar.cs: Send OnUIACollectionChanged in Remove().
2860
2861 2008-12-15  Mario Carrion  <mcarrion@novell.com>
2862
2863         * Control.cs: Accessibility properties instantiate AccessibilityObject when
2864         needed.
2865         [Fixes Bug #459223]
2866
2867 2008-12-15  Brad Taylor  <brad@getcoded.net>
2868
2869         * ToolStripItem.cs: Add a UIA specific event for listening for when a
2870         ToolStripItem becomes selected or deselected.
2871
2872 2008-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2873
2874         * MonthCalendar.cs: Select the date in MouseDown, not in MouseUp, as
2875         .net does. Use the date in the point of the mouse move coords as the
2876         new range as well, if the left button of the mouse is being pressed.
2877         Fixes #364914.
2878
2879 2008-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2880
2881         * MonthCalendar.cs: When modifying either AnnuallyBoldedDates,
2882         MonthlyBoldedDates or BoldedDates call UpdateBoldedDates, to
2883         effectively repaint the control.
2884         Fixes the remaining bits of #417961.
2885
2886 2008-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2887
2888         * MonthCalendar.cs: When setting MaxDate/MinDate, adjust the selected
2889         range to contain only dates within the new possible range.
2890         Fixes part of #417961.
2891
2892 2008-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2893
2894         * MaskedTextBox.cs: MaskedTextService.Replace doesn't expect the
2895         length of the text, but the end position, so we need to substract 1 to
2896         have a valid value. Also, in the same InputText method, don't use
2897         SelectionLength as the length of the text, since the selected text
2898         could actually be empty, but we need to set the value anyway.
2899         Fixes #457370.
2900
2901 2008-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2902
2903         * TextBox.cs: Don't do any auto complete task if the custom source is
2904         null or empty. Also avoid duplication of code.
2905         Fixes #457743.
2906
2907 2008-12-09  Ivan N. Zlatev  <contact@i-nz.net>
2908
2909         * DataGridView.cs: Refresh column sizes when new rows are added.
2910         [Fixes bug #457050]
2911
2912 2008-12-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
2913         * RichTextBox.cs: When parsing the contents of a rtf file, don't call
2914         Split to create a line - we are already doing this, by _adding_ a new
2915         one when rtf_cursor_x is 0 (this field gets this value just after we
2916         receive the newline param as true). This avoids having a proportional number
2917         of empty lines in the end of the rich text box.
2918         Fixes #396664.
2919
2920 2008-12-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2921
2922         * RichTextBox.cs: When saving the contents as a plain text, don't add
2923         a new line for every Line structure, since the data in Document
2924         already contains the new line characters. This avoids duplicated new
2925         lines using the Save methods.
2926         Fixes #445618.
2927
2928 2008-12-09  Sandy Armstrong  <sanfordarmstrong@gmail.com>
2929
2930         * TreeView.cs: Expose ScrollBars as internal properties, for use by UIA
2931         framework.  Fixes bug #457678.
2932
2933 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2934
2935         * DataGridViewRow.cs: Prevent an exception on a not yet databound grid, 
2936         where datasource is null.
2937         [Fixes exception reported in bug 441240]
2938
2939 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2940
2941         * DataGridView.cs: EndEdit validation fixes.
2942
2943 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2944
2945         * DataGridView.cs: This is the cool patch that adds support for 
2946         actually updating the data in the databinding backend after editing. 
2947         With bonus firing and handling the DataError event.
2948
2949 2008-12-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2950
2951         * Line.cs: When calculating the text tags's Shift value, store it as
2952         pixels instead of points. This way we can actually handle different
2953         fonts in the same RichTextBox, as well as the right size of the caret.
2954         Fixes part of #351938.
2955
2956 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2957
2958         * DataGridViewCheckBoxCell.cs: Fix to make it work. Wrong value was 
2959         casted to CheckState causing InvalidCastExceptions.
2960
2961 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2962
2963         * DataGridView.cs: Fix the DataGridViewEditMode.EditOnEnter behavior 
2964         to not depend on the item being clicked.
2965
2966 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2967
2968         * DataGridView.cs: Implement NotifyCurrentCellDirty, so that it no 
2969         longer throws a NotImplementedException.
2970
2971 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2972
2973         * DataGridView.cs: Set EditingControlFormattedValue when preparing an 
2974         IDataGridViewEditingControl for editing.
2975
2976 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2977
2978         * DataGridViewComboBoxCell.cs: Implement data binding support.
2979
2980 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2981
2982         * DataGridView.cs: Use the CurrencyManager to update the data source 
2983         binding position instead of casting the data sourcde to BindingSource.
2984         This enables position updating for other type of data sources.
2985
2986 2008-12-08  Ivan N. Zlatev  <contact@i-nz.net>
2987
2988         * ComboBox.cs: Update the SelectedIndex before updating the Text 
2989         in OnDisplayMemberChanged.
2990
2991 2008-12-07  Ivan N. Zlatev  <contact@i-nz.net>
2992
2993         * DataGridView.cs: Fix our support for IDataGridViewEditingControl.
2994         [Fixes bug #457112]
2995
2996 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
2997
2998         * DataGridView.cs: Sorting fixes:
2999            - Be strict when sorting is enabled.
3000            - If there is a data source delegate the sorting request.
3001
3002 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
3003
3004         * Binding.cs: When converting the data also try with the destination 
3005         type typeconverter. This indirectly adds support for Nullable types 
3006         in our databinding layer.
3007
3008 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
3009
3010         * DataGridView.cs: When cell editing is finished focus back the 
3011         DataGridView. Fixes keyboard navigation post-editing.
3012
3013 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
3014
3015         * DataGridView.cs: Fix the cell editing by delaying the currentCell 
3016         setting to after EndEdit is called for the old cell.
3017
3018 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
3019
3020         * BindingSource.cs: Reset the bindings. Fixes a NotWorking test.
3021
3022 2008-12-06  Ivan N. Zlatev  <contact@i-nz.net>
3023
3024         * XplatUIX11.cs: Send WM_HELP only to the focused window.
3025
3026 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
3027
3028         * CurrencyManager.cs: Fix exceptions when resetting the data source 
3029         for the same time (e.g. in ComboBox): 
3030            - Do not set the list position if we are still transferring data
3031            - When resetting the list firstly push the data then update the 
3032            binding.
3033         * Binding.cs: Check BindingManager.Position == -1 instead of 
3034         BindingManager.Current == null in order to avoid unexpected 
3035         exceptions.
3036
3037 2008-12-05  Brad Taylor  <brad@getcoded.net>
3038
3039         * MonthCalendar.cs: Add UIA specific events so that we can know when
3040         the selection changes, and when MaxSelectedCount changes.
3041
3042 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
3043
3044         * DataGridView.cs: Cleanup rows_displayed out of OnPaint. It's not 
3045         used for anything.
3046
3047 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
3048
3049         * DataGridView.cs: Fix scrolling and selection of cells/rows prior
3050         to the control being drawn for the first time by:
3051            - Implement DisplayedRowsCount to not rely on the control being
3052            already painted. Also added support for the partial row flag.
3053            - Fix scrolling to take into account partial rows and scroll to
3054            them.
3055         [Fixes bug #456527]
3056
3057 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
3058
3059         * DataGridView.cs: Do not reset the CurrentCell when the handle is
3060         created if the user has already set it.
3061
3062 2008-12-05  Ivan N. Zlatev  <contact@i-nz.net>
3063
3064         * DataGridView.cs: Fix CurrentCell to actually select the cell.
3065
3066 2008-12-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3067
3068         * XplatUIX11.cs: Add support to RichTextFormat by reading it as ascii
3069         text and then let the underneath users of IDataObject interpret and
3070         parse by themselves. 
3071         Fixes #439251.
3072
3073 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3074
3075         * DataGridView.cs: Fix my previous commit to actually update what it 
3076         was supposed to.
3077
3078 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3079
3080         * DataGridView.cs: Ensure that when a row is removed the all the 
3081         current row/column/cell get updated. Fixes multiple exceptions.
3082
3083 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3084
3085         * DataGridView.cs: Fix scrolling to the current cell when key navigation 
3086         is used.
3087         [Fixes bug #443560]
3088
3089 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3090
3091         * DataGridView.cs, DataGridViewCell.cs: Fire CellStateChanged events.
3092         * DataGridViewCell.cs: Set the cell as selected prior to setting the 
3093         new state.
3094         [Fixes issue 1 in bug #443560]
3095
3096 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3097
3098         * DataGridView.cs: Invalidate after the current row/column seletion 
3099         chagnes.
3100         [Fixes bug #438434]
3101
3102 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3103
3104         * DataGridView.cs: Refresh the data if the data list is reset, etc.
3105
3106 2008-12-01  Ivan N. Zlatev  <contact@i-nz.net>
3107
3108         * DataGridView.cs: Handle datasource state changes:
3109            - IBindingList - list changes
3110            - BindingSource - list changed and datasource changes
3111
3112 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3113
3114         * DataGridView.cs: Select the first cell when databound. 
3115         Visually select when CurrentCell is set.
3116
3117 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3118
3119         * DataGridView.cs: Set the current cell before raising CellClick.
3120
3121 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3122
3123         * DataGridView.cs: Cleanup MoveCurrentCell to not fire any CellEnter, 
3124         CellLeave events as this is already done in SetCurrentCellAddressCore.
3125
3126 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3127
3128         * DataGridView.cs: Set the minimum size for the columns to be the 
3129         width of their header, so that the columns don't get squashed 
3130         all together.
3131
3132 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3133
3134         * DataGridView.cs: After the data is bound PerformLayout, so that 
3135         the columns get autosized.
3136
3137 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3138
3139         * DataGridView.cs: Move all currentCell setting code into 
3140         one central place - SetCurrentCellAddressCore. That way the 
3141         current cell is properly updated when programatically set.
3142         Fire RowEnter/Leave events.
3143
3144 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3145
3146         * DataGridView.cs: Update the CurrencyManager.Position, so that 
3147         when a BindingSource is used BindingSource.Current will be correct.
3148
3149 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3150
3151         * GroupBoxRenderer.cs: Fix when VisualStyles disabled:
3152            - No caption text is drawn because Color.Empty is used.
3153            - Fix top and height off by 1.
3154
3155 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3156
3157         * DataGridViewRow.cs: Implement DataBoundItem.
3158
3159 2008-11-30  Ivan N. Zlatev  <contact@i-nz.net>
3160
3161         * BindingSource.cs: Return null for Current if there is no data present.
3162
3163 2008-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3164
3165         * MenuAPI.cs: Add a Menu.SelectedItem null check when navigating the
3166         menus using the arrow keys. Also when handling the left arrow key, don't 
3167         assign the current menu to the parent one, if the parent is null.
3168         Fixes #446392.
3169
3170 2008-11-24  Everaldo Canuto  <ecanuto@novell.com>
3171
3172         * PrintPreviewDialog.cs: Fix toolbar size, height must be 26. Fixes bug
3173         #413501.
3174
3175 2008-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3176
3177         * Scrollbar.cs:
3178         * ScrollableControl.cs: Simplify the code to manually set the size of
3179         the thum area, avoiding duplication of code, and also preserving the
3180         right value for different code paths - this can happen when size
3181         changes are made to the scrollbar after setting LargeChange, Maximum
3182         or related properties for the ScrollBar.
3183
3184 2008-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3185
3186         * ScrollableControl.cs: When scrolling, don't invalidate the entire
3187         area, and call to XplatUIX11.ScrollWindow instead. This is exactly
3188         what .Net does: copy the visible area, and only invalidate the part of
3189         the area that wasn't visible before scrolling.
3190         Fixes #441738.
3191
3192 2008-11-24  Jonathan Pobst  <monkey@jpobst.com>
3193
3194         * DataGridView.cs: Listen for a DataTable's TableCleared event so we
3195         can clear ourselves when it is raised, we don't have a newrowindex
3196         if we don't have any columns.
3197         * DataGridViewRowCollection.cs: Ensure we always delete all the rows,
3198         re-index after each delete so the NewRow will have the correct index.
3199         [Fixes bug #448005]
3200
3201 2008-11-24  Jonathan Pobst  <monkey@jpobst.com>
3202
3203         * Form.cs: Don't change min/max size if it is empty.
3204         [Fixes bug #447873]
3205
3206 2008-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3207
3208         * ScrollBar.cs:
3209         * ScrollableControl.cs: When the manual thumb size is used, the
3210         maximum allowed value should depend on that thumb size, instead of
3211         LargeChange (using the maximum - LargeChange + 1 value). But
3212         LargeChange should be used normally when incrementing/decrementing.
3213         Fixes the remaining part of #441546.
3214
3215 2008-11-23  Andreia Gaita  <avidigal@novell.com>
3216
3217         * WebBrowser.cs, WebBrowserBase.cs: Delay loading of DocumentStream 
3218         until an about:blank has been loaded (according to spec). Fix 
3219         ScrollbarsEnabled to set when a document is loaded (since we use js 
3220         for it). Fix url so it reflects the current loading document and not 
3221         the previous one. Send StatusChanged events.
3222
3223 2008-11-23  Andreia Gaita  <avidigal@novell.com>
3224
3225         * Application.cs: If a message comes in for an embedded control
3226         (like webbrowser) when we're capturing the keyboard, release the
3227         capture and continue.
3228         [fixes #429462]
3229
3230 2008-11-22  Andreia Gaita  <avidigal@novell.com>
3231
3232         * XplatUI.cs: Only use PlatformID.MacOSX enum when not building on VS
3233
3234 2008-11-21  Andreia Gaita  <avidigal@novell.com>
3235
3236         * WebBrowser.cs, HtmlDocument.cs: Fixes for #428172
3237         
3238 2008-11-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3239
3240         * ScrollBar.cs:
3241         * ScrollableControl.cs: Set manually the thumb size for the
3242         ScrollableControl scrollbars, so any further changes to the underneath
3243         scrollbars respect the original size.
3244         Fixes part of #441546.
3245
3246 2008-11-21  Geoff Norton  <gnorton@novell.com>
3247
3248         * XplatUI.cs: Ensure that we can run on .net 2.0 with mono 2.2 where
3249         PlatformID.MacOSX now exists.
3250
3251 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
3252
3253         * TextBoxBase.cs: Provide a default implementation for ChangeBackColor.
3254         Having something internal abstract isn't very nice for people who want
3255         to inherit from this class.
3256
3257 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
3258
3259         * ToolStripItem.cs: Don't crash if ImageIndex or ImageKey is set to an
3260         invalid value.  Just return null for the Image, and use the ImageList's
3261         ImageSize for calculations.
3262
3263 2008-11-20  Jonathan Pobst  <monkey@jpobst.com>
3264
3265         * ComboBox.cs: Call HideWindow instead of Hide when closing the dropdown
3266         through DroppedDown so the proper events get called and state gets reset.
3267         [Fixes bug #446805]
3268
3269 2008-11-18  Jonathan Pobst  <monkey@jpobst.com>
3270
3271         * DataGridViewColumnCollection.cs: Make sure we re-index the columns after
3272         the collection is modified.
3273
3274 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
3275
3276         * DomainUpDown.cs: Remove string cache and reflection optimizations.  They
3277         aren't always correct, and fixing them for every case is not worth the
3278         negligible benefit they provide.
3279         [Fixes bug #445713]
3280
3281 2008-11-17  Jonathan Pobst  <monkey@jpobst.com>
3282
3283         * DataGridView.cs: We should never add actual cells to the RowTemplate.
3284         Internally, use RowTemplateFull to give us a new row with cells.
3285         * DataGridViewColumnCollection.cs: Clear Rows when we clear Columns.
3286         * DataGridViewRowCollection.cs: Use RowTemplateFull.
3287
3288 2008-11-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3289
3290         * XplatUIX11.cs: Forms without borders should be able to change its
3291         size - specially they should be able to be maximized, adding the
3292         respective MotifFunctions.Resize bit when setting window properties as
3293         well as *not* marking the Hwnd as size fixed.
3294         Fixes #444347.
3295
3296 2008-11-12  Jonathan Pobst  <monkey@jpobst.com>
3297
3298         * DataGridViewCellStyle.cs: Allow SelectionBackColor to have
3299         an alpha value.
3300         [Fixes bug #444348]
3301
3302 2008-11-11  Andrés G. Aragoneses  <aaragoneses@novell.com>
3303
3304        * Application.cs: After UIA assembly is successfully loaded,
3305        dump any exception that happens on initialization to stderr.
3306
3307 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
3308
3309         * DataGridView.cs: Add internal to OnAutoSizeColumnModeChanged.
3310         * DataGridViewColumn.cs: Recalculate columns when AutoSizeMode changes.  Raise
3311         AutoSizeColumnModeChanged.
3312         [Fixes bug #443609]
3313
3314 2008-11-11  Jonathan Pobst  <monkey@jpobst.com>
3315
3316         * DataGridViewRowCollection.cs: Guard against the user deleting the
3317         NewRow.  Add an internal delete so we can still delete it.
3318         * DataGridView.cs: Use the new internal delete when deleting the NewRow.
3319         [Fixes bug #442181]
3320
3321 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
3322
3323         * TextControl.cs: Add some order of operation to our math so
3324         we don't end up with a negative height for our invalidate rect.
3325         [Fixes bug #381889]
3326
3327 2008-11-10  Jonathan Pobst  <monkey@jpobst.com>
3328
3329         * Control.cs: When our enabled changes, notify our implicit children
3330         controls as well as our regular controls.
3331         [Fixes bug #441523]
3332
3333 2008-11-08  Andreia Gaita <shana@jitted.com> 
3334
3335         * HtmlElement.cs: Small code cleanup
3336
3337 2008-11-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3338
3339         * BindingNavigator.cs: MoveFirstItem should be enabled only if
3340         position is larger than 0, not only different than 0. Also Position
3341         and Count items should be enabled if the BindingSource is non null and
3342         non empty.
3343         Fixes #439961.
3344
3345 2008-11-05  Jonathan Pobst  <monkey@jpobst.com>
3346
3347         * TabControl.cs: Don't raise SelectedIndexChanged until we have
3348         actually modified the tab collection, so TabCount will be correct.
3349         [Fixes bug #441896]
3350
3351 2008-11-05  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3352
3353         * ListViewItem.cs: Mark ListViewSubItem.UIATextChanged event as
3354         NonSerialized to fix serialization of ListViewItem.
3355
3356 2008-11-04  Mike Gorse  <mgorse@novell.com>
3357
3358         * ListView.cs: Call OnUIAFocusedItemChanged after completing the
3359           focus change, and always call in SetFocusedItem.
3360         * ListBox.cs: Add UIAFocusedItemChanged as in ListView.
3361
3362 2008-11-04  Jonathan Pobst  <monkey@jpobst.com>
3363
3364         * ComboBox.cs: Only call OnDrawItem when we are using an OwnerDraw
3365         mode.  Based on a patch by John Mortlock.
3366         [Fixes bug #436790]
3367
3368 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3369
3370         * ListView.cs: Use the UsingGroups property where needed, instead of
3371         duplicating the check in other places.
3372
3373 2008-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3374
3375         * ListView.cs: When calculating layout, refresh the count of items
3376         belonging to the default item, insteas of doing it only one time. This
3377         was already working fine for icon views, not not for details.
3378         Fixes #438948.
3379
3380 2008-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3381
3382         * ListView.cs:
3383         * ListViewItem.cs:
3384         * ThemeWin32Classic.cs: Don't render Tile view if there wasn't a call
3385         to Applicatin.EnableVisualStyles, and use LargeIcon view, as .net
3386         does.
3387         Fixes #437933.
3388
3389 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3390
3391         * ListView.cs: Wrap call to OnUIAFocusedItemChanged with #if NET_2_0.
3392
3393 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3394
3395         * ListView.cs: Add internal UIAFocusedItemChanged event.  Fixes bug
3396         #441280, patch by Mike Gorse <mgorse@novell.com>.
3397
3398 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3399
3400         * TreeView.cs: When doing ExpandAll, don't scroll to the bottom
3401         if there is no scrollbar.
3402         [Fixes bug #440885]
3403
3404 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3405
3406         * ProgressBar.cs, ThemeWin32Classic.cs, ThemeVisualStyles.cs: Commit
3407         patch from Andy Hume that fixes many issues with ProgressBar.
3408         [See bug #440220]
3409
3410 2008-11-03  Jonathan Pobst  <monkey@jpobst.com>
3411
3412         * Form.cs: Don't allow MinimumSize and MaximumSize to conflict.
3413         [Fixes bug #438866]
3414
3415 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3416
3417         * UpDownBase.cs:
3418         * DomainUpDown.cs:
3419         * NumericUpDown.cs: Internal events added to UpDownBase:
3420         UIAUpButtonClick and UIADownButtonClick.  Patch by Neville Gao
3421         <ngao@novell.com>.
3422
3423 2008-11-03  Sandy Armstrong  <sanfordarmstrong@gmail.com>
3424
3425         * ToolStripLabel.cs: Internal event added: UIAIsLinkChanged.
3426
3427 2008-11-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3428
3429         * ListView.cs:
3430         * ThemeWin32Classic.cs: Don't use groups nor insertion mark in
3431         Application.EnableVisualStyles hasn't been called.
3432         Fixes part of #437933.
3433
3434 2008-10-31  Andreia Gaita  <shana@jitted.com>
3435
3436         * Form.cs (SetVisibleCore): since set_ActiveControl no longer calls focus
3437           if the container is not focused already, we need to specifically set
3438           focus to the first available control, or to the form itself if there
3439           are no controls.
3440
3441 2008-10-31  Andreia Gaita  <shana@jitted.com>
3442
3443         activate message fix: a call to .Show now waits until both WM_SHOWWINDOW and
3444         WM_ACTIVATE have been processed before returning, so it is guaranteed that
3445         once it returns and the form is visible, it is actually on the screen on X11
3446
3447         * ContainerControl.cs: Only send focus to the control if the top container
3448           is already focused. This is so that, when a form is first shown, all
3449           the enter/leave events are done first before any focus stuff comes in.
3450           If a control has no top container, there's an extra check on Control.Focus
3451           to make sure it gets focused in this particular case.
3452
3453         * Control.cs: Force focus if the control is active but did not receive
3454           focus after being set as active.
3455
3456         * MdiClient.cs: Dispose the form when closing
3457
3458         * XplatUIX11.cs: When mapping and unmapping windows, make sure the call
3459           doesn't return until both WM_SHOWWINDOW and WM_ACTIVATE have come in
3460           if the window is a top Form.
3461           Reset all hwnd properties when the window has been destroyed so that
3462           we don't land in any codepaths that might try to do something with it.
3463           Added a bunch of debugging messages. If TRACE is defined, all X calls
3464           are logged through DebugHelper. Set a few missing EntryPoint attributes.
3465
3466 2008-10-29  Mario Carrion <mcarrion@novell.com>
3467
3468         * ListViewItem.cs: Control enabled to support Accessibility:
3469         - Internal events: UIATextChanged, UIASubItemTextChanged.
3470         - Internal event UIATextChanged in ListViewSubItem that triggers
3471         UIASubItemTextChanged.
3472         * ListView.cs: Control enabled to support Accessibility:
3473         - Internal events: UIACheckBoxesChanged, UIAMultiSelectChanged, 
3474         UIAShowGroupsChanged, UIAViewChanged and UIALabelEditChanged.
3475         - Internal event UIACollectionChanged in ColumnHeaderCollection.
3476         - Internal event UIACollectionChanged in ListViewItemCollection.
3477         - Internal properties: UIAHeaderControl, UIAColumns, UIARows, 
3478         UIADefaultListViewGroup, UIAHScrollBar and UIAVScrollBar.
3479         - Internal methods: UIAGetHeaderBounds.
3480
3481 2008-10-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3482
3483         * ScrollableControl.cs: Actually fire the 2.0 Scroll event when we get
3484         the event from the respective scrollbars.
3485         Fixes #436709.
3486
3487 2008-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3488
3489         * ComboBox.cs: Use the new CanNavigateAutoCompleteList property of the
3490         textbox to know whether any navigation key will be handled or not. If
3491         not, don't pass the message to the textbox, and use it here instead. 
3492         * TextBox.cs: Define a new CanNavigateAutoCompleteList property -which
3493         is more precise- than the previous AutoCompleteMatches one.
3494         This should the keyboard navigation in ComboBox when using auto
3495         complete modes.
3496
3497 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
3498
3499         * ComboBox.cs: Fix item height calculation based off Font to match .Net.
3500         [Fixes bug #436730]
3501
3502 2008-10-24  Jonathan Pobst  <monkey@jpobst.com>
3503
3504         * ToolStripDropDownItem.cs: Call OnClick instead of base.OnClick so
3505         overridden methods will get called.
3506         * ToolStripItem.cs: Raise Click before MouseUp.
3507         * ToolStripSplitButton.cs: Fix up some bounding rectangles to take
3508         the item's location into account.
3509         [Fixes bug #437683]
3510
3511 2008-10-24  Neville Gao  <nevillegao@gmail.com>
3512
3513         * NumericUpDown.cs: Control enabled to support accessibility.
3514         [Fiexes bug #438135]
3515
3516 2008-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3517
3518         * TextBox.cs: Check that we actually have items no navigate, select
3519         text when pressing enter, as well as handle direction keys only if
3520         mode is different to Suggest or the suggest listbox is visible.
3521
3522 2008-10-23  Andreia Gaita  <shana@jitted.com>
3523
3524         * WebBrowser.cs: Use the new ContentStream property to retrieve
3525           a stream encoded from the document content
3526
3527 2008-10-23  Andreia Gaita  <shana@jitted.com>
3528
3529         * HtmlDocument.cs,
3530           HtmlElement.cs,
3531           HtmlWindow.cs: Fix GetHashcode for null objects
3532
3533 2008-10-22  Andreia Gaita  <shana@jitted.com>
3534
3535         * HtmlDocument.cs,
3536           HtmlElement.cs,
3537           HtmlWindow.cs: Fix equality operators (fixes #428173)
3538
3539 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
3540
3541         * XplatUIWin32.cs: Apply patch from John Mortlock that ensures
3542         mouse_state gets set during WM_MOUSEMOVE and WM_NCMOUSEMOVE.
3543         [Fixes bug #436772]
3544
3545 2008-10-21  Jonathan Pobst  <monkey@jpobst.com>
3546
3547         * ComboBox.cs: Fire SelectedIndexChanged when the user selects the
3548         same item with the mouse as was already selected.
3549         [Fixes bug #436789]
3550
3551 2008-10-21  Brad Taylor  <brad@getcoded.net>
3552         
3553         * TextControl.cs: Break out code to get the visible range into
3554           GetVisibleLineIndexes to be used in UIA code.
3555         
3556         * Line.cs:
3557         * TextControl.cs:
3558         * TextBoxBase.cs: Add comments indicating that the method or property
3559           is used via reflection from UIA code.
3560
3561 2008-10-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3562
3563         * ListViewItem.cs: Match .net serialization.
3564         Fixes remaining part of #417520.
3565
3566 2008-10-20  Jonathan Pobst  <monkey@jpobst.com>
3567
3568         * ToolStripProfessionalRenderer.cs: Don't paint over a set BackgroundImage.
3569
3570 2008-10-20  Mario Carrion <mcarrion@novell.com>
3571
3572         * ErrorProvider.cs, ToolTip.cs, HelpProvider.cs: UIA internal property 
3573         added: UIAToolTipRectangle.
3574
3575 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3576
3577         * ListViewItem.cs: When deserializing enumerate over the data, instead
3578         of accessing the data directly. This way we handle much better the
3579         cases were we lack information.
3580         Fixes #417520.
3581
3582 2008-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3583
3584         * ListView.cs: When removing an item from a main ListView.Items
3585         collection (and not a ListViewGroupCollection.Items one), remove it
3586         also from the group, as .net does. Patch by Mario Carrion (mario at
3587         novell dot com).
3588         Fixes #436653.
3589
3590 2008-10-19  Andreia Gaita  <avidigal@novell.com>
3591
3592         * Form.cs: Forms that get closed without a handle being created are
3593         disposed in 2.0. Fixes failing FormTest.FormClose and
3594         FormTest.FormClose2 on windows.
3595
3596 2008-10-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3597
3598         * ListView.cs: If both scrollbars are visible, the vertical one
3599         shouldn't extend too far down.
3600         Fixes #435771.
3601
3602 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
3603
3604         * DataGridView.cs: Add the ability to resize columns and rows with
3605         the mouse.  Also support double-clicking to autoresize.
3606         * DataGridViewColumn.cs: Invalidate the grid if a column's width changes.
3607         * DataGridViewRow.cs: Invalidate the grid if a row's height changes.
3608         * DataGridViewTextBoxCell.cs: Add 1 to preferred width so ellipsis
3609         isn't shown on autoresize.
3610         [Fixes bug #420193]
3611
3612 2008-10-17  Mario Carrion <mcarrion@novell.com>
3613
3614         * ComboBox.cs: Remove UIAListbox.
3615
3616 2008-10-17  Mario Carrion <mcarrion@novell.com>
3617
3618         * ComboBox.cs, ListBox.cs: Using added/removed item in 
3619           OnUIACollectionChangedEvent instead of index.
3620
3621 2008-10-17  Jonathan Pobst  <monkey@jpobst.com>
3622
3623         * ComboBox.cs: When we are sorting the items, if the item's type
3624         doesn't support IComparer, use a default one that compares based
3625         off the item's visible text.
3626         [Fixes bug #436328]
3627
3628 2008-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3629
3630         * ColumnHeader.cs: Invalidate ListView.header_control when setting
3631         ImageIndex/ImageKey.
3632         * ThemeWin32Classic.cs: When drawing the column header, draw a image
3633         for the column if available, and make the required adjustments to the
3634         text location.
3635         Fixes #435105.
3636
3637 2008-10-17  Neville Gao  <nevillegao@gmail.com>
3638
3639         * StatusBarPanel.cs: Control enabled to support accessibility.
3640         [Fixes bug #435988]
3641
3642 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3643
3644         * DataGridView.cs: When a user begins an edit in the 'new row',
3645         make that a real row, and add a new 'new row'.  If the user
3646         cancels the edit, remove the new 'new row' and reset everything.
3647         Also, ensure UserAddedRow and UserRemovedRow events are raised.
3648         [Fixes bug #430954]
3649
3650 2008-10-16  Ivan N. Zlatev  <contact@i-nz.net>
3651
3652         * TableLayoutSettings.cs: Fix NREs when deserializing and 
3653         panel is not yet set.
3654         [Fixes bug #436199]
3655
3656 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3657
3658         * DataGridView.cs: Invalidate after deleting a row.
3659
3660 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3661
3662         * DataGridView.cs: Handle Enter and Escape keys.
3663           - Move call to EndEdit to MoveCurrentCell.
3664           - Remove call to EndEdit from navigation key routines.
3665           - Fire CellLeave and CellEnter.
3666
3667 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3668
3669         * DataGridViewCell.cs: Some fixes to the new cell border
3670         painting code.
3671
3672 2008-10-16  Jonathan Pobst  <monkey@jpobst.com>
3673
3674         * ThemeEngine.cs: Enable visualstyles rendering by default
3675         (on platforms that support it).
3676
3677 2008-10-15  Ivan N. Zlatev  <contact@i-nz.net>
3678
3679         * XplatUIX11.cs, XplatUICarbon.cs: Do not Timer.Tick before 
3680         MainForm.OnLoad has completed unless DoEvents is forced.
3681         [Fixes bug #412536]
3682
3683 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
3684
3685         * ToolTip.cs: Ensure that Timer.Internal cannot be set to 0.
3686
3687 2008-10-15  Jonathan Pobst  <monkey@jpobst.com>
3688
3689         * Control.cs: Make our implementation of DrawToBitmap better 
3690         match WmPaint.  [Fixes bug #435579]
3691
3692 2008-10-14  Andreia Gaita  <avidigal@novell.com>
3693
3694         * WebBrowser.cs: Use DocumentElement as the document's root for the
3695         whole content. Should fix DocumentText and DocumentStream problems.
3696
3697 2008-10-14  Jonathan Pobst  <monkey@jpobst.com>
3698
3699         * DataGridViewColumnCollection.cs: Remove calls to OnColumnAddedInternal,
3700         these will get called in DGV.OnCollectionChanged.  Make sure 
3701         OnCollectionChanged always gets called.
3702         * DataGridView.cs: Make a OnColumnRemovedInternal that removes the cells
3703         from every row.  Call this in OnCollectionChanged.
3704         [Fixes bug #433669]
3705
3706 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3707
3708         * ComboBox.cs: WM_KEYDOWN and WM_KEYUP messages should be sent to the
3709         textbox if auto complete is used, since we need to navigate over it.
3710         And in this case don't pass this messages to the base impl. Also hide
3711         the auto complete list box when displaying the drop down listbox.
3712         * TextBox.cs: new internal members to expose some of the auto complete
3713         functionality to combobox.
3714
3715 2008-10-13  Ivan N. Zlatev  <contact@i-nz.net>
3716
3717         * XplatUIX11.cs, XplatUICarbon.cs, Form.cs: Do not Timer.Tick before 
3718         MainForm.OnLoad has completed.
3719         [Fixes bug #412536]
3720
3721 2008-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3722
3723         * TextBox.cs: Apply an old-approved patch that adds autocomplete's
3724         Append support to this controls. We need it to apply new patches.
3725
3726 2008-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3727
3728         * Control.cs: When updating z order in child controls, send to back
3729         the implicit controls. Also, do it explicitly, instead of making
3730         GetAllControls return the implicit controls in a specific order, and
3731         thus avoid depending on that, which could change in the future.
3732         Fixes #434304.
3733
3734 2008-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3735
3736         * X11Dnd.cs: Try to call Application.DoEvents before returning in a
3737         call to StartDrag, since we must fire DragDrop/DragLeave *before*
3738         that, as .net does - instead of firing DragDrop/DragLeave *after* the
3739         call to Control.DoDragDrop has completed. This is needed since at the
3740         point of returning, we have sent related dnd ClientMessages, but we
3741         need to wait for them to fire the wmf respective ones.
3742         Fixes #325076.
3743
3744 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
3745
3746         * LinkLabel.cs: Recreate link pieces when change Padding.
3747
3748 2008-10-09  Everaldo Canuto  <ecanuto@novell.com>
3749
3750         * LinkLabel.cs: Take Padding into account when recreate link pieces.
3751         [Fixes bug #412530]
3752
3753 2008-10-08  Everaldo Canuto  <ecanuto@novell.com>
3754
3755         * Control.cs: Implement internal property PaddingClientRectangle, it will be
3756         useful for drawing controls that must take care about Padding property.
3757
3758 2008-10-08  Jonathan Pobst  <monkey@jpobst.com>
3759
3760         * BindingSource.cs: Make item_type internal so we can access it in DGV.
3761         * DataGridView.cs: Add support for autogenerating columns from a
3762         BindingSource.
3763
3764 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3765
3766         * DataGridView.cs: Comment out an exception that is getting thrown
3767         too often currently.
3768
3769 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3770
3771         * DataGridView.cs: Always rebind to the datasource, as things may
3772         have changed in it that we aren't capturing yet.
3773
3774 2008-10-07  Jonathan Pobst  <monkey@jpobst.com>
3775
3776         * DataGridViewTextBoxCell.cs: Don't default to VerticalCenter font
3777         drawing mode.  If we are top aligned, give ourselves some top padding.
3778
3779 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3780
3781         * X11Dnd.cs: When firing the default dnd enter/leave events, fire the
3782         events on the control under the mouse pointer, instead of firing them
3783         on the window generating the dnd operation. To achieve this re-use the
3784         code used to get the window under the pointer when getting MouseMove
3785         events.
3786         Fixes #381876.
3787
3788 2008-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3789
3790         * X11Dnd.cs: Don't check that that the window sending the dnd events
3791         is the owner of the selection. Although Gtk+ sets it that way, it's
3792         not a requirement of the XDnd protocol, and Qt doesn't seem to do it.
3793         So, just as Gtk+ does, we set our window sending the dnd events as the
3794         owner of the selection, but don't check it when receiving them. This
3795         should fix interoperability with Qt/Kde.
3796         Fixes #324251.
3797
3798 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
3799
3800         * DataGridView.cs: Make sure we take the vertical scrollbar into
3801         account when autosizing columns.
3802
3803 2008-10-06  Jonathan Pobst  <monkey@jpobst.com>
3804
3805         * DataGridView.cs: Handle sorting datetimes.
3806
3807 2008-10-04  Ivan N. Zlatev  <contact@i-nz.net>
3808
3809         * ButtonBase.cs, Control.cs, Label.cs, PictureBox.cs, TabControl.cs, 
3810         TextBoxBase.cs, ToolBar.cs, TrackBar.cs, TreeView.cs: Cleanup 
3811         compilation warnings.
3812
3813 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3814
3815         * RTF.cs, Application.cs, BindingContext.cs, BindingSource.cs, 
3816         ContextMenuStrip.cs, Control.cs, Hwnd.cs, Line.cs, MaskedTextBox.cs, 
3817         ProgressBar.cs, SaveFileDialog.cs, TextControl.cs, Theme.cs, 
3818         ToolBar.cs, ToolStripItemCollection.cs, TrackBar.cs: Cleanup 
3819         compilation warnings.
3820
3821 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3822
3823         * DataGridView.cs, DataGridViewCell.cs, 
3824         DataGridViewCellValidatingEventArgs.cs, 
3825         DataGridViewComboBoxEditingControl.cs, DataGridViewHeaderCell.cs, 
3826         DataGridViewRow.cs, DataGridViewRowHeaderCell.cs, 
3827         DataGridViewTextBoxEditingControl.cs: Cleanup compilation warnings.
3828
3829 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3830
3831         * HtmlElementEventArgs.cs, HtmlWindowCollection.cs: 
3832         Cleanup compilation warnings.
3833
3834 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3835
3836         * XplatUIWin32.cs: Cleanup compilation warnings.
3837
3838 2008-10-03  Ivan N. Zlatev  <contact@i-nz.net>
3839
3840         * PropertyGrid.cs: Cleanup compilation warnings.
3841
3842 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3843
3844         * DataGridViewRow.cs: Only clear the row background if we
3845         are going to paint a new background.
3846
3847 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3848
3849         * DataGridViewCell.cs, DataGridViewColumnHeaderCell.cs,
3850         DataGridViewRowHeaderCell.cs: Remove PaintPartBorder and
3851         use PaintBorder instead.        
3852
3853 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3854
3855         * DataGridView.cs: When CellBorderStyle is set, update the
3856         AdvancedCellBorderStyle to match.
3857
3858 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3859
3860         * DataGridViewCell.cs: Add helper methods to convert Alignment
3861         to TextFormatFlags and align rectangles.
3862         * DataGridViewTextBoxCell.cs: Use Alignment when painting text.
3863         * DataGridViewImageCell.cs: Use Alignment when painting the image.
3864
3865 2008-10-02  Ivan N. Zlatev  <contact@i-nz.net>
3866
3867         * ToolTip.cs: Display tooltips only for controls on the active form.
3868         [Fixes bug #428115]
3869
3870 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3871
3872         * DataGridView.cs: Make OnCellValueNeeded internal.
3873         * DataGridViewCell.cs: Raise the CellValueNeeded event so the
3874         user can supply their own value if they choose.
3875
3876 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3877
3878         * DataGridViewColumnHeaderCell.cs: Create a new style object
3879         so the DefaultCellStyle doesn't get changed.
3880
3881 2008-10-02  Jonathan Pobst  <monkey@jpobst.com>
3882
3883         * ToolStripItem.cs: Check to make sure the owner is actually
3884         changing in InternalOwner before doing any work.  Fixes some
3885         failing tests.
3886
3887 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3888
3889         * DataGridViewColumnHeaderCell.cs: Correctly calculate style.
3890         * DataGridView.cs: Use a column header's inherited style instead
3891         of just using the default.
3892
3893 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3894
3895         * SplitContainer.cs: Raise SplitterMoved when the splitter is
3896         moved through code.
3897
3898 2008-10-01  Mario Carrion <mcarrion@novell.com>
3899
3900         * ScrollBar.cs: Internal property added: UIAThumbPosition.
3901
3902 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3903
3904         * ToolStripOverflowButton.cs: Use InternalOwner instead of Owner.
3905
3906 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3907
3908         * ToolStripItem.cs: When the user sets Owner, we need to remove
3909         it from its previous owner and then add it to the new owner's
3910         item collection.  Also, create InternalOwner, so we can set the owner
3911         that doesn't do this new stuff.
3912         * ToolStripItemCollection.cs: Use InternalOwner instead of Owner.
3913
3914 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3915
3916         * ToolStripItem.cs: When our parent changes, recalculate our text
3917         size, since we may be getting our Font from our parent.  When our
3918         owner's Font changes, recalculate ourselves as we may be using
3919         that font.
3920
3921 2008-10-01  Everaldo Canuto  <ecanuto@novell.com>
3922
3923         * MenuAPI.cs: Select the first option of a popup when opening the popup via
3924         return key. [Fixes bug #413792].
3925
3926 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3927
3928         * ToolStripItem.cs: Make Font, BackColor, and ForeColor be
3929         ambient properties.  (Get their value from their parents if
3930         values haven't been set.)
3931
3932 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3933
3934         * ToolStripSystemRenderer.cs: Call overridden methods' bases
3935         after our logic, so users can do painting by handling the events.
3936         Currently, we draw over any user painting.
3937
3938 2008-10-01  Jonathan Pobst  <monkey@jpobst.com>
3939
3940         * ToolStripProfessionalRenderer.cs: Call overridden methods' bases
3941         after our logic, so users can do painting by handling the events.
3942         Currently, we draw over any user painting.
3943
3944 2008-09-30  Everaldo Canuto  <ecanuto@novell.com>
3945
3946         * MenuAPI.cs: Prevent NRE when deactivate menu. Fixes #413636.
3947
3948 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
3949
3950         * TreeNode.cs, TreeView.cs: Move logic that determines the node
3951         image to draw to TreeNode.  Give Index/Keys put on the node
3952         precedence over the global one for the TreeView.
3953
3954 2008-09-30  Jonathan Pobst  <monkey@jpobst.com>
3955
3956         * TreeNode.cs: Setting ImageIndex or ImageKey should reset the other.
3957
3958 2008-09-29  Mario Carrion <mcarrion@novell.com>
3959
3960         * ListBox.cs: Index fixed.
3961
3962 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3963
3964         * TabControl.cs: When expanding the tab -because it's selected now-,
3965         using Right alignment, instead of adding some selected delta value to
3966         the X origin, substract it, so it gets a location adjacent to the panel, 
3967         instead of be more separated.
3968         Fixes #409170.
3969
3970 2008-09-29  Jonathan Pobst  <monkey@jpobst.com>
3971
3972         * MessageBox.cs: Use SystemIcons for graphics instead of keeping our
3973         own copies of them.
3974
3975 2008-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3976
3977         * X11Dnd.cs: source and related fields should be set to IntPtr.Zero,
3978         as well as the other static fields, to avoid using their previous
3979         values my mistake when handling the dnd events. This should avoid
3980         handling any status event after the drop has been finalized/cancelled.
3981
3982 2008-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3983
3984         * X11Dnd.cs: We have to send a dnd enter event as soon as we start the
3985         operation, instead of waiting until we get any movement - this will
3986         help us to have the data available in case no movement was detected
3987         and _still_ we have to fire DragEnter and DragLeave/DragDrop events.
3988         Finally add a windows.forms-only fallback to fire the mentioned events
3989         if no movement at all was detected, just like .net does.
3990         Fixes #381876.
3991
3992 2008-09-27  Jonathan Pobst  <monkey@jpobst.com>
3993
3994         * ThemeWin32Classic.cs: When drawing a status bar panel, don't
3995         return early if the text is empty because the icon doesn't get
3996         drawn then.  [Fixes bug #428113]
3997
3998 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
3999
4000         * FileDialog.cs: Implement basic support for sorting by columns in
4001         Details view. Patch by Eric Petit.
4002         Fixes #428006.
4003
4004 2008-09-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4005
4006         * ThemeWin32Classis.cs: When drawing gridlines take into account the
4007         case where ListView.ItemSize hasn't been computed, and provide a
4008         fallback as well. This prevents a division by 0.
4009
4010 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
4011
4012         * ThemeVisualStyles.cs: Use ClientRectangle instead of Bounds to
4013         correctly draw tooltip backgrounds.
4014
4015 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
4016
4017         * ImageList.cs: Change CopyTo implementation to ensure clones are
4018         created of our images.
4019         [Fixes bug #409169]
4020
4021 2008-09-24  Jonathan Pobst  <monkey@jpobst.com>
4022
4023         * Control.cs: When setting fonts, we need to ensure we change our
4024         reference to the new font object, even if it represents the same
4025         font as before.  If we don't, the original font can get disposed
4026         and we will still try to use it.
4027         [Fixes bug #386450]
4028
4029 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4030
4031         * FileDialog.cs: Take into account Tile view when selecting the view
4032         (2.0 profile).
4033
4034 2008-09-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4035
4036         * ThemeWin32Classic.cs: When drawing gridlines for ListView don't use
4037         the item bounds, since we can't iterate over them in virtual mode.
4038         Also fix wrong calculation of the gridlines when using scrolling.
4039         Fixes #400390.
4040
4041 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4042
4043         * XplatUIX11.cs: When handling EnterNotify events, take into account
4044         both the public and implicit controls when trying to detect the
4045         grab/ungrab process. This should fix ListView selection in Details
4046         view.
4047
4048 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
4049
4050         * TreeView.cs: Redraw the whole node area when the selected node changes.
4051         Things like state images were not getting redrawn because the invalid
4052         rectangle was too small.
4053         [Fixes bug #428211]
4054
4055 2008-09-23  Mario Carrion  <mcarrion@novell.com>
4056
4057         * ListBox.cs: UIA Selection Pattern fully supported in ListBox control.
4058         [Fixes bug #428993]
4059
4060 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
4061
4062         * Form.cs: Do not set the Form's icon in the backend if showicon = false.
4063         [Fixes bug #428114]
4064
4065 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
4066
4067         * ThemeWin32Classic.cs: Allow tooltips to be multiline.
4068         [Fixes bug #427884]
4069
4070 2008-09-23  Jonathan Pobst  <monkey@jpobst.com>
4071
4072         * StatusBar.cs: Add tooltip support.
4073         [Fixes bug #428113]
4074
4075 2008-09-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4076
4077         * ThemeWin32Classic.cs: Use StringAlignment.Center for the vertical
4078         alignments of sub items in Details view. Patch by John Mortlock (johnm at 
4079         hlaustralia.com.au).
4080         Fixes #425360.
4081
4082 2008-09-23  Neville Gao  <nevillegao@gmail.com>
4083
4084         * StatusBar.cs: Add UIA event in AddInternal () to support accessibility.
4085         [Fixes bug #419079]
4086
4087 2008-09-22  Jonathan Pobst  <monkey@jpobst.com>
4088
4089         * TextBoxBase.cs: Set Text to "" instead of null in Clear().
4090         [Fixes bug #428107]
4091
4092 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4093
4094         * ListView.cs: Don't do anything when EnsureVisible is called inside a
4095         BeginUpdate/EndUpdate block.
4096         Fixes #425049.
4097
4098 2008-09-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4099
4100         * ListViewItem.cs: The semantics for the public .ctor of
4101         ListViewSubItemCollection need us to already have a Text value for the
4102         item, which in our implementation have as available *after* adding the
4103         first sub item. So create an internal .ctor that satisfies our needs
4104         and let the public .ctor have the same semantics as .net.
4105         Fixes #427561.
4106
4107 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4108
4109         * ListControl.cs: Changes in Formatting related values should call
4110         RefreshItems, as .net does.
4111         * ComboBox.cs:
4112         * ListBox.cs: In the respective overrides of RefreshItems calculate
4113         layout as well as refreshing - again, this is what .net does.
4114         Fixes #426168.
4115
4116 2008-09-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4117
4118         * ListBox.cs: In UpdateTopItem, don' call to XplatUI.ScrollWindow,
4119         since we are already doing that when we change the value of the
4120         scrollbar or force the call to ScrollWindow in the same method. This
4121         way we don't cause a Invalidate call for all the listbox bounds for
4122         methods calling UpdateTopItem with an already updated top item. This
4123         was happening specially calling EnsureVisible with already visible
4124         items.
4125
4126 2008-09-18  Mike Gorse <mgorse@novell.com>
4127
4128         * Application.cs, IKeyFilter.cs, X11Keyboard.cs, XplatUI.cs,
4129           XplatUIStructs.cs: Added KeyFilter
4130         [Fixes bug #427039]
4131
4132 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4133
4134         * RelatedPropertyManager.cs: The properties returned by
4135         GetItemProperties should be that ones of the *actual* object returned
4136         by the property, not the property type - this is very special when the
4137         property exposes a type, but the returned object actually is a child
4138         class and implements more functionality and properties.
4139
4140 2008-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4141
4142         * Binding.cs: Don't look for the property in the data source if the
4143         passed string is empty.
4144
4145 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
4146
4147         * XplatUIX11.cs: Comment out _NET_WM_WINDOW_TYPE_DIALOG in order to 
4148         fix unused variable warnings.
4149
4150 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
4151
4152         * XplatUIX11.cs: Send WM_HELP when F1 is pressed.
4153         [Fixes bug #427073]
4154
4155 2008-09-18  Ivan N. Zlatev  <contact@i-nz.net>
4156
4157         * XplatUIX11.cs: 
4158          - Do not set _NET_WM_WINDOW_TYPE_DIALOG for modal forms, because this 
4159          leads to the window manager overriding our border style and zorder. 
4160          - Allow the activation of non-modal forms, which are children of a 
4161          modal form.
4162         [Fixes bug #423417]
4163
4164 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
4165
4166         * XplatUIX11.cs, X11Structs.cs: For mapped windows SetTopMost should 
4167         ask the window manager to do the work instead of changing the property 
4168         directly.
4169         [Fixes bug #423417]
4170
4171 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
4172
4173         * CurrencyManager.cs: Check for positon before call ChangeRecordState in
4174         AddNew to fix some navigation for empty datasets. [Fixes #323053]
4175
4176 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
4177
4178         * FileDialog.cs: Remove OnPaint method on PopupButtonPanel and set 
4179         InternalBorderStyle to BorderStyle.Fixed3D. It is the best way to get 3d
4180         border and fixes some drawing issues when resize form.
4181
4182 2008-09-17  Everaldo Canuto  <ecanuto@novell.com>
4183
4184         * FileDialog.cs: Lots of layout fixes to mimic Win32. [Fixes #408752]
4185         
4186         * ThemeWin32Classic.cs: We don't need to reduce button size when it is
4187         AcceptButton.
4188
4189 2008-09-17  Ivan N. Zlatev  <contact@i-nz.net>
4190
4191         * TextBoxBase.cs: For standard textbox the scrollbars are always 
4192         visible if Multiline is true.
4193         [Fixes bug #426896]
4194
4195 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
4196
4197         * DataGridTextBoxColumn.cs: Uncomment code accidentally commited in last
4198         patch.
4199         
4200 2008-05-12  Everaldo Canuto  <ecanuto@novell.com>
4201
4202         [Fixes most od DBNull and HeadersVisible problems]
4203         
4204         * DataGrid.cs:
4205         - ShowingColumnHeaders removed because we dont need it, ColumnHeadersVisible
4206         returns the value that we need.
4207         - Fixed FromPixelToColumn method that return zero for first     column and for
4208         row header cell, now it returns -1 for row header cell.
4209         - Fixed HitTest to check row header cell in column header area, it now
4210         returns HitTestType.None. [Fixes #322864]
4211         - Fixed the calculation of visible columns in UpdateVisibleColumn, now it
4212         checks for RowHeadersVisible and other things.
4213         - If an exception occurs when setting CurrentCell and user type 'yes' in
4214         message dialog, invalidade current and new cell and set setting_current_cell
4215         to false to prevent future errors. [Partially fixes #323050]
4216
4217         * DataGridColumnStyle.cs: Don't call EndEdit after set property_descriptor
4218         value (SetColumnValueAtRow), it must be done by grid to properly show 
4219         messages. [Fixes #323050]
4220
4221         * ThemeWin32Classic.cs: Lots of fixes in DataGridPaintColumnHeaders to
4222         better draw column and row header. Also dont draw anything when column
4223         headers is not visible.
4224
4225 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4226
4227         * ThemeWin32Classic.cs: Hook ListViewItems into the ShowFocusCues
4228         logic.
4229
4230 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4231
4232         * TreeView.cs: Don't start editing a node on right click, only
4233         left click.
4234
4235 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4236
4237         * NativeWindow.cs: Reenable the ThreadExceptionDialog I accidentally
4238         disabled over a year ago.
4239         * Form.cs: Wrap calling Load in a try/catch because it can happen
4240         before the catch-all one in NativeWindow.
4241         [Fixes bug #425414]
4242
4243 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4244
4245         * ToolStripDropDownMenu.cs: Calculate the connected area better
4246         to take into account when the drop down is not directly under the
4247         owner item.
4248         * ToolStripProfessionalRenderer.cs: Draw the whole unconnected area.
4249
4250 2008-09-16  Mario Carrion <mcarrion@novell.com>
4251
4252         * ScrollBar.cs: New event added: UIAValueChanged, generated when
4253           LargeChange, SmallChange, Maximum or Minimum values are changed.
4254         [Fixes bug #426464]
4255
4256 2008-09-16  Mario Carrion <mcarrion@novell.com>
4257
4258         * ErrorProvider.cs: Component enabled to support accessibility.
4259         * Application.cs: Updated to Initialize UIA in ErrorProvider.
4260         [Fixes bug #426459]
4261
4262 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4263
4264         * TextBoxBase.cs: Flag has_been_focused when SelectionStart is set
4265         so we don't highlight on first focus.
4266         [Fixes bug #360869]
4267
4268 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4269
4270         * TextControl.cs: Correctly calculate the height of the area we 
4271         need to invalidate when we have started scrolling and viewport_y
4272         is used.  [Fixes bug #387608]
4273
4274 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4275
4276         * TextControl.cs: When getting the SelectedText, don't add in
4277         NewLine characters, as they are already contained in the lines.
4278         [Fixes bug #388115]
4279
4280 2008-09-16  Jonathan Pobst  <monkey@jpobst.com>
4281
4282         * TextBoxBase.cs: Replace the buggy Lines setter with one that
4283         simply concats the lines and send it to the Text setter.
4284         [Fixes issue #2 and #3 of 388115]
4285
4286 2008-09-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4287
4288         * Binding.cs: The default value of DataSourceNullValue should be
4289         Convert.DBNull actually. Also, the NullValue should only be used *if*
4290         itself is not null, and use the null/Convert.DBNull value instead.
4291
4292 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
4293
4294         * TextControl.cs: Add a method to convert a string newline to the
4295         newline enum.
4296         * TextBoxBase.cs: When the user hits enter, insert a native newline.
4297         [Fixes part 1 of bug #388115]
4298
4299 2008-09-15  Mario Carrion <mcarrion@novell.com>
4300
4301         * ToolTip.cs: UnPopup event set to internal to match public API.
4302
4303 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
4304
4305         * TextBoxBase.cs: If the user is using Ctrl-Tab to move focus, we
4306         have to remove the Ctrl in order for the focus moving code to kick in.
4307         [Fixes bug #426170]
4308
4309 2008-09-15  Jonathan Pobst  <monkey@jpobst.com>
4310
4311         * CheckedListBox.cs: Return the real item index from Add.  It may not be
4312         the last item if the list is sorted.  The user can change the NewValue in
4313         the ItemCheck event, we need to use that value if so.
4314         * ListBox.cs: Return the real item index from a sorted Add.
4315         [Fixes bug #426166]
4316
4317 2008-09-15  Ivan N. Zlatev  <contact@i-nz.net>
4318
4319         * MimeIcon.cs: Add null checks in the GnomeHandler, because it might 
4320         happen that the icons from the theme is missing or the particular size 
4321         unavailable.
4322         [Fixes bug #424981]
4323
4324 2008-09-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4325
4326         * Binding.cs: When assigning null or DBNull depending on value/ref type,
4327         use IsValueType instead to get the precise desired value.
4328         Fixes #424276.
4329
4330 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4331
4332         * TreeNodeCollection.cs: When adding a new node to an opened node,
4333         we have to invalidate everything below the parent node because
4334         every node scoots down and we have to repaint them.
4335         [Fixes bug #411386]
4336
4337 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4338
4339         * ThemeWin32Classic.cs: Take CheckBox and RadioButton's CheckAlign
4340         property into account when drawing.
4341         [Fixes bug #416064]
4342
4343 2008-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4344
4345         * ListBox.cs: When calling Items.Clear(), call
4346         SelectedIndexCollection.ClearCore instead of normal Clear method, to
4347         not fire any Selected*Changed event - this is done to match .net and
4348         don't have invalid values when changing the DataSourceProperty.
4349         Fixes #424273.
4350
4351 2008-09-12  Mario Carrion  <mcarrion@novell.com>
4352
4353         * HelpProvider.cs: Control enabled to support accessibility.
4354         * Application.cs: Updated to Initialize UIA in HelpProvider.
4355         [Fixes bug #425988]
4356
4357 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4358
4359         * Form.cs: When we are showing a dialog box, if its owner is TopMost,
4360         make the dialog TopMost as well.
4361         [Fixes bug #425984]
4362
4363 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4364
4365         * Win32DnD.cs, XplatUIWin32.cs: Applied patch from Andy Hume that handles
4366         clipboard data better.
4367         [Fixes bug #414446]
4368
4369 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4370
4371         * TextBoxBase.cs: Applied patch from John Mortlock that ensures
4372         TextChanged and SelectionChanged events fire in the same order as .Net.
4373         [Fixes bug #425725]
4374
4375 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4376
4377         * DataGridView.cs: When sorting a column, if it only contains numbers,
4378         do a numeric sort instead of a string sort.
4379         [Fixes bug #425849]
4380
4381 2008-09-12  Jonathan Pobst  <monkey@jpobst.com>
4382
4383         * TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Guard
4384         against NRE's when the settings have a null panel.
4385         * TableLayoutPanel.cs: When setting the TableLayoutSettings, ensure
4386         the panel gets set.
4387         [Fixes bug #425647]
4388
4389 2008-09-11  Mario Carrion  <mcarrion@novell.com>
4390
4391         * ToolTip.cs: Control enabled to support accessibility.
4392         * Application.cs: Updated to Initialize UIA in ToolTip.
4393         [Fixes bug #425277]
4394
4395 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4396
4397         * Control.cs: Make the custom Enumerator internal to fix build.
4398
4399 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4400
4401         * DataGridViewCheckBoxCell.cs: If our content is clicked and we aren't
4402         already in edit mode, begin edit mode.  Generally edit mode isn't
4403         started until the second click, but CheckBoxes are special.
4404
4405 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4406
4407         * ErrorProvider.cs: Never try to add our icons to ContainerControl,
4408         since that can be set to anything.  Always add them to the Control's
4409         parent.  [Fixes bug #416058]
4410
4411 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4412
4413         * ListView.cs: Use a custom enumerator for ListViewItemCollection
4414         so items can be deleted in a foreach.
4415         [Fixes bug #425342]
4416
4417 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4418
4419         * DataGridViewRow.cs: Better implementation of GetPreferredHeight.
4420         Store the user set explicit height so that the row can be AutoSized
4421         and then when AutoSize is turned off, it can get its original size back.
4422         * DataGridView.cs: Use the Row's GetPreferredHeight instead of 
4423         duplicating the logic.  When setting AutoSizeRowsMode to None, reset
4424         rows' heights back to their explicit values.
4425         [Fixes bug #415780]
4426
4427 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4428
4429         * DateTimePicker.cs: When getting focus, select the checkbox if we are
4430         already showing it. Also, don't change its value when pressing space
4431         if the checkbox is not visible (ShowCheckBox as false). Finally, the
4432         checkbox should remain selected as long as Checked is false, and the
4433         other parts are disabled.
4434         Fixes #424267.
4435         
4436 2008-09-11  Jonathan Pobst  <monkey@jpobst.com>
4437
4438         * MessageBox.cs: Handle shortcut keys to dialog buttons.
4439         [Fixes bug #425425]
4440
4441 2008-09-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4442
4443         * Binding.cs: When the value retrieved from the control property is
4444         null, don't return Convert.DBNull for Nullable instances, since they
4445         can *actually* get a null value.
4446         Fixes #424265.
4447
4448 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
4449
4450         * Control.cs: Add an internal field to force doublebuffering regardless
4451         of what the public mechanisms are set to.  This is because MS's native
4452         controls are doublebuffered even though their .Net bits are set to false.
4453         * ProgressBar.cs: Set force_double_buffer to true.
4454         [Fixes bug #406595]
4455
4456 2008-09-10  Jonathan Pobst  <monkey@jpobst.com>
4457
4458         * DataGridViewCheckBoxColumn.cs: Use the threestate constructor for
4459         the cell template.
4460         * DataGridViewCheckBoxCell.cs: Add proper support for threestate.
4461         * DataGridViewCell.cs: Implement GetEditedFormattedValue for types
4462         without EditingControls, paint background selection for types without
4463         EditingControls, reset the EditingCellValueChanged flag when the
4464         cell's value is committed.
4465         * DataGridView.cs: Make BeginEdit and EndEdit work with cells that don't
4466         have EditingControls, remove a double call to a cell's OnContentClickInternal,
4467         don't do cell changing logic in OnMouseDown if the cell didn't change.
4468         [Fixes bug #420351]
4469
4470 2008-09-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4471
4472         * DateTimePicker.cs: Fix the edition of am/pm specifier.
4473
4474 2008-09-09  Jonathan Pobst  <monkey@jpobst.com>
4475
4476         * TextControl.cs: Add "&" to the list of valid characters in a URL.
4477
4478 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4479
4480         * DateTimePicker.cs: Before incrementing or decrementing any part in
4481         the textbox, end any current edit. Also when ending the current edit
4482         use the editing_part_index field instead of the current selected
4483         value, since they can be out of synch, and we really need to work on
4484         the *real* current edit part. Finally when PartData.Selected changes,
4485         always try to end any ongoing edit.
4486         This should fix some small errors handling mouse navigation and
4487         increase/decrease operations.
4488
4489 2008-09-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4490
4491         * DateTimePicker.cs: 'hh' and 'HH' formats (12 and 24 hour formats
4492         respectively) should handled different, since the 12 hours format
4493         needs the value typed by the user to be adjusted depending on the
4494         a.m/p.m value, so it is preserved, and only changed when the value
4495         reaches the 12 value (when it changes from a.m to p.m).
4496         Fixes part of #416555.
4497
4498 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4499
4500         * ToolStrip.cs: Ensure MouseDown gets called for MenuStrip items.
4501         * ToolStripDropDownItem.cs: Don't fire events and such again if
4502         ShowDropDown is called on an already dropped down item.
4503         * ToolStripMenuItem.cs: Call ShowDropDown even if there aren't any
4504         subitems, the user may add some in the DropDownOpening event.
4505         [Fixes bug #417877]
4506
4507 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4508
4509         * ComboBox.cs: Fix IOORE when setting SelectedItem to null.
4510         [Fixes bug #424270]
4511
4512 2008-09-08  Jonathan Pobst  <monkey@jpobst.com>
4513
4514         * MdiClient.cs: When looking for menustrips on a child form to merge,
4515         look inside ToolStripContainers.
4516         [Fixes bug #424264]
4517
4518 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
4519
4520         * ErrorProvider.cs: Unbreak my previous commit.
4521
4522 2008-09-08  Ivan N. Zlatev  <contact@i-nz.net>
4523
4524         * ErrorProvider.cs: Icon should always be 16x16.
4525         [Fixes bug #424380]
4526
4527 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
4528
4529         * GridEntry.cs: Invalidate the child items cache when the property 
4530         value changes.
4531
4532 2008-09-07  Ivan N. Zlatev  <contact@i-nz.net>
4533
4534         * GridEntry.cs, PropertyGridView.cs: 
4535            - Update the ReadOnly detection and rendering to finally hopefully 
4536            match the one of MSFT.
4537            - Niceify and move the debug CWLS.
4538         [Fixes bug #409028]
4539
4540 2008-09-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4541
4542         * ListView.cs: Don't call Invalidate at all from SetItemLocation,
4543         since we are already calling Invalidate for the entire control when
4544         needed - and call Redraw() when size changes, since we need to paint
4545         there by ourselved and not anymore from the mentioned method. 
4546         This should improve the layout process. Also clean some not needed calls 
4547         here and there.
4548
4549 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
4550
4551         * MenuAPI.cs: Add a null check to the Alt-F4 code.
4552         [Fixes bug #420309]
4553
4554 2008-09-05  Jonathan Pobst  <monkey@jpobst.com>
4555
4556         * ThreadExceptionDialog.cs: Disable AutoScaling for this dialog.
4557         [Fixes bug #423040]
4558
4559 2008-09-04  Ivan N. Zlatev  <contact@i-nz.net>
4560
4561         * GridEntry.cs, CategoryGridEntry.cs, RootGridEntry.cs, PropertyGrid.cs, 
4562         PropertyGridView.sc: Implement lazy/delayed propertygrid population 
4563         on item expansion. Improves performance and fixes bug #417955.
4564         [Fixes bug #417955]
4565
4566 2008-09-05  Stephane Delcroix  <sdelcroix@novell.com>
4567
4568         * Control.cs: only check for OptimizedDoubleBuffer in NET_2_0.
4569         fix the build.
4570
4571 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4572
4573         * TextControl.cs: Add "_" to the list of valid characters in a URL.
4574         [Fixes bug #423408]
4575
4576 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4577
4578         * Control.cs: If using OptimizedDoubleBuffer, ensure the clip 
4579         region gets set.
4580         [Fixes bug #414166]
4581
4582 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4583
4584         * FontDialog.cs: When storing our font size from the starting font,
4585         use SizeInPoints instead of Size in case Size is a different unit
4586         from Points.
4587         [Fixes bug #416489]
4588
4589 2008-09-04  Jonathan Pobst  <monkey@jpobst.com>
4590
4591         * FileDialog.cs: When enter is pressed on a SaveFileDialog and we
4592         don't use it for anything else, check if a directory is highlighted.
4593         If it is, navigate into it.
4594         [Fixes bug #422087]
4595
4596 2008-09-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4597
4598         * Binding.cs: When acquiring a BindingManagerBase for the first time,
4599         check that the specified property actually exists in the data source,
4600         and throw an ArgumentException if that's not the case - this is only
4601         done for this scenario, since for later cases (such Position changes)
4602         we throw different exceptions (match .Net).
4603
4604 2008-09-03  Ivan N. Zlatev  <contact@i-nz.net>
4605
4606         * ButtonBase.cs CheckBox.cs, Control.cs, FlowLayoutPanel.cs, 
4607           FlowLayoutSettings.cs, GroupBox.cs, Label.cs, ListBox.cs, 
4608           PropertyGrid.cs, RadioButton.cs, TableLayoutPanel.cs, 
4609           TableLayoutSettings.cs, ToolStrip.cs, ToolStripDropDownButton.cs, 
4610           ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripSplitButton.cs, 
4611           ToolStripStatusLabel.cs: Add missing PerformLayout calls to various 
4612           properties.
4613           [Fixes bug #418684]
4614
4615 2008-09-03  Neville Gao  <nevillegao@gmail.com>
4616
4617         * StatusBar.cs: Control enabled to support accessibility.
4618         [Fixes bug #419079]
4619
4620 2008-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4621
4622         * Binding.cs: When connecting the event handler for the "Changed"
4623         event for the property, only do it for PropertyManager, and not for
4624         CurrencyManager - this is exactly what does .Net, totally ignoring any
4625         change in the property of the elements of a list.
4626         Fixes the tests.
4627
4628 2008-09-02  Jonathan Pobst  <monkey@jpobst.com>
4629
4630         * XplatUIWin32.cs: Ensure we never send the WS_EX_MDICHILD flag
4631         to Windows when creating a window, as we fake MDI stuffs.
4632         [Fixes bug #421858]
4633
4634 2008-09-01  Ivan N. Zlatev  <contact@i-nz.net>
4635
4636         * TextBox.cs: Invalidate after UseSystemPasswordChar, so that the 
4637         change takes effect.
4638
4639 2008-08-24  Ivan N. Zlatev  <contact@i-nz.net>
4640
4641         * XplatUIX11.cs: Provide MouseButtons/State information to the XPlatUI.
4642         [Fixes bug #419001]
4643
4644 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
4645
4646         * DataGridView.cs: Raise CellContentClick event.
4647         [Fixes part of bug #420351]
4648
4649 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4650
4651         * ScrollBar.cs: Control enabled to support accessibility.
4652         [Fixes bug #416759]
4653
4654 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4655
4656         * ComboBox.cs: Control enabled to support accessibility.
4657         [Fixes bug #416663]
4658
4659 2008-08-27  Mario Carrion  <mcarrion@novell.com>
4660
4661         * ListBox.cs: Control enabled to support accessibility.
4662         [Fixes bug #416640]
4663
4664 2008-08-27  Jonathan Pobst  <monkey@jpobst.com>
4665
4666         * ComboBox.cs: Don't suppress the TextChanged event when changing
4667         the SelectedIndex.
4668         * ToolStripComboBox.cs: Listen to the ComboBox's TextChanged event
4669         and re-raise it.
4670         [Fixes bug #420673]
4671
4672 2008-08-26  Jonathan Pobst  <monkey@jpobst.com>
4673
4674         * ErrorProvider.cs: Fix a regression NRE when setting properties
4675         for a control before it has a parent.
4676         [Fixes bug #420305]
4677
4678 2008-08-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4679
4680         * Binding.cs: Use the BindingManagerBase.Current value to obtain
4681         connect the property "Changed" event, instead of using the data
4682         sources - this is useful when the property specifies actually a
4683         multiple objects path.
4684         Fixes part of #417973.
4685
4686 2008-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4687
4688         * RelatedPropertyManager.cs: PropertyManager instances associated to a
4689         nested properties should return not the properties of the data source
4690         itself, but the properties of the type of a specific property in the
4691         data source - match .net.
4692
4693 2008-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
4694
4695         * ListBox.cs (IntegerCollection): To avoid duplication, moved code for
4696         AddRange overloads into AddItems method, and added missing NULL check.
4697         Added extra argument check to RemoveAt for compatibility with MS. 
4698         Modified IList implementation of Add, Contains, IndexOf and Remove to
4699         throw an ArgumentException if item is not an int. Modified IList.Insert
4700         to throw a NotSupportException instead of an Exception. Implemented
4701         ICollection.
4702         (ObjectCollection): To avoid duplication, use AddItems method from
4703         AddRange overloads. On 1.0 profile, first perform NULL check on items
4704         in AddItems.
4705
4706 2008-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
4707
4708         * Control.cs: Do not modify bounds directly in .ctor's. Fixes bug
4709          #419087.
4710
4711 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
4712
4713         * X11Keyboard.cs : comment out some Console.WriteLine().
4714
4715 2008-08-22  Atsushi Enomoto  <atsushi@ximian.com>
4716
4717         * X11Keyboard.cs : fixed wrong call to XOpenIM() which happened
4718           even if premises are not filled. Also XLookupString() was not
4719           receiving correct input, which blocked precise input handling
4720           on non-XIM mode.
4721
4722 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4723
4724         * ListView.cs: When calling OnCacheVirtualItems, cast to the right
4725         type of delegate, instead of EventHandler - this was causing a type
4726         cast exception in all apps handling this event.
4727         Fixes #417876.
4728
4729 2008-08-20  Jonathan Pobst  <monkey@jpobst.com>
4730
4731         * ToolStripDropDownItem.cs: Always raise DropDownOpening in
4732         ShowDropDown to give the user a chance to dynamically add
4733         drop down items.  [Step 1 of fixing bug #417877]
4734
4735 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4736
4737         * X11Dnd.cs: Don't fire pseudo motion DragOver events if we haven't
4738         had any mouse motion since the call to StartDrag, to match the dnd
4739         behaviour of .net.
4740         Fixes part of #381876.
4741
4742 2008-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4743
4744         * XplatUIX11.cs: Only do the children control bounds check for EnterNotify
4745         if mode is NotifyUngrab, and let it flow if mode is NotifyNormal.
4746         Also, if we are actually moving into a different window after
4747         grabbing, generate a LeaveNotify event for the previous window, since
4748         we need to fire the leave events until the grab ends, not when
4749         actually moving outside of the control.
4750
4751 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4752
4753         * XplatUIX11.cs: The check inside EnterNotify case to fire MouseEnter
4754         events only for client windows was wrong - we need to compare the
4755         client window against the window receiving the EnterNotify event, not
4756         against zero (since client window is never Zero, btw).
4757         This prevents having unnecessary handling of EnterNotify events for
4758         non-client windows when a gran begins.
4759
4760 2008-08-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4761
4762         * XplatUIX11.cs: Handling X ButtonPress events, we must *not* generate
4763         MouseMove/MotionNotify events at all (which should only happen after
4764         MouseUp/ButtonRelease, as .Net does).
4765         This avoids firing an extra and unnecessary MouseMove event just after
4766         every MouseDown event.
4767
4768 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4769
4770         * LinkLabel.cs: Always clear any previous links when LinkArea
4771         is set.  [Fixes bug #410709]
4772
4773 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4774
4775         * ToolStripProfessionalRenderer.cs: Revert last change.
4776         * ProfessionalColorTable.cs: For Classic, use SystemColors.Window
4777         for ToolStripDropDownBackground.
4778
4779 2008-08-19  Jonathan Pobst  <monkey@jpobst.com>
4780
4781         * ToolStripProfessionalRenderer.cs: Use Window color for the 
4782         background of dropdowns to match .Net when the user is not
4783         using the default white.  [Fixes bug #418108]
4784
4785 2008-08-19  Atsushi Enomoto  <atsushi@ximian.com>
4786
4787         * XplatUIWin32.cs : SetTimer() used to set wrong window handle and
4788           it caused timer registration twice. Fixed bug #418107.
4789
4790 2008-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4791
4792         [Correction: This is the actual change to X11Dnd issue, not the
4793         previous one, which was actually a different issue.]
4794
4795         * X11Dnd.cs: Increase the interval for the Timer, to not fire our
4796         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
4797         when the pointer is actually in motion, but only when the pointer
4798         seems to stop (as .net does).
4799         Fixes part of #381876.
4800
4801
4802 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
4803
4804         * ListBox.cs: Fix CopyTo implementation.
4805         [Fixes bug #409169]
4806
4807 2008-08-18  Jonathan Pobst  <monkey@jpobst.com>
4808
4809         * ThemeWin32Classic.cs: Use ClientRectangle instead of Bounds when
4810         drawing a ComboBox's background.  Fixes bad disabled rendering when
4811         the control is not at 0,0.
4812         [Fixes bug #416063]
4813
4814 2008-08-16  Ivan N. Zlatev  <contact@i-nz.net>
4815
4816         * GridEntry.cs: Leave the ICustomTypeDescriptor handling up to the 
4817         ComponentModel layer, which will properly prioritize the attributes.
4818         Avoids wrong prioritization of duplicate attributes when retrieving 
4819         the converter and editor.
4820         [Fixes bug #417729]
4821
4822 2008-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4823
4824         * XplatUIX11.cs: Increase the interval for the Timer, to not fire our
4825         pseudo motion HandleMouseOver method so aggresive. Also, don't call it
4826         when the pointer is actually in motion, but only when the pointer
4827         seems to stop (as .net does).
4828         Fixes part of #381876.
4829
4830 2008-08-15  Ivan N. Zlatev  <contact@i-nz.net>
4831
4832         * GridEntry.cs: Perform stricter check for the ParentEntry's 
4833         PropertyDescriptor/PropertyOwner for the ICustomTypeDescriptor 
4834         implementation.
4835         [Fixes bug #417567]
4836
4837 2008-08-14  Geoff Norton  <gnorton@novell.com>
4838
4839         * XplatUICarbon.cs: Properly implement PeekMessage and DoEvents.
4840         Fixes #396983.  Properly fix ActiveWindow trackin and do not
4841         prematurely show POPUP windows.
4842
4843 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
4844
4845         * XplatUIX11.cs: Handle the obscured regions while scrolling using
4846         GraphicsExpose event, processing it just after we copy the scrolled
4847         area. This ensures that the next calls to ScrollWindow will copy
4848         regions already updated, and the scrolling will be smooth. Also remove
4849         the code that was trying to detect the obscured regions, since we are
4850         not using it anymore (too slow).
4851
4852 2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4853
4854         * ListBox.cs: Fix the -temporary- broken selection in ListBox for
4855         MultiExtended mode, by separating some logic between the ctrl/shift
4856         handling. Also ignore any MouseMove events generated together with
4857         MouseDown events - we are only interested in the real motion event.
4858         Fixes part of #414963.
4859
4860 2008-08-08  Jonathan Pobst  <monkey@jpobst.com>
4861
4862         * DataGridViewCell.cs: Guard against an AOORE when checking if a cell
4863         is selected.  [Fixes bug #414143]
4864
4865 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
4866
4867         * GridEntry.cs: Check if current property is a ICustomTypeDescriptor 
4868         and not the parent one (the propertyowner). Fixes the behavior of 
4869         GetConverter/GetEditor.
4870         [Fixes bug #415452]
4871
4872 2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
4873
4874         * PropertyGrid.cs: Refresh should also repopulate the PropertyGrid.
4875         [Fixes part of bug #415452]
4876
4877 2008-08-05  Ivan N. Zlatev  <contact@i-nz.net>
4878
4879         * GridEntry.cs: ITypeDescriptorContext should be relative to the parent 
4880         GridEntry, not the current.
4881         [Fixes bug #413896]
4882
4883 2008-08-04  Ivan N. Zlatev  <contact@i-nz.net>
4884
4885         * TextBoxBase.cs: De-internalize max_length field.
4886         * RichTextBox.cs: Use base.MaxLength - both TextBoxBase and RichTextBox 
4887         share the same logic.
4888         [Fixes bug #414454]
4889
4890 2008-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4891
4892         * ListBox.cs: Selection changes made in the MouseDown handler should
4893         use the *Core versions of selection in SelectedIndices collection,
4894         since the SelectedIndexChanged/SelectedValueChanged events are fired
4895         until we get a MouseUp event, and thus we need to separate the logic
4896         from the events, as done in the keyboard navigation. Also, fire those
4897         selection events from keyboard navigation in SelectionMode.None, even
4898         if we don't have a selection, as .Net does.
4899
4900 2008-08-01  Jonathan Pobst  <monkey@jpobst.com>
4901
4902         * ToolStripButton.cs, ToolStripMenuItem.cs: Guard against a NRE my
4903         last change introduced when an item is clicked but isn't on a toolstrip.
4904
4905 2008-07-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4906
4907         * ListBindingHelper.cs: When looking for an object's properties, check
4908         if it implements ICustomTypeDescriptor, in which case we should
4909         resolve the propertu based on its GetProperties method, not in its
4910         actual properties. This is what .Net seems to do.
4911         Fixes a UsingWebBrowser problem during initialization.
4912
4913 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4914
4915         * ToolStrip.cs: Fix an NRE caused by clicking on a ToolStripButton
4916         sitting on a MenuStrip.
4917
4918 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4919
4920         * ToolStripButton.cs: If we "click" a top button on a menustrip that has
4921         no children with the keyboard, we need to release the keyboard capture.
4922         [Fixes bug #413567]
4923
4924 2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
4925
4926         * ToolStripMenuItem.cs: If we "click" a top level menu item that has
4927         no children with the keyboard, we need to release the keyboard capture.
4928         [Fixes bug #413567]
4929
4930 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
4931
4932         * ThemeVisualStyles.cs: Made ScrollBar rendering less strict so it supports
4933         the GTK+-based implementation of VisualStyles.
4934         * ThemeWin32Classic.cs: Exposed various layout values for use in the
4935         GTK+-based implementation of VisualStyles: ListViewGetHeaderHeight(Font),
4936         ListViewGetHeaderHeight(), ProgressBarChunkSpacing, ProgressBarGetChunkSize(),
4937         ProgressBarGetChunkSize(int), ProgressBarDefaultHeight,
4938         TrackBarGetThumbSize(), TrackBarVerticalTrackWidth,
4939         TrackBarHorizontalTrackHeight.
4940
4941 2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
4942
4943         * TabControl.cs: Added hot style handling for the scroll buttons.
4944         right_slider_state, left_slider_state are now of type PushButtonState to
4945         allow for a hot state. Added tracking of the mouse button being held down
4946         on a tab page. Extracted HasHotElementStyles, RightScrollButtonArea,
4947         LeftScrollButtonArea.
4948         * Theme.cs, ThemeWin32Classic.cs: Removed TabControlGetLeftScrollRect,
4949         TabControlGetRightScrollRect.
4950
4951 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4952
4953         * MenuAPI.cs: Check for null GrabControl on ProcessMnemonic to prevent 
4954         runtime errors.
4955
4956 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4957
4958         * Form.cs: Ensure that we reset the shown_raised flag after 
4959         the form is closed, so that we raise the show events the next 
4960         time the form is shown.
4961         [Fixes bug #413141]
4962
4963 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4964
4965         * Form.cs: Ensure closing events are raised only once.
4966         [Fixes bug #413143]
4967
4968 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
4969
4970         * X11Keyboard.cs: Refactor SendKeyboardInput to accept the keycode, 
4971         so that we can successfully generate the LParam in-place instead of 
4972         in KeyEvent, which isn't called for e.g. MainMenu. Fixes keyboard 
4973         navigation for menus.
4974
4975 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4976
4977         * MenuAPI.cs: When montion don't set the keyboard navigation state to 
4978         'navigating'. Fixes bug #411356.
4979
4980 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4981
4982         [Fixed remaining issues of #406773 (#1)]
4983         * MenuItem.cs: UpdateMenuItem added to track the shotcut changes.
4984
4985         * MenuAPI.cs: Don't create tracker on TrackPopupMenu, it will be created in
4986         MainMenu (already done) and ContextMenu creation.
4987
4988         * ContextMenu.cs: Create tracker on construction. 
4989
4990 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4991
4992         * MenuAPI.cs: For ContextMenu set GrabControl on TrackPopupMenu, it make
4993         possible to instantiate MenuTracker without GrabControl.
4994
4995 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
4996
4997         * MenuAPI.cs: On constructor dont set the GrabControl for non ContextMenu.
4998
4999         * MainMenu.cs: Set GrabControl on SetForm using current form.
5000
5001 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
5002
5003         * MenuAPI.cs: Chage grab_control to GrabControl and make it public.
5004
5005 2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
5006
5007         * MenuAPI.cs: Check if menu is activated before deactivate it in 
5008         ProcessShortcut.
5009
5010 2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
5011
5012         * TableLayoutStyleCollection, TableLayoutStyle.cs, RowStyle.cs, 
5013         ColumnStyle.cs: 
5014         Make the TableLayoutStyle owned by the the TableLayoutPanel, so that:
5015          - One style instance can only participate in a single style collection.
5016          - Styles can request their owner to layout whenever their properties 
5017          change.
5018          [Fixes bugs #412583 and #412582]
5019
5020 2008-07-29  Ivan N. Zlatev  <contact@i-nz.net>
5021
5022         * X11Keyboard.cs: Implement the generation of the LParam for 
5023         all keyboard messages.
5024         [Fixes bug #378728]
5025
5026 2008-07-29  Jonathan Pobst  <monkey@jpobst.com>
5027
5028         * ListBox.cs: Don't let the user set TopIndex so high that it
5029         scrolls up far enough to show empty items.
5030         [Fixes bug #412728]
5031
5032 2008-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5033
5034         * ThemeWin32Classic.cs: Actually commit the changes to fix #410880
5035         (I'm an idiot and forgot to commit the actual changes, as well as
5036         specify the right file, which is this one, not ListView.cs).
5037
5038 2008-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5039
5040         * ListView.cs: Don't draw ListViewSubItem instances from
5041         DrawListViewItem - we need to reuse the main item's drawing for the
5042         first sub item in case owner draw is true, but wants the system to
5043         do the default draw for the first sub item, without incurring in a
5044         recursion problem.
5045         Fixes #410880.
5046
5047 2008-07-28  Jonathan Pobst  <monkey@jpobst.com>
5048
5049         * ToolStripButton.cs: Update Checked for CheckOnClick before
5050         raising the Click event.  [Fixes bug #412505]
5051
5052 2008-07-28  Ivan N. Zlatev  <contact@i-nz.net>
5053
5054         * Form.cs: Remove some seems leftover code for non-TopLevel's 
5055         CreateParams, which is breaking ClientSize sizing, because it 
5056         removes the border window styles.
5057
5058 2008-07-27  Ivan N. Zlatev  <contact@i-nz.net>
5059
5060         * PropertyGrid.cs: Invalidate the View when the PropertyTab 
5061         changes.
5062
5063 2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>
5064
5065         * WebBrowser.cs: Removed debug output.
5066
5067 2008-07-25  Jonathan Pobst  <monkey@jpobst.com>
5068
5069         * FileDialog.cs: Apply patch from Ernesto to clean up some
5070         dialog messages.
5071
5072 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5073
5074         * TableLayoutPanel.cs: Perform layout on GrowStyle change, so 
5075         that the change has an immediate effect.
5076
5077 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5078
5079         * ScrollableControl.cs: Update PerformLayout calls to include 
5080         provide the name of the property that changed.
5081
5082 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5083
5084         * TableLayoutPanel.cs: Draw relative to the DisplayRectangle 
5085         location. Fixes drawing of border and cell borders if scrollable.
5086
5087 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5088
5089         * ScrollableControl.cs: Perform layouting after the AutoScroll 
5090         properties have changed, so that the changes have immediate 
5091         effect.
5092         [Fixes bug #409090]
5093
5094 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5095
5096         * XplatUIX11.cs: Non Client area is actually Client such in the 
5097         case of NotifyIcon, so double check WholeWindow == ClientWindow 
5098         when adding an expose.
5099         [Fixes bugs #324237 and #357022]
5100
5101 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5102
5103         * TableLayoutPanel.cs: Invalidate after layouting, so that we 
5104         repaint the cell borders.
5105
5106 2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
5107
5108         * PropertyGridTextBox.cs: Stop filtering messages prior to our 
5109         disposal to avoid unexpected ObjectDisposedExceptions.
5110
5111 2008-07-24  Ivan N. Zlatev  <contact@i-nz.net>
5112
5113         * TableLayoutPanel.cs: Layout on Row/Column count change.
5114
5115 2008-07-22  Gert Driesen  <drieseng@users.sourceforge.net>
5116
5117         * ListViewItem.cs: Changed binary serialization to match MS. Fixes
5118         bug #409351.
5119         * PictureBox.cs: When ImageLocation is set to null or an empty string,
5120         only set image to null if it was previously initialized from an url
5121         (or using ImageLocation). In ImageLocation, load specified image
5122         asynchronously if WaitOnLoad is false. Added support for local file
5123         paths to LoadAsync, and added missing argument check.
5124
5125 2008-07-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5126
5127         * DateTimePicker.cs: 
5128         * ThemeWin32Classic.cs: Add a editing capability to DateTimePicker, in
5129         order to set the value as required (which means: when selection
5130         changes for a part being edited, and not before that if not needed).
5131         Also use an enum to describe which part are we using, and use the
5132         selection as a property in PartData, in order to notify the
5133         DateTimePicker owner that we need to end the current edit.
5134         Fixes #383462.
5135
5136 2008-07-17  Ivan N. Zlatev  <contact@i-nz.net>
5137
5138         * PropertyGridTextBox.cs: Validation should be performed only if we 
5139         are focused. We can lose focus for example if the Return key is used 
5140         to set the entry and there is an error. When the message box is 
5141         displayed we would have validate on click in the message box.
5142
5143 2008-07-16  Ivan N. Zlatev  <contact@i-nz.net>
5144
5145         * GridEntry.cs: Checking for DesignerSerializaitonVisibility.Content 
5146         in order to determine that we are expandable is wrong. There was a bug, 
5147         now fixed, in TypeDescriptor that was causing the wrong converter to be 
5148         returned which caused GetPropertiesSupported == false in most cases.
5149         [Fixes bug #409027]
5150
5151 2008-07-15  Jonathan Pobst  <monkey@jpobst.com>
5152
5153         * ImageList.cs: Fix ICollection.CopyTo implementation for
5154         ImageListCollection.  [Fixes bug #409169]
5155
5156 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
5157
5158         * MenuAPI.cs, ToolStripDropDown.cs: Use VirtualScreen instead of
5159         WorkingArea so that menus can appear on the second monitor
5160         when one has dual monitors.
5161
5162 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5163
5164         * TextBox.cs: Auto complete stuff in WndProc should be 2.0 only.
5165         Fixes build.
5166
5167 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5168
5169         * TextBox.cs: Implement navigation support for auto complete in
5170         TextBox, as well as refactor the code to show the auto complete window
5171         when receiving a WM_CHAR message, instead of TextChanged, since
5172         autocomplete itself should be able to set the Text a lot of times and
5173         finally only typing should show it, not changes from code.
5174
5175 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5176
5177         * TabControl.cs: When expanding the selected tab, don't adjust the
5178         width if alignment is Right, since it has a different offset than 0,
5179         as opposed to the other alignments.
5180         Fixes the selected tab not being painted at all with alignment = Right
5181         and using FillToRight size mode.
5182
5183 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
5184
5185         * TreeView.cs: Fix ToString to match MS.  [Fixes bug #409029]
5186
5187 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
5188
5189         * NumericUpDown.cs: Apply patch from Andy Hume to clamp out of range
5190         values from the textbox to the boundary values.  [Fixes bug #409026]
5191
5192 2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
5193
5194         * TreeNodeCollection.cs: We were copying one too many elements when
5195         doing our array copy.  Fixes a crash when RemoveAt is called.
5196         [Fixes bug #408999]
5197
5198 2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5199
5200         * TabControl.cs: When doing the layout and need to call FillRow -using
5201         FillToRight size mode-, use the overload receiving a bool param
5202         indicating whether we need to do a vertical or horizontal calculation.
5203         Fixes part of #399583.
5204
5205 2008-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5206
5207         * TextBox.cs: When painting, use the value returned by
5208         GetLastVisibleItem instead of using the cached last_item field, since
5209         there could be a desynchronization between the layout and the
5210         painting. Fixes a AOOR exception in auto complete mode.
5211
5212 2008-07-12  George Giolfan  <georgegiolfan@yahoo.com>
5213
5214         * ThemeVisualStyles.cs: Disabled when Application.VisualStyleState is
5215         NonClientAreaEnabled until our VisualStyles is modified to allow it.
5216
5217 2008-07-12  Gert Driesen  <drieseng@users.sourceforge.net>
5218
5219         * TextBox.cs: Fixed NRE in LostFocus. Avoid unnecessary initialization.
5220
5221 2008-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5222
5223         * TextBox.cs: When focus is lost, if the auto complete listbox is
5224         visible, hide it.
5225
5226 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
5227
5228         * InternalWindowManager.cs: HandleSizing: Implemented a better minimum
5229         tracking size for tool windows.
5230         * Theme.cs, ThemeWin32Classic.cs : Extracted
5231         ManagedWindowSpacingAfterLastTitleButton.
5232
5233 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
5234
5235         * ThemeEngine.cs: Remove the clearlooks, nice, and old gtk themes.
5236         They are bit-rotted and have always been listed as "unsupported".
5237
5238 2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
5239
5240         * PictureBox.cs: Don't crash if ImageLocation is set to "" or null.
5241
5242 2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
5243
5244         * ThemeVisualStyles.cs: Fixed minimized window height adjustment.
5245
5246 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
5247
5248         * ListBox.cs: Make sure last_item_visible gets reset before we try
5249         to do a layout due to scrollbars appearing or disappearing.
5250         [Fixes bug #408139]
5251
5252 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
5253
5254         * XPlatUIWin32.cs: Change GetMenuOrigin to calculate borders better
5255         for different window themes.  [Fixes bug #339140]
5256
5257 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5258
5259         * ThemeWin32Classic.cs: Implemented minimized window border width properly,
5260         in ManagedWindowBorderWidth.
5261
5262 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
5263
5264         * InternalWindowManager.cs: Change MouseMove to take a point, so
5265         we can use the same point later on.
5266         * MdiWindowManager.cs: Store point sent to MouseMove so we can
5267         later reset to it.  On Windows, the Cursor.Position had already
5268         changed by the time we were resetting to it.
5269         [Fixes bug #363239]
5270
5271 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
5272
5273         * InternalWindowManager.cs: Ignore mouse actions on TitleButtons that
5274         are inactive.
5275         * ThemeWin32Classic.cs: Disable or hide MinimizeBox/MaximizeBox if
5276         user requested it.
5277         [Fixes bug #398686]
5278
5279 2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
5280
5281         * MdiWindowManager.cs: Double-clicking on the title bar should not
5282         maximize a MDI form if MaximizeBox = false.
5283
5284 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5285
5286         * ThemeVisualStyles.cs: Fixed a warning.
5287
5288 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5289
5290         * ThemeVisualStyles.cs: Fixed warnings and formatted.
5291
5292 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5293
5294         * ThemeVisualStyles.cs: Removed ManagedWindowGetMenuButtonSize. The base
5295         implementation produces a better result.
5296
5297 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5298
5299         * ThemeVisualStyles.cs: Adjusted height and border rendering for minimized
5300         windows.
5301
5302 2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
5303
5304         * Application.cs: Added VisualStylesEnabled because XplatUI.ThemesEnabled
5305         cannot be used from the ThemeEngine constructor.
5306         * ThemeEngine.cs: Changed the XplatUI.ThemesEnabled check to
5307         Application.VisualStylesEnabled because it does not work on X11.
5308
5309 2008-07-09  Jonathan Pobst  <monkey@jpobst.com>
5310
5311         * StatusBar.cs: Apply patch from Andy Hume to remove lazy instantiation
5312         that we did not always check for, as well as fixes to the IList
5313         implementations.  [Fixes bug #402703]
5314
5315 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5316
5317         * IDeviceContext.cs: Added Dispose.
5318
5319 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5320
5321         * Control.cs: Added OnSizeInitializedOrChanged.
5322         * Form.cs: OnLoadInternal: Added a call to
5323         Control.OnSizeInitializedOrChanged.
5324         * InternalWindowManager.cs:
5325          * HandleTitleBarMouseMove: No longer invalidates the parent window.
5326          * DrawTitleButton: Extracted Theme.ManagedWindowDrawMenuButton.
5327          * TitleButton: Added Entered.
5328          * TitleButtons.MouseMove: Added handling of TitleButton.Entered.
5329         * MdiWindowManager.cs:
5330          * HandleTitleBarMouseMove: Now invalidates the parent window when a mouse
5331          move over the maximized title buttons causes a change.
5332          * IsActive: Can now be called before the window is added to a MDI parent.
5333         * Theme.cs: Added ManagedWindowTitleButtonHasHotElementStyle,
5334         ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
5335         * ThemeVisualStyles.cs: Implemented proper managed window rendering.
5336         * ThemeWin32Classic.cs:
5337          * Extracted ManagedWindowDrawTitleBarAndBorders, ManagedWindowDrawTitleButton.
5338          * DrawTitleButton takes a new form parameter.
5339          * Added ManagedWindowTitleButtonHasHotElementStyle,
5340          ManagedWindowDrawMenuButton, ManagedWindowOnSizeInitializedOrChanged.
5341
5342 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
5343
5344         * ThemeEngine.cs: ThemeVisualStyles is now selected if
5345         Application.EnableVisualStyles has been called, even if the current system
5346         configuration does not support rendering with Visual Styles.
5347         * ThemeVisualStyles.cs: Now falls back to ThemeWin32Classic when Visual
5348         Styles should not be used.
5349
5350 2008-07-08  Jonathan Pobst  <monkey@jpobst.com>
5351
5352         * ComboBox.cs: PreferredHeight is not tied to ItemHeight.  Fixes 3rd
5353         ComboBox in FormsTest.
5354
5355 2008-07-08  Ivan N. Zlatev  <contact@i-nz.net>
5356
5357         * ThemeWin32Classic.cs: (ManagedWindowBorderWidth): width 3 is only 
5358         for fixed toolwindows.
5359
5360 2008-07-08  George Giolfan  <georgegiolfan@yahoo.com>
5361
5362         * Form.cs: SetBoundsCore: Added minimum size for minimized windows.
5363
5364 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5365
5366         * Control.cs: CreateControl just returns if the Control is diposed 
5367         and doesn't throw ObjectDisposedException.
5368         [Fixes bug #406566]
5369
5370 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5371
5372         * Control.cs: Do not create the control if the parent isn't created 
5373         yet, e.g in the case of a parented form on which .Show is called.
5374         It will be created when the parent is made visible/created.
5375         Improves #402446.
5376
5377 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5378
5379         * Form.cs: Avoid recursively calling OnSizeChanged due to recursive 
5380         WM_WINDOWPOSCHANGED caused by the layouting code on win32.
5381         [Fixes bug #406786]
5382
5383 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5384
5385         * Form.cs: When disposed set owner to null. Improves #402446.
5386
5387 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5388
5389         * Form.cs, FlowLayoutPanel.cs: When calculating the PreferredSize 
5390         use children's PreferredSize if in AutoSize mode and ExplicitBounds 
5391         if not.
5392         * Form.cs: Take the Padding into account for the PreferredSize.
5393         [Fixes bug #402849]
5394
5395 2008-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5396
5397         * TabControl.cs: Since we don't support more than one direction in
5398         TabControl rows alignment (this is, the row becomes the
5399         bottom row when selected), make Direction return always 1. This way
5400         the layout doesn't get confused about a bad calculation.
5401         Fixes #399582.
5402
5403 2008-07-07  Ivan N. Zlatev  <contact@i-nz.net>
5404
5405         * XplatUIX11.cs: Implement NC hit-testing for mouse down/up messages, 
5406         so that the wparam is properly set.
5407         Fixes form moving in the test case in bug 402446.
5408
5409 2008-07-07  Jonathan Pobst  <monkey@jpobst.com>
5410
5411         * FolderBrowserDialog.cs: If we can't find the SelectedPath, display
5412         the full tree instead of nothing.  [Improves bug #406584]
5413
5414 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
5415
5416         * ThemeWin32Classic.cs: Adjusted minimized window painting.
5417
5418 2008-07-07  George Giolfan  <georgegiolfan@yahoo.com>
5419
5420         * InternalWindowManager.cs: No longer draws decorations for maximized MDI
5421         children.
5422
5423 2008-07-04  Jonathan Pobst  <monkey@jpobst.com>
5424
5425         * TreeView.cs: Add a null check when using CollapseAll on an
5426         empty tree.  [Fixes bug #406449]
5427
5428 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5429
5430         * Form.cs: Make OnMenuComplete internal so we can call it.
5431         * MenuAPI.cs: Raise Form.MenuComplete when a menu item is clicked.
5432         [Fixes bug #399321]
5433
5434 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5435
5436         * TabControl.cs: Handle Up and Down keys when TabControl is in
5437         vertical alignment.
5438         [Fixes bug #399585]
5439
5440 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5441
5442         * TabControl.cs: Invalidate when we remove a tab.  Guard against
5443         an AOORE when trying to remove a tabpage that is not owned by the
5444         parent control.
5445         [Fixes bug #399927]
5446
5447 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5448
5449         * ScrollBar.cs: Change the LargeChange calculation to be correct.
5450         Ensure we are using LargeChange instead of large_change so we our
5451         calculations are correct.
5452         [Fixes bug #403122]
5453
5454 2008-07-03  Jonathan Pobst  <monkey@jpobst.com>
5455
5456         * TableLayoutPanel.cs: When we change to a serialized TableLayoutSettings,
5457         we need to ensure the ColumnCount/RowCount gets set.
5458         [Fixes bug #404851]
5459
5460 2008-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5461
5462         * ListBox.cs: When handling item navigation, if selection mode is
5463         None, call EnsureVisible, since scrolling is normally handled by
5464         selection, that we are not calling in this case.
5465         Fixes #398345.
5466
5467 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
5468
5469         * ContainerControl.cs: Apply a patch from Ernesto Carrea that adds
5470         a null check to our focus walking code.  [Fixes bug #394332]
5471
5472 2008-07-02  Andy Hume <andyhume32 at yahoo dot co dot uk>
5473
5474         * ComboBox.cs: Case missed in bug 379596 "Support item
5475         navigation by entering text": On _close_ drop-down select
5476         the first item matching the text in the textbox.  [Fixes bug #397265]
5477
5478 2008-07-02  Jonathan Pobst  <monkey@jpobst.com>
5479
5480         * DataGridView.cs: Fix a crash when sorting by column headers, 
5481         mentioned in bug #404841.  Remove some dead switch cases.
5482
5483 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5484
5485         * ComboBox.cs:
5486         * TextBox.cs: Implement AutoComplete support for ComboBox, which just
5487         uses the AutoComplete support in the internal TextBox. Also TextBox
5488         can store a reference to ComboBox, in case AutoCompleteSource is set
5489         to ListItems (this is, ComboBox's items, and we don't want to pass an
5490         additional collection).
5491
5492 2008-07-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5493
5494         * ListViewItem.cs: Restore the initial value of bounds rect to
5495         Rectangle.Empty, and is this value for Layout detection in virtual
5496         mode. Fixes the tests.
5497
5498 2008-06-30  Jonathan Pobst  <monkey@jpobst.com>
5499
5500         * XPlatUI.cs: Remove references to "new" X11 backend.
5501
5502 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
5503
5504         * Control.cs: Add an internal virtual OnDragDropEnd method 
5505         to allow controls such as ListBox, which depend on a sequence 
5506         of MouseDown+Move+End events, to handle the lack of a MouseUp 
5507         when a DnD operation is started in MouseDown.
5508         * ListBox.cs: If a DnD operation is started in MouseDown we won't 
5509         get a MouseUp, so reset our state whenever a DnD operation ends.
5510
5511 2008-06-28  Ivan N. Zlatev  <contact@i-nz.net>
5512
5513         * PropertyGrid.cs: Clear the root griditem first thing when 
5514         new object/s is/are selected. Fixes some rare cases where 
5515         the View will get a paint request and won't know that the 
5516         grid is in the process of repopulating.
5517
5518 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5519
5520         * XplatUIX11.cs, InternalWindowManager.cs: 
5521         If WS_EX_TOOLWINDOW is set in the CreateParams for a form MS 
5522         doesn't automagically update the FormBorderStyle, so we must 
5523         double check the CreateParams explicitly to determine if the 
5524         window is a toolwindow.
5525         * ThemeWin32Classic.cs: Use InternalWindowManager.IsToolWindow 
5526         instead of doing custom checks.
5527
5528         Fixes toolwindows for the test case in bug #402446
5529
5530 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5531
5532         * Control.cs: Visibility of the control should be false 
5533         when the handle is destroyed in WmDestroy and not immediately 
5534         in Dispose(). This is effectively where the disposing process 
5535         ends even though the control is marked as Disposed immediately 
5536         after calling Dispose().
5537         [Fixes bug #402446]
5538
5539 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5540
5541         * PropertyGridTextBox.cs: Start monitoring the mouse clicks 
5542         when the textbox gets focus.
5543         [Fixes bug #402704]
5544
5545 2008-06-27  Ivan N. Zlatev  <contact@i-nz.net>
5546
5547         * PropertyGridTextBox.cs, PropertyGridView.cs: 
5548          - Alt + Down should show the drop down editor.
5549          - Focus the editor when showing it
5550         [Fixes bug #402710]
5551
5552 2008-06-25  Jonathan Pobst  <monkey@jpobst.com>
5553
5554         * ThemeWin32Classic.cs: Fix from Andy for panel text for panels
5555         that are not the first panel.
5556         * StatusBar.cs: Ensure that the X coordinate of panels is always
5557         stored.  Fix IList implementation of StatusBarPanelCollection to
5558         call the regular methods.
5559         [Fixes bug #403599, #402165]
5560
5561 2008-06-23  Jonathan Pobst  <monkey@jpobst.com>
5562
5563         * ThemeWin32Classic.cs: Fix position calculation for centered
5564         text on status bar panels.  [Fixes bug #402165]
5565
5566 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
5567
5568         * Splitter.cs: Fix Splitter to:
5569          - Work for arbitrary splitter size
5570          - Handle MinSize and MinExtra properly
5571          - Get rid of absolute positioning during drag and use relative
5572          - Multiple other fixes 
5573          [Fixes bug #338966]
5574
5575 2008-06-22  Ivan N. Zlatev  <contact@i-nz.net>
5576
5577         * Cursor.cs: Show shouldn't hide the cursor.
5578
5579 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5580
5581         * ListViewItem.cs: When invalidating, add some extra space to bounds,
5582         since focus rectangle and selection can add some space and need to
5583         take into account those small offsets - specially in Details view.
5584         * ListView.cs: Instead of invalidate using item Bounds directly, call
5585         item.Invalidate, to have the code centralized.
5586         Fixes focused/selection garbage when selecting and deselecting items
5587         that are close.
5588
5589 2008-06-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5590
5591         * ListViewItem.cs: Set bounds initially to -1 values - thus in virtual
5592         mode we can check whether we have to force a Layout or not, and can
5593         cache based on this, instead of avoiding caching all the the time. Do
5594         this check in GetBounds and TextBounds.
5595         Fixes selection in Details view.
5596
5597 2008-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5598
5599         * ListView.cs: Make HeaderControl internal, thus the theme engine can
5600         get its *real* height instead of trying to infere it.
5601         * ThemeWin32Classic.cs: When drawing gridlines, don't iterate over the items to
5602         get the position of them, since it's in general a bad idea in general,
5603         and because we can't do that in virtual mode. Instead get the first
5604         visible item as well as item height, and draw them.
5605         Fixes #400390.
5606
5607 2008-06-20  Jonathan Pobst  <monkey@jpobst.com>
5608
5609         * ToolStripSplitButton.cs: We can't add in extra width if
5610         the button is not AutoSize.  [Fixes bug #401279]
5611
5612 2008-06-20  Ivan N. Zlatev  <contact@i-nz.net>
5613
5614         * PaddingConverter.cs: 
5615          - Implement conversion to InstanceDescriptor
5616          - Handle "All" in CreateInstance by using the supplied 
5617          ITypeDescriptorContext.
5618          [Fixes bugs #396076 and #396078]
5619
5620          Patch by Andy Hume  <andyhume32@yahoo.co.uk>
5621          Code contributed under MIT/X11 license.
5622
5623 2008-06-19  Andy Hume <andyhume32 at yahoo dot co dot uk>
5624
5625         * ComboBox.cs, ListControl.cs, Control.cs, Button.cs, 
5626         ButtonBase.cs:
5627         Add Category attributes.
5628         Code is contributed under the MIT/X11 license.
5629
5630 2008-06-18  Ivan N. Zlatev  <contact@i-nz.net>
5631
5632         * Form.cs: 
5633          - Fix a NRE when unparenting a form.
5634          - Do not recreate or destroy a parented form when 
5635         unparenting. 
5636
5637 2008-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5638
5639         * TextBox.cs: Implement basic support for AutComplete with custom
5640         sources.
5641
5642 2008-06-18  Jonathan Pobst  <monkey@jpobst.com>
5643
5644         * ToolStripSplitButton.cs: Left and Top of ButtonBounds, SplitterBounds,
5645         DropDownButtonBounds should be from the origin of the button, not the
5646         ToolStrip.  [Fixes bug #401279]
5647
5648 2008-06-16  Sandy Armstrong <sanfordarmstrong@gmail.com> 
5649
5650         * X11DesktopColors.cs: Clear GTK_MODULES environment variable before
5651           running gtk_init_check.  This prevents GAIL from loading
5652           unnecessarily, which was breaking UIA support.  Initial fix for bug
5653           #375987.
5654         * Application.cs: Add UIA support to Winforms.  New static constructor
5655           uses reflection to initialize UIAutomationWinforms assembly.  Added
5656           PreRun event so UIA can initialize before the mainloop starts, and
5657           FormAdded event so UIA can provide a11y support for new Forms in an
5658           Application.
5659
5660 2008-06-16  Jonathan Pobst  <monkey@jpobst.com>
5661
5662         * DataGridView.cs: When binding to a dataset, subscribe to table
5663         and column change events.  Unsubscribe to these when we clear bindings.
5664         [Fixes bug #399601]
5665
5666 2008-06-14  Everaldo Canuto  <ecanuto@novell.com>
5667
5668         [DataGrid drawing refactory]
5669
5670         * DataGrid.cs: Fix the caption size, we need one pixel more for divider.
5671
5672         * DataGridColumnStyle.cs: Removing PaintHeader code, the draw operations
5673         must be handle by Theme, now it call DataGridPaintColumnHeader.
5674
5675         * DataGridTextBoxColumn.cs: Fix the textbox size. It must be one pixel less,
5676         test cases must be also fixed because it checks for wrong size.
5677
5678         * ThemeWin32Classic.cs: 
5679                 - Draw the bottom line of grid caption.
5680                 - Prevent to draw caption text when it is empty.
5681                 - Use CPDrawBorder3D for 3D efects to simplify code.
5682                 - Uses 3D (when not flat) to paint corner shared between row and column
5683                 header.
5684                 - Fix header drawing issues on win32, now borders are drawing.
5685                 - Fix column header paint issues to mimic win32.
5686                 - Adjust header drawing for last column, like first one it must be draw
5687                 different.
5688                 - Added DataGridPaintRowHeaderStar to draw star like .net does, it is
5689                 not an character.
5690                 - DataGridPaintColumnHeader created to draw column headers, it also
5691                 paint stuff right on Win32.
5692                 - Use DataGridPaintColumnHeader method instead of DataGridColumnStyle 
5693                 class.
5694
5695         * Theme.cs: 
5696                 - DataGridPaintRowHeaderStar method added.
5697                 - DataGridPaintColumnHeader method added.
5698
5699 2008-06-13  Jonathan Pobst  <monkey@jpobst.com>
5700
5701         * Control.cs: Don't reset to Dock style layout if DockStyle is
5702         set to none.  [Fixes bug #399316]
5703
5704 2008-06-12  Everaldo Canuto  <ecanuto@novell.com>
5705
5706         * Win32DnD.cs: Fix the check for control not equal null.
5707         Fixes bug #341420 and #381886. 
5708
5709 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
5710
5711         * DataGridViewRowCollection.cs: Update the indexes of rows after
5712         one has been removed.
5713         * DataGridViewSelectedRowCollection.cs: Add internal clear method.
5714         * DataGridViewSelectedColumnCollection.cs: Add internal clear method.
5715         * DataGridView.cs: Add support for deleting rows via Delete key, deleting
5716         rows for the Rows collection, or deleting rows from the bound DataSet.
5717
5718 2008-06-12  Jonathan Pobst  <monkey@jpobst.com>
5719
5720         * DataGridView.cs: Listen to a DataSet's changed event even
5721         when autogeneratecolumns is false.  Refactor the changed event's
5722         add row code to use the same as the existing add row code.
5723         [Fixes bug #399601]
5724
5725 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5726
5727         * TextBoxBase.cs: We need to call RaiseSelectionChanged pretty
5728         much any time the caret moves and there is text, not just when
5729         the selection changes as one would think.
5730         * RichTextBox.cs: Override RaiseSelectionChanged and fire
5731         SelectionChanged.
5732         [Fixes bug #397271]
5733
5734 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5735
5736         * FontDialog.cs: Forward ListBox keyboard events to the ListBox
5737         instead of trying to duplicate the code.
5738         * ListBox.cs: Make method internal so we can send keyboard events.
5739         [Fixes bug #398344]
5740         
5741 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5742
5743         * TextBoxBase.cs: When pasting and checking the max length,
5744         subtract the selected text length (the text we will be replacing) from
5745         the document length.
5746         * TextControl.cs: Ensure every character insertion is reflected in
5747         charcount, so max length will work properly.
5748         [Fixes bug #398605]
5749
5750 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5751
5752         * ListBox.cs: Ensure scrollbars are updated when a single
5753         column listbox with an already set top-index is created.
5754         [Fixes bug #398342]
5755
5756 2008-06-11  Jonathan Pobst  <monkey@jpobst.com>
5757
5758         * FontDialog.cs: Typing in the font/style textboxes should search
5759         the list boxes case-insensitively.  [Fixes bug #398343]
5760
5761 2008-06-11  George Giolfan  <georgegiolfan@yahoo.com>
5762
5763         * ThemeWin32Classic.cs: Managed window title bar layout now uses actual
5764         widths of icon and buttons instead of hard coded values.
5765
5766 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5767
5768         * ListBox.cs: When SelectionMode is None, clicking an item should move focus
5769         as well as generating a SelectedIndexChanged event, just like .Net does
5770         -surprise-.
5771         Fixes #398345.
5772
5773 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5774
5775         * ListBox.cs: When navigating items visually, use FocusedItem as the
5776         reference point instead of SelectedIndex, since even in
5777         SelectionMode.None we need to support navigation, and in that case we
5778         just can't use SelectedIndex.
5779         Fixes part of #398345.
5780
5781 2008-06-10  Jonathan Pobst  <monkey@jpobst.com>
5782
5783         * Control.cs: Make a SetBoundsInternal that avoids the new
5784         SetBounds code.
5785         * ComboBox.cs, Form.cs, ListBox.cs, ScrollableControl.cs: Use
5786         SetBoundsInternal instead of SetBoundsCoreInternal.
5787
5788 2008-06-10  Ivan N. Zlatev  <contact@i-nz.net>
5789
5790         * ScrollableControl.cs: Use SetBoundsCoreInternal instead of 
5791         SetBounds for the scrollbars.
5792
5793 2008-06-10  Andreia Gaita <avidigal@novell.com> 
5794
5795         * HtmlDocument.cs: Implement RightToLeft, ContextMenuShowing,
5796           FocusingEvent, LosingFocusEvent, OnMouseDown, OnMouseLeave,
5797           OnMouseMove, OnMouseOver, OnMouseUp
5798         * HtmlElement.cs: Optimize InsertBefore. Implement RemoveFocus,
5799           ScrollIntoView, Focusing, GotFocus, LosingFocus, LostFocus.
5800         * HtmlElementCollection.cs, HtmlWindowCollection.cs: Keep a reference
5801           to the WebControl object to pass to new collection objects
5802         * HtmlHistory.cs: Implement support for individual window histories.
5803         * HtmlWindow.cs: Implement History, Position, Size, WindowFrameElement,
5804           AttachEventHandler, DetachEventHandler, RemoveFocus, Error,
5805           GotFocus, LostFocus, OnLoad, OnUnload
5806         * WebBrowser.cs: Implement EncryptionLevel, ScrollBarsEnabled,
5807           ContextMenu
5808         * WebBrowserBase.cs: Implement Cursor, Enabled, UseWaitCursor, Add
5809           security level changes and context menu event support.
5810
5811 2008-06-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5812
5813         * ComboBox.cs: Pressing Enter should close the dropdown listbox, just
5814         as happens with Esc, patch my Andy Hume.
5815         Fixes #396294.
5816
5817 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5818
5819         * MdiWindowManager.cs: DrawMaximizedButtons now uses
5820         ManagedWindowGetMenuButtonSize instead of ManagedWindowButtonSize.
5821         * Theme.cs: Made MenuButtonSize platform dependent. Added
5822         ManagedWindowButtonSize.
5823         * ThemeWin32Classic.cs: Added ManagedWindowGetMenuButtonSize.
5824         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added MenuButtonSize.
5825
5826 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5827
5828         * DateTimePicker.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs:
5829         Added support for rendering with VisualStyles.
5830
5831 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5832
5833         * ComboBox.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
5834         support for rendering the border with VisualStyles.
5835
5836 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5837
5838         * InternalWindowManager.cs: Added ShowIcon. Fixed IconRectangleContains when
5839         the icon is not shown.
5840         * ThemeWin32Classic.cs: Now uses InternalWindowManager.ShowIcon instead of
5841         its own logic.
5842
5843 2008-06-10  George Giolfan  <georgegiolfan@yahoo.com>
5844
5845         * InternalWindowManager.cs: Draw minimized windows even if they don't have
5846         borders.
5847
5848 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
5849
5850         * ComboBox.cs, ListBox.cs: Use SetBoundsInternalCore instead of SetBounds.
5851
5852 2008-06-09  Jonathan Pobst  <monkey@jpobst.com>
5853
5854         * Control.cs: Fill in the defaults for unspecified bounds in SetBounds.
5855         [Fixes bug #397943]
5856
5857 2008-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5858
5859         * ComboBox.cs: When snaping height -because of IntegralHeight set to
5860         true- with ComboBoxStyle.Simple, set the height to PreferredHeight
5861         if the requested height leaves the listbox area with *less* than the
5862         required are to see one item. We were setting it to PreferredHeight
5863         even for values matching the height for a single item.
5864         Fixes #396297.
5865
5866 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
5867
5868         * DataGridViewCell.cs: Simplify GetInheritedStyle by using ApplyStyle.
5869
5870 2008-06-06  Jonathan Pobst  <monkey@jpobst.com>
5871
5872         * DataGridViewCell.cs: Use property instead of field.
5873
5874 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5875
5876         * InternalWindowManager.cs, ThemeWin32Classic.cs: Removed useless Form.Icon
5877         null checks.
5878
5879 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5880
5881         * Theme.cs: Added #region around the managed window code. Made the managed
5882         window methods abstract.
5883         * ThemeWin32Classic.cs: Added #region around the managed window code.
5884
5885 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5886
5887         * InternalWindowManager.cs: Now only calls Theme.DrawManagedWindowDecorations
5888         if it has borders.
5889         * ThemeWin32Classic.cs: Removed HasBorders checks in
5890         DrawManagedWindowDecorations.
5891
5892 2008-06-06  George Giolfan  <georgegiolfan@yahoo.com>
5893
5894         * InternalWindowManager.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
5895         Extracted ManagedWindowGetTitleBarIconArea.
5896
5897 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5898
5899         * DataGridViewCellStyle.cs: Don't clone the font.
5900
5901 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5902
5903         * DataGridViewCell.cs: Ensure we don't pass null to GetConverter.
5904
5905 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5906
5907         * XplatUIX1..cs: Use IntPtr size instead of int, as wee need to work
5908         also on 64 bit machinges. Fixes the BadWindow errors while scrolling
5909         in 64 bit machines.
5910
5911 2008-06-05  Jonathan Pobst  <monkey@jpobst.com>
5912
5913         * DataGridViewCell.cs: Correctly get converters for FormattedValue.
5914         Use Format/FormatProvider before trying converters.
5915         * DataGridViewCellStyle.cs: ApplyStyle should only apply things that
5916         are 'set'.  Change constructor to not use ApplyStyle since it wants
5917         everything applied.  Clone the Font.
5918         * DataGridViewRowHeaderCell.cs: Start with DefaultCellStyle and
5919         ApplyStyle the rest.
5920
5921 2008-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5922
5923         * ListView.cs: We need to calculate the scrollbars even if the handle
5924         hasn't been created - this is needed when methods using scrollbars
5925         info, such EnsureVisible, are called before control has been created.
5926         Fixes #397272.
5927
5928 2008-06-05  George Giolfan  <georgegiolfan@yahoo.com>
5929
5930         * ThemeVisualStyles.cs: ScrollBar is now rendered with the VisualStyles API
5931         only if the elements are defined. 
5932
5933 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5934
5935         * ComboBox.cs: I'm an idiiot - forgot to commit the last ComboBox
5936         section. Also, when setting bounds, snap height as well as save the
5937         requested height if Dock has any value affecting the height: Left,
5938         Right and Bottom - important if using IntegralHeight as true.
5939
5940 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5941
5942         * ComboBox.cs: When calling UpdateComboBoxBounds, adjust the height
5943         passed to SetBounds to reflect the new adjusted height (Integral-wise), 
5944         instead of doing that only in our SetBoundsCore override, since the 
5945         bounds cached can be the same as saved one and we could not get the
5946         new height applied.
5947         Fixes #396297.
5948
5949 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5950
5951         * Theme.cs: Made ToolWindowCaptionButtonSize platform dependent.
5952         * XplatUI.cs: Added ToolWindowCaptionButtonSize.
5953         * XplatUIDriver.cs: Changed SmallCaptionButtonSize to 15,15. Added
5954         ToolWindowCaptionButtonSize.
5955         * XplatUIWin32.cs: Added ToolWindowCaptionButtonSize.
5956
5957 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5958
5959         * MdiWindowManager.cs: Now uses SystemInformation.DoubleClickTime instead of
5960         hard coded values.
5961         * Theme.cs: Made DoubleClickTime plaform dependent.
5962
5963 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5964
5965         * Theme.cs: Made ToolWindowCaptionHeight platform dependent.
5966         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
5967         ToolWindowCaptionHeight.
5968
5969 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5970
5971         * InternalWindowManager.cs: The adjustment to ensure positive client area
5972         sizes is now platform dependent (disabled on Windows).
5973         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added
5974         RequiresPositiveClientAreaSize.
5975
5976 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5977
5978         * Form.cs: Fixed null handling in Icon (see SettingIconToNull in the tests).
5979
5980 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com>
5981
5982         * InternalWindowManager.cs: Changed IconicSize to use
5983         SystemInformation.MinimizedWindowSize.
5984         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinimizedWindowSize.
5985         * XplatUIDriver.cs: Changed MinimizedWindowSize to provide a default value.
5986
5987 2008-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5988
5989         * ComboBox.cs: If the combobox is anchored both on top and bottom,
5990         adjust height if IntegralHeight is true when calling SetBoundsCore (as
5991         likely the height was modified even if Height wasn't specified in
5992         BoundsSpecified parameter).
5993         Fixes part of #396297.
5994
5995 2008-06-04  George Giolfan  <georgegiolfan@yahoo.com> 
5996
5997         * InternalWindowsManager.cs: Changed minimum window size while resizing to
5998         SystemInformation.MinWindowTrackSize.
5999         * XplatUICarbon.cs, XplatUIX11.cs: Removed MinWindowTrackSize.
6000         * XplatUIDriver.cs: Changed MinWindowTrackSize to provide a default value.
6001
6002 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
6003
6004         * MenuItem.cs: Fixed Dispose.
6005
6006 2008-06-03  George Giolfan <georgegiolfan@yahoo.com> 
6007
6008         * ColumnHeader.cs: CalcColumnHeader now uses the theme to get the height.
6009         * DataGridView.cs: * EnableHeadersVisualStyles: Fixed default value.
6010         EnteredHeaderCell, PressedHeaderCell: Added.
6011         * DataGridViewCell.cs: Refactored: Extracted GetBorderPen.
6012         * DataGridViewColumnHeaderCell.cs, DataGridViewRowHeaderCell.cs: Gave the
6013         theme a chance to override default painting.
6014         * ListView.cs: Added EnteredColumnHeader. Refactored: Extracted
6015         GetColumnHeaderInvalidateArea, Invalidate(ColumnHeader).
6016         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added members for
6017         ListView and DataGridView header rendering.
6018         
6019 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
6020
6021         * RichTextBox.cs: GetPositionFromCharIndex should return the 
6022         visual position of the character relative to the viewport.
6023         [Fixes part of bug #396664]
6024
6025 2008-06-03  Ivan N. Zlatev  <contact@i-nz.net>
6026
6027         * GridEntry.cs: Make HasCustomEditor check for EditStyle != None 
6028         and not just for the existance of an UITypeEditor. In some cases 
6029         there is an editor associated just to do PaintValue, but which 
6030         doesn't actually support editing.
6031         [Fixes bug #396632]
6032
6033 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6034
6035         * ComboBox.cs: page_size as well as vscrollbar.LargeChange should be 1
6036         if needed, instead of 0 - this should help us in the corner case where
6037         we have more than one item but we are only partially showing 1 item.
6038         Fixes part of #374713.
6039
6040 2008-05-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6041
6042         * XplatUiX11.cs: When scrolling and detecting the obscured areas in a
6043         control, return immediately if the any parent control's handle hasn't
6044         been created or isn't visible, as well as avoiding creating the parent
6045         Form if the handle hasn't been previously created.
6046         Fixes tests.
6047
6048 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
6049
6050         * TableLayoutPanel.cs: Use border sizes when calculating the
6051         panel's preferred size.  [Fixes part of bug #396433]
6052
6053 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
6054
6055         * SplitContainer.cs:
6056          - Fix SplitterDistance to update only if needed. 
6057          - Make it force min and max validation.
6058          - Handle properly mouse moves outside the resizeable area.
6059          [Fixes bug #396232]
6060
6061 2008-06-02  Andreia Gaita <avidigal@novell.com> 
6062
6063         * WebBrowserBase.cs: Implement support for ScriptErrorsSuppressed
6064           (which also suppresses all popup dialogs). Throw NotSupported
6065           exceptions for activex getters/setters.
6066         * WebBrowser.cs: Implement DocumentStream, DocumentType, IsBusy,
6067           IsOffline, ReadyState, ScriptErrorsSuppressed, ScrollbarsEnabled,
6068           StatusText, Version, GoSearch
6069         * HtmlDocument.cs: Add DocType support
6070
6071 2008-06-02  Andy Hume  <andyhume32@yahoo.co.uk>
6072
6073         * TextBox.cs: Implement TextBoxAutoCompleteSourceConverter.
6074         [Fixes bug 396124]
6075
6076 2008-06-02  Ivan N. Zlatev  <contact@i-nz.net>
6077
6078         * GridEntry.cs: Pass the ITypeDescriptorContext everywhere.
6079
6080 2008-06-02  Jonathan Pobst  <monkey@jpobst.com>
6081
6082         * TableLayoutPanel.cs: When calculating preferred size, use the
6083         actual number of columns and rows, not what the user set them to.
6084         [Fixes bug #396141]
6085
6086 2008-06-02  George Giolfan <georgegiolfan@yahoo.com> 
6087
6088         * Form.cs: Enabled managed handling of tool window MDI children. Fixes bug
6089         394311.
6090
6091 2008-06-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6092
6093         * XplatUIX11.cs: When detecting areas obscured in a control by other
6094         toplevel windows while scrolling, return if the control hasn't a 
6095         container form.
6096         Fixes some tests.
6097
6098 2008-05-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6099
6100         * XplatUIX11.cs: Properly detect the visible area of a control being
6101         scrolled (obscured by other winforms controls and any X toplevel
6102         windows), to mark as invalid the requested area to be scrolled that
6103         isn't visible and thus can't be copied.
6104         Fixes #324513.
6105
6106 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6107
6108         * ListBox.cs: Compute the precise amount to vertically scroll when
6109         using DrawMode.OwnerDrawVariable.
6110         Patch by jkeymer (j.keymer@gmx.net).
6111
6112 2008-05-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6113
6114         * ComboBox.cs: Use ListBox-like scrollbar values In ComboListBox 
6115         to avoid setting an invalid value for the verticall scrollbar 
6116         when navigating items. And, duh, also remove my silly debug messages
6117         from previous commits.
6118         Fixes #374713.
6119
6120 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
6121
6122         * FlatButtonAppearance.cs: Make FlatButtonAppearanceConverter exandable and 
6123         make it MS compatible.
6124
6125 2008-05-30  Ivan N. Zlatev  <contact@i-nz.net>
6126
6127         * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs: 
6128          - Allow the editing of entries even if their parent is read-only.
6129          - Do not render expandable properties read-only.
6130          - Refactor expansion checks form PropertyGrid into PropertyGrid.
6131
6132 2008-05-30  George Giolfan <georgegiolfan@yahoo.com> 
6133
6134         * ScrollBar.cs, Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs: Added
6135         support for the hover style.
6136
6137 2008-05-29  Andreia Gaita <avidigal@novell.com> 
6138
6139         * ContainerControl.cs: Check for null dead-end when traversing the tree
6140           of parent controls.
6141         
6142           [Fixes #394332, patch by Ernesto Carrea]
6143
6144 2008-05-29  Geoff Norton  <gnorton@novell.com>
6145
6146         * XplatUICarbon.cs: Fix a culture-dependent conversion to be the
6147         constant that it is.  Fixes #393981
6148
6149 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
6150
6151         * Form.cs: Add a MonoTODO to the AutoScaleBaseSize setter explaining
6152         that the user probably doesn't want to set this.
6153
6154 2008-05-29  Jonathan Pobst  <monkey@jpobst.com>
6155
6156         * ThemeWin32Classic.cs: Don't let the text size be bigger than
6157         the control size for CheckBox/RadioBox.
6158         [Fixes part of bug #394645]
6159
6160 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
6161
6162         * PropertyGrid.cs: Update the state of the sorting buttons in 
6163         the toolbar if PropertySort is set programatically.
6164
6165 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
6166
6167         * GridItemCollection.cs: Add multiple items with conflicting names 
6168         support and also preserve name ordering.
6169         [Fixes #395345]
6170
6171 2008-05-29  Ivan N. Zlatev  <contact@i-nz.net>
6172
6173         * GridItemCollection.cs: Revert my multiple items with same 
6174         name patch.
6175
6176 2008-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6177
6178         * ScrollBar.cs: Scrollbars should only react to left-clicks, not right
6179         or middle ones.
6180         Fixes part of #393908.
6181
6182 2008-05-28  Jonathan Pobst  <monkey@jpobst.com>
6183
6184         * ToolStripDrowDown.cs: When using the Show () methods that have a
6185         Control parameter, set the menu owner to that Control.
6186         [Fixes bug #394345]
6187
6188 2008-05-28  Ivan N. Zlatev  <contact@i-nz.net>
6189
6190         * PropertyGridTextBox.cs, PropertyGridView.cs: Implement validation.
6191         [Fixes bug #362756]
6192
6193 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
6194
6195         * GridItemCollection.cs: Refactor to support multiple items with the 
6196         same name.
6197         [Fixes bug #394314]
6198
6199 2008-05-27  Jonathan Pobst  <monkey@jpobst.com>
6200
6201         * Control.cs: The 2.0 check for illegal cross thread calls in 
6202         Control.Handle were throwing an exception when we were getting
6203         the Handle in order to invoke correctly.  Created a private
6204         version that does not contain this check.
6205         [Fixes bug #394531]
6206
6207 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
6208
6209         * PropertyGrid.cs: Respect DefaultTabType.
6210
6211 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
6212
6213         * ListView.cs: SPACE selects an item.
6214         [Fixes bug #393023]
6215
6216 2008-05-27  Ivan N. Zlatev  <contact@i-nz.net>
6217
6218         * ListView.cs: Reset the search string whenever the items are 
6219         modified.
6220         [Fixes bug #393020]
6221
6222 2008-05-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6223
6224         * ListControl.cs: For the first added item PositionChanged is fired
6225         _before_ ItemChanged, which leave us in a temporary invalid state - so
6226         we need to set the selected index from ItemChanged handler *if* we
6227         know that the first item has just been added *and* the items have been
6228         actually added to the ListControl.
6229         Fixes #369048.
6230
6231 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6232
6233         * TabControl.cs: Only clicks with the left button should be
6234         handled.
6235         Fixes #393908.
6236
6237 2008-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6238
6239         * ComboBox.cs: 
6240         * FIleDialog.cs:
6241         * TextBox.cs: Expose an internal method in TextBox to restore the
6242         original context menu, and call it from ComboBox to re-use it in the
6243         combobox containing the file name in FileDialog.cs.
6244         Fixes part of #393775.
6245
6246 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
6247
6248         * ThemeVisualStyles.cs: Added support for the hot ComboBox drop down button
6249         style.
6250
6251 2008-05-24  George Giolfan  <georgegiolfan@yahoo.com>
6252
6253         * ComboBox.cs, Theme.cs, ThemeWin32Classic.cs: Added support for the hot drop
6254         down button style.
6255
6256 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6257
6258         * ComboBox.cs: Minor correction to previous patch: PageDown should
6259         also *try* to move by one item if the computed offset is negative,
6260         just like the PageUp case.
6261
6262 2008-05-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6263
6264         * ComboBox.cs: When navigating using PageDown/PageUp the navigation
6265         should be done for at least 1 item, and not stay at the same item.
6266         Fixes part of #374713.
6267
6268 2008-05-23  Jonathan Pobst  <monkey@jpobst.com>
6269
6270         * FileDialog.cs: Add a FSEntryComparer, and use it to sort the
6271         directories.  [Fixes bug #393931]
6272
6273 2008-05-22  Andreia Gaita <avidigal@novell.com> 
6274
6275         * WebBrowser.cs: Implement DocumentText. Implement AllowNavigation.
6276           Don't fire events until the initial about:blank page has finished
6277           loading. Clean up events.
6278
6279 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
6280
6281         * XplatUIX11.cs : when we call WM_SETFOCUS, call X11Keyboard
6282           FocusIn() too. This should fix the issue on switching
6283           scim keyboards.
6284
6285 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
6286
6287         * X11Keyboard.cs : set XIM font size to somewhat reasonable
6288           number (ideally the input textbox size, but that could be
6289           too messy).
6290
6291 2008-05-22  Jonathan Pobst  <monkey@jpobst.com>
6292
6293         * ToolStripTextBox.cs: List for the TextBox's TextChanged and fire
6294         the ToolStripItem's TextChanged.  [Fixes bug #393597]
6295
6296 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6297
6298         * TabControl.cs: When invalidating in SelectedIndex and we need to
6299         inflate to take into account the border of the tabs, make sure that
6300         the invalidated rect doesn't overflow the control bounds, since that
6301         would avoid updating at all.
6302
6303 2008-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6304
6305         * TabControl.cs: Don't substract scroller width from the row width,
6306         since we need to take into account the total width of the control when
6307         calculating the position of the tabs. This avoids showing scroller
6308         when it is actually not needed.
6309         Fixes part of #322325.
6310
6311 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6312
6313         * ThemeVisualStyles.cs: Added support for TextBoxBase.
6314
6315 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6316
6317         * RichTextBox.cs, TextBoxBase.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
6318         Extracted TextBoxBase.Draw and Theme.TextBoxBase*.
6319
6320 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6321
6322         * DataGridView.cs: Only paint the top left header cell if there
6323         are columns.
6324
6325 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6326
6327         * DataGridView.cs: When binding to a BindingSource, get the underlying
6328         list to bind to.  [Fixes bug #345483]
6329
6330 2008-05-21  Jonathan Pobst  <monkey@jpobst.com>
6331
6332         * DataGridView.cs: Do not bind to collection properties.
6333         [Fixes bug #337470]
6334
6335 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6336
6337         * ThemeVisualStyles.cs: Added support for the hot TrackBar thumb style.
6338
6339 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6340
6341         * Theme.cs, ThemeWin32Classic.cs, TrackBar.cs: Added support for the hot
6342         thumb style.
6343
6344 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6345
6346         * ThemeVisualStyles.cs: Added support for ToolTip transparent background.
6347
6348 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6349
6350         * Theme.cs, ThemeWin32Classic.cs, ToolTip.cs: Added support for transparent
6351         background.
6352
6353 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6354
6355         * ThemeVisualStyles.cs: Added support for ToolBar hot and hot checked styles.
6356
6357 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6358
6359         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs: Added support for hot and hot
6360         checked styles.
6361
6362 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6363
6364         * TabControl.cs: Extended to handle the hot style.
6365
6366 2008-05-21  George Giolfan  <georgegiolfan@yahoo.com>
6367
6368         * Theme.cs, ThemeVisualStyles.cs, ThemeWin32Classic.cs, UpDownBase.cs:
6369         Extended UpDownBase code to handle hot and disabled styles.
6370
6371 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6372
6373         * DataGridView.cs: Handle databinding to generic list type things.
6374         [Fixes bug #325239]
6375
6376 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6377
6378         * DataGridViewCellCollection.cs: Add a method to find the cell
6379         with the given DataPropertyName.
6380         * DataGridViewColumn.cs: Track if the column was autogenerated or not.
6381         * DataGridViewColumnCollection.cs: Add a method to clear all
6382         autogenerated columns.
6383         * DataGridView.cs: If AutoGenerateColumns is false, don't autogenerate
6384         columns.
6385         [Fixes bug #348082]
6386
6387 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6388
6389         * DataGridView.cs: Don't try to update the RowTemplate with
6390         a null CellTemplate.
6391
6392 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6393
6394         * DataGridViewColumn.cs: Allow IsDataBound to be set internally.
6395         * DataGridViewColumnCollection.cs: Ensure OnColumnAdded is called.
6396         * DataGridView.cs: Lots of fixes/enhancements to databinding to
6397         a DataSet.
6398
6399 2008-05-20  Jonathan Pobst  <monkey@jpobst.com>
6400
6401         * Control.cs: Remove invalidating implicit child controls when
6402         control is invalidated.  It was causing too many redraws on
6403         controls with implicit scrollbars.
6404         * ListView.cs: Listen to the Invalidated event and invalidate
6405         child controls.
6406
6407 2008-05-20  Andreia Gaita <avidigal@novell.com> 
6408
6409         * WebBrowserBase.cs, WebBrowser.cs: Hook up page loading events
6410         * HtmlDocument.cs: Check for nulls
6411
6412 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6413
6414         * Control.cs: In ControlCollection.RemoveInternal, remove the
6415         internal control before calling PerformLayout and OnControlRemoved,
6416         which was leaving us in an invalid state and causing a X error (bad
6417         match). Observe that Remove () call has the same order.
6418         Fixes an X error changing ComboBoxStyle.DropDownStyle.
6419
6420 2008-05-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6421
6422         * TabControl.cs: Don't paint by ourselved and instead let OnPaint
6423         being fired if ControlStyles.UserPaint style is activated.
6424         Fixes #371905.
6425
6426 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6427
6428         * GridEntry.cs: Don't be so strict when setting the value - 
6429         do not check if what we set is what we get.
6430         [Fixes bug #389245]
6431
6432 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6433
6434         * XplatUIX11.cs: If there are no timers timeout should be 0
6435         [Fixes bug #363522]
6436
6437 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
6438
6439         * Control.cs: As a followup to invalidating implicit children when
6440         a control is invalidated, only invalidate them if they are in the
6441         clip rectangle.
6442
6443 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6444
6445         * ThemeVisualStyles.cs: Implemented partial support for ToolTip.
6446
6447 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6448
6449         * ThemeWin32Classic.cs: Refactored: Extracted ToolTipDrawBackground.
6450
6451 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6452
6453         * GroupBoxRenderer.cs: Fixed text area clipping in the Visual Styles case.
6454         * XplatUIWin32.cs: Made Win32DeleteObject public.
6455
6456 2008-05-19  Ivan N. Zlatev  <contact@i-nz.net>
6457
6458         * GridEntry.cs: Determine HasDefaultValue more strictly by using 
6459         PropertyDescriptor.ShouldSerializeValue.
6460         [Fixes bug #391924]
6461
6462 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6463
6464         * ThemeVisualStyles.cs: Enabled support for ScrollBar element styles not present
6465         in the classic theme.
6466
6467 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6468
6469         * ScrollBar.cs: Added FirstButtonEntered, SecondButtonEntered, ThumbEntered,
6470         ThumbPressed.
6471         * Theme.cs, ThemeWin32Classic.cs: Added ScrollBarHasHotElementStyles,
6472         ScrollBarHasPressedThumbStyle.
6473
6474 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6475
6476         * TextRenderer.cs: Included some methods in the 1.1 profile.
6477
6478 2008-05-19  Jonathan Pobst  <monkey@jpobst.com>
6479
6480         * Control.cs: When we make a control visible, it may have been
6481         previously visible and while it wasn't visible, the z-order of
6482         things may have been shuffled, so the control needs to have its
6483         z-order updated just in case.  [Fixes bug #391518]
6484
6485 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6486
6487         * ThemeVisualStyles.cs: Added support for GroupBox.
6488
6489 2008-05-19  George Giolfan  <georgegiolfan@yahoo.com>
6490
6491         * GroupBoxRenderer.cs: Included in the 1.1 profile.
6492
6493 2008-05-16  Atsushi Enomoto  <atsushi@ximian.com>
6494
6495         * XplatUIX11.cs, X11Keyboard.cs : redoing r103060 with fix for
6496           bug #389996; XSelectInput() behaved as mouse handler robber,
6497           so remove extra call to it.
6498
6499 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6500
6501         * Control.cs: Simplify ControlCollection.Contains method.
6502
6503 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6504
6505         * DataGridViewRow.cs: Implement GetPreferredSize.
6506
6507 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6508
6509         * DataGridViewComboBoxCell.cs: Don't declare text twice.  Fixes build.
6510
6511 2008-05-15  Jonathan Pobst  <monkey@jpobst.com>
6512
6513         * DataGridViewComboBoxCell.cs: Implement some NIEX stuffs, better
6514         painting and edit control fixes.
6515
6516 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6517
6518         * DataGridView.cs, DataGridViewCell.cs: Work around some external
6519         checks to make sure we are in an actual row/col for top left header cell.
6520         * DataGridViewTopLeftHeaderCell.cs: Implement some NIEX's.
6521
6522 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6523
6524         * Control.cs: Use long instead of int when handling WParam from
6525         mousewheel scrolling.  Int was overflowing on Win64.
6526
6527 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6528
6529         * FlowLayoutPanel.cs, ScrollableControl.cs: We need to layout the
6530         flow panel without scrolling first, and then calculate the 
6531         scrolling based on the new layout.  [Fixes bug #390149]
6532
6533 2008-05-14  Jonathan Pobst  <monkey@jpobst.com>
6534
6535         * ListBox.cs: Invalidate after scrolling up when selected index
6536         changes.  [Fixes bug #390151]
6537
6538 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6539
6540         * ComboBox.cs: When setting mode to Simple *and* height hasn't been
6541         set, default height to 150. I tried first with DefaultSize, but this
6542         is not generating a SetBoundsCore call before handle creation time, so
6543         we can take it into account. This is just what .net does.
6544
6545 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
6546
6547         * XplatUIX11.cs, X11Keyboard.cs: Had to revert eno's r103060,
6548         as it broke some stuff.  Calberto is filing a bug for eno to
6549         work with.
6550
6551 2008-05-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6552
6553         * ComboBox.cs: When handling PageDown pressed event, set SelectedIndex
6554         to 0 is the current value is -1, and if style is not Simple, just
6555         return, like .net does.
6556         Fixes part of #374713.
6557
6558 2008-05-13  Jonathan Pobst  <monkey@jpobst.com>
6559
6560         * ThemeWin32Classic.cs, ThemeVisualStyles.cs: When calculating
6561         progress bar stuffs, use doubles instead of ints to prevent
6562         overflow.  [Fixes bug #389798]
6563
6564 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
6565
6566         * XplatUIX11.cs, X11Keyboard.cs :
6567           Significant refactoring on XIM support. Now IM engine UI
6568           should show up, at mostly-correct preedit position.
6569           - Eliminated use of FocusWindow, as it is never mapped
6570             and hence blocks correct preedit position. XIC is now
6571             created per window, and it must be destroyed too when
6572             the window is destroyed.
6573           - WM_QUIT messages should not be filtered even when hwnd
6574             is zombie. Filtering it could cause endless loop.
6575           - Preedit position must move only when the window is alive.
6576           - Make it IDisposable and make sure to release XIM/XICs.
6577
6578 2008-05-13  Atsushi Enomoto  <atsushi@ximian.com>
6579
6580         * Timer.cs, Control.cs, Form.cs, ApplicationContext.cs,
6581           XplatUIX11.cs, XplatUIWin32.cs :
6582           fix for bug #325033 and #387693;
6583           - WM_QUIT should not be sent when no running application
6584             exists.
6585           - SetTimer/KillTimer (especially on win32) should be
6586             invoked for the window that the timer is/will_be attached.
6587           - There could be unattached timers to a window when it's
6588             started. For those timers, hold pending timers and when
6589             a window is mapped, attach them to it.
6590           - WaitForHwndMessage() could run into loop when
6591             WM_SHOWWINDOW is handled before this method is called.
6592             So, strictly check wm_showwindow state.
6593           - Tick handler should not be invoked while one Tick handler
6594             call is still running (introduced Busy state).
6595
6596 2008-05-13  Andreia Gaita <avidigal@novell.com> 
6597
6598         * WebBrowserBase.cs: Override Internal alternative methods for
6599           SetBoundsCore and OnResize instead of the protected ones.
6600         * Control.cs: Move SetBoundsCore and OnResize implementations to
6601           SetBoundsCoreInternal and OnResizeInternal, so they can be
6602           overriden internally (WebBrowserBase needs to catch them but can't
6603           override the protected methods without api compat problems)
6604
6605 2008-05-13  Andreia Gaita <avidigal@novell.com> 
6606
6607         * WebBrowserBase.cs: Hiding away non-public overrides for api compat
6608
6609 2009-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6610
6611         * Binding.cs:
6612         * ListView.cs: Remove debug messages.
6613
6614 2008-05-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6615
6616         * ComboBox.cs: Don't do any calculation for simple mode if the listbox
6617         area is empty. Also calculate scrollbars in Simple mode based in area
6618         height and total number of items, not in MaxDropDownItems.
6619         Fixes part of #371991.
6620
6621 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6622
6623         * PictureBox.cs: Always invalidate on resize.  Fixes an app for jhill.
6624
6625 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6626
6627         * BindingSource.cs: GetListSortDescription is not public.
6628
6629 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6630
6631         * WebBrowser.cs, WebBrowserBase.cs, WebBrowserSiteBase.cs: corcompare.
6632
6633 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6634
6635         * HtmlElement.cs: Fix parameter names to match MS.
6636         * HtmlWindowCollection.cs: Should not be sealed.
6637
6638 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6639
6640         * ThemeWin32Classic.cs: Always draw the scrollbar area under the thumb
6641         button, because the thumb button will not get drawn if the scrollbar
6642         is disabled.  [Fixes bug #389262]
6643
6644 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6645
6646         * ListBox.cs: Handle End key for multi-column listboxen.
6647         [Fixes bug #389266]
6648
6649 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6650
6651         * ListBox.cs: Fix algorithm to determine which column our item is in.
6652         [Fixes bug #389265]
6653
6654 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6655
6656         * ListBox.cs: Invalidate when the listbox is resized.
6657         [Fixes bug #389256]
6658
6659 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6660
6661         * ListBox.cs: There is always at least one row in the ListBox (if
6662         we are doing these calculations.)  [Fixes bug #389253]
6663
6664 2008-05-12  Jonathan Pobst  <monkey@jpobst.com>
6665
6666         * ListBox.cs: There is always at least one column in the ListBox.
6667         [Fixes bug #389250]
6668
6669 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6670
6671         * ComboBox.cs: When handle is created call UpdateComboBoxBounds to
6672         ensure in Simple mode that the height is exactly the requested one.
6673         Also add the ComboBoxListControl to the controls collection in Simple
6674         mode even if handle hasn't been created.
6675         Fixes part of #371991.
6676
6677 2008-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6678
6679         * ComboBox.cs: For ComboListBox control -specially in Simple mode-, give focus to
6680         our ComboBox owner instead of giving it back to the previous control (
6681         as done in other controls). Also remove the empty override of Select
6682         method, since we want to be selected *and* give focus to our owner.
6683         This should let the user do keys-navigation in Simple mode. 
6684
6685 2008-05-10  Geoff Norton  <gnorton@novell.com>
6686
6687         * XplatUICarbon.cs: Dont use HIViewScrollRect as it's causing painting
6688         problems with rapid scrolling of treeviews. Fixes #381084
6689
6690 2008-05-10  Geoff Norton  <gnorton@novell.com>
6691
6692         * XplatUICarbon.cs: Deactivate the active window before
6693         activating the desired window.  Completes fixing #386504
6694
6695 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6696
6697         * ListView.cs: When calculating scrollbars, set horizontal scroll bar
6698         SmallChange to the item size width plus the padding, to match .net.
6699
6700 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6701
6702         * FileDialog.cs: Apply the custom filter typed by the user in the file
6703         name combobox as much as possible while navigating in the file dialog.
6704         Fixes #385261.
6705
6706 2008-05-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6707
6708         * Binding.cs: Actually use NullValue if the retrieved value of
6709         data source is null or DBNull. Makes a test pass.
6710
6711 2008-05-09  Jonathan Pobst  <monkey@jpobst.com>
6712
6713         * ErrorProvider.cs, Form.cs: Get icons from ResourceImageLoader.
6714         * MimeIcon.cs: Provide a way to get icons from resources.
6715
6716 2008-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6717
6718         * Binding.cs: When the value retrieved from the control to be assigned
6719         to the data source is null, actually use the 2.0 DataSourceNullValue
6720         value. Make pass a data binding test.
6721
6722 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6723
6724         * Control.cs: We need to invalidate implicit children even when
6725         invalidate is called with invalidatechildren = false.  (Implicit
6726         children are really part of the parent.)
6727         * ListView.cs: Double-buffer internal child controls for less
6728         flicker.
6729         * ThemeWin32Classic.cs: Remove an extra nested loop in drawing
6730         owner ListView subitems for greatly increased performance.
6731         [Fixes bug #388477]
6732
6733 2008-05-08  Carlos Alberto Cortez <calebrto.cortez@gmail.com>
6734
6735         * FileDialog.cs: When the user types a wildcard character in the
6736         filename combobox, update the contents of the folder using the text as
6737         a filter.
6738         Fixes part of #385261.
6739
6740 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6741
6742         * ListBox.cs: Various fixes for MultiColumn listboxen.
6743         [Fixes bug #388114]
6744
6745 2008-05-08  Andreia Gaita <avidigal@novell.com> 
6746
6747         * HtmlElement.cs: Implement Style property
6748
6749 2008-05-08  Jonathan Pobst  <monkey@jpobst.com>
6750
6751         * ListBox.cs: Respect checkboxes when measuring item size.
6752         * ThemeWin32Classis.cs: When drawing list items, don't draw
6753         text outside of the item's bounds to prevent overlapping.
6754         (.Net actually overlaps, but that's just silly.)
6755         [Fixes bug #388117]
6756
6757 2008-05-08  Everaldo Canuto  <ecanuto@novell.com>
6758
6759         * NotifyIcon.cs: Call SetForegroundWindow before show context menu. Thanks
6760         Gert Driesen. Fixes bug #324830. 
6761
6762 2008-05-07  Everaldo Canuto  <ecanuto@novell.com>
6763
6764         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: SetForegroundWindow
6765         method implemented.
6766
6767 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6768
6769         * BindingSource.cs: When calling IsSynchronized, return the value of
6770         the related IList list.
6771
6772 2008-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6773
6774         * ListBindingHelper.cs: Fix some bits in GetListItemProperties, to
6775         make a test pass.
6776
6777 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
6778
6779         * DataGridView.cs: Implement PageUp/PageDown keys.  Extend keyboard
6780         navigation to scroll the grid if the current cell is not visible.
6781
6782 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6783
6784         * HtmlElement.cs: Implement TabIndex
6785
6786 2008-05-07  Jonathan Pobst  <monkey@jpobst.com>
6787
6788         * ListBox.cs: Respect ScrollAlwaysVisible and HorizontalScrollbar
6789         properties, even when there are no items.
6790         [Fixes bug #387611]
6791
6792 2008-05-07  Ivan N. Zlatev  <contact@i-nz.net>
6793
6794         * NativeWindow.cs: Add support for multiple handles per window.
6795         * NativeWindows.cs, LibSupport.cs, Control.cs, XplatUIX11GTK.cs, 
6796         XplatUIX11.cs, X11Display.cs: Do not access NativeWindow.windows_collection 
6797         directly - use FromHandle instead.
6798         [Fixes bug #374660]
6799
6800 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6801
6802         * HtmlElement.cs: Implement InnerHTML setter
6803
6804 2008-05-07  Andreia Gaita <avidigal@novell.com> 
6805
6806         * HtmlDocument.cs: Implement Focused
6807
6808 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6809
6810         * BindingSource.cs: Minor fixes to the the ApplySort and Remove sort
6811         methods, as well as add messages to the exceptions.
6812
6813 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6814
6815         * BindingSource.cs: Setting DataSource should only reset DataMember if
6816         the previous value was null (make pass a not working test).
6817
6818 2006-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6819
6820         * BindingSource.cs: When EndInit call is postponed and is called until
6821         DataSource.EndInit is called, remove the handler for data source.
6822
6823 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6824
6825         * ToolStripManager.cs: Don't use IsAlive, race condition, etc. etc.
6826
6827 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6828
6829         * ToolStripManager.cs: Store references to toolstrips as
6830         weak references so they do not prevent forms from getting collected.
6831         [Fixes bug #386483]
6832
6833 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6834
6835         * TrackBar.cs: We can't set ResizeRedraw because it isn't set
6836         on .Net.  So do the same thing in WndProc.
6837
6838 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6839
6840         * TrackBar.cs: Commit patch from Andy Hume that corrects
6841         the clickable areas to better match .Net.
6842         [Fixes bug #387074]
6843
6844 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6845
6846         * TrackBar.cs: Commit patch from Andy Hume that adds the
6847         ResizeRedraw control flag so the track bar repaints itself
6848         when it is resized.  [Fixes bug #387072]
6849
6850 2008-05-06  Jonathan Pobst  <monkey@jpobst.com>
6851
6852         * TrackBar.cs: Commit patch from Andy Hume that adds better
6853         support for keyboard navigation when the TrackBar is vertical.
6854         [Fixes bug #387071]
6855
6856 2008-05-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6857
6858         * BindingSource.cs: Implement ISupportInitializeNotification support.
6859
6860 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
6861
6862         * ThemeVisualStyles.cs: Added support for ToolBar.
6863
6864 2008-05-06  George Giolfan  <georgegiolfan@yahoo.com>
6865
6866         * ToolBar.cs: Made the Vertical property internal.
6867
6868 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6869
6870         * ThemeVisualStyles.cs: Added support for TrackBar.
6871
6872 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6873
6874         * ThemeWin32Classic.cs: Refactored: Extracted TrackBarGetThumbSize,
6875         TrackBarDrawVerticalTrack, TrackBarDrawVerticalThumbRight,
6876         TrackBarDrawVerticalThumbLeft, TrackBarDrawVerticalThumb,
6877         TrackBarGetVerticalTickPainter, TrackBarDrawHorizontalTrack,
6878         TrackBarDrawHorizontalThumbBottom, TrackBarDrawHorizontalThumbTop,
6879         TrackBarDrawHorizontalThumb, TrackBarGetHorizontalTickPainter.
6880
6881 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6882
6883         * ThemeVisualStyles.cs: Added support for UpDownBase.
6884
6885 2008-05-05  George Giolfan  <georgegiolfan@yahoo.com>
6886
6887         * Theme.cs, ThemeWin32Classic.cs, UpDownBase.cs: Refactored:
6888         Extracted Theme.UpDownBaseDrawButton.
6889
6890 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
6891
6892         * ToolStrip.cs, ToolStripDropDownItem.cs: Make sure toolstrips are
6893         removed from the static toolstrips collection in ToolStripManager
6894         when they are disposed.  Provides a workaround for bug #386483.
6895
6896 2008-05-05  Ivan N. Zlatev  <contact@i-nz.net>
6897
6898         * GridEntry.cs: Read-only properties with Editor with 
6899         UITypeEditorEditStyle.Modal shouldn't be read-only in the PropertyGrid.
6900         [Fixes bug #384184]
6901
6902 2008-05-05  Jonathan Pobst  <monkey@jpobst.com>
6903
6904         * MenuStrip.cs, ToolStrip.cs: Guard against an NRE when pressing
6905         the menu key and there are no items on the menu.
6906         [Fixes bug #386644]
6907
6908 2008-05-05  Sebastien Pouliot  <sebastien@ximian.com>
6909
6910         * Control.cs: Avoid calling ToString on a string.
6911         * Form.cs: Avoid calling ToString on a string. Found using Gendarme.
6912         * GroupBox.cs: In FlatStyle property throw, not just create, the 
6913         exception. Avoid calling ToString on a string.
6914         * ProgressBar.cs: Avoid calling ToString on a string. 
6915         * ScrollBar.cs: Avoid calling ToString on a string. 
6916         [All issues were found using Gendarme]
6917
6918 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
6919
6920         * NotifyIcon.cs: Prevent click events to be trigger after double click 
6921         events. Fixes remaining issues of bug #324832.
6922
6923 2008-05-05  Everaldo Canuto  <ecanuto@novell.com>
6924
6925         * NotifyIcon.cs: Trigger click and mouseclick events after mouseup event
6926         to mimic win32 behavior. Partially fixes bug #324832.
6927
6928 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6929
6930         * BindingSource.cs: Implement Find methods.
6931
6932 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6933
6934         * BindingSource.cs: Implement Sort, ApplySort overloads, and
6935         RemoveSort methods.
6936
6937 2008-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6938
6939         * ListBindingHelper.cs: When calling GetListItemProperties and the
6940         passed object is ITypedList, return the result of
6941         ITypedList.GetItemProperties instead.
6942
6943 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6944
6945         * LinkLabel.cs: Set default value of name on constructor of Link class
6946         only for 2.0 profile.
6947
6948 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6949
6950         * LinkLabel.cs: Fix implementation of LinkCollection.LinksAdded property.
6951         Fixes remaining issues of bug #346154.
6952
6953 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6954
6955         * LinkLabel.cs: Set a default value for name on internal contructor of
6956         Link class. It fixes assert B5 of LinkCollectionTest.Constructor1.
6957
6958 2008-05-04  Everaldo Canuto  <ecanuto@novell.com>
6959
6960         * LinkLabel.cs: Move links collection from LinkCollection to LinkLabel
6961         and refer all instances to owner.links. Partially fixes #346154.
6962
6963 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6964
6965         * LinkLabel.cs: Fix linkarea values for empty text, must have start and 
6966         length equal zero. Also called CreateLinkPieces in constructor. It fixes
6967         the LinkLabel test 'TestLinkArea'.
6968
6969 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6970
6971         * Form.cs: Remove menu before close form to prevent form to be not gaced.
6972         [Fixes #386460]
6973
6974 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6975
6976         * MenuAPI.cs: Dispose popup window after hide. Thanks to Jesse Jones.
6977         [Fixes #386463]
6978
6979 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6980
6981         * MenuAPI.cs: Implemented keyboard navigation for ContextMenu.
6982         [Fixed bug #357004]
6983
6984 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6985
6986         * MenuAPI.cs: Remove unused ProcessCmdKey method.
6987
6988 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6989
6990         * MenuAPI.cs: Prevent NRE in menu deactivation when shortcut is used. 
6991         [Fixes bug #375398]
6992
6993 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6994
6995         * MenuAPI.cs: Enable implicit mnemonics for menus. Fixes remaining issues
6996         of bug #367492.
6997
6998 2008-05-03  Everaldo Canuto  <ecanuto@novell.com>
6999
7000         * MenuAPI.cs: Check if mouse down comes from menu, we need it because
7001         sometimes we open a conext menu on mouse down of some controls and the mouse
7002         up is dispatched to menu and dont need to. It fix remaining issues of 
7003         #363711 and other problems related to menu mouse click events.
7004
7005 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
7006
7007         * MonthCalendar.cs: Implemented "Go to today" context menu, also changed
7008         some var names to better fit changes, now we have month_menu and today_menu
7009         vars. Fixes bug #363711.
7010
7011 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
7012
7013         * MonthCalendar.cs: Handle every right mouse click to open context menu,
7014         right now the default month menu but it will be change to have "Go to today"
7015         menu.
7016
7017 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7018
7019         * FileDialog.cs, MaskedTextBox.cs, OpenFileDialog.cs: corcompare.
7020
7021 2008-05-02  Everaldo Canuto  <ecanuto@novell.com>
7022
7023         * ThemeWin32Classic.cs: Fix MonthCalendar arrows drawing.
7024
7025 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7026
7027         * ThemeVisualStyles.cs: Added support for TreeView.
7028
7029 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7030
7031         * Theme.cs, ThemeWin32Classic.cs, TreeView.cs: Refactored:
7032         Moved TreeView.DrawNodePlusMinus to Theme.TreeViewDrawNodePlusMinus.
7033
7034 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7035
7036         * OpenFileDialog.cs: Implement 2.0 SP1 stuffs.
7037
7038 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7039
7040         * FileDialogCustomPlace.cs, FileDialogCustomPlacesCollection.cs:
7041         Implement 2.0 SP1 stuffs.
7042
7043 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7044
7045         * FileDialog.cs: Implement 2.0 SP1 stuffs.
7046
7047 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7048
7049         * Control.cs, ContainerControl.cs, DataGridView.cs, TextBoxBase.cs:
7050         Implement CanEnableIme property. (2.0 SP1)
7051
7052 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7053
7054         * BindingManagerBase.cs, PropertyManager.cs: Hide GetItemProperties
7055         from the 2.0 API.
7056
7057 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7058
7059         * Control.cs: Provide an internal way for a control to override
7060         the setting of Height.
7061         * DateTimePicker.cs: Remove SetBoundsCore from 2.0 profile,
7062         set height using new method.
7063
7064 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7065
7066         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawMixedCheckBox.
7067
7068 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7069
7070         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Refactored:
7071         ControlPaint.DrawMixedCheckBox now calls Theme.CPDrawMixedCheckBox.
7072
7073 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7074
7075         * ThemeVisualStyles.cs: Added support for StatusBar.
7076
7077 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7078
7079         * DataObject.cs: Add the other IDataObject interface.
7080
7081 2008-05-02  George Giolfan  <georgegiolfan@yahoo.com>
7082
7083         * ThemeWin32Classic.cs: Refactored: extracted DrawStatusBarBackground,
7084         DrawStatusBarSizingGrip, DrawStatusBarPanelBackground.
7085
7086 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7087
7088         * DataGridViewCheckBoxCell.cs, DataGridViewImageCell.cs: Fix parameter names.
7089         * ListView.cs: Hide non-public API.
7090         * MaskedTextBox.cs: Remove extra attribute.
7091
7092 2008-05-02  Jonathan Pobst  <monkey@jpobst.com>
7093
7094         * DataGridViewImageCell.cs: Use formatted value instead of value
7095         to calculate preferred size.
7096
7097 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
7098
7099         * ListBox.cs: Move some initialization around so that selected_indices
7100         is not accessed before it is created.
7101
7102 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
7103
7104         * InputLanguageCollection.cs: Implement the collection better.
7105         [Fixes bug #385506]
7106
7107 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
7108
7109         * ToolStripDropDownItem.cs: Get the correct event object for
7110         DropDownItemClicked.
7111         * ToolStripMenuItem.cs: Raise DropDownItemClicked on our owner.
7112         [Fixes bug #385475]
7113
7114 2008-05-01  Jonathan Pobst  <monkey@jpobst.com>
7115
7116         * DataGridViewRowCollection.cs: We don't currently support shared 
7117         rows.  Should fix test failures caused by previous commit.
7118
7119 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
7120
7121         * DataGridViewRow.cs: Fixes for cloning the row, ensure header cell's
7122         datagridview gets set.  Only paint cells in visible columns.
7123         * DataGridViewCell.cs: Draw border after cell content.
7124         * DataGridView.cs: Invalidate after setting some properties.  Only
7125         use visible columns.  Fit hit test bug with areas in the col/row header
7126         area but not in a row or col.  Implement UpdateCell/Row methods.
7127
7128 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
7129
7130         * DataGridViewElement.cs: Don't throw NIEX.
7131         * DataGridViewColumnHeaderCell.cs: Draw error icons for top left header cells.
7132         * DataGridViewColumnDesignTimeVisibleAttribute.cs: Don't throw NIEX.
7133         * DataGridViewCheckBoxColumn.cs: Implement ToString.
7134         * DataGridViewCheckBoxCell.cs: Allow DBNull as a value.
7135         * DataGridViewCell.cs: Don't raise CellFormatting for RowHeader cells,
7136         if the user filled in the formatting Value, use it.
7137
7138 2008-04-30  Jonathan Pobst  <monkey@jpobst.com>
7139
7140         * DataGridViewTextBoxCell.cs: Fix for objects that cannot be cast
7141         to a string.
7142
7143 2008-04-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7144
7145         * BindingSource.cs: Some corrections to Filter property, as well as
7146         setting it for our list when resetting it.
7147
7148 2008-04-29  Jonathan Pobst  <monkey@jpobst.com>
7149
7150         * ScrollBar.cs: Don't let dragging the thumb grip set the value greater
7151         than the maximum.  Fixes reopened bug #384182.
7152
7153 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7154
7155         * ToolStripDropDown.cs: Fix offscreen position for DropDown itens.
7156         Fixes remaining issues of #367490.
7157
7158 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7159
7160         * ToolStripDropDown.cs: Screen.Bound dont return right value then use 
7161         SystemInformation.WorkingArea to get max_screen value.
7162
7163 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7164
7165         * BindingSource.cs: Implement Filter and RemoveFilter.
7166
7167 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7168
7169         * MenuAPI.cs: Prevent sub-menu positon to be less than zero.
7170
7171 2008-04-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7172
7173         * X11Dnd.cs: When trying to convert data and we know we started the
7174         dnd loop, don't try to use the cached data if the loop is not running,
7175         which means that the data has been resetted.
7176         Fixes #378191.
7177
7178 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7179
7180         * MenuAPI.cs: Force first menu subitem to show from left to right to mimic
7181         win32 behavior.
7182
7183 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7184
7185         * MenuAPI.cs: Check the screen limits before show sub-menus and prevent
7186         it to drawn off screen edge. Fixes bug #367490.
7187
7188 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7189
7190         * MenuAPI.cs: In PopupWindow.RefreshItems uses a temp point var to store
7191         menu position to have only one assignment of Location var.
7192
7193 2008-04-28  Everaldo Canuto  <ecanuto@novell.com>
7194
7195         * MenuAPI.cs: Implement the right key for sub-menus. Thanks Ernesto Carrea
7196         for this patch. Fixes bug #384115.
7197
7198 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
7199
7200         * ScrollBar.cs: If SmallChange is larger than LargeChange, make them
7201         the same.  If LargeChange is zero, set a minimum size for the scroll
7202         thumb grip.  [Fixes bug #384182]
7203
7204 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
7205
7206         * TextBoxTextRenderer.cs: Don't turn &A into a prefix for textboxen.
7207         [Fixes bug #384181]
7208
7209 2008-04-28  Jonathan Pobst  <monkey@jpobst.com>
7210
7211         * ListBox.cs: Math.Min should be Math.Max.  [Fixes bug #384183]
7212
7213 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
7214
7215         * ThemeVisualStyles.cs: Added partial support for ScrollBar (based on the
7216         patch from Ernesto).
7217
7218 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
7219
7220         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawComboButton.
7221
7222 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
7223
7224         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawButton.
7225
7226 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
7227
7228         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawRadioButton.
7229
7230 2008-04-28  George Giolfan  <georgegiolfan@yahoo.com>
7231
7232         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawScrollButton.
7233
7234 2008-04-27  George Giolfan  <georgegiolfan@yahoo.com>
7235
7236         * ThemeVisualStyles.cs: Added support for ButtonBase.UseVisualStyleBackColor.
7237
7238 2008-04-27  Andreia Gaita <avidigal@novell.com> 
7239
7240         * HtmlWindow.cs, HtmlHistory.cs: Throw on DomHistory getter (it's
7241           supposed to return a reference to an mshtml interface, which we
7242           don't support).
7243         * HtmlElement.cs: Throw on DomElement getter (it's supposed to return a
7244           reference to an mshtml interface, which we don't support). Code
7245           formatting cleanup.
7246         * HtmlDocument.cs: Add DefaultEncoding getter implementation. Throw on
7247           DomDocument getter (it's supposed to return a reference to an
7248           mshtml interface, which we don't support). Code formatting cleanup.
7249
7250 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7251
7252         * ListView.cs: Ouch, forgot to commit.
7253
7254 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7255
7256         * ListView.cs: 
7257         * ThemeWin32Classic.cs: Fire the -until now- forgotten CacheVirtualItems event.
7258
7259 2008-04-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7260
7261         * ListView.cs: When calculating box selection for virtual mode, don't
7262         look for intersection with item's text, but item bounds, since that
7263         would mean read ListViewItem's text for _every_ item, and that's
7264         something we just can't do in virtual mode (items are only requested
7265         when drawn).
7266
7267 2008-04-26  George Giolfan  <georgegiolfan@yahoo.com>
7268
7269         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCaptionButton and
7270         partial support for managed windows (based on the patch from Ernesto).
7271
7272 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7273
7274         * ListView.cs: When doing a key search use FindItemWithText method
7275         instead of doing the search by ourselves, this way we avoid
7276         duplicating the code and also we handle the special case for virtual
7277         mode. To achieve that make our private overload of FindItemWithText
7278         internal and also have a 'roundtrip' parameter.
7279
7280 2008-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7281
7282         * ListView.cs: When doing the layout don't request the
7283         ListViewItem instance if we are in virtual mode (since we can't request it
7284         until the item is actully drawn).
7285
7286 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7287
7288         * ThemeVisualStyles.cs: Added support for ProgressBar (based on the patch 
7289         from Ernesto).
7290
7291 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7292
7293         * ThemeVisualStyles.cs: Added support for ControlPaint.DrawCheckBox (based on 
7294         the patch from Ernesto).
7295
7296 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7297
7298         * ThemeEngine.cs: Added code to select ThemeVisualStyles.
7299         * ThemeVisualStyles.cs: Added.
7300
7301 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7302
7303         * IDeviceContext.cs: Added a missing using.
7304
7305 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7306
7307         * ButtonBase.cs: Made IsDefault protected internal.
7308         * ButtonRenderer.cs: Made GetPushButtonRenderer(PushButtonState) internal.
7309
7310 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7311
7312         * Application.cs: Included VisualStyles-related members in the 1.1 profile.
7313         * ButtonRenderer.cs, CheckBoxRenderer.cs, Padding.cs, PaddingConverter.cs,
7314         RadioButtonRenderer.cs: Included in the 1.1 profile.
7315         * IDeviceContext.cs: Added.
7316         * TextRenderer.cs: Included a member in the 1.1 profile.
7317
7318 2008-04-25  George Giolfan  <georgegiolfan@yahoo.com>
7319
7320         * ThemeWin32Classic.cs: Added ShouldPaintFocusRectangle(ButtonBase).
7321
7322 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7323
7324         * ErrorProvider.cs: Make the error icons come after the control
7325         they refer to.  It isn't the way the MS does it, but its better
7326         than what we were doing.  See bug #368587.
7327
7328 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7329
7330         * InputLanguage.cs, InputLanguageCollection.cs: Apply patch
7331         from Eric Albright that lazy loads the input language as ensures
7332         everything gets properly initialized.  Fixes bug #373871.
7333
7334 2008-04-24  Jonathan Pobst  <monkey@jpobst.com>
7335
7336         * ToolStrip.cs: Don't use ToolStripControlHosts when figuring up
7337         implicit mnemonics.  [Fixes bug #383000]
7338
7339 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7340
7341         * X11Dnd.cs: When canceling the operation, automatically restore the
7342         default cursor - normally the default cursor is restored when the
7343         mouse buttons are released, but we should be able to restore it even
7344         if the buttons are still pressed (for example, when pressing ESC to
7345         cancel).
7346         Fixes #381894.
7347
7348 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7349
7350         * X11Dnd.cs: When starting a new drad and drop operation, set control
7351         field to null, just as the other fields, to avoid calling any
7352         operation on a previous control. Also, when calling DndLeave on a
7353         control, set it to null, thus we don't fire that event multiple times
7354         for that control.
7355         Fixes #209264.
7356
7357 2008-04-23  Geoff Norton  <gnorton@novell.com>
7358
7359         * XplatUICarbon.cs: Ensure that we have a valid hwnd before accessing
7360         the whole_window object.  Fixes #377084.
7361
7362 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7363
7364         * HtmlElement.cs: Implement RaiseEvent (event injection into the
7365           embedded browser)
7366
7367 2008-04-23  Jonathan Pobst  <monkey@jpobst.com>
7368
7369         * DataGridViewColumnHeaderCell.cs: Implement some NIEX stuffs.
7370
7371 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7372
7373         * HtmlElement.cs, HtmlDocument.cs: Implement javscript method
7374           invocation
7375
7376 2008-04-23  Andreia Gaita <avidigal@novell.com> 
7377
7378         * HtmlElement.cs, HtmlDocument.cs: Implement custom event handler
7379           attaching/detaching
7380
7381 2008-04-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7382
7383         * X11Dnd.cs: When the drop was cancelled, or could just not be
7384         performed, return DragDropEffect.None always (match .net).
7385
7386 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7387
7388         * DataGridViewRowHeaderCell.cs: Fill in some NIEX stuff.
7389
7390 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7391
7392         * DataGridViewRowCollection.cs: Revert something I didn't mean to commit.
7393
7394 2008-04-22  Jonathan Pobst  <monkey@jpobst.com>
7395
7396         * DataGridView.cs: Add support for error icon tool tips.
7397         * DataGridViewCell.cs: ErrorIconBounds needs to call GetErrorIconBounds.
7398         * DataGridViewRowHeaderCell.cs: Need internal way to get ErrorIconBounds.
7399
7400 2008-04-22  Ivan N. Zlatev  <contact@i-nz.net>
7401
7402         * X11Structs.cs: Add mouse button masks enum.
7403         * XplatUIX11.cs, Hwnd.cs: Send WM_ENTERSIZEMOVE and 
7404         WM_EXITSIZEMOVE only once at the beginning and at the end of the 
7405         form resize/move operation instead of for each step of it.
7406         [Fixes bug #346529 for the x11 backend]
7407
7408 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7409
7410         * DataGridView*: Implement support for drawing error icons.
7411
7412 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7413
7414         * TreeView.cs: Make vbar and hbar internal.
7415         * TreeNode.cs: If collapsing the node removes one of the TreeView's
7416         scrollbars, invalidate the whole thing.
7417         [Fixes bug #382001]
7418
7419 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7420
7421         * TreeView.cs: Calling Sort() sets Sorted = true.
7422         * TreeNodeCollection.cs: Try to find the owner TreeView to determine
7423         if the nodes need to be sorted.
7424         [Fixes bug #382028]
7425
7426 2008-04-21  Ivan N. Zlatev  <contact@i-nz.net>
7427
7428         * Form.cs: Fire SizeChanged for both when the form is minimized and 
7429         restored.
7430         * XplatUIX11.cs: Instead of tracking minimization on UnmapNotify track it 
7431         on PropertyNotify of _NET_WM_STATE. Much much cleaner.
7432
7433 2008-04-21  Jonathan Pobst  <monkey@jpobst.com>
7434
7435         * ComboBox.cs: If the combobox is disabled, draw a disabled
7436         background before painting anything else.
7437         [Fixes bug #381729]
7438
7439 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7440
7441         * X11Dnd.cs: Wehn the drag and drop operation is cancelled don't
7442         forget to send a Leave event to the target window - just as .net does
7443         when cancelling dnd operations.
7444
7445 2008-04-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7446
7447         * X11Dnd.cs: Stop tracking messages as part of the dnd operation as
7448         soon as possible - this happens when we send the drop message to the
7449         target window. This way we avoid firing any DragOver _after_ drop finished.
7450         Fixes #378179.
7451
7452 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7453
7454         * XplatUIX11.cs: Send WM_WINDOWPOSCHANGED when a toplevel is minimized.
7455         * Form.cs: Handle form minimization as a special state, where size doesn't 
7456         change, but we have to fire SizeChanged.
7457         [Fixes bug #325122 for the win32 and x11 backends]
7458
7459 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7460
7461         * XplatUIX11.cs: Win32 doesn't send WM_(KILL|SET)FOCUS 
7462         if the handle is disabled.
7463         [Fixes bug #371751]
7464
7465 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7466
7467         * XplatUIX11.cs: Enable Maximize/Minimize/Close ability (not decorations) 
7468         for forms with FormBorderStyle.None.
7469         [Fixes bug #349571]
7470
7471 2008-04-20  Ivan N. Zlatev  <contact@i-nz.net>
7472
7473         * XplatUIX11.cs: Implement support for WM_ENTERSIZEMOVE and 
7474         WM_EXITSIZEMOVE.
7475         [Fixes bug #346529 for the X11 backend]
7476
7477 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7478
7479         * XplatUIX11.cs: 
7480           - Send a mouse Enter message after say dragging the mouse with a 
7481           button down and then release it in another client.
7482           - Reset the cursor to prevent X11 from remembering it and setting it 
7483           before the control gets WM_SETCURSOR.
7484           - Qeueue a mouse move after a mouse enter like win32.
7485           [Fixes bug #323234]
7486
7487 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7488
7489         * XplatUIX11.cs: Implement limited support for WM_SYSCOMMAND. 
7490         It's sent when the form gets moved, resized, closed.
7491         * XplatUIStructs.cs: Add SystemCommands enum for WM_SYSCOMMAND.
7492         [Fixes bug #359193 for X11]
7493
7494 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7495
7496         * Form.cs: Add a ValidateChildren for the 1.1 profile. Fixes 
7497         the build.
7498
7499 2008-04-19  Ivan N. Zlatev  <contact@i-nz.net>
7500
7501         * ListView.cs: Move CalculateDetailsGroupItemsCount to the NET_2_0 
7502         group. Fixes the 1.1 build.
7503
7504 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7505
7506         * ListView.cs: Use display indexes for selection in Details view, as
7507         well as do the proper layout based on display indexes for that view
7508         too.
7509
7510 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7511
7512         * ListView.cs: Focused item information is now stored as a display
7513         index, and display indexes are used all over the place for selection,
7514         instead of ListViewItem.Index values, which doesn't give us enough
7515         information to modify the selection in groups mode, and was broken.
7516
7517 2008-04-18  Ivan N. Zlatev  <contact@i-nz.net>
7518
7519         * Control.cs: Do not fire MouseDown if validation of the control has 
7520         failed.
7521         * Form.cs: Validate the form before closing.
7522         [Fixes bugs #330501 and #353310]
7523
7524 2008-04-18  Andreia Gaita <avidigal@novell.com> 
7525
7526         * WebBrowserBase.cs: Added WndProc, DrawToBitmap,
7527           CreateWebBrowserSiteBase implementations
7528         * HtmlElement.cs: Add missing OuterHTML, OuterText setters, stubbed
7529           Style and TabIndex setters
7530
7531 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7532
7533         * ListViewGroup.cs: When returning the actual item count, return the
7534         proper count for default group.
7535         Fix the tests.
7536
7537 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7538
7539         * ListView.cs:
7540         * ListViewGroup.cs: When calculating groups layout, get the actual
7541         number of items per group, since groups added to the group BUT not
7542         added to the ListView are just ignored, and can cause some nasty
7543         exceptions because of the lack of synchronization. Also for
7544         ListViewGroup don't use lazy initialization for items, since we 
7545         the common scenario is to use it always - and it helps us to  refactor
7546         and clean the .ctor overloads.
7547
7548 2008-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7549
7550         * ListView.cs: When adding an item to a ListViewItemCollection
7551         belonging to a group (ListViewGroup.Items), don't generate a redraw if
7552         the added item hasn't beeen previously added to the ListView instance
7553         refered by the group, since it will be ignored. This should avoid some 
7554         really nasty flickering.
7555
7556 2008-04-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7557
7558         * ListView.cs: When accessing an item in a specific display
7559         position, use the helper method GetItemAtDisplayIndex, instead of
7560         direct access to the reordered_items_indices array. When doing layout
7561         for groups set the correct Items index for the display position (since
7562         in groups mode items don't have the same position as in Items
7563         collection).
7564         * ListViewGroup.cs: Add a field to store the starting item number,
7565         which is later used when calculating the layout.
7566
7567         Fixes #360805.
7568
7569 2008-04-17  Gert Driesen  <drieseng@users.sourceforge.net>
7570
7571         * Application.cs: Fixed ProductVersion to fallback to the assembly
7572         version. Fixes regression for bug #325413.
7573
7574 2008-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7575
7576         * ListView.cs: New helper method to retrieve an item in a _specific
7577         display_ position (the items can be displayed in a different order
7578         than one of Items collection).
7579         * ThemeWin32Classic.cs: When drawing, instead of iterating over Items
7580         collection, use ListView.GetItemAtDisplayIndex, to get an item in a
7581         specific display position (again remember that items can be sorted
7582         different than Items).
7583
7584 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7585
7586         * DataGridViewColumnCollection.cs: Create a cached copy of our sorted
7587         list and update it when the collection changes.  We were recreating
7588         this several times per row paint and for every pixel the mouse moved
7589         across the grid.
7590         * DataGridViewColumn.cs: Regenerate cached sorted list when DisplayIndex
7591         changes.
7592
7593 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7594
7595         * DataGridViewColumnCollection.cs: Convert our internal sorted columns
7596         list to use generics.
7597         * DataGridView.cs, DataGridViewRow.cs: Use generic sorted column list
7598         and remove unneccessay casts.
7599
7600 2008-04-16  Jonathan Pobst  <monkey@jpobst.com>
7601
7602         * DataGridViewBand.cs: Add internal way to set displayed variable.
7603         * DataGridViewRow.cs: Don't paint cells in non-displayed columns.
7604         * DataGridView.cs: Make sure we always keep track of Displayed
7605         rows and columns, and only draw things that are displayed.
7606
7607 2008-04-16  Atsushi Enomoto  <atsushi@ximian.com>
7608
7609         * X11Keyboard.cs, XplatUIX11.cs : manage key state regardless of
7610           whether the key events are filtered or not. Introduced
7611           PreFilter() process for this purpose. This fixes atokx3/iiimx
7612           shift state issue.
7613
7614 2008-04-16  Andreia Gaita <avidigal@novell.com> 
7615
7616         * HtmlHistory.cs: Implement Length property
7617
7618 2008-04-15  Jonathan Pobst  <monkey@jpobst.com>
7619
7620         * DataGridView.cs: Call EndEdit when a sort is performed so we take
7621         away the edit textbox.  Refactor to reuse column sort code.
7622
7623 2008-04-12  Everaldo Canuto  <ecanuto@novell.com>
7624
7625         * MenuAPI.cs: Remove the code that save and restore capture status of 
7626         grab_control, this fixes some Menu and Context menu bugs but maybe it can
7627         cause some others, I cant figure the possible problems of this patch but
7628         right now remove the code looks to be better than keep it. This patch fixes
7629         bugs #357638, #378721 and #379570.
7630
7631 2008-04-12  Andreia Gaita <avidigal@novell.com> 
7632
7633         * HtmlDocument.cs, HtmlElement.cs, HtmlHistory.cs, WebBrowser.cs:
7634         Implement OuterHtml, OuterText, Enabled, Scroll*, *Rectangle properties,
7635         add missing properties and event handlers.
7636         
7637 2008-04-14  Jonathan Pobst  <monkey@jpobst.com>
7638
7639         * ListBox.cs: Make sure the LargeChange we are setting is at least
7640         zero, to prevent an IOORE.  [Fixes bug #379531]
7641
7642 2008-04-13  Andy Hume <andyhume32@yahoo.co.uk>
7643
7644         * ComboBox.cs: Support item navigation by entering text.  Firstly, 
7645         in DropDownList mode, for each key-press select the next item 
7646         starting with that letter.
7647         For other modes, when no item selected, on arrow-up/-down and open 
7648         drop-down select the first item matching the text in the textbox.
7649
7650 2008-04-14  Atsushi Enomoto  <atsushi@ximian.com>
7651
7652         * X11Keyboard.cs : Control.FromHandle() could return null
7653           in MoveCurrentCaretPos().
7654
7655 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7656
7657         * ListView.cs: When changing the size in VirtualMode, also Reset the
7658         selection.
7659         * ListViewItem.cs: Don't call SelectedIndexCollection.Reset when
7660         changing selection info for VirtualMode.
7661         Fixes #372618.
7662
7663 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7664
7665         * ThemeWin32Classic.cs: When drawing ListViewItem instancesin Details
7666         view, don't use LineLimit for the first item - use NoWrap *always*
7667         instead, since ListView.LabelWrap is not used for this view.
7668         Fixes #378054.
7669
7670 2008-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7671
7672         * Binding.cs: Call UpdateIsBinding when setting control - probably
7673         Binding is already usable and we don't need to wait to check the
7674         IsBinding state. Also for 1.1 profile use IsHandleCreated instead of
7675         Created, just like 2.0 does.
7676         * CurrencyManager.cs: I'm so lame - the previous check was wrong.
7677
7678 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7679
7680         * Binding.cs: Just realized we don't need to have a handler for
7681         BindingContextChanged, since this info should be now consumed directly
7682         in the BindingManagerBase. And also, the manager.IsBindingSuspended
7683         state info is checked directly, instead of caching it.
7684
7685         * CurrencyManager.cs: IsSuspended should return always false if Count
7686         == 0.
7687
7688 2008-04-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7689
7690         * Binding.cs: When calling PushData, return if manager.Count == 0,
7691         since we just don't have data to be read. Also, when setting the
7692         Control for binding, hook up some events to refresh the IsBinding
7693         state when BindingContext change or control gets created; use
7694         Control.IsHandleCreated instead of Control.Created check to set
7695         IsBinding state - we *actually* need to modify IsBinding when control
7696         is created, but we don't have any Created event, only HandleCreated.
7697         Fixes part of #349364.
7698
7699 2008-04-11  Geoff Norton  <gnorton@novell.com>
7700
7701         * XplatUICarbon.cs: Expose Caret to the Carbon layer.  Guard against
7702         warping a null Caret.
7703
7704 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7705
7706         * DataGridView.cs: Implement row/column autosizing methods. Implement
7707         autosorting.
7708         * DataGridViewColumnHeaderCell.cs: Add painting of the sort glyph.
7709         * DataGridViewRowCollection.cs: Add an internal sorting method.
7710
7711 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7712
7713         * ThemeWin32Classic.cs: Apply patch from Ernesto to cache an expensive
7714         value in ListView drawing code.
7715
7716 2008-04-11  Jonathan Pobst  <monkey@jpobst.com>
7717
7718         * FileDialog.cs: Only call FileOk when Ok is clicked, not when Cancel
7719         is clicked.  Respect the user setting Cancel in FileOk.
7720
7721 2008-04-11  Geoff Norton  <gnorton@novell.com>
7722
7723         * ListView.cs: Avoid setting and resetting control Width/Heights and
7724         calculate the final value and set it once.  Prevents a feedback loop
7725         on the mac.
7726
7727 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7728
7729         * TreeView.cs: Clamp setting the scrollbar value using SafeValueSet.
7730         [Fixes bug #378869]
7731
7732 2008-04-10  Atsushi Enomoto  <atsushi@ximian.com>
7733
7734         * X11Keyboard.cs, X11Structs.cs : make over-the-spot mode default.
7735           Add some on-the-spot code, but it seems we don't need it.
7736
7737 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7738
7739         * Form.cs: Add method for DataGridView to trigger focus cues
7740         even when it handles the tab keypress.
7741
7742 2008-04-10  Jonathan Pobst  <monkey@jpobst.com>
7743
7744         * DataGridView.cs: More keyboard handling, tab, esc.
7745         * DataGridViewTextBoxEditingControl.cs: Don't request arrow keys
7746         when at the beginning or end of the text in the text box.
7747
7748 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7749
7750         * DataGridViewCell.cs: Guard against an NRE causing a test to fail.
7751
7752 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7753
7754         * DataGridView.cs: Some fixups for showing and adding the edit control.
7755         * DataGridViewButtonColumn.cs: Implement ToString.
7756         * DataGridViewCell.cs: Size and position the control simultaneously.
7757         * DataGridViewTextBoxCell.cs: Use base to position control.
7758
7759 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7760
7761         * DataGridViewCell.cs: Fix up some formatting and painting code.
7762         * DataGridViewImageCell.cs: Implement some NIEX methods.
7763
7764 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7765
7766         * ToolStripItemCollection.cs: What moving an item from one owner
7767         to another, remove from source owner before adding to destination.
7768         [Fixes bug #378109]
7769
7770 2008-04-09  Jonathan Pobst  <monkey@jpobst.com>
7771
7772         * PictureBox.cs: Call Load when ImageLocation is set.
7773         [Fixes bug #378308]
7774
7775 2008-04-09  Atsushi Enomoto  <atsushi@ximian.com>
7776
7777         * X11Keyboard.cs, XplatUIX11.cs :
7778           Implement over-the-spot mode (with some odd offsets).
7779           - set preedit position when caret is set.
7780           - Wrap XMoveResizeWindow() to move preedit position.
7781
7782 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7783
7784         * X11keyboard.cs: Fix last patch, maxval must be less not greater than
7785         array lenght.
7786
7787 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7788
7789         * KeyboardLayouts.cs: Uses GENERATING_RESOURCES to make VKeyTableIndex
7790         and ScanTableIndex public, it fix compilations errors when compiling
7791         WinForms to generate keyboard layout resources.
7792
7793 2008-04-08  Everaldo Canuto  <ecanuto@novell.com>
7794
7795         * X11keyboard.cs: Prevent keyboard errors when vitual table theres 
7796         different element count than scan table. It prevents some errors in non
7797         standard keyboards.
7798
7799 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
7800
7801         * DataGridViewHeaderCell.cs: Implement some NIEX methods.
7802
7803 2008-04-08  Jonathan Pobst  <monkey@jpobst.com>
7804
7805         * DataGridView.cs: Call OnContentClick.
7806         * DataGridViewCell.cs: Do a null check on ValueType instead
7807         of valueType.
7808         * DataGridViewCheckBoxCell.cs: Implement.
7809
7810 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7811
7812         * X11Keyboard.cs : Do not cast IntPtr to int. Use long.
7813
7814 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7815
7816         * X11Keyboard.cs : Check XGetIMValues() return value in
7817           case it does not return input styles in some environment.
7818
7819 2008-04-08  Atsushi Enomoto  <atsushi@ximian.com>
7820
7821         * X11Keyboard.cs : sizeof(IntPtr) != 4 on amd64.
7822
7823 2008-04-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7824
7825         * BindingContext.cs: Stub UpdateBinding method.
7826
7827 2008-04-07  Atsushi Enomoto  <atsushi@ximian.com>
7828
7829         * X11Structs.cs : added couple of structs for XIM support.
7830         * X11Keyboard.cs :
7831           Release XIM in case it failed to create XIC. 
7832           Use consts for XNblah string.
7833           Add support for IM style customization and XIC creation
7834           for preedit-position and preedit-callback.
7835           Right now use MONO_WINFORMS_XIM_STYLE environment variable
7836           (list of: over-the-spot | on-the-spot | root). Only root
7837           mode works so far.
7838
7839           (redoing r99172 with fix.)
7840
7841 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7842
7843         * TreeView.cs: Center the checkbox a little better.
7844
7845 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7846
7847         * ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs, ThemeWin32Classic.cs:
7848         Apply very nice patch from Ernesto Carrea that simplifies our
7849         scrollbar drawing.  [From bug #376146]
7850
7851 2008-04-07  Jonathan Pobst  <monkey@jpobst.com>
7852
7853         * TreeView.cs: Correct the location of the root node checkbox when
7854         ShowRootLines = false.  Don't draw the root lines for the root node
7855         when ShowRootLines = false.  [Fixes bug #377535]
7856
7857 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
7858
7859         * WebBrowserBase.cs: Added missing attributes and fixed attributes.
7860         Fixed line endings.
7861         * WebBrowser.cs: Added missing attributes and fixed attributes. Fixed
7862         line endings.
7863         * MaskedTextBox.cs: Added missing attribute. Code formatting.
7864         * PageSetupDialog.cs: Added missing attribute. Code formatting.
7865         * HtmlWindowCollection.cs: Code formatting. Fixed line endings.
7866         * ImeMode.cs: Added missing field.
7867         * HtmlWindow.cs: Code formatting. Fixed line endings.
7868         * HtmlElement.cs: Code formatting. Fixed line endings. Fixed compiler
7869         warnings.
7870         * HtmlHistory.cs: Code formatting. Fixed line endings.
7871         * HtmlDocument.cs: Code formatting. Fixed line endings.
7872         * ToolStripPanel.cs: Added missing IList implementation.
7873         * HtmlElementCollection.cs: Code formatting. Fixed line endings.
7874
7875 2008-04-06  Gert Driesen  <drieseng@users.sourceforge.net>
7876
7877         * BindingContext.cs: Changed argument names to fix corcompare errors.
7878         * DataGridView.cs: Removed extra explicit interface implementation
7879         of IDropTarget. Code formatting.
7880         * FlowLayoutPanel.cs: Changed argument names to fix corcompare errors.
7881         * ComboBox.cs: Changed argument names to fix corcompare errors.
7882         * DataGridTextBoxColumn.cs: Changed argument names to fix corcompare
7883         errors.
7884         * GridColumnStylesCollection.cs: Changed argument names to fix
7885         corcompare errors. Removed extra tabs.
7886         * GridTableStylesCollection.cs: Changed argument names to fix corcompare
7887         errors.
7888         * Control.cs: Changed argument names to fix corcompare errors. Code
7889         formatting. Removed extra explicit IList implementation.
7890         * TextBox.cs: Changed argument names to fix corcompare errors. Code
7891         formatting. Use string.Empty instead of "".
7892         * GridItemCollection.cs: Changed argument names to fix corcompare
7893         errors. Code formatting.
7894         * DataGridViewTopLeftHeaderCell.cs: Changed argument names to fix
7895         corcompare errors. Code formatting.
7896         * ImageList.cs: Changed argument names to fix corcompare errors.
7897         * ToolStripItem.cs: Changed argument names to fix corcompare errors.
7898         * DataGridViewRowCollection.cs: Changed argument names to fix
7899         corcompare errors. Code formatting.
7900         * TableLayoutPanel.cs: Changed argument names to fix corcompare errors.
7901         * DataGridViewSelectedCellCollection.cs: Changed argument names to
7902         fix corcompare errors. Code formatting.
7903         * DataGridViewComboBoxCell.cs: Changed argument names to fix
7904         corcompare errors. Code formatting.
7905         * LinkLabel.cs: Changed argument names to fix corcompare errors.
7906         * TreeNode.cs: Changed argument names to fix corcompare errors. Code
7907         formatting.
7908         * PropertyGrid.cs: Changed argument names to fix corcompare errors.
7909         Code formatting.
7910         * BindingSource.cs: Changed argument names to fix corcompare errors.
7911         Removed extra explicit interface implementations.
7912         * DataGridViewSelectedRowCollection.cs: Changed argument names to
7913         fix corcompare errors. Code formatting.
7914         * ToolStripItemCollection.cs: Removed extra explicit interface
7915         implementation of IList.ReadOnly.
7916         * DataGridViewColumnCollection.cs: Changed argument names to fix
7917         corcompare errors. Code formatting.
7918         * DataGridViewRow.cs: Rename converter to match MS. Code formatting.
7919         * ListView.cs:  Changed argument names to fix corcompare errors.
7920         * DataGridViewHeaderCell.cs: Changed argument names to fix corcompare
7921         errors.
7922         * DataGridBoolColumn.cs: Changed argument names to fix corcompare
7923         errors.
7924         * ListBindingHelper.cs: Changed argument names to fix corcompare
7925         errors.
7926         * DataGridViewSelectedColumnCollection.cs: Changed argument names to
7927         fix corcompare errors. Code formatting.
7928         * ToolStripPanel.cs: Removed extra explicit implementation of
7929         IDropTarget interface.
7930         * ListBox.cs: Changed argument names to fix corcompare errors. Code
7931         formatting. Removed extra tabs and spaces.
7932         * DataGridViewCellCollection.cs: Changed argument names to fix
7933         corcompare errors.
7934         * Help.cs: Changed argument names to fix corcompare errors. Code
7935         formatting.
7936         * TabControl.cs: Changed argument names to fix corcompare errors.
7937         * DataGridColumnStyle.cs: Changed argument names to fix corcompare
7938         errors.
7939         * TableLayoutSettings.cs: Changed argument names to fix corcompare
7940         errors.
7941
7942 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7943
7944         * ListBindingHelper.cs: When returning properties, only return those
7945         that are browsable. Also, don't do a linear search of the properties,
7946         but use the indexer of the PropertyDescriptorCollection class.
7947
7948 2008-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7949
7950         * BindingSource.cs: Implement GetRelatedCurrencyManager by adding a
7951         Dictionary containing the related (child) currency managers. Also,
7952         when setting DataSource, add datasource to our List if it is not a list.
7953
7954 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7955
7956         * PropertyGridTextBox.cs: Fix background color of the buttons.
7957         * PropertyGridView.cs: Make the entry less jumpy.
7958
7959 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7960
7961         * PropertyGrid.cs: Fix unused variable warnings.
7962
7963 2008-04-05  Ivan N. Zlatev  <contact@i-nz.net>
7964
7965         * PropertyGridView.cs: Fix expansion via [+] misbehavior on 
7966         double-click. It expanded it once in the mouse down and then 
7967         again in the double-click handler.
7968
7969 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
7970         
7971         * GridEntry.cs: ICustomTypeDescriptor support for PropertyOwner, 
7972         TypeConverter and UITypeEditors.
7973
7974 2008-04-04  Ivan N. Zlatev  <contact@i-nz.net>
7975
7976         * Control.cs: Visibility should be set synchronously, 
7977         so we must also redraw once it is and not rely on layouting or 
7978         other code to repaint.
7979         [Fixes bug #339898]
7980
7981 2008-04-04  Jonathan Pobst  <monkey@jpobst.com>
7982
7983         * DataGridViewCell.cs: Respect DataGridView.GridColor.
7984
7985 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7986
7987         * Control.cs: Invalidate when the alpha channel is less than 255,
7988         not only when control is transparent.
7989
7990 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7991
7992         * DataGridViewRowPrePaintEventArgs.cs, DataGridViewRowPostPaintEventArgs.cs:
7993         Implement some painting convenience methods that threw NIEX.
7994
7995 2008-04-03  Jonathan Pobst  <monkey@jpobst.com>
7996
7997         * DataGridView.cs: Call CellMouse[Enter|Move|Leave] properly.
7998         * DataGridViewLinkCell.cs: Implement.
7999
8000 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
8001
8002         * GridEntry.cs: Report the conversion exception error description.
8003         [Fixes bug #375792]
8004
8005 2008-04-03  Ivan N. Zlatev  <contact@i-nz.net>
8006
8007         * PropertyGridView.cs: Do not scroll to item on resize.
8008         [Fixes bug #375789]
8009
8010 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8011
8012         * BindingContext.cs: When retrieving a BindingManagerBase, if the
8013         dataSource parameter is ICurrencyManagerProvider, then return
8014         ICurrencyManagerProvider.CurrencyManager/GetRelatedCurrencyManager
8015         instead of creating a new one.
8016
8017 2008-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8018
8019         * BindingSource.cs: Implement support for Type instances as
8020         DataSource.
8021
8022 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
8023
8024         * DataGridView.cs: Minor cleanups and call CellMouseUp.
8025         * DataGridViewCell.cs: Make some painting routines internally virtual.
8026         * DataGridViewButtonCell.cs: Implement.
8027
8028 2008-04-02  Jonathan Pobst  <monkey@jpobst.com>
8029
8030         * Control.cs: We always need to invalidate our children with
8031         transparent backgrounds when we are invalidated.
8032         [Fixes bug #376081]
8033
8034 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8035
8036         * BindingSource.cs: EndEdit and CancelEdit should call EndCurrentEdit
8037         and CancelCurrentEdit on CurrencyManager respectively. Implement
8038         support for ICancelAddNew too.
8039
8040 2008-04-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8041
8042         * CurrencyManager.cs: When calling EndCurrentEdit/CancelCurrentEdit,
8043         call EndNew/CancelNew if list is ICancelAddNew.
8044
8045 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
8046
8047         * DataGridView.cs: Guard against an exception while painting
8048         if there are no rows.
8049
8050 2008-04-01  Jonathan Pobst  <monkey@jpobst.com>
8051
8052         * DataGridView.cs: Implement a bunch of keyboard commands.
8053
8054 2008-03-31  Jonathan Pobst  <monkey@jpobst.com>
8055
8056         * ToolBar.cs: Don't do our painting if UserPaint is set.  If UserPaint
8057         isn't set, don't call OnPaint.  [Fixes bug #375300]
8058
8059 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8060
8061         * BindingSource.cs: IsBindingSuspended, ResumeBinding and
8062         SuspendBinding depend on CurrencyManager. Implement RemoveCurrent,
8063         hookup the remaining events related to CurrencyManager, and fire
8064         OnListChanged also for the Clear () method.
8065
8066 2008-03-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8067
8068         * BindingSource.cs: Use Current and Position implementations in
8069         CurrencyManager instead of using our own routines, since we need 
8070         to be in synch with it. Count should NEVER return a -1 value, and 
8071         also report ListChanged events for both simple IList data 
8072         sources (manually) as well for IBindingList ones (by hooking up an
8073         event handler for it).
8074
8075 2008-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8076
8077         * BindingSource.cs: Make one .ctor call the another, to avoid
8078         duplicate code. Add the CurrencyManager property, and also for AddNew
8079         throw the proper exceptions and show better error messages.
8080
8081 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
8082
8083         * ComboBox.cs: Only adjust selectedindex if Handle has been
8084         created.  Fixes failing test.
8085
8086 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
8087
8088         * ComboBox.cs: Adjust selectedindex if we insert a new item
8089         above the current selectedindex in a sorted ComboBox.
8090         [Fixes bug #374654]
8091
8092 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
8093
8094         * ComboBox.cs: Support PageUp/PageDown when dropdown is closed.
8095         [Fixes bug #374712]
8096
8097 2008-03-28  Jonathan Pobst  <monkey@jpobst.com>
8098
8099         * DataGridViewTextBoxCell.cs: Implement stuffs.
8100
8101 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
8102
8103         * TreeView.cs: Create the scrollbars even earlier to be
8104         double dog certain they are created before they are accessed.
8105
8106 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
8107
8108         * XplatUIX11.cs: Remove a no-op line that csc was choking on.
8109
8110 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
8111
8112         * ScrollBar.cs: Create an internal safe Value setter so we
8113         won't crash if we try to set a value outside the min and max.
8114         * TextBoxBase.cs: Use safe value setter to guard against a
8115         potential NRE that is being reported by Reflector.
8116
8117 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
8118
8119         * TreeView.cs: Create the scrollbars earlier in the constructor
8120         to attempt to guard against an NRE in SetTop in Reflector.
8121
8122 2008-03-27  Jonathan Pobst  <monkey@jpobst.com>
8123
8124         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCell.cs,
8125         DataGridViewRowCollection.cs: Do not scroll column and row headers,
8126         show messagebox on data format error, use column display index
8127         correctly, make sure HitTest supports new layout stuff,
8128         make sure scrollbars support new layout stuff.
8129
8130 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
8131
8132         * XplatUIX11.cs : Patch by Doug Rintoul.
8133           For some IM engines, keypress events need to delay call
8134           to XPending() and XNextEvent() in the loop so that it
8135           does not mess the orders in XIM commit callback.
8136           Some KeyRelease events such as shift keys need to be
8137           processed both in the IM engine and winforms driver
8138           itself since winforms holds its own state check.
8139
8140           For details, see: http://lists.ximian.com/pipermail/mono-winforms-list/2008-March/003279.html
8141
8142 2008-03-27  Atsushi Enomoto  <atsushi@ximian.com>
8143
8144         * X11Keyboard.cs, XplatUIX11.cs :
8145           add primitive support for XIM input support (preedit-
8146           nothing and status-nothing). It requires precise event
8147           capturing (XSelectInput/"filterEvents") and different
8148           call to XFilterEvent against root window.
8149           Get composed string and send dummy WM_IME_COMPOSITION.
8150           Free XIM and XIC instances in finalizer.
8151
8152           (This first patch does not include suggested changes
8153            by Doug Rintoul. It will follow.)
8154
8155 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
8156
8157         * DataGridView.cs: When binding to a property, if the property
8158         doesn't have a setter, set the column to readonly.
8159         [Fixes bug #343965]
8160
8161 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
8162
8163         * ComboBox.cs: Guard against NRE if an arrow key is hit while
8164         we aren't dropped down.  Support Home/End in DropDownList mode.
8165         [Fixes bug #371990]
8166
8167 2008-03-26  Jonathan Pobst  <monkey@jpobst.com>
8168
8169         * TreeNodeCollection.cs: Don't increment count until we've
8170         saved our index to return.
8171         [Fixes bug #373603]
8172
8173 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
8174
8175         * Label.cs: Add padding to the label's AutoSize calculation.
8176         [Fixes bug #373792]
8177
8178 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8179
8180         * ListBindingHelper.cs: Actually implement GetListName method.
8181
8182 2008-03-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8183
8184         * BindingSource.cs: Throw the propert expceptions for some methods, as
8185         well as detect the list item type for Add method if DataSource is null.
8186
8187 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
8188
8189         * DataGridViewCell.cs: I don't know why I commented this out,
8190         putting it back for now.
8191
8192 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
8193
8194         * DataGridViewCell.cs: Remove storage for owning column, just
8195         use column index.
8196         * DataGridViewColumn.cs: Make getter for HeaderTextSet.
8197         * DataGridViewColumnHeaderCell.cs: If the header text has been
8198         explicitly set, return it.
8199         [Fixes bug #325979]
8200
8201 2008-03-25  Jonathan Pobst  <monkey@jpobst.com>
8202
8203         * DataGridViewRowCollection.cs: Disable row sharing when
8204         using data binding.  Its a great feature, but lets work on
8205         getting DGV usable first before we worry about optimizations.
8206
8207 2008-03-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8208
8209         * BindingSource.cs: When resetting our internal list, compute list
8210         item type information to be used for indirect list access. Also
8211         implement/tune some properties and methods related to the list access
8212         too.
8213         * ListBindingHelper.cs: Add a stub for GetListName method, used from
8214         BindingSource.
8215
8216 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8217
8218         * DataGridView.cs: If RowCount is increased while ColumnCount
8219         is zero, add a column.  [Fixes bug #331649]
8220
8221 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8222
8223         * DataGridViewRowCollection.cs: When adding new rows for
8224         databinding, make sure they are place before the add row.
8225         [Fixes bug #343961]
8226
8227 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8228
8229         * DataGridViewRow.cs: Draw cells in column DisplayIndex order
8230         instead of Index order.
8231
8232 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8233
8234         * DataGridView.cs: If columns are added by increasing ColumnCount,
8235         they need to be DataGridViewTextBoxColumns, not DataGridViewColumn.
8236         [Fixes bug #325588]
8237
8238 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8239
8240         * DataGridView.cs: Turn off and on the "new row" when 
8241         AllowUserToAddRows is toggled.  When the handle is created,
8242         set current cell and selected cell/row/col.
8243
8244 2008-03-24  Jonathan Pobst  <monkey@jpobst.com>
8245
8246         * ComboBox.cs: When navigating the drop down by keyboard, we
8247         need to scroll the list box if our selection moves out of the
8248         currently shown items.  [Fixes bug #371990]
8249
8250 2008-03-24  Luke Page <luke.a.page@gmail.com>
8251
8252         * RichTextBox.cs: Handles visible rtf tag and no longer shows the text
8253         on the control. Also now handles unicode compatibility characters and
8254         stores the unicode compatibility length on the stack. Fixes Bugs
8255         #355198 and #366436.
8256
8257 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8258
8259         * BindingSource..cs: Take into account DataMember when re-creating the
8260         List property, and also create a specific kind of list as needed.
8261
8262 2008-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8263
8264         * ListBindingHelper.cs: Add a new case for GetList () method - when we
8265         get an empty IEnumerable, try to detect whether the datamember is
8266         valid or not for that type, if true, return null, and throw exception
8267         otherwise.
8268
8269 2008-03-22  Jonathan Pobst  <monkey@jpobst.com>
8270
8271         * ComboBox.cs: Alt-Down should drop down the list, Esc should
8272         retract it.  [Fixes bug #371989]
8273
8274 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
8275
8276         * PropertyGrid.cs: Initialize the sorting button as pushed.
8277
8278 2008-03-22  Ivan N. Zlatev  <contact@i-nz.net>
8279
8280         * PropertyGrid.cs: 
8281          - Visually select the PropertyTab.
8282          - Filter Properties by Attributes properly.
8283
8284 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8285
8286         * MenuItem.cs: Remove menu item from parent when disposed.
8287         [Fixes bug #372845]
8288
8289 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8290
8291         * ToolBar.cs: Don't reset layout_type if Dock = None.
8292
8293 2008-03-21  Andreia Gaita <avidigal@novell.com> 
8294
8295         * UserControl.cs: Select the first available control when we get focus.
8296           Fixes #372616
8297
8298 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8299
8300         * DataGridViewCell.cs, DataGridViewTextBoxCell.cs: Don't paint
8301         the content if we are in edit mode.  [Fixes bug #343964]
8302
8303 2008-03-21  Jonathan Pobst  <monkey@jpobst.com>
8304
8305         * DataGridViewCell.cs: Fix border painting for column headers.
8306
8307 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8308
8309         * BindingSource.cs: When setting or resetting data source,
8310         use ListBindingHelper.GetList () method, since it will get the list in
8311         case datasource is IListSource.
8312
8313 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
8314
8315         * DataGridViewCell.cs: Implement lots more stuffs.
8316
8317 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8318
8319         * PropertyGridView.cs, GridEntry.cs: Implement support for 
8320         UITypeEditor.IsDropDownResizable.
8321
8322 2008-03-20  Jonathan Pobst  <monkey@jpobst.com>
8323
8324         * DataGridViewCell.cs: Remove unused variables, improve how
8325         several of the property getters work.
8326         * DataGridViewRow.cs: Don't call setSize on a cell, cell should
8327         get its size from the parent row/col.
8328
8329 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8330
8331         * PropertyGrid.cs: Ensure PropertiesTab is visible even if the 
8332         user alters manually the PropertyTabs collection via the 
8333         PropertyTabs property.
8334
8335 2008-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8336
8337         * ListBindingHelper.cs: Implement -previously- ignored cases. We have
8338         new tests for them to be sure to be compatible with .net.
8339
8340 2008-03-20  Andreia Gaita <avidigal@novell.com> 
8341
8342         * WebBrowserBase.cs: Fix attributes, add events
8343         * WebBrowser.cs: Fix Padding signature
8344
8345 2008-03-20  Ivan N. Zlatev  <contact@i-nz.net>
8346
8347         * PropertyGrid.cs, PropertyGridView.cs: Implement PropertyTab support.
8348
8349 2008-03-19  Jonathan Pobst  <monkey@jpobst.com>
8350
8351         * DataGridView.cs, DataGridViewCell.cs, DataGridViewCellStyle.cs,
8352         DataGridViewLinkCell.cs, DataGridViewRow.cs, DataGridViewRowHeaderCell.cs,
8353         DataGridViewTextBoxCell.cs: Changes so that DataGridViewCell
8354         passes the new suite of tests for it.
8355
8356 2008-03-18  Andreia Gaita <avidigal@novell.com> 
8357
8358         * WebBrowser.cs: Add missing attributes, missing Padding and
8359           DefaultSize properties, remove extraneous getters
8360
8361 2008-03-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8362
8363         * ListBindingHelper.cs: Implement a pair of GetListItemProperties
8364         method overloads.
8365
8366 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8367
8368         * ComboBox.cs: Move resetting the selected index to keypress
8369         instead of textchanged.  Changing the text programmatically
8370         should not trigger resetting the selected index.  Fixes test.
8371
8372 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8373
8374         * ComboBox.cs: When the user types into the textbox, reset
8375         the selected index to -1.  [Fixes bug #371672]
8376
8377 2008-03-16  Jonathan Pobst  <monkey@jpobst.com>
8378
8379         * FileDialog.cs: Support Control-A for selecting everything
8380         in an OpenFileDialog.  [Fixes bug #371564]
8381
8382 2008-03-15  Jonathan Pobst  <monkey@jpobst.com>
8383
8384         * DataGridView.cs: When row/column visible/height properties
8385         change, invalidate.  Take the NIEX out of InvalidateRow/Column
8386         etc.  We don't support them yet, but we can just invalidate
8387         everything until we do support them.  (Added MonoTODO).  Set
8388         proper control styles.
8389         * DataGridViewRow.cs: Don't call PaintHeader if row headers
8390         are turned off. 
8391
8392 2008-03-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8393
8394         * ListBindingHelper.cs: Implement 2.0 GetListItemType methods.
8395
8396 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
8397
8398         * DataGridViewRow.cs: Only paint the white background in
8399         cell bounds, the row bounds extends past the cells if the 
8400         grid width isn't as wide as the DGV.
8401
8402 2008-03-14  Jonathan Pobst  <monkey@jpobst.com>
8403
8404         * DataGridView*: Completely revamp the drawing to match the
8405         public API.  Our grids now look better, and call all the
8406         appropriate methods and event to allow users to override
8407         the painting and do their own.
8408
8409 2008-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8410
8411         * ListBindingHelper.cs: Implement 2.0 GetList methods.
8412
8413 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8414
8415         * DataGridView.cs: Implement BorderStyle.
8416
8417 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8418
8419         * FileDialog.cs: Apply patch from Andy Hume: Any time we
8420         are comparing attributes, make sure we only look at the
8421         one we are interested.  These calls were failing if there
8422         were more than one attribute.
8423         [Fixes bug #370385]
8424
8425 2008-03-13  Jonathan Pobst  <monkey@jpobst.com>
8426
8427         * DataGridColumnStyle.cs: Hide ctor from 1.1 profile.
8428
8429 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8430
8431         * PageSetupDialog.cs: Stub EnableMetric.
8432         * PrintControllerWithStatusDialog.cs: Implement IsPreview.
8433         * PrintPreviewDialog.cs: Add ProcessDialogKey,
8434         ProcessTabKey.
8435
8436 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8437
8438         * MonthCalendar.cs: Remove unused variable.
8439
8440 2008-03-12  Jonathan Pobst  <monkey@jpobst.com>
8441
8442         * DataGridView*.cs: corcompare stuffs.
8443
8444 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8445
8446         * MonthCalendar.cs: Remove an incorrect invalidate optimization.
8447         The savings aren't worth the extra code to fix the optimization.
8448         [Fixes bug #368585]
8449
8450 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8451
8452         * ToolBar.cs: Always call base.Dock in the Dock override so that
8453         Control's layout_type gets reset correctly.
8454         [Fixes bug #368882]
8455
8456 2008-03-11  Ivan N. Zlatev  <contact@i-nz.net>
8457
8458         * X11Dnd.cs: End DnD operation also for the middle mouse button.
8459
8460 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8461
8462         * ContainerControl.cs: We can't do MenuStrip implicit mnemonics
8463         at the same time we do explicit ones, because we have to give all
8464         other controls on the container a chance to handle explicit ones
8465         first.  If no one has an explicit mnemonic, then we can let the
8466         MenuStrip have a shot at implicit mnemonics.
8467         * MenuStrip.cs: Create an implicit mnemonic function.
8468         * ToolStrip.cs: When processing explicit mnemonics, don't do implicit
8469         mnemonics for MenuStrips.
8470         [Fixes bug #368493]
8471
8472 2008-03-11  Jonathan Pobst  <monkey@jpobst.com>
8473
8474         * AxHost.cs, Binding.cs, DataGridView.cs, DataGridViewCell.cs,
8475         DataGridColumnStyle.cs: corcompare stuffs.
8476
8477 2008-03-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8478
8479         * FileDialog.cs: Don't add any ColumnHeader to Columns if view is not
8480         Details - This is needed after we added the bits to use any available
8481         column also for List and SmallIcon view. 
8482
8483 2008-03-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8484
8485         * ListBox.cs: Fire SelectedIndexChanged and SelectedValueChanged events
8486         at the proper place, not only when changing SelectedIndex and changing
8487         the selection using keys/mouse, as .net does.
8488
8489 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8490
8491         * ControlBindingsCollection.cs: Implement last 2.0
8492         DefaultDataSourceUpdateMode property. Also fix a wrong instruction
8493         in the new 2.0 Add methods.
8494
8495 2008-03-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8496
8497         * ListBox.cs: When calling SelectedIndexCollection.Clear,
8498         return if no items are previously selected - this is done to avoid 
8499         firing OnSelectedIndexChanged without need to do so. Also,
8500         when creating handle ensure that the focused item is visible (as
8501         .net does).
8502
8503 2008-03-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8504
8505         * ListBox.cs: Rewrote/refactored most of selection code. We require
8506         the following things in selection: a) keep selection sorted (both
8507         indices and items), b) SelectedIndices automatically detect the
8508         selection mode, c) SelectedIndex should be the first selected item
8509         index, d) Need to Focus/adjust scroll bar when selecting a new item,
8510         not only for SelectedIndex, which is specially important in Multi*
8511         selection modes. To achieve this we are moving the selection core to
8512         SelectedIndexCollection and make depend all selection modifications on
8513         it.
8514         Fixes #366438.
8515
8516 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8517
8518         * ToolStrip.cs: Enable implicit mnemonics for drop down
8519         menu strips.  [Fixes part of bug #367692]
8520
8521 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8522
8523         corcompare - fix parameter names [stragglers].
8524         Binding.cs, BindingsCollection.cs, GridColumnStylesCollection.cs,
8525         HelpEventHandler.cs, Label.cs, ListView.cs, Message.cs,
8526         TabControl.cs.
8527
8528 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8529
8530         Control.cs: Don't call ProcessMenuKey on WM_SYSKEYUP if there
8531         was a mnemonic pressed as well as Alt.  Also, if nothing handles a
8532         mnemonic, let the ToolStripManager have it even if it doesn't
8533         have a matching mnemonic.
8534         [Fixes bug #367499]
8535
8536 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8537
8538         corcompare - fix warning about implicit implementation
8539         * ToolStrip.cs: Add IToolStripData interface.
8540         * IToolStripData.cs: Add.
8541
8542 2008-03-06  Jonathan Pobst  <monkey@jpobst.com>
8543
8544         corcompare - fix warning about implicit implementation
8545         * Control.cs, ToolStripPanelRow.cs: Add IBounds interface.
8546         * IBounds.cs: Add.
8547
8548 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8549
8550         corcompare - fix parameter names [N-Z].
8551         LinkArea.cs, NativeWindow.cs, NotifyIcon.cs, PageSetupDialog.cs,
8552         Panel.cs, PrintDialog.cs, PrintPreviewControl.cs, PropertyGrid.cs,
8553         PropertyManager.cs, RichTextBox.cs,
8554         ScrollBar.cs, SelectionRange.cs, SplitContainer.cs, StatusBar.cs,
8555         StatusBarDrawItemEventArgs.cs, StatusBarPanelClickEventArgs.cs,
8556         StatusStrip.cs, TabControl.cs, TableLayoutColumnStyleCollection.cs,
8557         TableLayoutRowStyleCollection.cs, TableLayoutStyleCollection.cs,
8558         TextBoxBase.cs, ThreadExceptionDialog.cs, ToolStrip.cs,
8559         ToolStripContentPanel.cs, ToolStripDropDown.cs,
8560         ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
8561         ToolStripPanel.cs, ToolStripSeparator.cs,
8562         TreeNode.cs, TreeView.cs, TreeViewHitTestInfo.cs,
8563         UICuesEventHandler.cs, UpDownBase.cs.
8564
8565 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8566
8567         corcompare - fix parameter names [G-M].
8568         GridColumnStylesCollection.cs, GridItemCollection.cs,
8569         GridTableStylesCollection.cs, GroupBox.cs, Help.cs,
8570         HelpProvider.cs, ImageListStreamer.cs, InputLanguageCollection.cs,
8571         Label.cs, LayoutEngine.cs, LinkClickedEventArgs.cs,
8572         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewGroupCollection.cs,
8573         ListViewItem.cs, Menu.cs, MenuItem.cs, MenuStrip.cs, MouseEventArgs.cs.
8574
8575 2008-03-05  Jonathan Pobst  <monkey@jpobst.com>
8576
8577         corcompare - fix parameter names [A-F].
8578         Control.cs, DataGridBoolColumn.cs, DataGridColumnStyle.cs,
8579         DataGridTextBoxColumn.cs, DataGridViewButtonCell.cs,
8580         DataGridViewCellCollection.cs, DataGridViewCellParsingEventArgs.cs,
8581         DataGridViewCheckBoxCell.cs, DataGridViewColumnDesignTimeVisibleAttribute.cs,
8582         DataGridViewComboBoxCell.cs, DataGridViewHeaderCell.cs,
8583         DataGridViewImageCell.cs, DataObject.cs, DomainUpDown.cs,
8584         DrawItemEventArgs.cs, FolderBrowserDialog.cs, FontDialog.cs, Form.cs.
8585
8586 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
8587
8588         * GridEntry.cs: Do not convert not only if the types match, 
8589         but also if the property type is assigneable from the value's
8590         type.
8591         [Fixes bug #366566]
8592
8593 2008-03-03  Ivan N. Zlatev  <contact@i-nz.net>
8594
8595         * PropertyGridView.cs: 
8596          - Subscribe to the listbox only once and not everytime.
8597          - Update the textbox even if SetValue fails.
8598          - Close the listbox before calling TrySetValue just in case.
8599          [Fixes bug #366569]
8600
8601 2008-03-03  Jonathan Pobst  <monkey@jpobst.com>
8602
8603         * Control.cs: Hide ICollection.CopyTo from the 1.1 profile.
8604
8605 2008-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8606
8607         * ListView.cs: Implement support for custom column width based on
8608         Columns collection (we were previously using this collection only
8609         with Details view).
8610         Fixes #364484.
8611
8612 2008-03-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8613
8614         * ListViewItem.cs: For Tile view, always set bounds for the first
8615         subitem (which is the main one), and also don't let Width be larger
8616         than ListView.TileSize.Width. Improve code readibility also.
8617         * ThemeWin32Classic.cs: When painting the ListViewItem instances
8618         in Tile view, _always_ use the NoWrap flag.
8619         Fixes #360798.
8620
8621 2008-02-29  Ivan N. Zlatev  <contact@i-nz.net>
8622
8623         * PropertyGrid.cs: Check for null PropertyDescriptor.Name just 
8624         in case.
8625         * GridEntry.cs: For MS compitability make all child properties 
8626         readonly if the parent is readonly. Ugh.
8627         [Fixes bug #365945 and #365944]
8628
8629 2008-02-29  Andreia Gaita <avidigal@novell.com> 
8630
8631         * HtmlHistory.cs: Fix sigs for Forward and Back to navigate by index
8632           relative to the history
8633
8634 2008-02-29  Andreia Gaita <avidigal@novell.com>
8635
8636         * HtmlElement.cs: More handlers for mouse and key events
8637
8638 2008-02-28  Andreia Gaita <avidigal@novell.com>
8639
8640         * WebBrowserBase.cs: MouseClick sig changed.
8641         * HtmlHistory.cs: Implement history navigation
8642         * HtmlElement.cs: Add event handlers, and connect them.
8643
8644 2008-02-28  Ivan N. Zlatev  <contact@i-nz.net>
8645
8646         * GridEntry.cs: 
8647          - Use PropertyDescriptor.DisplayName instead of .Name for Label,
8648            so that DisplayNameAttribute doesn't get ignored.
8649          - Check for ParenthesizeNameAttribute and parenthesize the Label.
8650          - Add support for PasswordPropertyTextAttribute
8651         * PropertyGridView.cs: Check if an entry is a password.
8652         [Fixes bugs #365589, #365586, #365588]
8653
8654 2008-02-28  Andreia Gaita <avidigal@novell.com>
8655
8656         * PropertyGridView.cs: Revert the message filtering change, as we
8657         need it to block after all. Remove block parameter, unnecessary.
8658
8659 2008-02-27  Jonathan Pobst  <monkey@jpobst.com>
8660
8661         * UserControl.cs: Better implementation of GetPreferredSize.
8662         First step to fixing bug #361441.
8663
8664 2008-02-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8665
8666         * Binding.cs: Actually implement data binding support for 
8667         classes implementing IBindableComponent.
8668         * ControlBindingsCollection.cs: Likewise.
8669
8670 2008-02-26  Andreia Gaita  <avidigal@novell.com>
8671
8672         * PropertyGridView.cs: Use a message filter to check when to 
8673         close the dropdown
8674
8675 2008-02-26  Andreia Gaita  <avidigal@novell.com>
8676
8677         * Application.cs: Change the message_filters loop so a filter 
8678         can be removed while looping.
8679
8680 2008-02-26  Ivan N. Zlatev  <contact@i-nz.net>
8681
8682         * GridEntry.cs: Optimization in ToggleValue so that it caches
8683         the current value.
8684         * PropertyGridView.cs: An optimization so that the property isn't 
8685         re-read twice for each StandardValue added to the drop-down menu.
8686         Patch by Andy Hume <andyhume32@yahoo.co.uk> under the MIT/X11
8687         license.
8688         [Fixes bug #362755]
8689
8690 2008-02-26  Jonathan Pobst  <monkey@jpobst.com>
8691
8692         * Application.cs: Apply patch from Justin Cherniak to match
8693         MS better for ProductName, ProductVersion, and CompanyName.
8694         [Fixes bug #361709]
8695
8696 2008-02-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8697
8698         * Binding.cs: Actually implement 2.0 NullValue property. Also
8699         when changing the formatting related properties, only update the state
8700         if formatting_enabled is true (we don't mind otherwise).
8701
8702 2008-02-25  Jonathan Pobst  <monkey@jpobst.com>
8703
8704         * ToolStrip.cs: Don't raise ItemClicked for disabled items.
8705         [Fixes bug #364486]
8706
8707 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
8708
8709         * GridEntry.cs: Use the PropertyDescriptor.PropertyType instead 
8710         of GetType on the current value as it uses reflection to 
8711         determine the type. This fixes the case where the new value is 
8712         null. 
8713
8714 2008-02-25  Ivan N. Zlatev  <contact@i-nz.net>
8715
8716         * PropertyGridView.cs: Limit mousewheel scrolling to not scroll
8717         past the view.
8718
8719 2008-02-24  Luke Page  <luke.a.page@gmail.com>
8720
8721         * Line.cs, TextControl.cs: Implement offset x and y so that a
8722         document doesn't have to begin  at (0,0) on the viewpoint.
8723         * TextBox.cs, TextBoxBase.cs: RightToLeft switches the scroll
8724         bars and switches the text alignment (and therefore is now
8725         implemented for textbox). Fixes #321383.
8726
8727 2008-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8728
8729         * Binding.cs: Actually implement 2.0 FormatString and FormatInfo
8730         properties. Also when changing FormattingEnabled update the control
8731         property -as .Net does-.
8732
8733 2008-02-22  Carlos Alberto Cortez <calberto.cortez@Å‹mail.com>
8734
8735         * ControlBindingsCollection.cs: Add the missing 2.0 Add overloads.
8736         * Binding.cs: Add stubs for the overloads of the Add method in
8737         CBCollection.
8738
8739 2008-02-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8740
8741         * Binding.cs: PullData () returns a false value if we got an exception.
8742         Also when validating the control and we get an error, instead of
8743         setting the value of the previous one, cancel the event (tested in 1.1
8744         and 2.0).
8745
8746 2008-02-22  Jonathan Pobst  <monkey@jpobst.com>
8747
8748         * TreeView.cs: Make selected_node and highlighted_node internal.
8749         * TreeNodeCollection.cs: Reset selected_node and highlighted_node
8750         to null when Nodes.Clear is called.
8751         [Fixes bug #363884]
8752
8753 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8754
8755         * FontDialog.cs: Ensure that when the Font is set in code,
8756         all the gui pieces are updated accordingly.
8757         [Fixes bug #361020]
8758
8759 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8760
8761         * TextRenderer.cs: Respect proposed size for MeasureString.
8762         * ThemeWin32Classics.cs: If our CheckBox/RadioButton isn't
8763         autosize, use a proposed width to force wrapping for long text.
8764         [Fixes bug #360981]
8765
8766 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8767
8768         * TreeView.cs: Factor in checkboxes = false and state images in
8769         to HitTest.  [Fixes bug #363360]
8770
8771 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8772
8773         * ThemeWin32Classic.cs: Only look at the Date part of a DateTime
8774         when drawing the selected range.
8775         [Fixes bug #363648]
8776
8777 2008-02-21  Jonathan Pobst  <monkey@jpobst.com>
8778
8779         * ToolStripContainer.cs: Add SupportsTransparentBackColor and
8780         ResizeRedraw control styles.
8781         [Fixes bug #363555]
8782
8783 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8784
8785         * TreeView.cs: StateImages are basically custom checkboxes, so
8786         factor their size the same as real checkboxes when determining
8787         what got clicked.
8788         [Fixes bug #363367]
8789
8790 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8791
8792         * MessageBox.cs: Make the message box wider if the form caption
8793         is longer than the text in the form.
8794         [Fixes bug #361137]
8795
8796 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
8797
8798         * PropertyGridView.cs: Fix a NRE when closing the drop down form.
8799
8800 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8801
8802         * TreeNode.cs: Guard against an NRE when the parent's
8803         StateImageList hasn't been set.
8804         [Fixes bug #363353]
8805
8806 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8807
8808         * SplitContainer.cs: Add SupportsTransparentBackColor and
8809         OptimizedDoubleBuffering control styles.
8810         [Fixes bug #363303]
8811
8812 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8813
8814         * Application.cs: For the app data paths and the registry key paths,
8815         ensure they are created before returning them to the user.
8816         [Fixes bug #361709]
8817
8818 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8819
8820         * Application.cs: Guard against an NRE in CompanyName and
8821         ProductName.
8822
8823 2008-02-20  Jonathan Pobst  <monkey@jpobst.com>
8824
8825         * Application.cs: For CompanyName, ProductName, and ProductVersion,
8826         make sure we handle all three cases correctly: attribute is present,
8827         attribute is present but is an empty string, and attribute is not
8828         present.
8829
8830 2008-02-20  Ivan N. Zlatev  <contact@i-nz.net>
8831
8832         * PropertyGridView.cs: 
8833          - Fix a NRE that caused a test failure
8834          - Another performance improvement - cache the standard values
8835          listbox.
8836
8837 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8838
8839         * ComboBox.cs: Fix previous change to affect both 1.1 and 2.0
8840         code paths.
8841
8842 2008-02-19  Ivan N. Zlatev  <contact@i-nz.net>
8843
8844         * PropertyGridView.cs: Fix a big performance bug.
8845
8846 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8847
8848         * SelectionRange.cs: Apply patch from Andy Hume to make
8849         constructor behavior more accurate.  [Fixes bug #362117]
8850
8851 2008-02-19  Andreia Gaita <avidigal@novell.com> 
8852
8853         * Control.cs: Added a new flag is_disposing to track if the
8854         window is currently in the process of being disposed of.
8855         This is used so that, when firing visibility changes triggered
8856         by unparenting controls during Dispose, the control doesn't
8857         get created again.      
8858
8859 2008-02-19  Jonathan Pobst  <monkey@jpobst.com>
8860
8861         * ComboBox.cs: Set height to preferred height when the handle
8862         is created.  [Fixes bug #360862]
8863
8864 2008-02-18  Andreia Gaita <avidigal@novell.com>
8865
8866         * XplatUIX11.cs: Create FosterParent with border width at 0.
8867         With the previous value of 4, everytime a control got reparented
8868         from parent = null, it's location would be shifted right and 
8869         down by 4, since these coordinates would be offset by the 
8870         FosterParent's border width.
8871
8872 2008-02-18  Ivan N. Zlatev  <contact@i-nz.net>
8873
8874         * Control.cs: During diposing firstly remove ourselfes from
8875         the parent and *then* destroy our handle, because removing
8876         ourselfes from the parent controls collection causes 
8877         VisibilityChange, etc events, which require a handle and end
8878         up recreating the control.
8879
8880 2008-02-17  Ivan N. Zlatev  <contact@i-nz.net>
8881
8882         * GridEntry.cs: Set expanded state before notifying that the
8883         expansion has taken place.
8884         * PropertyGridView.cs:
8885          - Set the propertygridtextbox text to the selected 
8886          StandardValue before proceeding to setting it.
8887          - Scrolling bugfixes.
8888
8889 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8890
8891         * GridEntry.cs:
8892          - Fix ValueText to not return null.
8893          - Fix conversion error reporting to actually happen.
8894         * PropertyGridView.cs: Set entry only if the text has changed.
8895         [Fixes bug #362116]
8896
8897 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8898
8899         * GridEntry.cs: 
8900          - Fix handling of a null current value.
8901          - Swallow editor exceptions.
8902         [Fixes bug #362114]
8903
8904 2008-02-16  Ivan N. Zlatev  <contact@i-nz.net>
8905
8906         * PropertyGrid.cs: Clear current items first thing before 
8907         repopulating subitems.
8908         * GridEntry.cs: 
8909          - Handle null StandardValuesCollection.
8910          - Mark as not editable if there is no PropertyDescriptor and
8911          if the Converter cannot convert from string.
8912         [Part of fix for bugs #360666 and #358332]
8913
8914 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8915         * MaskedTextBox.cs: Now skips non editable characters after a
8916         character has been entered and we are progressing to the next
8917         position in the MaskedTextBox.
8918
8919 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8920         * TextBoxBase.cs: Handles MouseDown when shift key is clicked so
8921         that it changes the selection rather than just repositioning the
8922         cursor. Fixes Bug #360873.
8923
8924 2008-02-15  Luke Page  <luke.a.page@gmail.com>
8925         * TextBoxBase.cs, TextControl.cs, RichTextBox.cs: TextChanged fires
8926         when Undo/Redo changes the text. Undo/Redo/Undo/Redo now works
8927         correctly. See #359330
8928
8929 2008-02-15  Andreia Gaita <avidigal@novell.com>
8930
8931         * XplatUIX11.cs: If the handle is null when posting a message, use the
8932         current thread queue to post instead. Fixes #332409
8933
8934         * SendKeys.cs: Slight optimization
8935
8936 2008-02-14  Ivan N. Zlatev  <contact@i-nz.net>
8937
8938         * PropertyGrid.cs, PropertyGridView.cs:
8939         Fix multiple scrolling and sizing issues.
8940         [Fixes bug #359199]
8941
8942 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
8943
8944         * PropertyGridView.cs: Ensure that drop down editors are shown
8945         in the WorkingArea of the screen.
8946         [Fixes bug #359807]
8947
8948 2008-02-12  Ivan N. Zlatev  <contact@i-nz.net>
8949
8950         * GridEntry.cs: Fail silently when UITypeEditor is missing.
8951         [Fixes bug #360666]
8952
8953 2008-02-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8954
8955         * Binding.cs: Implement 2.0 DataSourceNullValue property.
8956
8957 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8958
8959         * PropertyGridView.cs:
8960          - Clear the controls in the drop down form after it is hidden.
8961          - Fix Width sizing of the dropdown editors to match MSFT.
8962
8963 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8964
8965         * PropertyGridView.cs: 
8966          - Fix height for drawing the grid entry
8967          text value, so that it clips multiline text properly.
8968          - Fix unfocusing to match MSFT.
8969
8970 2008-02-11  Ivan N. Zlatev  <contact@i-nz.net>
8971
8972         * PropertyGrid.cs: Do not populate subgriditems unless expandable.
8973         Fixes a bug where on repopulation after value changed items become
8974         expandable.
8975
8976 2008-02-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8977
8978         * Binding.cs: For the 2.0 profile, look for a 
8979         'PropertyChanged' event in the target control, and add checks for
8980         DataSourceUpdateMode property to change -or not- the data source
8981         from validation/control property change.
8982
8983 2008-02-10  Atsushi Enomoto  <atsushi@ximian.com>
8984
8985         * Binding.cs : build fix (operator == is not overriden in 1.x. Do
8986           not compare struct with null in 2.0).
8987
8988 2008-02-10  Luke Page <luke.a.page@gmail.com>
8989
8990         * MaskedTextBox.cs: UseSystemPasswordChar updates PasswordChar, PasswordChar
8991         updates the provider and if not using a provider, uses the internal document
8992         class implementation of password char. Also when showing text, uses display string
8993         from the provider, instead of the actual text.
8994
8995 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8996
8997         * Binding.cs: Ooooops, forgot to take into account the data_source
8998         and binding_member_info null case (it was breaking the Binding tests).
8999
9000 2008-02-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9001
9002         * Binding.cs: Implement support for data source changes exposed by
9003         'PropertyNameChanged' events, and update the control property as
9004         needed.
9005
9006 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9007
9008         * Binding.cs: Implement 2.0 WriteValue method.
9009
9010 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
9011
9012         Commit patch from James Purcell for better AutoScale implementation:
9013
9014         * ScaleControl should call GetScaledBounds with the control's total size rather
9015         than client size.  GetScaledBounds should handle ignoring the borders in its
9016         calculations.  Cleaned up ScaleControl/GetScaledBounds overrides in controls
9017         (for the most part they just call the base code now since that is fixed).
9018         * Added ScaleChildrenInternal to allow controls to disable scaling of children
9019         without having to override ScaleChildren (since none of .NET's controls do). 
9020         This is required for most controls in Mono that have scrollbars to prevent the
9021         scrollbars from being moved/resized.
9022         * Nested ContainerControls can have a different scale mode than their parent. 
9023         This is briefly mentioned in MSDN but is buggy in MS.NET (the runtime and
9024         designer produce different results both of which look incorrect).
9025         * Default AutoScaleMode for ContainerControl should be Inherit.
9026         * Simplified workaround for ComboBox scaling issue.
9027         * 1.0 style auto-scaling now uses its own methods instead of sharing 2.0's. 
9028         1.0 style auto scaling should scale the whole control's size instead of
9029         ignoring the borders (except for Form) and the rounding is done differently to
9030         preserve control alignment.
9031         * ApplyAutoScaling (used for 1.0 style) should use the rounded result of
9032         GetAutoScaleSize.
9033         * Cleaned up fix for "Bug 355703 - Setting AutoScale = true doesn't stick".
9034         * CurrentAutoScaleDimensions should round the estimated character width instead
9035         of truncating.
9036         * ListBox's GetScaledBounds should always use the height it was set to instead
9037         of the height that was passed in.  This prevents rounding errors from
9038         accumulating quickly with IntegralHeight.
9039         [Bug #359098]
9040
9041 2008-02-08  Andreia Gaita <avidigal@novell.com>
9042
9043         * Form.cs: Add a null check (darn it). 
9044
9045 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
9046
9047         * MdiClient.cs: Make sure the requesting form actually owns the
9048         control menu items before removing them.  Also, use
9049         Suspend/ResumeLayout when adding or removing items so we only
9050         layout once.
9051         [Fixes bug #359887]
9052
9053 2008-02-08  Jonathan Pobst  <monkey@jpobst.com>
9054
9055         * Control.cs: Guard against an NRE in ShowFocusCues.
9056         [Fixes bug #359830]
9057
9058 2008-02-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9059
9060         * Binding.cs: Implement 2.0 ReadValue method and ControlUpdateMode
9061         property, as well as stubbing DataSourceUpdateMode.
9062
9063 2008-02-08  Andreia Gaita <avidigal@novell.com>
9064
9065         * Form.cs: When closing forms, get focus back to the active control of the
9066         active form. [Fixes #341314, corner case]
9067         
9068 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9069
9070         * MdiClient.cs: After we move the scrollbars, invalidate the NC
9071         area, so any old scrollbar artifacts are cleaned up.
9072         [Fixes bug #336305]
9073
9074 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9075
9076         * MdiWindowManager.cs: If we are maximized and using MainMenuStrip
9077         for our menus, display that control box menu instead of the 1.1
9078         menu one.
9079
9080 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9081
9082         * MdiControlStrip.cs: Add property to access the mdi form tied to
9083         each toolstripitem.
9084         * MdiClient.cs: Be smarter about removing and adding toolstripitems
9085         to the implicitly merged menu.  Every time we clicked the form, items
9086         were getting removed and the re-added, causing the form to jump around
9087         as the menu resized.
9088
9089 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9090
9091         * MdiClient.cs: Make sure the NormalBounds always gets set.  It
9092         was being reset by the implicit menu merge for menustrips.
9093         [Fixes bug #336296]
9094
9095 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9096
9097         * Form.cs: Don't do the previous change when WindowState = Normal,
9098         or it messes up where the window is placed.  Fixes test failure.
9099
9100 2008-02-07  Jonathan Pobst  <monkey@jpobst.com>
9101
9102         * Form.cs: When becoming visible, if we are an MDI child, call
9103         SetWindowState with a dummy old_state so that changes will actually
9104         be made.
9105         [Fixes the 2nd part of bug #325473]
9106
9107 2008-02-07  Andreia Gaita <avidigal@novell.com>
9108
9109         * Control.cs: Reset properties to their pre parent-change values in case
9110         the new parent == null (in which case we're basically removing the control, 
9111         and don't want any events fired due to fake property changes)
9112         [Fixes #355850]
9113
9114 2008-02-06  Ivan N. Zlatev  <contact@i-nz.net>
9115
9116         * PropertyGridView.cs: 
9117          - Refactor SetValue to allow setting the value
9118         when a custom editor is used, but the entry is not editable.
9119          - Remove the custom editor control on CloseDropDown.
9120         [Fixes #359196]
9121
9122 2008-02-06  Andreia Gaita <avidigal@novell.com>
9123
9124         * PrintControllerWithStatusDialog.cs: Set PrintFileName value through
9125         reflection only on 1.1, this property is public on system.drawing on 2.0.
9126         Fixed #359247
9127
9128 2008-02-06  Andreia Gaita  <avidigal@novell.com>
9129         
9130         * WebBrowser.cs: Do a normal page refresh by default.
9131
9132 2008-02-05  Andreia Gaita  <avidigal@novell.com>
9133
9134         * XplatUIWin32.cs, XplatUICarbon.cs: set the hwnd.Mapped flag when we create 
9135         the window so that the check on Control.UpdateZOrderOfChild passes on non-X
9136         platforms. Fixes #359036
9137         
9138         Note: Control.UpdateZOrderOfChild needs to be rewritten to not rely on 
9139         platform-specific flags.
9140
9141 2008-02-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9142
9143         * Binding.cs: Add 2.0 BindableComponent property - just return control
9144         by now.
9145
9146 2008-02-05  Everaldo Canuto  <ecanuto@novell.com>
9147
9148         * MenuAPI.cs: Check if control is disposable when track popup menu. Thanks
9149         Jonathan for this patch. Fixes #358442.
9150
9151 2008-02-05  Jonathan Pobst  <monkey@jpobst.com>
9152
9153         * Form.cs: If we change the active MDI child form, let the others
9154         know they need to repaint their title bar so it will appear inactive.
9155         [Fixes part 1 of bug #325473]
9156
9157 2008-02-05  Ivan N. Zlatev  <contact@i-nz.net>
9158
9159          * PropertyGridView.cs: Do not trucate custom editors' width
9160          and align them to the left.
9161          [Fixes #358353 and #358349]
9162
9163 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9164
9165         * BindingsCollection.cs: Implement 2.0 CollectionChanging event.
9166         Also fix the arguments passed to CollectionChangeEventArgs in the
9167         related methods.
9168
9169 2008-02-04  Geoff Norton  <gnorton@novell.com>
9170
9171         * Hwnd.cs: The conversion to Quartz coordinates happens in
9172         System.Drawing.  Removing this translation from here.
9173
9174 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
9175
9176          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs,
9177          CategoryGridEntry.cs, RootGridEntry.cs, GridItem.cs,
9178          GridItemCollection.cs:
9179          PropertyGrid rewrite part 2. Tons of bugfixes and new features.
9180
9181 2008-02-04  Geoff Norton  <gnorton@novell.com>
9182
9183         * X11Keyboard.cs: VK_MENU should send a KEYUP instead of 
9184         SYSKEYUP if any other key has been pressed in the mean time.
9185         Fixes #324404
9186
9187 2008-02-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9188
9189         * ListView.cs: In ItemControl.ItemsMouseMove, only fire ItemDrag event
9190         when the item in current position is different than 0. Also, save the
9191         item index in the beginning of the operation, instead of getting the
9192         index of the item when the event is actually performed. Lastly clean
9193         the related fields in ItemsMouseUp if the ItemDrag operation wasn't
9194         triggered.
9195         [Fixes #357873]
9196
9197 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
9198
9199         * Form.cs: Alt-Minus for MDI children system menu should work
9200         with both the minus keys on the keyboard.
9201         [Fixes bug #336295]
9202
9203 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
9204
9205         * Control.cs: Don't invalidate on region change.  The WM should
9206         take care of this automagically.  Keeps us out of an infinite
9207         paint loop if someone changes the Region in the OnPaint.
9208         [Fixes bug #358327]
9209
9210 2008-02-04  Ivan N. Zlatev  <contact@i-nz.net>
9211
9212          * ImageIndexConverter.cs: ConvertFrom must handle "(none)".
9213
9214 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
9215
9216         * DateTimePicker.cs: Apply patch from Srikanth Madikeri so we drop
9217         down the MonthCalendar only on F4, not Alt+F4.
9218         * MonthCalendar.cs: If we are a popup, close ourselves on Alt+F4.
9219         [Fixes bug #358340]
9220
9221 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
9222
9223         * ThemeWin32Classic.cs: For MonthCalendar, draw a dark border
9224         if its part of a DateTimePicker, else, use the back color.
9225         [Fixes bug #358339]
9226
9227 2008-02-03  Jonathan Pobst  <monkey@jpobst.com>
9228
9229         * Hwnd.cs: Use GraphicContext instead of the uninitialized bmp_g.
9230         [Fixes bug #358342]
9231
9232 2008-02-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9233
9234         * CurrencyManager.cs: When we get a ListChanged event from our source,
9235         always fire our own ListChanged event, as .Net does.
9236
9237 2008-02-03  Luke Page  <luke.a.page@gmail.com>
9238
9239         * RichTextBox.cs: AutoSize now defaults to false. Fixes Bug
9240         #358379.
9241
9242 2008-02-03  Luke Page  <luke.a.page@gmail.com>
9243
9244         * TextBoxBase.cs, RichTextBox.cs, TextControl.cs: Sets richtext
9245         property. Removed if for richtext property that was always true.
9246         PgUp/PgDn at top/bottom fixed for RTB. Fixes bug #358237.
9247
9248 2008-02-03  Luke Page  <luke.a.page@gmail.com>
9249
9250         * TextBoxBase.cs - commited patch from James Purcell that
9251         correctly sets the FixedHeight control style when the MultiLine
9252         property is changed on a TextBox control. Fixes bug 358229.
9253
9254 2008-02-02  Luke Page  <luke.a.page@gmail.com>
9255
9256         * Line.cs, LineTag.cs, RichTextBox.cs, TextControl.cs
9257         Fixes bug 351938 - caret is positioned correctly when drawn
9258         and when calculating textual position of caret, no longer
9259         has a NRE in certain situations.
9260         
9261 2008-02-01  Geoff Norton  <gnorton@novell.com>
9262
9263         * Hwnd.cs: Ensure that windows moved into -'ve coordinate space
9264         get that region removed from the paint event.
9265         * XplatUICarbon.cs: Remove the window mapping after disposing of 
9266         window.  Prevents a crash with handle reuse.  Optimize exposes
9267         only onto visible windows (rare; but possible).
9268
9269 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9270
9271         * UpDownBase.cs: Make sure the internal textbox calls the base's
9272         OnMouseDown and OnMouseUp so the textbox will function correctly.
9273         There were notes saying it doesn't chain up, but its an internal
9274         class, so our implementation may differ.
9275         [Fixes bug #357482]
9276
9277 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9278
9279         * ListBox.cs: Fix a logic error and don't process MouseDown
9280         for mouse buttons other than Left.
9281
9282 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9283
9284         * Control.cs: Remove HeightInternal.
9285         * ListBox.cs: Commit patch from James Purcell that correctly
9286         calculates heights for ListBoxen.
9287         [Fixes bug #357152]
9288
9289 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9290
9291         * Label.cs: Apply patch from James Purcell that corrects the 
9292         signature of the AutoSize property.
9293         [Fixes bug #357605]
9294
9295 2008-02-01  Jonathan Pobst  <monkey@jpobst.com>
9296
9297         * ListBox.cs: Don't throw [Mouse]Click events for buttons
9298         other than the left mouse button.
9299
9300 2008-01-31  Jonathan Pobst  <monkey@jpobst.com>
9301
9302         * Control.cs: Remove my awesome optimization as it caused some
9303         regressions with control ordering.  :(
9304         [Fixes bug #357467]
9305
9306 2008-01-31  Ivan N. Zlatev  <contact@i-nz.net>
9307
9308          * PropertyGridView.cs: Fix a NRE on double click when there is no
9309          selected object.
9310
9311 2008-01-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9312
9313         * BindingManagerBase.cs: Implement IsBindingSuspended 2.0 property.
9314
9315 2008-01-30  Jonathan Pobst  <monkey@jpobst.com>
9316
9317         * ListBox.cs: Call MouseClick and MouseDoubleClick.
9318         [Fixes bug #357146]
9319
9320 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9321
9322         * Hwnd.cs: Make bmp, bmp_g variables threadstatic and private.
9323         * Control.cs, DataGridViewCell.cs, LineTag.cs: Use Hwnd.GraphicsContext
9324         instead of Hwnd.bmp_g.
9325
9326 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9327
9328         * TextRenderer.cs: Don't maintain private bitmap/graphics contexts.
9329         Use the Hwnd one instead.
9330
9331 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9332
9333         * Form.cs: Remove duplicated copy of GetAutoScaleSize.
9334
9335 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9336
9337         * Form.cs: corcompare for RestoreBounds.
9338
9339 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9340
9341         * Control.cs: Add MarshalAs attribute to Font getter for corcompare.
9342
9343 2008-01-29  Jonathan Pobst  <monkey@jpobst.com>
9344
9345         * Form.cs: Handle Alt-Minus for MDI children forms.
9346         * MdiWindowManager.cs: Make ShowPopup internal so Form can call it.
9347         Add mnemonics to the control menu.
9348         [Fixes bug #336295]
9349
9350 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9351
9352         * Binding.cs: Initial implementation bits of FormattingEnabled
9353         property and BindingComplete event (2.0). 
9354         * BindingCompleteEventArgs.cs: Internal methods for setting error text
9355         and exception.
9356
9357 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
9358
9359         * TableLayoutPanel.cs: Draw the table border at 0,0 instead of
9360         table.Location.  [Fixes bug #354672]
9361
9362 2008-01-28  Jonathan Pobst  <monkey@jpobst.com>
9363
9364         * Form.cs: Handle WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE to raise
9365         ResizeBegin and ResizeEnd.  [Fixes bug #346529 for win32]
9366
9367 2008-01-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9368
9369         * ComboBox.cs: When OnDisplayMemberChanged method is reached, instead
9370         of doing all the re-bound work, just invalidate and call SetControlText 
9371         to set the updated text of selected item to our textbox.
9372         Fixes #333750.
9373
9374 2008-01-28  Andreia Gaita <avidigal@novell.com>
9375
9376         * HtmlWindow.cs: Add event handler support. Add Document, Frames, 
9377         IsClosed, Opener, StatusBarText, Url properties, stub out the remaining
9378         missing properties and methods. Add Load, Unload, Error, GotFocus, 
9379         LostFocus, Resize, Scroll events (only load and unload are connected)
9380
9381 2008-01-27  Gert Driesen  <drieseng@users.sourceforge.net>
9382
9383         * AccessibleObject.cs: Modified argument names to match MS.
9384         * Button.cs: Modified argument names to match MS.
9385         * BindingContext.cs: Modified argument names to match MS.
9386         * BindingMemberInfo.cs: Modified argument names to match MS.
9387         * ButtonBase.cs: Modified argument names to match MS.
9388         * ComboBox.cs: Modified argument names to match MS.
9389         * Control.cs: Modified argument names to match MS.
9390         * CheckedListBox.cs: Modified argument names to match MS.
9391         * CommonDialog.cs: Modified argument names to match MS.
9392         * DataGrid.cs: Modified argument names to match MS.
9393         * CursorConverter.cs: Modified argument names to match MS.
9394         * ControlPaint.cs: Modified argument names to match MS.
9395         * CheckBox.cs: Modified argument names to match MS.
9396         * ControlBindingsCollection.cs: Modified argument names to match MS.
9397         * BindingSource.cs: Modified argument names to match MS.
9398         * DataFormats.cs: Modified argument names to match MS.
9399         * ContainerControl.cs: Modified argument names to match MS.
9400         * CurrencyManager.cs: Modified argument names to match MS.
9401         * Application.cs: Modified argument names to match MS.
9402         * ContextMenuStrip.cs: Modified argument names to match MS.
9403         * ContextMenu.cs: Modified argument names to match MS.
9404         * BindingManagerBase.cs: Modified argument names to match MS.
9405         * WindowsFormsSection.cs: Fixed line ending.    
9406
9407 2008-01-27  Andreia Gaita <avidigal@novell.com>
9408
9409         * PropertyGridView.cs: Rearrange the dropdown loop so that it exits when
9410         detecting that the dropdown toolwindow is hidden. EndLoop outside the
9411         while.
9412
9413 2008-01-26  Gert Driesen  <drieseng@users.sourceforge.net>
9414
9415         * PropertiesTab.cs: Fixed argument name of GetDefaultProperty to match
9416         MS. Code formatting.
9417
9418 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9419
9420         * Binding.cs: Don't avoid the Format event if the control 
9421         property type is object. Also, if the value retrieved by 
9422         the data source is null _and_ the control proeprty type 
9423         is object, return Convert.DBNull (match .Net).
9424         Fixes part of #324286.
9425
9426 2008-01-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9427
9428         * ListControl.cs: Since we are getting two BinginContextChanged events
9429         for the same binding context instance (when the control is added to
9430         form, and when the form is actually shown), take it into account only the
9431         first time for a given binding context instance.
9432         Fixes part of #324286.
9433
9434 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
9435
9436          * PropertryGridView.cs: Ops.
9437
9438 2008-01-26  Ivan N. Zlatev  <contact@i-nz.net>
9439
9440          * PropertyGridView.cs: Close dropdown form if the owner form is
9441          moved or minimized.
9442          [Fixes bug #322446]
9443
9444 2008-01-25  Ivan N. Zlatev  <contact@i-nz.net>
9445
9446          * PropertyGrid.cs, PropertyGridView.cs, GridEntry.cs, GridItem.cs, 
9447          RootGridEntry.cs, CategoryGridEntry.cs:
9448          PropertyGrid rewrite.
9449          - Rewrite all of the control logic in PropertyGrid.
9450          - Rewrite all of the ComponentModel logic in GridEntry.
9451          - Rewrite all UI work in PropertyGridView.
9452          - Many bugfixes, etc.
9453
9454 2008-01-24  Jonathan Pobst  <monkey@jpobst.com>
9455
9456         * TableLayoutPanel.cs: Enhance GetPreferredSize to take into account
9457         when all contained controls are autosize or dock-fill.  Also take into
9458         account when the total percentage of column/row sizes is not 100%.
9459         [Fixes bug #354672]
9460
9461 2008-01-24  Andreia Gaita <avidigal@novell.com>
9462
9463         * HtmlDocument.cs:
9464         - Save a reference to the IDocument in the instance and
9465           use that one instead of going to WebHost.Document; the document that the 
9466           WebHost returns might not be the right one (in case of frames).
9467         - Use the hashcode returned from the IDocument interface.
9468         - Implemented: ActiveElement, ActiveLinkColor, All, BackColor, Cookie, 
9469           Domain (setter is not supported), Encoding, ForeColor, Forms, Images, 
9470           LinkColor, Url, VisitedColor, Window
9471
9472         * HtmlElement.cs: 
9473         - Implemented: CanHaveChildren, Children, Document, GetAttribute, 
9474           set_Attribute, NextSibling, Parent, TagName, AppendChild, 
9475           GetElementsByTagName, GetHashCode, HasAttribute, InsertAdjacentElement,
9476           SetAttribute, Equals, equality operators.
9477         - Added stubs for: AttachEventHandler, DetachEventHandler, Focus, 
9478           InvokeMember, RaiseEvent, RemoveFocus, ScrollIntoView, 
9479         
9480         * HtmlElementCollection.cs: Change implementation to use a generic
9481         collection. Implemented Enumerator and CopyTo
9482
9483         * HtmlHistory.cs: Add constructor, no implementation yet.
9484
9485         * HtmlWindow.cs: Initial implementation with: Name, Parent, Alert,
9486         Confirm, Prompt, Navigation, ScrollTo, Open, OpenNew, GetHashCode, 
9487         Equals, equality operators.
9488
9489         * HtmlWindowCollection.cs: Implemented. 
9490
9491         * WebBrowser.cs: Use the Navigation object to navigate (WebHost.Navigate
9492         has been deprecated).
9493
9494         * WebBrowserBase.cs: Use Completed event to track document loading
9495         (Navigated has been deprecated)
9496
9497 2008-01-24  Jonatham Pobst  <monkey@jpobst.com>
9498
9499         * ThemeWin32Classic.cs: Add tab stops and NoWrap to dropdown MenuItems.  Top
9500         level MenuItems do not respect tabs.
9501         [Fixes bug #355196]
9502
9503 2008-01-23  Geoff Norton  <gnorton@novell.com>
9504
9505         * XplatUICarbon.cs:  Ensure that windows are created in their initial 
9506         FormWindowState.  Finished fixing Fullscreen windows on Carbon
9507
9508 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9509
9510         * MenuAPI.cs: When FindForm fails uses FindRootParent to find the control to
9511         be used as grab_control. Also save status of capture before show ContextMenu
9512         and restore it after close.
9513
9514 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9515
9516         * Control.cs: Internal FindRootParent method added to return high control
9517         in parent tree.
9518
9519 2008-01-23  Geoff Norton  <gnorton@novell.com>
9520
9521         * Hwnd.cs: Refactor Whole/Client pointer to 1 element for Cursors.
9522         * XplatUICarbon.cs: Refactor some dead code out to Cursor.cs and make
9523         it work again.  Handle HITTEST events.
9524
9525 2008-01-23  Geoff Norton  <gnorton@novell.com>
9526
9527         * XplatUICarbon.cs: Ensure that we always have a host window.  Prevents
9528         a crash in certain cases.  Support for fullscreen windows in certain cases.
9529
9530 2008-01-23  Jonathan Pobst  <monkey@jpobst.com>
9531
9532         * Form.cs: Don't set AutoScaleMode in AutoScale if we don't have to.
9533         [Fixes bug #355703]
9534
9535 2008-01-23  Geoff Norton  <gnorton@novell.com>
9536         
9537         * XplatUICarbon.cs: Remove some dead code that was causing warnings.
9538
9539 2008-01-23  Geoff Norton  <gnorton@novell.com>
9540
9541         * XplatUICarbon.cs:  Re-enabled Carets in QuickDraw as a overlay window.
9542
9543 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9544
9545         * SplitContainer.cs: Remove unused declarations.
9546         * Binding.cs: Remove unused declarations.
9547
9548 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9549
9550         * Form.cs: Remove unused declaration of 'active' in Activate method.
9551         * Control.cs: Move declaration of nested_layout inside '#if NET_2_0" to 
9552         prevent compilation warnings.
9553         * TextControl.cs: Remove unused declaration of selection_pos_on_line.
9554         * Hwnd.cs: Remove unused declaration of clip in GetClippingRectangles.
9555         * Bindings.cs: Remove unused formatting_enabled declaration.
9556         * ToolTip.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
9557         warnings.
9558         * TreeView.cs: Put some methods inside '#if NET_2_0" to prevent compilation 
9559         warnings.
9560         * PropertyGridView.cs: Remove usused 'ex' declaration.
9561         * DataGridView.cs: Remove unused declarations.
9562
9563 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9564
9565         [Fixes bugs #343966, #338511 and other non reported (context)menu bugs]
9566         
9567         * Form.cs: Remove all active_tracker (used by menu) stuff, it is now moved 
9568         to Control class, it makes possible to grab menu to controls that can't 
9569         reach Form using parent tree. Handle for WmButtonUp, WmButtonDown and
9570         WmMouseMove removed since it was used only to track menu events.
9571
9572         * Control.cs:
9573         - Moved all active_tracker stuff from Form.
9574         - ProcessActiveTracker added to prevent code duplicity, now mouse events 
9575         can call this method instead of reimplement all necessary code handle for
9576         menu tracker.
9577         - Call to ProcessActiveTracker for mouse events (WmButtonUp, WmButtonDown
9578         and WmMouseMove).
9579         
9580         * MenuAPI.cs: 
9581         - Remove special handle to ToolStripOverflow, now we can grab menu to 
9582         controls that can't reach Form using parent tree.
9583         - Change type of grab_control from Form to Control.
9584
9585 2008-01-22  Geoff Norton  <gnorton@novell.com>
9586
9587         * TextBoxBase.cs: Split up the sizing of controls and placing of 
9588         controls.  Fixes a bug where scrollbars in Reflector could be sized
9589         wrong and have non-working thumbers.
9590
9591 2008-01-23  Geoff Norton  <gnorton@novell.com>
9592
9593         * XplatUI.cs: Refactor environment variables to default support to the
9594         Carbon driver on the Mac.
9595
9596 2008-01-23  Everaldo Canuto  <ecanuto@novell.com>
9597
9598         * Label.cs: Uses new LabelPainter for drawing operations.
9599         * ThemeWin32Classic.cs: DrawLabel and LabelDefaultSize removed.
9600         * Theme.cs: DrawLabel and LabelDefaultSize removed.
9601
9602 2008-01-22  Geoff Norton  <gnorton@novell.com>
9603
9604         * XplatUICarbon.cs: Enable packing scroll delta into the mouse wParam
9605
9606 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9607
9608         * ThemeWin32Classic.cs: Run Flat, Button appearance, 2.0 CheckBoxes
9609         through the normal flat button code and don't draw the checkbox glyph.
9610         * Theme.cs: Button->ButtonBase signature change.
9611         [Fixes bug #324755]
9612
9613 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
9614
9615         * LinkLabel.cs: Uses new class LinkLabelPainter.
9616
9617 2008-01-22  Everaldo Canuto  <ecanuto@novell.com>
9618
9619         * MessageBox.cs: Adjust right border space, we don't need to add 
9620         "space_border*2" two times.
9621
9622 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9623
9624         * ScrollableControl.cs: With the advent of 2.0's Padding, DockPadding
9625         becomes a wrapper around Padding.
9626         [Fixes a part of bug #354676]
9627
9628 2008-01-22 Geoff Norton  <gnorton@novell.com>
9629
9630         * Mime.cs:  Avoid a needles exception on OSX if we dont have a buffer
9631         acquired.  Also ensure the buffer is large enough to grab the header
9632         we need on linux boxes.
9633
9634 2008-01-22  Jonathan Pobst  <monkey@jpobst.com>
9635
9636         * Control.cs: Implement a custom enumerator so people can delete
9637         from the Controls collection while in a foreach.
9638         [Fixes bug #355074]
9639
9640 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9641
9642          * PropertyGridView.cs: Fix focusing behavior:
9643          - Tab should focus the grid text box.
9644          - Clicking on the labels shouldn't focus the grid text box.
9645
9646 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9647
9648          * PropertyGridView.cs: IsValueTypeGridItem should return true 
9649          for Arrays as well.
9650
9651 2008-01-22  Ivan N. Zlatev  <contact@i-nz.net>
9652
9653          * PropertyGrid.cs, GridEntry.cs, PropertyGridView.cs:
9654           - Renamed GridEntry.SelectedObjects to TargetObjects to better
9655           reflect the property name role.
9656           - PropertyGrid.GetTarget is not required as the target is known
9657           (TargetObjects).
9658           - Setting values will handle value types as a special case now and
9659           populate them up in the chain.
9660           [Fixes #354990]
9661
9662 2008-01-21  Jonathan Pobst  <monkey@jpobst.com>
9663
9664         * Hwnd.cs: Create a public property for the Graphics we keep around.
9665
9666 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
9667
9668          * PropertyGridView.cs: Just hide the grid textbox and do nothing more 
9669          when the current object selection changes. 
9670          Fixes failing test SelectedObject_Null2.B5.
9671
9672 2008-01-21  Ivan N. Zlatev  <contact@i-nz.net>
9673
9674          * PropertyGrid.cs: Process Browsable properties with 
9675          DesignerSerializationVisibilityAttribute.Content as being expandable.
9676          This seems also what MS does. Without this e.g SplitContainer.Panel1/2
9677          will not be expandable. We should be nested components-friendly now.
9678
9679 2008-01-21  Andreia Gaita <avidigal@novell.com>
9680
9681         * WebBrowserBase.cs: Check if control was loaded properly, 
9682         don't bind if it wasn't.
9683
9684         * HtmlDocument.cs: Implement CreateElement, Equals, Focus, 
9685         GetElementFromPoint, equality operators, OpenNew, Write.
9686         Remove extra set_Body
9687
9688 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
9689
9690         * ContainerControl.cs, Control.cs: Apply patch from James Purcell
9691         that makes our AutoScale* stuff more tolerant to different orders
9692         of being set.  [Fixes bug #354669]
9693
9694 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
9695
9696          * PropertyGridView.cs, PropertyGridTextBox.cs: 
9697          Drop WM_LBUTTONDOWN msg sending and use focusing instead.
9698          [Fixes #339005 and #348209]
9699
9700 2008-01-18  Ivan N. Zlatev  <contact@i-nz.net>
9701
9702          * PropertyGridView.cs: Hide the grid text box before adjusting it
9703          for the newly selected GridItem.
9704          [Fixes #338999]
9705
9706 2008-01-18  Jonathan Pobst  <monkey@jpobst.com>
9707
9708         * Form.cs: Give MDI children the opportunity to cancel the parent form
9709         attempting to close.  Ensure that all [Form]Clos[ing,ed] events get called
9710         properly for both the parent and child.
9711         * Application.cs: Signature of internal method changed, pass the previous
9712         default of false.
9713         [Fixes bug #354286]
9714
9715 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
9716
9717         * PropertyGridView.cs: Set the property value only if it has changed.
9718         [Fixes bug #338997]
9719
9720 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
9721
9722         * MenuAPI.cs: Windows sends us MOUSEMOVE messages when any key is pressed.
9723         If the mouse hasn't actually moved, ignore these messages so the currently
9724         highlighted menuitem isn't reset to the one under the mouse.
9725         [Fixes bug #333668]
9726
9727 2008-01-17  Ivan N. Zlatev  <contact@i-nz.net>
9728
9729         * PropertyGridView.cs: When the property changes Invalidate the GridItem
9730         in order for the properties with UITypeEditor.GetPaintValueSupported == true
9731         to reflect the change visually.
9732         [Fixes bug #338998]
9733
9734 2008-01-17  Jonathan Pobst  <monkey@jpobst.com>
9735
9736         * ButtonBase.cs: Add LineLimit to 1.1 button drawing, and TextBoxControl
9737         to 2.0 button drawing.
9738         * ThemeWin32Classic.cs: Ensure that the rectangle we are using to draw 
9739         the button text is tall enough for one line.  LineLimit says it will
9740         always draw at least one line, but it is a lie.
9741         [Fixes bug #324941]
9742
9743 2008-01-17  Atsushi Enomoto  <atsushi@ximian.com>
9744
9745         * XplatUIStructs.cs, X11Keyboard.cs :
9746           added some more VK_* keys to be handled.
9747
9748 2008-01-16  Andreia Gaita <avidigal@novell.com>
9749
9750         * Control.cs: Check if there is a container before setting or getting
9751         the validation flag.
9752
9753 2008-01-16  Andreia Gaita <avidigal@novell.com>
9754
9755         * ContainerControl.cs: Add flag to track if a control cancels validation, 
9756         so we don't fire click events.
9757
9758         * Control.cs: 
9759         - (HandleClick) Check if validation was cancelled before  firing the click
9760         events (doubleclicks are fired, but not clicks)
9761         - (WmLButtonDown) Reset validation flag. The flag is normally reset on 
9762         ContainerControl.set_ActiveControl, but in the case of non-selectable
9763         controls, like a Label, activecontrol is not set. 
9764
9765         * ButtonBase.cs: Only fire clicks if validation passes.
9766         
9767         Fixes #353310
9768
9769 2008-01-16  Geoff Norton  <gnorton@novell.com>
9770
9771         * XplatUICarbon.cs: Implement GetAutoScaleSize to fix Reflector on
9772         trunk
9773
9774 2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
9775
9776         * FolderBrowserDialog.cs: If we cannot interpret the user's requested
9777         SelectedPath, just display the default dialog instead of crashing.
9778         [Fixes bug #348989]
9779
9780 2008-01-16  Geoff Norton  <gnorton@novell.com>
9781
9782         * XplatUICarbon.cs:  Flicker be gone!  Generate our messages in
9783         AddExpose instead of trusting apples compositing manager which doesn't
9784         work for our use case.  Remove some dead code causing warnings and 
9785         redecorate some other code to prevent warnings.
9786
9787 2008-01-16  Geoff Norton  <gnorton@novell.com>
9788
9789         * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
9790         carbon signals us to redraw.  Fixes another portion of the flickering bug
9791
9792 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9793
9794         * Form.cs: Prevent the MdiParent property to be set when value is the same
9795         as value already set. Fixes bug #328019.
9796
9797 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9798
9799         * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
9800         it prevents NRE when closing mdi child windows. Fixes bug #325211.
9801
9802 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9803
9804         * InternalWindowManager.cs: Invalidade close button after mouse up when 
9805         mdi form is prevented to close.
9806
9807 2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
9808
9809         * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
9810         thanks to Andy Hume. Fixes bug #325433.
9811
9812 2008-01-16  Andreia Gaita <avidigal@novell.com>
9813
9814         * LinkLabel.cs: Reset focused_index when resellecting the control.
9815         Fixes #323190
9816
9817 2008-01-15  Geoff Norton  <gnorton@novell.com>
9818
9819         * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
9820         messages.
9821
9822 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
9823
9824         * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
9825         of truncate.
9826
9827 2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
9828
9829         * ContainerControl.cs: Setting AutoScaleMode to anything should set
9830         Form.AutoScale to false.
9831         * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
9832         AutoScaleBaseSize should be changed on Font change unless it has been
9833         explicitly set.
9834         [Fixes bug #353827]
9835
9836 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
9837
9838         * MenuAPI.cs: On instance of MenuTracker check if source control is
9839         ToolStripOverflow and use properly method to find form.
9840         [Fixes bug #338511]
9841
9842 2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
9843
9844         [Fixes bug #323241 Transparent toolbar support]
9845
9846         * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
9847         is flat.
9848
9849         * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
9850         defined in control style to mimic win32 behavior.
9851
9852         * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
9853         it will be transparent.
9854
9855 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
9856
9857         * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
9858         CreateParams for ToolBar controls.
9859
9860 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9861
9862         * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
9863         FixedToolWindow, SizeableToolWindow, or None for border styles have
9864         different minimum sizes than regular forms.  Implemented to fix
9865         regression in PDN with toolbox being too wide.
9866
9867 2008-01-14  Andreia Gaita <avidigal@novell.com>
9868
9869         * HtmlElementCollection.cs: Implemented
9870
9871         * HtmlElement.cs: Implemented:
9872           - All
9873           - InnerHtml
9874           - InnerText
9875           - Id
9876           - Name
9877           - FirstChild
9878
9879         * HtmlDocument.cs: Implemented GetElementsByTagName.
9880
9881 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9882
9883         * Screen.cs: Stub BitsPerPixel to always return 32.
9884
9885 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9886
9887         * Form.cs: Implement RestoreBounds.
9888
9889 2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
9890
9891         * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
9892         Sebastien and his fabulous magical problem-finding machine:
9893         Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
9894         respect the value set.
9895
9896 2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
9897
9898         * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
9899         minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
9900
9901 2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9902
9903         * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
9904         messages (to match .Net), we need to remove the capture ourselves.
9905
9906 2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
9907
9908         * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
9909         will process the message and close our window.
9910         [Fixes bug #324328]
9911
9912 2008-01-10  Geoff Norton  <gnorton@novell.com>
9913
9914         * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
9915         tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
9916         window manager.
9917
9918 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9919
9920         * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
9921         failing test.
9922
9923 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9924
9925         * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
9926         Linux doesn't care, having a minimum matches MS and keeps the window
9927         from becoming too small to use window decorations.
9928         [Fixes bug #338996]
9929
9930 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9931
9932         * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
9933         ShowFocusCues.  Make focus rectangles fit the text instead of the whole
9934         control.  [Fixes bug #325419]
9935
9936 2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
9937
9938         * ComboBox.cs: Guard against an NRE if the user open a new form from a
9939         SelectedIndexChanged event.  This closes the combobox dropdown, and we
9940         were trying to dispose it.  [Fixes bug #352830]
9941
9942 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
9943
9944         * Control.cs, Form.cs: Implement the necessary semantics for
9945         ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
9946         to determine if a focus rectangle should be drawn.
9947         * PropertyGrid.cs: Fix property visibility to match override.
9948         * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
9949
9950 2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
9951
9952         * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
9953         [Fixes bug #323552]
9954
9955 2008-01-09  Geoff Norton  <gnorton@novell.com>
9956         
9957         * XplatUICarbon.cs: Scroll windows in the correct direction.
9958
9959 2008-01-09  Geoff Norton  <gnorton@novell.com>
9960
9961         * XplatUICarbon.cs: Track all created utility windows so we can hide them
9962         when the app is deactivated or spaces is enabled.
9963
9964 2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9965
9966         * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
9967         extra separation pixel for the label rect origin if SmallImageList is
9968         null, and thus we don't need that separation between icon and label
9969         rects.
9970         Patch by Ernesto Carrea.
9971         Fixes # 340195.
9972
9973 2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
9974
9975         * StatusStrip.cs: Invalidate after completing a layout.  The base
9976         OnLayout does this, but we don't call the base.
9977         * ToolStripItem.cs: Revert the previous change to invalidate after
9978         the item moves.
9979         [Fixes bug #351341 better.]
9980
9981 2008-01-07  Geoff Norton  <gnorton@novell.com>
9982
9983         * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
9984         not a notification to exit the application.  Listen for WM_QUIT
9985         instead.
9986
9987 2008-01-07  Andreia Gaita <avidigal@novell.com>
9988
9989         * HtmlDocument.cs: Fix case on GetElementById (interface changed)
9990
9991 2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
9992
9993         * ToolStripItem.cs: If the bounds of an item changes, invalidate it
9994         so it can repaint at the correct location.
9995         [Fixes bug #351341]
9996
9997 2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9998
9999         * ListControl.cs: SelectedValue should return a null value if
10000         SelectedIndex is -1. Also, when setting it, it should throw an
10001         ArgumentNullException if the value is null, as well as taking
10002         into account the String.Empty value, instead of ignoring it (we have
10003         tests for that now).
10004         Fixes part of #324286.
10005
10006 2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
10007
10008         * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
10009         SelectionStart is updated after pressing enter.  Fixes bug #351918.
10010
10011 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10012
10013         * TextControl.cs: Revert a piece r92316 that prevented the fix
10014         from working when there were multiple tags in the text box.
10015         Fixes bug #351881.
10016
10017 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10018
10019         * TextControl.cs: Apply patch from Luke Page that prevents an
10020         NRE when determining the beginning of a paragraph.
10021         Fixes bug #351886.
10022
10023 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10024
10025         * TextBoxBase.cs: Apply patch from Luke Page that ensures the
10026         caret gets moved with clicking away from a selected block of
10027         text.  Fixes bug #351885.
10028
10029 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10030
10031         * TextControl.cs: Apply patch from Luke Page that takes line
10032         alignment into account for mouse selection, so that center and
10033         right aligned text can be selected.
10034         Fixes bug #351881.
10035
10036 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10037
10038         * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
10039         issues after loading an RTF file by using the correct line feeds.
10040         Fixes bug #351841.
10041
10042 2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
10043
10044         * TextControl.cs: When deleting multiple line selections, we need
10045         to invalidate every line beginning at the first line of the selection.
10046         Patch from Luke Page fixes bug #351791.
10047
10048 2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10049
10050         * ListControl.cs: When getting a CurrencyManager.PositionChanged
10051         event, don't set SelectedIndex if the number of items is 1. This is
10052         because, for the first item, PositionChanged is fired _before_
10053         ItemChanged (the place where we actually populate the items), and
10054         leave us in a temporary invalid state (since items collection is
10055         empty).
10056         Fixes #349655.
10057
10058 2008-01-04  Geoff Norton  <gnorton@novell.com>
10059
10060         * XplatUICarbon.cs:  Create native toolwindows instead of
10061         the managed drawing ones.
10062
10063 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
10064
10065         * LineTag.cs: If the line doesn't have any characters, return
10066         0 for GetCharIndex.  Fixes an AOORE exception after certain
10067         caret movements.  Fixes bug #351683.  Patch by Luke Page.
10068
10069 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
10070
10071         * TextBoxBase.cs: Apply patch from Luke Page so when backspace
10072         is hit when there is selected text, only the selected text gets
10073         deleted, not the character in front of the selection as well.
10074         Fixes bug #351578.
10075
10076 2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10077
10078         * ComboBox.cs: When the values are displayed, calculate the
10079         ComboListBox scrollbar's LargeChange based on the visible area's
10080         height and  the actuall ItemHeight, instead of calculating it
10081         based on MaxDropItems value, since it's not used by our _current_ 
10082         2.0 profile.
10083         Fixes #332366.
10084
10085 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
10086
10087         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
10088         Patch from Luke Page that fixes issues with font colors and styles
10089         not showing up in a readonly RichTextBox.  Fixes bug #324354.
10090
10091 2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
10092
10093         * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
10094         from Luke Page.  This one fixes bug #349926.
10095
10096 2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10097
10098         * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
10099         an item in the IBindingList source changes with
10100         ListChangedType.ItemAdded. Ignore for now firing the event for other
10101         changes, since we want to have tests for those cases as well.
10102
10103 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
10104
10105         * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
10106         created.
10107
10108 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
10109
10110         * TextBoxTextRenderer.cs: Implement a cache for measuring each
10111         character.  This is effective because the typical usage of a
10112         TextBox is with a limited amount of fonts and characters, and
10113         the current implementation of TextBox measures everything one
10114         character at a time.  Another second or two speedup for bug #347238.
10115
10116 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
10117
10118         * Control.cs: Rewrite the Font getter to only query the parent's
10119         Font property once instead of twice.  Since this operation is
10120         recursive, the queries were growing exponentially as the control
10121         tree got deeper.  Another second or two speedup for bug #347238.
10122
10123 2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
10124
10125         * Control.cs: Avoid setting a parent (and more importantly, updating
10126         the zorder of all its children) if the parent is already correct in
10127         WmShowWindow.  Decreases the startup time of the test case on bug
10128         #347238 from 35 seconds to 11 seconds.
10129
10130 2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10131
10132         * X11Dnd.cs: When the dnd operation has started and we are 
10133         in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
10134         This is done to match .Net, which doesn't send those messages after
10135         dnd operation was completed/cancelled.
10136         Fixes #349922.
10137
10138 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
10139
10140         * ToolStrip.cs: Previous change should be != null, not == null.
10141         Thanks Gert!
10142
10143 2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
10144
10145         * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
10146         user may have moved the mouse off the current item during the event.
10147
10148 2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10149
10150         * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
10151         calling GetItemAt for every MouseMove event by also taking into
10152         account whether any mouse button is pressed (probably dragging); 
10153         if so, we can call GetItemAt, and if not, try to not call it 
10154         (GetItemAt can be quite expensive when used with a large number of items).
10155
10156 2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10157
10158         * ListView.cs: Implement -finally- support for dnd, by calling
10159         OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
10160         authors list ;-).
10161         * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
10162         simple calculation of distances for all the items in the owner
10163         listview.
10164
10165 2007-12-21  Geoff Norton  <gnorton@novell.com>
10166
10167         * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
10168         for windows that are originally created as invisible.  Fixes missing
10169         main window in paint-mono.
10170
10171 2007-12-21  Geoff Norton  <gnorton@novell.com>
10172
10173         * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
10174         subclass handler for com.novell.mwfview subclassing HIView.  Implement
10175         Pasteboard and Dnd methods.
10176
10177 2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10178
10179         * ListBox.cs: When we got focus, give focus to first item if there
10180         wasn't any pervious focused item. Also update navigation to depend on
10181         SelectedIndex rather than FocusedItem, just as .Net does.
10182         Fixes #349174.
10183
10184 2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10185
10186         * ListBox.cs: Both FindString and FindStringExact methods must do an
10187         case insensitive search, should allow the last valid index to be
10188         passed in the overload taking an initial index, and should also
10189         continue searching from the top back to the specified index when it
10190         reaches the bottom.
10191
10192 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
10193
10194         * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
10195         redraw issue, and allows RichTextBox to draw colored text even while
10196         disabled or readonly.
10197
10198 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
10199
10200         * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
10201         disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
10202         and doesn't grey text in a disabled RichTextBox.
10203
10204 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
10205
10206         * RichTextBox.cs: Apply patch from Luke Page that adds better support
10207         for many RTF commands: quad alignment, separate formatting for blocks
10208         inside groups, and ParDef support.  Makes the test case from bug #324589
10209         look much better.
10210
10211 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
10212
10213         * LineTag.cs: Fix an error in the new Draw method that caused
10214         a crash when rendering the document on bug #324589.
10215
10216 2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
10217
10218         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
10219         TextControl.cs: Apply patch from Luke Page that adds support
10220         for URL links in RichTextBox.
10221         [Fixes enhancement #342516]
10222
10223 2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
10224
10225         * MenuItem.cs: When cloning menuitem clone also name and tag properties for
10226         2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
10227
10228 2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10229
10230         * ListBox.cs: When a key gets pressed, try to find a string
10231         if the key is a character or a digit.
10232         Fixes #343971.
10233
10234 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
10235
10236         * TableLayoutPanel.cs: Remove some unused variables.
10237
10238 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
10239
10240         * DateTimePicker.cs: Commit patch from Luke Page that ensures
10241         we don't end up at an invalid date when we click the up/down
10242         spinner to change the month or year.  Fixes bug #348682.
10243
10244 2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
10245
10246         * Application.cs: Calling Exit in 2.0 should chain to the
10247         Exit (CancelEventArgs) version so it can be cancelled.
10248         * Form.cs: Create a flag to allow raising the Closing
10249         events to be skipped.  We raise them once in Application.Exit
10250         and don't want to raise them again when the Form is actually
10251         closed.  [Fixes bug #349073]
10252
10253 2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
10254
10255         * ToolStripDropDown.cs: Guard against an NRE when there
10256         hasn't been a mainform set in the application context.
10257         [Fixes bug #349108]
10258
10259 2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10260
10261         * ListBox.cs: When SetBoundsCore gets called, besides
10262         calling UpdateScrollBars, update the value of
10263         last_visible_index, since we could need to show more items
10264         than before, and we need to let the paint routines know that.
10265         Fixes #344445.
10266
10267 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10268
10269         * ListView.cs: Add DesignerSerializationVisibility attribute to
10270         InsertionMark property.
10271         * ListViewItem.cs: Add same attribute to Position property.
10272
10273 2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10274
10275         * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
10276         is 2.0 only.
10277
10278 2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
10279
10280         * ThemeWin32Classic.cs: Don't draw the background on a
10281         flat button if there is a background image.
10282         [Fixes bug #348649]
10283
10284 2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10285
10286         * ListBox.cs: If we remove the item currently selected,
10287         remove it not only from SelectedItems, but also
10288         resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
10289         the items count decreased and focused_item has bigger value than that.
10290
10291 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
10292
10293         * Control.cs: Perform our layout after we resize ourselves
10294         if we had to adjust our AutoSize.  Missed commit for bug
10295         #346246.
10296
10297 2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
10298
10299         * TableLayoutPanel.cs: Override GetPreferredSizeCore so
10300         we can provide an implementation of AutoSize.
10301         [Fixes bug #346246]
10302
10303 2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10304
10305         * ListBox.cs: Add the internal overload Sort (bool paint),
10306         to indicate whether we actually need a paint or we will
10307         call Refresh ourselves. This way we don't request a paint
10308         _before_ having an updated and valid layout.
10309         Fixes #347233.
10310
10311 2007-12-12  Andreia Gaita <avidigal@novell.com>
10312
10313         * XPlatUIX11.cs: Send paint messages when updating a systray icon
10314         * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
10315         properly invalidated. 
10316         Fixes #324237
10317
10318 2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10319
10320         * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
10321         don't simply assign it to our internal group field, but instead 
10322         use our Group property, which should do all the neccessary work
10323         required to support groups. Fixes an issue reported to me (mail) by a 
10324         guy using this new feature.
10325
10326 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
10327
10328         * Control.cs: Use Scale instead of ScaleControl to ensure the
10329         whole hierarchy gets scaled.
10330         [Fixes bug #347282]
10331
10332 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10333
10334         * DateTimePicker.cs: Don't set the internal MonthCalendar's
10335         Parent property.  Doing this causes the control to be hosted by
10336         the Form instead of being a popup window.
10337         [Fixes bug #347665]
10338
10339 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10340
10341         * ToolStripItemCollection.cs: If we try to insert a ToolStripItem
10342         at an index higher than Count, just use Add instead of Insert.
10343         [Fixes bug #347669]
10344
10345 2007-12-10  Jonathan Pobst  <monkey@jpobst.com>
10346
10347         * ThemeWin32Classic.cs: Don't draw a PictureBox's background in
10348         DrawPictureBox, this is handled by Control.PaintBackground.
10349         [Fixes bug #347276]
10350
10351 2007-12-10  Everaldo Canuto  <ecanuto@novell.com>
10352
10353         * MenuAPI.cs: When process menu keys return true by default only if menu is
10354         active. Fixes bug #342892.
10355
10356 2007-12-09  Andreia Gaita <avidigal@novell.com>
10357
10358         * Control.cs: check if windows are actually mapped before
10359         trying to zorder. Fixes #342509, #346955
10360
10361 2007-12-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10362
10363         * ListView.cs:
10364         * ListViewInsertionMark.cs:
10365         * ThemeWin32Classic.cs: Implement the drawing side of the
10366         new 2.0 ListView.InsertionMark property.
10367
10368 2007-12-07  Jonathan Pobst  <monkey@jpobst.com>
10369
10370         * CurrencyManager.cs: Silence some debug spew.
10371
10372 2007-12-07  Geoff Norton  <gnorton@novell.com>
10373         
10374         * Hwnd.cs: Refactor GetClippingRectangles to suppose returning the
10375         masks for our children as well as siblings to avoid having to query
10376         Quartz for this information.
10377         * XplatUICarbon.cs: Implement a delegate based system to pass
10378         information to System.Drawing.  Implement Async methods.  Remove
10379         the hack for the resize thumb and imlpement a transparent Grow Box.
10380         Rework the messaging system to proplery create window's and messages,
10381         fixes TabControl.
10382
10383 2007-12-06  Andreia Gaita <avidigal@novell.com>
10384
10385         * X11Keyboard.cs: Use Xutf8LookupString to support international 
10386         characters under alternate codepages. Patch from #340878
10387
10388 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10389
10390         * ListView.cs: When doing layout computations, set position in the
10391         ListView instances (we cache the position just as .Net does).
10392         * ListViewItem.cs: New internal setter method for Position. Also set
10393         position field as also available in 1.1, since we are going to use it
10394         now in the common case.
10395
10396 2007-12-06  Andreia Gaita <avidigal@novell.com>
10397
10398         * Control.cs: When removing controls, get the actual container
10399         to notify about active control changes. Fixes 341314.
10400
10401 2007-12-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10402
10403         * ListViewItem.cs: Forgot to add Font to our serialization stuff.
10404
10405 2007-12-05  Andreia Gaita <avidigal@novell.com>
10406
10407         * Control.cs: When updating the zorder, ignore windows that are not
10408         mapped. Fixes #342509
10409
10410 2007-12-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10411
10412         * ListViewItem.cs: Actually implement serialization on this class.
10413
10414 2007-12-05  Gert Driesen  <drieseng@users.sourceforge.net>
10415
10416         * LinkLabel.cs: Fixed paramname of ArgumentNullException in ctor of
10417         LinkCollection. Spaces to tabs, and removed extra tabs.
10418
10419 2007-12-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
10420
10421         * XplatUIX11.cs: Make toolwindows' decorations show up without causing any
10422           tests to fail (hopefully).
10423
10424 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10425
10426         * ToolStripDropDownMenu.cs: Fill in AffectedBounds when drawing
10427         the image margin so custom renderers can correctly place it.
10428
10429 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10430
10431         * StatusStrip.cs: Fill in AffectedBounds when drawing the grip
10432         so custom renderers can correctly place it.
10433
10434 2007-12-03  Jonathan Pobst  <monkey@jpobst.com>
10435
10436         * Application.cs: Let WM_CHAR messages flow through to controls
10437         hosted in Strips.  [Fixes bug #343972]
10438
10439 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
10440
10441         * ToolStripManager.cs: Guard against an NRE I ran into.
10442
10443 2007-12-02  Jonathan Pobst  <monkey@jpobst.com>
10444
10445         * LinkLabel.cs: Apply patch from George to fix bug 344012.  If
10446         a Link is manually added to the Links collection, we need to set
10447         its owner, so it can invalidate properly.
10448         [Fixes bug #344012]
10449
10450 2007-11-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10451
10452         * ListView.cs: When changing ListViewItem.Position (which calls
10453         ListView.ChangeItemLocation), invalidate not only the area
10454         corresponding to the main item, but also to the area occupied
10455         by the items being moved.
10456
10457 2007-11-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10458
10459         * ListView.cs: When changing the position of a given item,
10460         don't use item bounds, but item areas (which includes the item spacing
10461         between them). Also, use first/last position if the requested
10462         position is outside bounds (as .Net does). Invalidate the previous and
10463         new bounds. Finally, in ItemControl.ItemsMouseDown use the actual item
10464         in a specific position, instead of directly accessing Items collection
10465         (this is done to get the right item - remember an Item can have a
10466         different position in the grid than in the Items collection).
10467
10468 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10469
10470         * MessageBox.cs: Calculate text area instead of just top left, this rect 
10471         area will be used in DrawString. Fixes bug #343364.
10472
10473 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10474
10475         * MessageBox.cs: Calculate max amount for text area width, it must be 60% of
10476         screen width. Partially fixes bug #343364.
10477
10478 2007-11-23  Everaldo Canuto  <ecanuto@novell.com>
10479
10480         * NotifyIcon.cs: Remove duplicated code before call realculate and put this
10481         code inside recalculate, it makes code more simple.
10482
10483 2007-11-22  Everaldo Canuto  <ecanuto@novell.com>
10484
10485         * NotifyIcon.cs: When recalculate icon verify if icon is active to decide
10486         between update or add icon. Fixes bug #324344.
10487
10488 2007-11-21  Andreia Gaita <avidigal@novell.com>
10489
10490         * XPlatUIX11.cs: Do not treat tool windows as if they have no 
10491         window manager, since that stretches the drawing area to include
10492         the window decorations, and they get hidden. Reverts r84444 and fixes
10493         #335849 and #342790 (mdi and pdn3 regression)
10494
10495 2007-11-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10496
10497         * ListView.cs: When setting focused item, try to give focus to the
10498         previous one _only_ if the previous one remains valid. 
10499         Fixes #342504.
10500
10501 2007-11-20  Jonathan Pobst  <monkey@jpobst.com>
10502
10503         * Application.cs: Revert r89650, as it broke a common case to fix
10504         an obscure case.  Fixes bug #342606.
10505
10506 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
10507
10508         * ThemeWin32Classic.cs: Fix extra space on end of tooltip.
10509
10510 2007-11-20  Everaldo Canuto  <ecanuto@novell.com>
10511
10512         * ThemeWin32Classic.cs: Fix tooltip text align removing horizontal 
10513         alignment. [Fixes #324228]
10514
10515 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
10516
10517         * ToolStrip.cs: Handle flow layout in GetPreferredSize to fix PDN3.
10518         [Fixes bug #342123]
10519
10520 2007-11-19  Everaldo Canuto  <ecanuto@novell.com>
10521
10522         * Form.cs: Check for empty Text before assign to cp.Caption in CreateParams
10523         it prevent problems when empty captions. [Fixes #342141]
10524
10525 2007-11-19  Jonathan Pobst  <monkey@jpobst.com>
10526
10527         * Label.cs: Use Size instead of None.  Fixes bug #342077.
10528
10529 2007-11-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10530
10531         * ListViewItem.cs: Implement 2.0 FindNearestItem method.
10532
10533 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
10534
10535         * MenuStrip.cs: Guard against a NRE when a MdiWindowItem is set
10536         but there isn't a MdiContainer.
10537         [Fixes bug #342358]
10538
10539 2007-11-17  Jonathan Pobst  <monkey@jpobst.com>
10540
10541         * TextControl.cs: Don't recalculate document if the recalc_start and
10542         recalc_end hasn't changed.
10543         [Fixes bug #342505]
10544
10545 2007-11-17  Gert Driesen  <drieseng@users.sourceforge.net>
10546
10547         * DataGridViewTextBoxCell.cs: Removed CWL.
10548
10549 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10550
10551         * ListView.cs: Implement 2.0 SearchForVirtualItem event support.
10552
10553 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
10554
10555         * TextControl.cs: Missed some code for bug 341534 to trigger a
10556         recalculation when the font changes.
10557
10558 2007-11-16  Andreia Gaita <avidigal@novell.com>
10559
10560         * Control.cs: When updating the zorder, check if the child to update is
10561         the same control that is set to always be on top (i.e., scrollbars), and 
10562         just put it on top directly. Fixes BadMatch error on pdn3
10563
10564 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10565
10566         * ListView.cs: Throw the needed exceptions for FindNearestItem.
10567
10568 2007-11-16  Jonathan Pobst  <monkey@jpobst.com>
10569
10570         * Control.cs: Don't perform a new layout when a label changes its text,
10571         cause label handles its own autosizing.
10572         [Fixes bug #342077]
10573
10574 2007-11-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10575
10576         * ListView.cs: Implement 2.0 FindNearestItem methods.
10577
10578 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
10579
10580         * ToolStripPanel.cs: Make Join at least add the control to the panel,
10581         even if the rest of what Join does isn't supported.  Add some more
10582         support for vertical toolbars.
10583         * ToolStripPanelRow.cs: Add some more support for vertical toolbars.
10584         [Fixes the application breaking parts of bug #341998]
10585
10586 2007-11-15  Jonathan Pobst <monkey@jpobst.com>
10587
10588         * ToolStripItem.cs: When determining if we have a check/image margin,
10589         we need to look at ShowCheckMargin as well as ShowImageMargin.
10590
10591 2007-11-15  Geoff Norton  <gnorton@novell.com>
10592
10593         * XplatUIOSX.cs: Rename to...
10594         * XplatUICarbon.cs: and refactor all event handling out to the new event handling
10595         system in System.Windows.Forms.CarbonInternal.  Lots of code cleanup as well.
10596
10597 2007-11-15  Jonathan Pobst  <monkey@jpobst.com>
10598
10599         * KeysConverter.cs: The default values should be an array of Keys, not
10600         strings.  Also, the array has more values for 2.0.
10601         [Fixes bug #341851]
10602
10603 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10604
10605         * Application.cs: Change ExecutablePath to use 
10606         Process.GetCurrentProcess ().MainModule.FileName instead of Assembly.GetEntryAssembly.
10607         [Fixes bug #323552]
10608
10609 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10610
10611         * LineTag.cs: Don't attempt to draw '\r', treat it like it doesn't exist.
10612         When measureing CR or LF, use /u000D instead of /u0013. (Hex, not decimal.)
10613         * TextControl.cs: Fix a case in GetLineEnding where a \n before a \r would
10614         be ignored.  Create a new GetLineEnding that can specify which types of
10615         line endings to look for.  On Insert, only create new lines for \n and \r\n.
10616         [Fixes bug #324274]
10617
10618 2007-11-14  Jonathan Pobst  <monkey@jpobst.com>
10619
10620         * TextBoxBase.cs: As we loop through each line changing the font, tell
10621         the document that the line needs to be recalculated.  Fixes bug #341534.
10622
10623 2007-11-13  Jonathan Pobst  <monkey@jpobst.com>
10624         [Another round of refactoring]
10625         * Line.cs: Add DeleteCharacters.
10626         * LineTag.cs: Add Delete.
10627         * TextBoxBase.cs: Update to use new methods.
10628         * TextControl.cs: Refactor the Delete* methods.
10629
10630 2007-11-13  Everaldo Canuto  <ecanuto@novell.com>
10631
10632         * Win32DnD.cs: Implement Win32 Drop files, thank you Srikanth Madikeri for
10633         the patch. [Fixes #324856]
10634
10635 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10636
10637         * ListView.cs:
10638         * ListViewItem.cs: Add an initial implementation of
10639         2.0 ListViewItem.Position getter.
10640
10641 2007-11-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10642
10643         * ListView.cs: Add a reordered_items_indices array, to allow us
10644         to have a different sorting than that of Items (the sorting in Items
10645         could not match the actual sorting in screen). This is needed to
10646         implement a pair of 2.0 features.
10647         * ListViewItem.cs: Add a DisplayIndex property to keep track of the
10648         actual position in the ListView grid, since it could have a position
10649         different than its Index (position in ListViewItemCollection). 
10650
10651 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
10652
10653         * Label.cs: Add StringFormatFlags.LineLimit.  This tells DrawString to
10654         not draw partial lines.
10655         * LinkLabel.cs: Change FormatFlags setter from = to |= so that the
10656         LineLimit flag from the base is preserved.
10657         Fixes the windows part of bug #338965.
10658
10659 2007-11-09  Jonathan Pobst  <monkey@jpobst.com>
10660
10661         * TextBoxBase.cs: Move handling of the enter key from KEYDOWN to CHAR
10662         so that it can be canceled in KeyPress.
10663         Fixes bug #340078.
10664
10665 2007-11-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10666
10667         * ListView.cs: In ItemControl, reset mouse-handling related
10668         fields even if we dont' have items (we still should reset them when
10669         we had items but then called Items.Clear). Partially based in a patch
10670         by George Giolfan.
10671         Fixes #338399.
10672
10673 2007-11-08  Gert Driesen  <drieseng@users.sourceforge.net>
10674
10675         * Application.cs: In ProductVersion first try AssemblyFileVersion
10676         before falling back to assembly version. Fixes bug #339787.
10677
10678 2007-11-08  Andreia Gaita <avidigal@novell.com>
10679
10680         * HtmlElement.cs: Implement InnerText setter.
10681         * WebBrowserBase.cs: Implement Navigated event support.
10682         Add flag to track when the browser "document" is ready to be retrieved.
10683         * WebBrowser.cs: Implement CanGoBack, CanGoForward, Title, Url.
10684         Make sure browser document is ready before retrieving it.
10685         Clean up cached objects (document) when moving to a new page through
10686         any of the navigation methods.
10687         Use the new Mono.WebBrowser.INavigation interface to control navigation.
10688         Implement OnNavigated event.
10689
10690 2007-11-07  Jonathan Pobst  <monkey@jpobst.com>
10691
10692         * ThemeWin32Classic.cs: Don't draw the background in DrawLabel or
10693         DrawLinkLabel, this is handled by OnPaintBackground.
10694         Fixes bug #339565, part II.
10695
10696 2007-11-07  Andreia Gaita <avidigal@novell.com>
10697
10698         * Control.cs: Revert r88915. Selecting text on a textbox depends on
10699         getting a Select call on click, so this call needs to be here for now.
10700         Unfixes #325809
10701
10702 2007-11-07  Geoff Norton  <gnorton@novell.com>
10703
10704         * OSXStructs.cs: Add the kEventClassApplication constants.
10705         * XplatUIOSX.cs: Send a WM_LBUTTONDOWN to the Grab window when the 
10706         application is deactivated otherwise Menu overlays linger on top of
10707         other application windows.
10708
10709 2007-11-07  Geoff Norton  <gnorton@novell.com>
10710
10711         * XplatUIOSX.cs: Dont throw an exception on OverrideCursor as we
10712         dont support cursors yet anyways.  This allows Reflector to run.
10713
10714 2007-11-07  Geoff Norton  <gnorton@novell.com>
10715
10716         * XplatUIOSX.cs: Implement DragSize.
10717
10718 2007-11-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10719
10720         * ListView.cs: When we receive a WM_LBUTTONDOWN message in
10721         ItemControl, request the focus, as .Net does. This is needed after 
10722         Control does not request focus anymore when it receives a
10723         WM_LBUTTONDOWN.
10724
10725 2007-11-06  Jonathan Pobst  <monkey@Jpobst.com>
10726
10727         * Label.cs: Make DrawImage internal so it can be called from Theme code.
10728         Remove the DrawImage call from OnPaint.
10729         * LinkLabel.cs: Remove the DrawImage call from OnPaint.
10730         * ThemeWin32Classic.cs: Call DrawImage after we paint the background,
10731         but before we draw the text for DrawLabel and DrawLinkLabel.
10732         Fixes bug #339565.
10733
10734 2007-11-05  Andreia Gaita <avidigal@novell.com>
10735
10736         * Control.cs: Remove select call on click. Fixes #325809
10737
10738 2007-11-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10739
10740         * ListViewItem.cs: Add 2.0 Position property getter.
10741
10742 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10743
10744         * ListView.cs: Add 2.0 BackgroundImageTiled property.
10745         Also, to make it work properly, change item's BackColor and
10746         BackgroundImageLayout as needed.
10747         * ThemeWin32Classic.cs: Don't fill any background rectangle 
10748         in ListView.ItemControl when drawing items; just let the Control
10749         base implementation fill it.
10750
10751 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10752
10753         * ListViewGroup.cs: Adda TypeConverter attribute for this class,
10754         as well as adding a custom 'dummy' Converter, as .net does.
10755
10756 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10757
10758         * PropertyGridView.cs: When clicking drop-down button,
10759         select an index in the listbox only if our standard values collection 
10760         has one or more items.
10761
10762 2007-11-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10763
10764         * ListViewItem.cs: Add a DefaultValue attribute to 2.0 IndentCount
10765         property.
10766
10767 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10768
10769         * PropertyGrid.cs: In PropertySort, update the toolbar buttons even if
10770         the value is not changed. This ensure a pushed button remains in that
10771         state when clicked again. When switching the value of PropertySort
10772         between Categorized and CategorizedAlphabetical, do not update the
10773         grid items and do not fire a PropertyChangedEvent. When clicking the
10774         sorting buttons, do not modify the PropertySort value when switching
10775         between Categorized and CategorizedAlphabetical but only update the
10776         button state.
10777
10778 2007-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
10779
10780         * Label.cs: Make AutoEllipsis internal on 1.0 profile. Code
10781         formatting.
10782         * PropertyGrid.cs: Also put Categorized button in pushed state when
10783         PropertySort is CategorizedAlphabetical. Set AutoEllipsis to true
10784         for help description label.
10785
10786 2007-11-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10787
10788         * ListView.cs: When calculating the biggest item for a given column,
10789         take into account 2.0 LIstViewItem.IndentCount, since it directly affects
10790         the item's width.
10791
10792 2007-11-03  Gert Driesen  <drieseng@users.sourceforge.net>
10793
10794         * PropertyGrid.cs: Fixed default value for PropertySort. Allow invalid
10795         value for PropertySort on 1.0 profile. PropertySortChanged event
10796         should only be fired on 2.0 profile. Fixed NullReferenceException
10797         in UpdateSortLayout when PropertyGrid contains no items.
10798
10799 2007-11-02  Jonathan Pobst  <monkey@jpobst.com>
10800
10801         * MessageBox.cs: Patch from George to implement MessageBoxDefaultButton.
10802         [Fixes bug #338554]
10803
10804 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10805
10806         * ListViewItem.cs: Implement 2.0 IndentCount property.
10807
10808 2007-11-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10809
10810         * X11Dnd.cs: When sending status in a dnd operation, compare current
10811         effect with the 'allowed' field instead of 'drag_data.Allowed', since
10812         the later is only created when a Winforms application is both the
10813         source and the target, but not when we are the target only.
10814         Fixes part of #324251.
10815
10816 2007-11-01  Geoff Norton  <gnorton@novell.com>
10817
10818         * XplatUI*.cs: Add GetPreviousWindow utility method to return windows in
10819         order of Z-Order.
10820         * Hwnd.cs: Add initial implementation of GetClippingRectangles to clip sibling 
10821         children out of the drawing view on mac.
10822         * XplatUIOSX.cs: Code cleanup.  Handle more window grab cases.  Fix SetParent
10823         to handle the orphan and invisible case (1/2 fixes TabStrip drawing in FormsTest)
10824         
10825 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
10826
10827         * ToolStrip.cs: Don't process MouseUp for a ToolStripControlHost, clicking
10828         on the non-hosted-control part of it shouldn't do anything.
10829         Fixes part of bug #327498.
10830
10831 2007-11-01  Andreia Gaita <avidigal@novell.com>
10832
10833         * WebBrowserBase.cs: revert previous change, resize can be called anytime
10834
10835 2007-11-01  Jonathan Pobst  <monkey@jpobst.com>
10836
10837         * Application.cs: When a toolstrip has the keyboard input loop, let messages
10838         it does not use flow through to controls that are hosted in menus.
10839         Same with mouse clicks.
10840         * Form.cs: Don't close all menus on click if the click is on a
10841         control hosted in a menu.
10842         Fixes part of bug #327498, and part of bug #325969.
10843
10844 2007-10-31  Andreia Gaita <avidigal@novell.com>
10845
10846         * WebBrowserBase.cs: Only call resize on gluezilla when it is active
10847
10848 2007-10-31  Jonathan Pobst  <monkey@jpobst.com>
10849
10850         * TextBoxBase.cs: Use int.MaxValue for MaxLength instead of magic number.
10851         Addresses an issue raised in bug #336218.
10852
10853 2007-10-30  Jonathan Pobst  <monkey@jpobst.com>
10854
10855         * Form.cs: Patch from George that moves the conversion of ClientSize->Size
10856         for PreferredSize from OnLayout to PreferredSize.  Fixes bug #325242.
10857
10858 2007-10-30  Andreia Gaita <avidigal@novell.com>
10859
10860         * ContainerControl.cs: Check if the active control is a
10861         child of a removed control and update active_control accordingly.
10862         Fixes #329718
10863
10864 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10865
10866         * DateTimePicker.cs: Throw ArgEx if the Value is set outside the MinDate
10867         or the MaxDate.  Fixed bug #337693.
10868
10869 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10870
10871         * XplatUIWin32.cs: Always call SetWindowPos with SWP_FRAMECHANGED flag
10872         after calling SetWindowLong for a form, to force an immediate NC refresh.
10873         Fixes first part of bug #325150.
10874
10875 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10876
10877         * ComboBox.cs: Don't try to resize the listbox when we are DropDownStyle
10878         simple.  Fixes the last part of bug #322668.
10879
10880 2007-10-29  Jonathan Pobst  <monkey@jpobst.com>
10881
10882         * MessageBox.cs: If the owner is TopMost, then the MessageBox form
10883         needs to be TopMost as well, or else the MessageBox is under the form.
10884         Patch by George fixes bug #325300.
10885
10886 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10887
10888         * X11Dnd.cs: When starting a new drag operation, reset the static
10889         'dropped' field to false (previously the implementation didn't reset
10890         it and got confused after the first drag).
10891         Fixes #325071.
10892
10893 2007-10-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10894
10895         * PropertyGrid.cs: When PropertySort changes, re-organize the grid
10896         items instead of re-creating them all. For this purpose we now cache
10897         both CategoryGridEntry items and the GridEntries for the main object's
10898         properties.
10899         * GridItem.cs: Make SetParent method abstract.
10900         * GridEntry.cs: Override the SetParent method (already there, but now
10901         we override it).
10902         Fixes #324866.
10903
10904 2007-10-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10905
10906         * PropertyGridView.cs: Set the plus/minus bounds of a grid item
10907         depending on its depth (as .Net does). Update the needed values in
10908         MouseDown handler. Also draw the plus/minus rect after the label,
10909         so we don't draw on top of it.
10910
10911 2007-10-24  Everaldo Canuto  <ecanuto@novell.com>
10912
10913         * MenuAPI.cs: Return true as default in ProcessKeys to prevent keys to be
10914         processed by forms or controls when menu is active. [Fixes #333548]
10915
10916 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10917
10918         * ToolStripItem.cs: Don't focus a ToolStripControlHost on Select of the
10919         parent doesn't have focus.  This was causing ToolStripTextBoxes to take
10920         focus on mouse over.
10921
10922 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10923
10924         * TextControl.cs: Code cleaning, simplifying.
10925
10926 2007-10-24  Geoff Norton  <gnorton@novell.com>
10927
10928         * XplatUIOSX.cs: Route mouse events to the grab hwnd on mouse down as well.
10929         * XplatUIStructs.cs: Fix the ToString method of POINT and MSG.
10930
10931 2007-10-24  Jonathan Pobst  <monkey@jpobst.com>
10932
10933         * TextBoxBase.cs: If the user sets maxlength to 0, it should mean
10934         the cap is maxvalue, not actually 0.  [Fixes bug #336218]
10935
10936 2007-10-24  Andreia Gaita <avidigal@novell.com>
10937
10938         * SendKeys.cs: apply jpobst's patch to bug #332409
10939
10940 2007-10-23  Andreia Gaita <avidigal@novell.com>
10941
10942         * TextBoxTextRenderer.cs: Lower bounds max size to Int16.MaxValue, the 
10943         Windows 2000 gdi DrawText call doesn't draw if it's higher than that
10944         for some reason
10945
10946 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10947
10948         * PropertyGridView.cs: If a property has an UIEditor available,
10949         make the drop-down/editor button available only if the property
10950         is _not_ read only.
10951
10952 2007-10-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10953
10954         * PropertyGridView.cs: Don't make the grid item textbox 
10955         editable when a drop-down control is available, but 
10956         CanConvertFrom (typeof (string)) is false or GetStandardValuesExclusive () is
10957         true. The same bur the color of the grid item value's label.
10958
10959 2007-10-22  Geoff Norton  <gnorton@novell.com>
10960
10961         * OSXStructs.cs: Add the needed constants for keyboard modifiers.
10962         * OSXKeyboard.cs: Initial support for keyboard and limited modifiers.
10963         * XplatUIOSX.cs: New reversible frame support.  Wire in the new keyboard
10964         driver.  Padd the bottom of all real windows so the resize thumb doesn't
10965         obscure scroll/status bars.
10966
10967 2007-10-22  Jonathan Pobst  <monkey@jpobst.com>
10968
10969         * WindowsFormsSection.cs: Implement.
10970
10971 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
10972
10973         * MdiClient.cs: Maximize new active mdi child when a maximized child is 
10974         closed see #325434 patch.
10975
10976 2007-10-22  Everaldo Canuto  <ecanuto@novell.com>
10977
10978         * MdiClient.cs: Fix remaining issues from layout vertical and horizontal,
10979         see #325434 patch.
10980
10981 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10982
10983         * PropertyGridView.cs: When showing the textbox for a grid item,
10984         have two local variables to store the read-only and non-editable
10985         status of a grid item (we were previously using just one variable
10986         to do this, when actually they are slightly different).
10987         Fixes part of #325023.
10988
10989 2007-10-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10990
10991         * PropertyGridView.cs: When showing a drop-down list, try to get the
10992         values using TypeConverter.ConvertTo (to convert to a string). Fixes
10993         part of #325023.
10994
10995 2007-10-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10996
10997         * PropertyGrid.cs: When updating a property and populating sub grid
10998         items, remove the previous ones, and invalidate the specific area.
10999         * PropertyGridView.cs: A new InvalidateBelowGridItem to invalidate the
11000         area behind a grid item.
11001         * GridItemCollection.cs: Add an internal Clear method, to allow us to
11002         clean the items if needed (specially for controls implementing 
11003         ICustomTypeDescriptor and returning a variable number of properties).
11004         Fixes #324865.
11005
11006 2007-10-19  Jonathan Pobst  <monkey@jpobst.com>
11007
11008         * TextControl.cs: Clean up and document the Insert function.
11009
11010 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
11011
11012         * TextControl.cs: Make sure we know our start point for updating the view
11013         in ReplaceSelection.  Fixes an issue where pasting multiline text wouldn't
11014         update the view.
11015
11016 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
11017
11018         * ListView: Couple of corcompare fixes.
11019
11020 2007-10-17  Geoff Norton  <gnorton@novell.com>
11021
11022         * XplatUIOSX.cs: Implement support for window icons in the dock.  Set
11023         the title caption of real window.
11024
11025 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
11026
11027         * ErrorProvider.cs: Add the error provider's internal window to a 
11028         containercontrol when the parent changes.  [Fixes bug #329714]
11029
11030 2007-10-17  Geoff Norton  <gnorton@novell.com>
11031
11032         * XplatUIOSX.cs: Implement ScrollWindow.  Properly create TOOLWINDOWs.
11033         When we make a new window; restore the old active window - fixes dialogs.
11034
11035 2007-10-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11036
11037         * PropertyGridView.cs: Look for RefreshPropertiesAttribute
11038         when modifying a property, and if found then invalidate as
11039         requested.
11040         Fixes part of #324865.
11041
11042 2007-10-17  Geoff Norton  <gnorton@novell.com>
11043
11044         * XplatUIOSX.cs: Re-enable the native driver on the Mac.  This is still
11045         highly experimental.  Fixed coordinate translation.  Fixed window locations.
11046         Initial support for clipping. Implemented NC areas and menus.  Support for
11047         launching from command line from Will Johansson (wjohansson@atacomm.com).
11048         * OSXStructs.cs: Add ProcessSerialNumer (Patch from Will Johansson
11049         wjohansson@atacomm.com)
11050         * Hwnd.cs: Add some internal structures for tracking Mac cursors.
11051         Hwnds now track the existence of all of their children for Mac clipping.
11052     * XplatUI.cs: Re-enabled the native driver on the Mac.
11053
11054 2007-10-17  Jonathan Pobst  <monkey@jpobst.com>
11055
11056         * Line.cs: Move the InsertString function to here.
11057         * TextControl.cs: Cleanup some duplicate code, move some InsertString
11058         functionality to Line.
11059
11060 2007-10-17  Geoff Norton  <gnorton@novell.com>
11061
11062         * ComboBox.cs: Destroy the popup after hiding it.  Fixes #322582
11063
11064 2007-10-16  Gert Driesen  <drieseng@users.sourceforge.net>
11065
11066         * ButtonBase.cs: Fixed IsDefault to use assigned value instead of
11067         always setting value to true.
11068         * Form.cs: When changing AcceptButton, notify new and original button.
11069
11070 2007-10-16  Jonathan Pobst  <monkey@jpobst.com>
11071
11072         * Form.cs: Guard against an NRE when the user sets the AcceptButton to
11073         a custom control that implements IButtonControl instead of an actual
11074         button.  [Fixes bug #334244]
11075
11076 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
11077
11078         * Form.cs: Change SelectActiveControl to internal, we need to call it in
11079         MdiWindowManager.
11080         
11081         * MdiWindowManager.cs: In RaiseActivated call SelectActiveControl to select
11082         active control when activate a new mdi window.
11083         
11084         [Fixes bug #330495]
11085
11086 2007-10-15  Everaldo Canuto  <ecanuto@novell.com>
11087
11088         * ComboBox.cs: Dont implicit add listbox_ctrl on OnHandleCreated because it
11089         is already added.
11090         [Fixes bug #333617]
11091
11092 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
11093
11094         * TextControl.cs: When SuspendRecalc is first called, reset the recalc_start
11095         to MaxValue and recalc_end to MinValue.  Currently, recalc_start is always 1,
11096         so we always recalculate the whole document instead of just the new part.
11097         [Fixes bug #325082]
11098
11099 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
11100
11101         * LineTag.cs: Fix a case where the GetCharIndex would not return 0
11102         when the mouse was to the left of the first character in the line.
11103
11104 2007-10-15  Jonathan Pobst  <monkey@jpobst.com>
11105
11106         * TextBox.cs, TextBoxBase.cs: When setting the document's password
11107         character, use the property instead of the variable so that the
11108         UseSystemPasswordChar property is taken into account.
11109         [Fixes bug #333748]
11110
11111 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11112
11113         * FolderBrowserDialog.cs: When a node is right clicked and the "New
11114         folder" contex menu appears, actually add the new folder to it, even
11115         if the node is not currently selected. Still use SelectedNode in case 
11116         there wasn't found a node under the pointer.
11117         Fixes #325452.
11118
11119 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11120
11121         * ListViewItem.cs: When retrieving the focused state, the index check
11122         should be done only when ListView is in virtualmode, as it is an
11123         expensive check for normal mode.
11124
11125 2007-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11126
11127         * ListViewItem.cs: Make the focus state information be stored
11128         in the ListView, not in the items. This is done to match the MS
11129         behaviour for items that are not yet part of a ListView control;
11130         besides that, since just one item can be focused at the same time,
11131         we save a little space in our items.
11132         Fixes part of #331643.
11133
11134 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
11135
11136         * ComboBox.cs: When focus is lost, deselect the text. When setting
11137         text of control, select all text. Do not hide selection when control
11138         does not have focus. Fixes bug #333663.
11139
11140 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
11141
11142         * TextBoxBase.cs: On 2.0 profile, throw ArgumentOutOFRangeException
11143         instead of ArgumentException when SelectionLength is set to negative
11144         value. Added same check to SelectionStart. Code formatting.
11145
11146 2007-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
11147
11148         * TextBoxBase.cs: Invalidate selection before changing SelectionLength
11149         or SelectionStart. Code formatting.
11150
11151 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11152
11153         * TreeView.cs: drag_begin_x and drag_begin_y are now set to -1,
11154         indicating that there was not a previous drag-and-drop operation going
11155         on.
11156         Fixes part of #325071.
11157
11158 2007-10-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11159
11160         * X11Dnd.cs: When DragEventArgs.Effect is set to a value not part of
11161         AllowedEffect, don't let the drop operation happen. 
11162         Fixes #32580.
11163
11164 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
11165
11166         * TextRenderer.cs: Use GDI on Windows in both the 1.1 and 2.0 profiles.
11167
11168 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
11169
11170         * Line.cs, LineTag.cs: Guard against an exception when Document.Clear
11171         is called.
11172
11173 2007-10-12  Jonathan Pobst  <monkey@jpobst.com>
11174
11175         * Line.cs: Add a method that finds the tag that contains an x-coord.
11176         * LineTag.cs: Add a method that finds the character at an x-coord using
11177         a binary search, the old way was a linear search.
11178         * TextControl.cs: Change FindCursor to use the above new methods.
11179
11180 2007-10-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11181
11182         * DragEventArgs.cs: Allow Effect to have a non allowed value (a
11183         value different than AllowedEffect). This should be possible to
11184         indicate that dragging is not possible in some control/area.
11185
11186 2007-10-11  Jonathan Pobst  <monkey@jpobst.com>
11187
11188         * LineTag.cs: Encapsulate all variables with properties.  Calculate ascent/
11189         descent internally when font changes instead of outside code being responsible
11190         for setting it.
11191         * Line.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Use Tag properties
11192         instead of accessing internal variables.
11193
11194 2007-10-09  Everaldo Canuto  <ecanuto@novell.com>
11195
11196         * MdiClient.cs: Always call ArrangeIconicWindows before any arrangement and
11197         remove special treatment for ArrangeIcons since it is already arranged.
11198
11199 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
11200
11201         * TextBoxTextRenderer.cs: Draw takes a Color now instead of a Brush, as
11202         the Win32 backend uses Color.
11203         * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
11204         Refactor to store a Color instead of a Brush for Color.
11205
11206 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
11207
11208         * Line.cs, LineTag.cs: Override GetHashCode to make a compiler warning go
11209         away.  I didn't realize I needed this when I refactored these earlier.
11210
11211 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
11212
11213         * LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs: Refactor to
11214         store a Color structure and use the ResPool for back color instead of
11215         holding onto brushes.
11216
11217 2007-10-09  Jonathan Pobst  <monkey@jpobst.com>
11218
11219         * TextControl.cs: Fix how we calculate the end of the tag we are drawing.
11220         [Fixes bug #325592]
11221
11222 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
11223
11224         * MonthCalendar.cs: When ShowWeekNumbers is changed, force the calendar
11225         to recalculate its size.  Fixes a part of bug #331052.
11226
11227 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
11228
11229         * NotifyIcon.cs: Set the correct mouse button when handling right mouse
11230         button.  Fixes a part of bug #331052.
11231
11232 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
11233
11234         * Form.cs: Trim NewLine before setting XPlatUI.SetText, and when setting
11235         the CreateParams.
11236         * ThemeWin32Classic.cs: Trim NewLine before drawing MDI children window
11237         decorations.
11238         [Fixes bug #330986]
11239
11240 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
11241
11242         * TextBoxTextRenderer.cs: Don't make this a static class, as static
11243         doesn't exist in 1.1.  (Thanks jb!)
11244
11245 2007-10-08  Jonathan Pobst  <monkey@jpobst.com>
11246
11247         * TextBoxTextRenderer.cs: Abstract text measuring and drawing to this
11248         class to allow us to use different backends on different platforms.
11249         Linux uses the current [Draw|Measure]String backend.  Windows uses
11250         the TextRenderer.[Draw|Measure]Text backend, which uses GDI instead
11251         of GDI+.  This leads to better looking text and more accurate measurements
11252         on Windows, fixing many of the reported issues.
11253         * Line.cs, LineTag.cs: Update to use TextBoxTextRenderer.
11254
11255 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11256
11257         * FolderBrowserDialog.cs: When running on Windows,
11258         try to detect paths such "C:" and add Path.DirectorySeparatorChar,
11259         since we must match both "C:" and "C:\" forms. A little hackish, but
11260         works.
11261         Fixes #325247.
11262
11263 2007-10-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11264
11265         * ListView.cs: When calling EndEdit (after editing an item),
11266         create a new instance of LabelEditEventArgs to keep clean the fields
11267         in case we get a new call to BeginEdit; also do Application.DoEvents
11268         to have focus in synch. This is a fix similar to TreeView's #325244.
11269
11270 2007-10-07  Andreia Gaita <avidigal@novell.com>
11271
11272         * HtmlDocument.cs, HtmlElement.cs, WebBrowser.cs: Added dom support
11273         * WebBrowserBase.cs: Added dialog support, calling the
11274           WebBrowserDialogs classes for each specific dialog type.
11275
11276 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11277
11278         * ListView.cs: When the last item is focused and is removed,
11279         move the focus to the previous item (in Items order). This is what MS
11280         does.
11281         Fixes #330415.
11282
11283 2007-10-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11284
11285         * ListView.cs: In ListViewItemCollection, make Remove call RemoveAt,
11286         instead of the opposite (RemoveAt call Remove). This is a better
11287         approach since we don't need to to a pair of traversals when using
11288         RemoveAt.
11289
11290 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11291
11292         * TreeView.cs: When Keys.Left is pressed, before trying to Collapse
11293         check that the node actually has nodes, and if not, move to the
11294         parent node instead. 
11295         Fixes #325265.
11296
11297 2006-10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11298
11299         * TreeView.cs: Move the previous change to the general case (to
11300         call Application.DoEvents in cases where the method was called by
11301         different places).
11302
11303 2007_10-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11304
11305         * TreeView.cs: When calling EndEdit and we need to hide the textbox,
11306         call Application.DoEvents. This is neccessary when we get a call to
11307         BeginEdit from an AfterLabelEdit handler, because the focus always
11308         goes to the TreeView, even if we try to give it to our
11309         LabelEditTextBox. The call do Application.DoEvents seems to
11310         synchronize the focus, basically.
11311         Fixes #325244.
11312
11313 2007-10-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11314
11315         * TreeView.cs: When AfterLabelEdit event is fired, TreeNode.IsEditing
11316         should be false. This also removes some nasty recursive paths. Fixes
11317         part of #325244.
11318
11319 2007-10-04  Everaldo Canuto  <ecanuto@novell.com>
11320
11321         * MdiClient.cs: When cascade (layout) mdi window that is maximized, set the
11322         state to normal. Also resize window when cascading. Fixes #325433. 
11323
11324 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
11325
11326         * RichTextBox.cs: When SelectionColor is set to Color.Empty, use
11327         DefaultForeColor, as drawing empty colored lines isn't very useful.
11328         [Fixes the not drawn lines part of bug #324358]
11329
11330 2007-10-04  Jonathan Pobst  <monkey@jpobst.com>
11331
11332         * TextControl.cs: Move Line and LineTag classes into separate files to
11333         make things easier to find.
11334         * Line.cs, LineTag.cs: Bring coding standards up to Mono's guidelines.
11335         * RichTextBox.cs: Capitalize LineTag.Length property access.
11336         - This is purely an organizational/formatting change, no logic changed. -
11337
11338 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11339
11340         * ThemeWin32Classic.cs: Do not show focus rectangle in radio buttons when
11341         text is empty.
11342
11343 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11344
11345         * ThemeWin32Classic.cs: Do not show focus rectangle in checkboxes when
11346         text is empty.
11347
11348 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11349
11350         * ComboBox.cs: On contructor use backgound_color instead of BackColor to
11351         prevent calling of OnBackColorChanged. Fixes #325321.
11352
11353 2007-10-03  Everaldo Canuto  <ecanuto@novell.com>
11354
11355         * TextBox.cs: When check enabled uses Enabled property instead of is_enabled
11356         because control can be disabled because owner is disabled.
11357
11358 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
11359
11360         * ComboBox.cs: For the 1.1 profile, the default SelectedText is
11361         string.Empty, test failed from previous change.
11362
11363 2007-10-02  Jonathan Pobst  <monkey@jpobst.com>
11364
11365         * TextBoxBase.cs: For the 1.1 profile, the default SelectedText
11366         is null, not String.Empty.  See bug #323038.
11367
11368 2007-10-01  Jonathan Pobst  <monkey@jpobst.com>
11369
11370         * TextControl.cs: Change the margins to match MS a little better.
11371         Still not perfect for X11 due to some DrawString differences, but
11372         is still an improvement over the old stuff.
11373         Partially fixes #324467.
11374
11375 2007-09-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11376
11377         * FolderBrowserDialog.cs: When using MyComputer as 
11378         RootFolder, let absolute paths be considered as valid ones. Also, use
11379         Path.DirectorySeparatorChar instead of Path.AltDirectorySeparatorChar,
11380         for Windows compatibility.
11381         Partially fixes #325247.
11382
11383 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11384
11385         * FolderBrowserDialog.cs: Fix the recursive FindPathInNodes method.
11386         Also remove the stack.Count > 0 check in FBTreeView.SetSelectedNode
11387         method, since it causes the dialog to not select folders directly
11388         under the root path (when setting SelectedPath property).
11389
11390 2007-09-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11391
11392         * TreeNode.cs: When calling Expand/Collapse and need to call 
11393         ExpandBelow/CollapseBelow respectively, take into account
11394         partially visible nodes (previously Expanding/Collapsing
11395         a partially visible node in the bottom was not updating its +- sign).
11396
11397 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11398
11399         * TreeView.cs: When calling Expand on a TreeNode, and we need to
11400         expand nodes below (ExpandBelow), scroll the entire Viewport
11401         area if the node is above it and not visible (instead of scrolling
11402         the area from node's Bottom, which applies only when the node is
11403         visible).
11404         Fixes #325266.
11405
11406 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11407
11408         * TreeView.cs: When calling ExpandAll, set SelectedNode to the top
11409         node in the bottom area (as .Net does). This is done to preserve the
11410         scroll position when ExpandAll is called before handle is created for
11411         the 1.1 profile (bottom area, as opposed to top area in 2.0).
11412         Fixes #324103.
11413
11414 2007-09-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11415
11416         * TreeView.cs: When calling ExpandAll, don't move the scroll to the 
11417         bottom area if we are in fact not using the vertical scroll bar.
11418         Fixes #324824.
11419
11420 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
11421
11422         * Control.cs: Comment out a double buffering optimization that doesn't
11423         take into account invalidates created in OnPaint, causing the control
11424         to never be redrawn.  It would take quite a bit of work to work around
11425         this, but I left it commented with an explanation for later possible
11426         optimization.
11427         [Fixes bug #328681]
11428
11429 2007-09-27  Jonathan Pobst  <monkey@jpobst.com>
11430
11431         * Control.cs: Ask parent to perform a layout if control is AutoSize and
11432         the text changes.
11433         * RadioButton.cs: Implement GetPreferredSizeCore.
11434         [Fixes bug #328672]
11435
11436 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
11437
11438         * RichTextBox.cs, TextBoxBase.cs, WindowsFormsSynchronizationContext.cs:
11439         corcompare stuffs.
11440
11441 2007-09-26  Jonathan Pobst  <monkey@jpobst.com>
11442
11443         * Application.cs: Move the sync context stuff to Run instead of RunLoop
11444         so that it doesn't get uninstalled on modal forms.
11445         * Control.cs: Install a sync context when a control is created.
11446         * WindowsFormsSyncronizationContext.cs: Create a private static control
11447         to invoke on.  This is easier than trying to find a created control we
11448         can use.
11449         [Fixes bug #327608]
11450
11451 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
11452
11453         * Application.cs: Install a WindowsFormsSynchronizationContext in the
11454         run loop, and uninstall it when done.
11455         * WindowsFormsSynchronizationContext.cs: Implement.
11456         [Fixes the common case in bug #327608]
11457
11458 2007-09-23  Gert Driesen  <drieseng@users.sourceforge.net>
11459
11460         * DataGridViewCellCollection.cs: Added argument checks for indexers.
11461         Use case-insensitive lookup of column name in indexer. Code
11462         formatting.
11463
11464 2007-09-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11465
11466         * TreeNode.cs: When collapsing or expanding a node, check whether its
11467         change will affect the visible area (we were previously doing a
11468         IsVisible check, but that check is not enough since children nodes
11469         could be still visible). Fixes part of #325266.
11470
11471 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
11472
11473         * TreeView.cs: Always select the first node when the TreeView gets
11474         focus if there is no currently selected node.
11475         [Fixes bug #324279]
11476
11477 2007-09-21  Jonathan Pobst  <monkey@jpobst.com>
11478
11479         * TreeView.cs: Do not raise BeforeSelect or AfterSelect when the
11480         node being selected is null.
11481         [Patch from Yves Bastide fixes bug #326858]
11482
11483 2007-09-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11484
11485         * TreeNode.cs: Add an internal ArePreviousNodesExpanded, to know
11486         whether all the parent nodes are expanded.
11487         * TreeNodeCollection.cs: When adding a new node an calling SetupNode,
11488         call RecalculateVisibleOrder if all previous nodes are expanded.
11489         Before that we were doing a IsVisible check, but sometimes the node
11490         is not in the visible area, but _should_already be ready, because of
11491         all previous nodes are expanded. Fixes #325259.
11492
11493 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11494
11495         * ToolStripSplitButton.cs: Call the ButtonClick event if the button
11496         portion of the item is clicked.
11497
11498 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11499
11500         * TextControl.cs: Do not tell the system to move the cursor if the
11501         textbox isn't focused.  Fixes part of bug #322668.
11502
11503 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11504
11505         * ComboBox.cs: When there are no items, do not show the dropdown if
11506         the down arrow is clicked.  Fixes part of bug #322668.
11507
11508 2007-09-20  Jonathan Pobst  <monkey@jpobst.com>
11509
11510         * ToolStripComboBox.cs: Manually set the size of this control in the
11511         constructor, as it doesn't seem to be the same as DefaultSize.
11512         Fixes a failing monobuild test.
11513
11514 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
11515
11516         * DateTimePicker.cs: If the user sets MinDate to DateTime.MinValue,
11517         change it to DateTimePicker.MinDateTime.  [Fixes bug #326609]
11518
11519 2007-09-19  Jonathan Pobst  <monkey@jpobst.com>
11520
11521         * Theme.cs: FileDialogs should be using DesktopDirectory instead of
11522         Desktop.  This lets it work for people who have moved their desktops
11523         from the default location on windows.  For people who have not, both
11524         values are the same, so it shouldn't hurt anything.  [Fixes bug #325270]
11525
11526 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11527
11528         * ToolStripControlHostTest.cs: DefaultSize is based off hosted control,
11529         but when the base constructor sets this, the control is null.  Set it
11530         again in the constructor.  Fixes a failing monobuild test.
11531
11532 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11533
11534         * ToolStripDropDownItem.cs: Make sure Click and DropDownOpened events
11535         get called.
11536         * ToolStripSplitButton.cs: Make sure MouseDown and MouseUp events get
11537         called.
11538
11539 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11540
11541         * ToolStrip.cs: Don't show tooltips for ToolStripTextBoxes, they
11542         will handle it themselves.
11543         * ToolStripItem.cs: When deciding what the text of a tooltip should
11544         be, use the Text property instead of the text field.
11545         * ToolStripTextBox.cs: Handle tooltips.
11546         [Fixes bugs #325417 and #325973]
11547
11548 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11549
11550         * ToolStripDropDownButton.cs: Only drop down overflow menu with a
11551         left click.  Fixes the easy part of bug #325969.
11552
11553 2007-09-18  Jonathan Pobst  <monkey@jpobst.com>
11554
11555         * ToolStrip.cs: Set AutoSizeMode back to GrowAndShrink to refix
11556         bug #325406, but set a minimum for StatusStrip to 22 to keep
11557         bug #325390 fixed.  I think this minimum would have been figured
11558         up automatically if the grip was actually a ToolStripItem, but it
11559         currently is not.
11560
11561 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11562
11563         * ListView.cs: max_label_wrapping is now 30 pixels instead of 38,
11564         as this is apparently the actual value used by .Net. Also apply
11565         ItemPadding in Details view only, and decrease the general width padding,
11566         to have only the needed. This should fix #324340 in Windows too.
11567
11568 2007-09-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11569
11570         * ListViewItem.cs: Don't Invalidate item if parent is inside
11571         a BeginUpdate/EndUpdate block. This prevents to have differences
11572         between the ListView and items state, as well as avoid some exceptions
11573         there.
11574         * ListView.cs: Make 'updating' field internal.
11575
11576 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11577
11578         * ToolStripControlHost.cs: Realign control when ControlAlign changes.
11579         * ToolStripItem.cs: Use ImageScalingSize when calculating preferred
11580         size if appropriate.
11581         Fixes reopened bug #325414.
11582
11583 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11584
11585         * ToolStrip.cs: Set AutoSizeMode back to GrowOnly.
11586         * ToolStripItem.cs: Invalidate before and after our new autosize when
11587         text changes.
11588         Fixes reopened bug #325390.
11589
11590 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11591
11592         * ToolStripMenuItem.cs: Make sure we invalidate when clicked so
11593         mnemonics can be drawn or undrawn correctly.  Fixes reopened bug 
11594         #325044.
11595
11596 2007-09-17  Jonathan Pobst  <monkey@jpobst.com>
11597
11598         * Control.cs: Do WM_CONTEXTMENU before OnMouseUp.  [Fixes bug #325535]
11599
11600 2007-09-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11601
11602         * ColumnHeader.cs: When drawing column text, use EllipsisCharacter
11603         instead of EllipsisWord (by equistango at gmail.com). Fixes part of
11604         #82734.
11605
11606 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
11607
11608         * ToolStrip.cs: Make ToolStrip selectable when TabStop = true.  Find an
11609         item to select when the ToolStrip is selected.
11610         * ToolStripControlHost: Realign the control when the bounds or visibility
11611         change.
11612         * ToolStripItem.cs: When selected, if it's a control host, focus the control.
11613         * ToolStripOverflow.cs: When laying out the drop down, respect the item's
11614         preferred height.
11615         * ToolStripTextBox.cs: OnPaintInternal should call base.OnPaintInternal, not
11616         base.OnPaint.  Was causing text not to be drawn.
11617
11618 2007-09-14  Jonathan Pobst  <monkey@jpobst.com>
11619
11620         * SplitterPanel.cs: Ignore attempts to set AutoSizeMode.
11621
11622 2007-09-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11623
11624         * TreeView.cs: When creating the label edit text box,
11625         set is initially to Visible = false. This is done to
11626         prevent a confusion in the layout which makes it to lose
11627         focus when shown the first time. Fixes part of #82592.
11628
11629 2007-09-13 Andreia Gaita <avidigal@novell.com>
11630
11631         * WebBrowserBase.cs: add FocusOption enumeration for finer focus control
11632
11633 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11634
11635         * ToolStrip.cs: Take Margin into account when calculating preferred
11636         size.  Also, allow preferred size to get smaller than the explicit
11637         size.
11638         * ToolStripTextBox.cs: Don't change the GetPreferredSize implementation.
11639         First step towards fixing bug #82747.
11640
11641 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11642
11643         * TreeView.cs: Applied patch from latency@gmx.de to not paint the
11644         full row select background over the plus/minus glyph.  Also, turn
11645         off the focus rectangle for full row select since MS doesn't seem
11646         to ever paint it.  [Fixes bug #81839]
11647
11648 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11649
11650         * ToolStrip.cs: Don't FocusInternal if there is no selected item.
11651         This was causing keyboard opened dropdowns to lose focus.
11652         [Fixes bug #82803]
11653
11654 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11655
11656         * Control.cs: If Rectangle.Empty is passed to Invalidate, use
11657         ClientRectangle instead.  [Fixes bug #82838]
11658
11659 2007-09-13  Jonathan Pobst  <monkey@jpobst.com>
11660
11661         * SplitContainer.cs: We can't reset Visible on every layout because
11662         someone may have set Visible = false explicitly on a SplitterPanel.
11663         Make sure when we switch orientation the SplitterDistance does not
11664         change.  Fixes two failing tests.
11665
11666 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11667
11668         * TreeView.cs: Use MeasureTextInternal instead of MeasureText in
11669         TextRenderer, since the latter is only available in 2.0.
11670
11671 2007-09-13  Ivan N. Zlatev <contact@i-nz.net>
11672
11673         * Cursor.cs: Fix Cursor.Current to apply Cursor.Default.
11674         * SplitContainer.cs: Implement FixedPanel layouting.
11675
11676 2007-09-12  Andreia Gaita  <avidigal@novell.com>
11677
11678         * WebBrowserBase.cs: setup shutdown routine
11679
11680 2007-09-12  Andreia Gaita  <avidigal@novell.com>
11681
11682         * Application.cs: Let keyboard events that are targetted 
11683                 to non-mwf windows hosted inside mwf (as in, webbrowser),
11684                 propagate properly. Fixes keyboard handling on the webbrowser.
11685
11686 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11687
11688         * ListView.cs: When handling MouseUp event and we are 
11689         highligting a node with the mouse right button, don't trigger
11690         Before/AfterSelecting event, since we are not actually selecting
11691         the node.
11692
11693 2007-09-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11694
11695         * TreeView.cs: When editing a node, modify the edit text box
11696         depending on the text length (as you are typing), like MS does.
11697
11698 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
11699
11700         * ToolStrip.cs: Fixup preferred size calculations for vertical toolbars. 
11701         Override GetPreferredSizeCore to perform calculations.  Remove custom
11702         autosize logic.  [Fixes bug #82739]
11703
11704 2007-09-12  Jonathan Pobst  <monkey@jpobst.com>
11705
11706         * TextBoxBase.cs: Modified should default to false.
11707
11708 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11709
11710         * Control.cs: Update the anchoring distances even when layout is supspended.
11711         Patch provided by George fixes bug #82805.
11712
11713 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11714
11715         * Control.cs: Provide a setter for ExplicitHeight.
11716         * TextBoxBase.cs: Now that we have the implementation for explicit heights,
11717         remove the hacks in here for requested_height.
11718         [Fixes bug #82749]
11719
11720 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11721
11722         * ScrollBar.cs: Fix an issue reported on the lists where setting a scrollbar's
11723         Maximum to lower that its current Value caused an ArgumentException by setting
11724         the Value to the new Maximum.
11725
11726 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11727
11728         * ThemeWin32Classic.cs: Math is hard!  Fix some math so that the TrackBar
11729         handle moves to the closest tick when it is being dragged.
11730         [Fixes bug #82751]
11731
11732 2007-09-11  Jonathan Pobst  <monkey@jpobst.com>
11733
11734         * ToolStripManager.cs: When we have added MDI buttons onto a MenuStrip, we
11735         can't let them count as real items when calculating where to merge in the
11736         user's items.  [Fixed bug #82786]
11737
11738 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11739
11740         * ToolStripMenuItem.cs: Add a parent type check so we don't crash on people
11741         who want to add a menu item directly onto a toolstrip.
11742         [Fixes bug #82775, part II]
11743
11744 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11745
11746         * StatusStrip.cs: Synchronize SetDisplayedItems with the ToolStrip version.
11747         * ToolStrip.cs: If a ToolStripItem set to not visible is added to a ToolStrip,
11748         don't set it to available.
11749         * ToolStripItem.cs: When Visible is changed, tell the owner to perform a layout.
11750         [Fixes bug #82727, part II]
11751
11752 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11753
11754         * StatusStrip.cs: Change item placement to None if not visible.
11755         * ToolStripItem.cs: Invalidate when InternalVisible changes.
11756         These should have been committed to fix 82723, but I missed them.
11757
11758 2007-09-10  Jonathan Pobst  <monkey@jpobst.com>
11759
11760         * ToolStrip.cs: Make sure ItemClicked is raised before the ToolStripItem's
11761         Click, and that it is only called once.
11762         * ToolStripMenuItem.cs: Call OnClick even when there are dropdown items.
11763         * ToolStripDropDownItem.cs: Override HandleItemClick so dropdowns stay
11764         dropped down.
11765         [Fixes bug #82775]
11766
11767 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11768
11769         * ColumnHeaderSample.cs: Use 5 pixels as extra height instead of 8
11770         to match .Net.
11771         * ThemeWin32Classic.cs: For the columns text, use 5 pixels as left padding
11772         instead of 8, just like above. Partially fixes #82734.
11773
11774 2007-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11775
11776         Patch by Ernesto Carrea <equistango at gmail.com>. Partially 
11777         fixes #82734.
11778
11779         * ListView.cs: Remove extra space between rows in Details view (match
11780         .Net). 
11781         * ThemeWin32Classic.cs: Header text should use ListView.Font, not
11782         the DefaultFont.
11783
11784 2007-09-08  Gert Driesen  <drieseng@users.sourceforge.net>
11785
11786         * Application.cs: Modified ProductVersion to return value of
11787         AssemblyInformationVersion if available, and fallback to assembly
11788         version. Fixes bug #82746. Code formatting.
11789         * BindingSource.cs: Remove NIE from Dispose, and mark it MonoTODO
11790         instead.
11791
11792 2007-09-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11793
11794         * Control.cs: When updating ZOrder for a child control,
11795         take into account the implicit ones (we need it in our controls
11796         using them). Fixes #82642.
11797
11798 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
11799
11800         * ToolStripItem.cs: Add support for animated images.
11801         [Fixes bug #82726]
11802
11803 2007-09-07  Jonathan Pobst  <monkey@jpobst.com>
11804
11805         * ToolStrip.cs: Make sure we aren't drawing anything that isn't 
11806         visible.  [Fixes bug #82727]
11807
11808 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11809
11810         * ToolStripItem.cs: If AutoSize changes the size of our item, invalidate
11811         so we repaint using the new size.  [Fixes bug #82723]
11812
11813 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11814
11815         * TreeView.cs: If ShowLines is true, we should ignore the FullRowSelect
11816         option.  [Fixes bug #81779]
11817
11818 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11819
11820         * TreeView.cs: Override HandleClick because the StandardClick style is
11821         set to false.  According to MSDN (and testing), the click events should
11822         only be raised when the click occurs on a TreeNode.  [Fixes bug #81739]
11823
11824 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11825
11826         * ToolStripTextBox.cs: Invalidate our textbox when it loses focus, so
11827         the border will disappear.  Fixes reopened #82653.
11828
11829 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11830
11831         * Control.cs: If the control is autosize, and its preferred size changes
11832         when it lays out its children, tell its parent so it can be re-layed out.
11833         Fixing some of the fallout from r85433.
11834
11835 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11836
11837         * ThemeWin32Classic.cs: Fix a NRE caused by r85427 because RadioButton
11838         and CheckBox share some code.
11839
11840 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11841
11842         * TrackBar.cs: Only call OnScroll if we actually changed the Value of
11843         the TrackBar, not every mouse move.  [Fixed bug #82718]
11844
11845 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11846
11847         * ThemeWin32Classic.cs: Allow a CheckBox to be rendered like a Button
11848         under 2.0 rendering.  [Fixes bug #82657]
11849
11850 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11851
11852         * TreeView.cs: If we found a TreeNode to display a context menu, but
11853         it doesn't have one to show, let the TreeView display its menu
11854         instead.  [Fixes bug #82680]
11855
11856 2007-09-06  Jonathan Pobst  <monkey@jpobst.com>
11857
11858         * ToolStripTextBox.cs: TextBox no longer call OnPaint, we need to use
11859         OnPaintInternal instead.  Give the internal TextBox a Border property
11860         so it can draw itself more correctly.  [Fixes bug #82653]
11861
11862 2007-09-06  Zoltan Varga  <vargaz@gmail.com>
11863
11864         * HtmlHistory.cs HtmlWindow.cs HtmlWindowCollection.cs ListBindingHelper.cs WindowsFormsSection.cs WindowsFormsSynchronizationContext.cs: Stubs for missing 2.0 classes.
11865
11866 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11867
11868         * ComboBox.cs: Adjust combobox button state to reflect current state when
11869         back to enabled = true. Fixes first issue of #82654.
11870
11871 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11872
11873         * Control.cs: Fix last patch regression, prevent forms to update zorder when
11874         setting visible property.
11875
11876 2007-09-05  Everaldo Canuto  <everaldo@simios.org>
11877
11878         * Control.cs: Update zorder after control creation in SetVisibleCore, it 
11879         fix zorder for controls initially created as non visible. Fixes #82667.
11880
11881 2007-09-04  Everaldo Canuto  <everaldo@simios.org>
11882
11883         * ThemeWin32Classic.cs: Adjust checkbox light color to ControlLightLight to
11884         mimic win32 look. Fixes #82656.
11885
11886 2007-09-01  Zoltan Varga  <vargaz@gmail.com>
11887
11888         * FileDialogCustomPlace.cs FileDialogCustomPlacesCollection.cs: 
11889         Stubs for new net 3.5 classes.
11890
11891 2007-08-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11892
11893         * ListViewItem.cs: In ListViewItemCollection operations calculate
11894         Layout for owner as well as invalidate it. Fixes part of #82642.
11895
11896 2007-08-31  Jonathan Pobst  <monkey@jpobst.com>
11897
11898         * ToolStripItem.cs: Take Parent/Owner's Enabled state in to account
11899         when returning Enabled.  [Fixes bug #82651]
11900
11901 2007-08-30  Everaldo Canuto  <everaldo@simios.org>
11902
11903         * ToolBar.cs: Fix button size for non flat toolbars. Fixes #82368.
11904
11905 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11906
11907         * ListView.cs: Put item padding info in a single place
11908         (Theme.ListViewItemPaddingWidth) to have working AutoResize on
11909         columns again.
11910         * ThemeWin32Classic.cs:
11911         * Theme.cs: Likewise.
11912
11913 2007-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11914
11915         * ListView.cs: When a ListViewSubItem instance is invalidated,
11916         invoke Invalidate on parent ListViewItem, not parent ListView.
11917         Fixes #81570.
11918
11919 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11920
11921         * ListView.cs, ListViewItem.cs: corcompare stuffs.
11922
11923 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11924
11925         * BindingMemberInfo.cs: Implement == and != operators.
11926
11927 2007-08-30  Jonathan Pobst  <monkey@jpobst.com>
11928
11929         * HtmlElementEventArgs.cs: Implement properties.
11930
11931 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11932
11933         * HtmlElementErrorEventArgs.cs, HtmlElementErrorEventHandler.cs: Added.
11934
11935 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11936
11937         * TabControl.cs: I was looking into the MonoTODO on TabPageCollection.
11938         Add (string,string,string) to implement the imagekey.  It turns out, we
11939         use the requested imagekey whereas .Net does not.  So I broke ours to match
11940         theirs.  :(
11941
11942 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11943
11944         * Form.cs, UserControl.cs: Override ValidateChildren, AutoValidate.
11945
11946 2007-08-29  Jonathan Pobst  <monkey@jpobst.com>
11947
11948         * ContainerControl.cs: Implement ValidateChildren and new Validate overload.
11949
11950 2007-08-29  Gert Driesen  <drieseng@users.sourceforge.net>
11951
11952         * FolderBrowserDialog.cs: Set Tag of newly created node, and keep it
11953         up-to-date. Fixes bug #82618.
11954
11955 2007-08-29  Everaldo Canuto  <everaldo@simios.org>
11956
11957         * TextBoxBase.cs: Call CalculateDocument after changes Lines property to
11958         reflect document changes. Fixes #82367.
11959
11960 2007-08-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11961
11962         * ListView.cs: Add/fix some override differences between 1.1 and 2.0,
11963         as well as add new ones. This should make work the BackgroundImage
11964         property for ListView again.
11965
11966 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11967
11968         * DataGrid.cs, DataGridViewButtonColumn.cs, DataGridViewCheckBoxColumn.cs,
11969         DataGridViewComboBoxColumn.cs, DataGridViewImageColumn.cs, DataGridViewLinkColumn.cs,
11970         DataGridViewTextBoxColumn.cs, ToolTip.cs: corcompare stuffs.
11971
11972 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11973
11974         * Control.cs, XPlatUI.cs, XPlatUIDriver.cs, XPlatUIWin32.cs: Implement
11975         IsKeyLocked.
11976
11977 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11978
11979         * Cursor.cs: Add HotSpot, hook into XPlatUI.GetCursorInfo.
11980         * XPlatUIWin32.cs: Implement hotspot lookup in GetCursorInfo.
11981
11982 2007-08-28  Jonathan Pobst  <monkey@jpobst.com>
11983
11984         * RadioButton.cs: Use 2.0 rendering.  Use base implementation of TextAlign.
11985         * Theme.cs, ThemeWin32Classic.cs: Implement 2.0 rendering for RadioButton.
11986
11987 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
11988
11989         * CursorConverter.cs: Implement conversion to InstanceDescriptor.
11990
11991 2007-08-27  Ivan N. Zlatev  <contact@i-nz.net>
11992
11993         * GridEntry.cs: Implement GetService.
11994
11995 2007-08-27  Jonathan Pobst  <monkey@jpobst.com>
11996
11997         * LabelEditTextBox.cs, TreeView.cs: After hiding the textbox used
11998         for label editting, make sure we focus back on the TreeView.
11999         [Fixes bug #82590]
12000
12001 2007-08-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12002
12003         * ListView.cs: Add some 2.0 overrides.
12004
12005 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
12006
12007         * Form.cs: Uses opacity var instead of Opacity property in CreateHandle
12008         because getter dont returns right value before handle creation. Thanks 
12009         to George. Fixes #82569.  
12010
12011 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
12012
12013         * Theme.cs: Revert last patch, it causes error under win32. 
12014
12015 2007-08-27  Everaldo Canuto  <ecanuto@novell.com>
12016
12017         * Theme.cs: Uses Environment.SpecialFolder.DesktopDirectory instead of 
12018         Environment.SpecialFolder.Desktop in Places method, Desktop returns the 
12019         logical Desktop rather than the physical file system location. Fixes #82603. 
12020
12021 2007-08-26  Everaldo Canuto  <ecanuto@novell.com>
12022
12023         * MessageBox.cs: Add clipboard copy (ctrl+c) to messagebox. Thanks Andy Hume
12024         for the patch. Fixes #82568.
12025
12026 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12027
12028         * ListView.cs: Add a pair of missing 2.0 ListViewItemCollection.Insert
12029         methods.
12030
12031 2007-08-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12032
12033         * ListViewInsertionMark.cs: New stubbed class.
12034
12035 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
12036
12037         * FolderBrowserDialog.cs: When adding folder, immediately create the
12038         directory with temporary name and rename the directory when editing
12039         finishes. This matches MS. Ensure the node for the new folder is 
12040         selected and LabelEdit is disabled, when editing is either finished
12041         or cancelled.
12042
12043 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
12044
12045         * TreeView.cs: When editing label of node, ensure node is visible.
12046
12047 2007-08-25  Ivan N. Zlatev  <contact@i-nz.net>
12048
12049         * PropertyGridView.cs: Set the value only if it has changed.
12050
12051 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12052
12053         * ListView.cs: Some more code refactoring to add support sorting
12054         with groups (now for Details view). Remove unused code also.
12055
12056 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
12057
12058         * NodeLabelEditEventArgs.cs: EndEdit immediately when CancelEdit is called.
12059         Not a big fan of reacting immediately to a field in an EventArg, but that's
12060         the way it's done.  (This is part of the previous commit that got left out.)
12061
12062 2007-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
12063
12064         * FolderBrowserDialog.cs: Removed need for separate description field.
12065         Replaced "" with string.Empty. Fixed tabindex. Ensure OK button
12066         has focus when dialog box is displayed again, regardless of what
12067         button was pressed the previous time. Set RootFolder and SelectedPath
12068         each time dialog box is displayed. This ensures the treeview is
12069         refreshed, and fixes bug #82579. Do no hide selected node in TreeView
12070         when it does not have focus. Added support for more special folders.
12071
12072 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
12073
12074         * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in EndEdit
12075         before calling AfterLabelEdit.  If the user calls BeginEdit in that event,
12076         it resets the edit_args.
12077         * TreeNode.cs: Call CancelEdit if the user passes cancel = true to EndEdit.
12078         [Fixes bug #82577]
12079
12080 2007-08-24  Gert Driesen  <drieseng@users.sourceforge.net>
12081
12082         * FolderBrowserDialog.cs: Modifies form caption and text of new folder
12083         button to match MS. Provide more meaningful exception message for
12084         invalid RootFolder value. Use zero-length string when SelectedPath
12085         is set to null. Allow non-rooted paths in SelectedPath, but ignore
12086         them in FolderBrowserTreeView. Allow folders to be created in
12087         RootFolder. Fixes bug #82576.
12088
12089 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12090
12091         * ListView.cs: Correctly compute the layout_ht (height) when using groups,
12092         since we need to take into account the group headers and the margin
12093         between them.
12094         * ListViewGroup.cs: Add a rows field to store the number of rows per
12095         group.
12096
12097 2007-08-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12098
12099         * DateTimePicker.cs: The MS' MTB has a really stupid year formatting.
12100           Anyways, let's just follow the lead.
12101
12102 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
12103
12104         * CheckBox.cs: Set the AutoSizeMode to GrowAndShrink.
12105         * Form.cs, GroupBox.cs: Don't skip Right or Bottom anchored 
12106         controls in GetPreferredSizeCore.
12107         * ThemeWin32Classic.cs: Tweak text drawing of CheckBoxes.
12108         [Fixes bug #82488]
12109
12110 2007-08-24  Jonathan Pobst  <monkey@jpobst.com>
12111
12112         * PrintDialog.cs: Need to instantiate the form variable here too.
12113
12114 2007-08-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12115
12116         * ListView.cs: Do some reorganization to support sorting in groups,
12117         by doing the layout sequentially in ListView.Items. Also add support
12118         for the Default Group, which should be available for items with no
12119         group assigned.
12120         * ListViewGroup.cs: Add support for DefaultGroup. Include new members
12121         for storing layout info also.
12122         * ListViewGroupCollection.cs: Add a DefaultGroup as part of the
12123         collection, as well as providing internal members to do a traversal
12124         including the default group (needed when doing layout/drawing).
12125         * ThemeWin32Classic.cs: When drawing group headers use internal
12126         ListViewGroupCollection members to take into account the default
12127         group.
12128
12129 2007-08-23  George Giolfan  <georgegiolfan@yahoo.com>
12130
12131         * FlowLayoutPanel.cs: Add GetPreferredSizeCore.  [Fixes bug #82537]
12132
12133 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
12134
12135         * TreeView.cs: IsInputKey: don't ask for any keys if the handle hasn't
12136         been created.  If handle is created, we want arror keys.  If we are editing
12137         a node, we want things like enter, esc, home, end, page up, page down.
12138         Allows Esc to work for FolderBrowserDialog.
12139
12140 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
12141
12142         * ColorDialog.cs, FontDialog.cs: Set the form's CancelButton so that
12143         they close when ESC is pressed.  Thanks Andy!
12144
12145 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
12146
12147         * CommonDialog.cs: Do not instantiate form, leave that for derived classes.
12148         This way we can tell if this is a CommonDialog provided with mono, or one
12149         that is being implemented outside by a developer.  If it is an external one,
12150         the developer is responsible for showing their own form.  We were showing
12151         our blank form after the developer showed his.
12152         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs, FontDialog.cs,
12153         PageSetupDialog.cs: Instantiate form variable in our constructor.
12154         [Fixes bug #82531]
12155
12156 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
12157
12158         * ListBox.cs, ListView.cs, TreeView.cs: Override IsInputCharInternal
12159         and always return true.  [Fixes bug #81616]
12160
12161 2007-08-23  Jonathan Pobst  <monkey@jpobst.com>
12162
12163         * TextBoxBase.cs: Allow 2.0 AutoSize to change the height of the
12164         TextBox.  [Fixes bug #82549]
12165
12166 2007-08-23  Gert Driesen  <drieseng@users.sourceforge.net>
12167
12168         * FileDialog.cs: When Save/Open is clicked and no filename is selected
12169         or entered then do not close the dialog. Fixes bug #82539. Removed
12170         CWLs.
12171
12172 2007-08-22  Everaldo Canuto  <ecanuto@novell.com>
12173
12174         * FileDialog.cs: Create UpdateRecentFiles and move the recent files refresh
12175         code to this method. It is calling every time filter changes. This method
12176         will help to fix the bug #80887.
12177
12178 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
12179
12180         * CheckBox.cs: Implement AutoSize calculation.
12181
12182 2007-08-22  Jonathan Pobst  <monkey@jpobst.com>
12183
12184         * CheckBox.cs: Use new 2.0 rendering for 2.0.
12185         * Theme.cs: Method declarations for 2.0 rendering path.
12186         * ThemeWin32Classic.cs: 2.0 rendering implementation for CheckBox.
12187
12188 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12189
12190         * ListViewGroupCollection.cs: Fix a typo of the previous patch.
12191
12192 2007-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12193
12194         * ListViewGroupCollection.cs: Implement AddRange the right way, to
12195         only call Redraw on the parent one time.
12196
12197 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12198
12199         * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: Implemented
12200           GetClipboardContent.
12201         * DataGridViewCell.cs: Implemented GetClipboardContent,
12202           GetEditedFormattedValue, GetFormattedValue.
12203         * DataGridView.cs: Implemented GetClipboardContent, TopLeftHeaderCell.
12204
12205 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
12206
12207         * TableLayoutStyleCollection.cs: corcompare fix.
12208
12209 2007-08-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12210
12211         * DataObject.cs: Implemented retrieval of convertible / not convertible
12212           objects.
12213
12214 2007-08-21  Jonathan Pobst  <monkey@jpobst.com>
12215
12216         * ToolStripItem.cs: When changing the item's text, invalidate before we resize
12217         ourselves.  This ensures the entire old bounds are repainted, in case our new
12218         size is smaller.  [Fixes bug #82518]
12219
12220 2007-08-20  Everaldo Canuto  <ecanuto@novell.com>
12221
12222         * XplatUIX11.cs: Apply patch from #81588, it makes use of PointerMotionHintMask
12223         flag to make fast handle of mouse events, without this the mouse move is
12224         handled in some manner, whether it is a mouse move or not. Fixes #81588.
12225
12226 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12227
12228         * ListView.cs: When doing layout calculations don't use a ref
12229         param to keep the current item; instead use its Index value (this 
12230         is specially important when doing the layout with Groups
12231         and Items being sparse). Also don't take into account items added to
12232         the Group but not yet added to the main ListView.Items collection.
12233
12234 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12235
12236         * ListViewGroupCollection.cs: Forgot to mimic an issue
12237         in the indexer (don't assign the ListView owner for new values).
12238
12239 2007-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12240
12241         * ListViewGroupCollection.cs: Make the string indexer use
12242         the int based indexer to re-use code, instead of duplicate the code.
12243         Also Redraw as needed and take into account null values.
12244
12245 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
12246
12247         * StatusStrip.cs: Make sure the item's parent gets set in SetDisplayedItems.
12248         [Fixes bug #82481]
12249
12250 2007-08-20  Jonathan Pobst  <monkey@jpobst.com>
12251
12252         * ToolStrip.cs: Add some logic to un-focus controls in ToolStripControlHosts
12253         when other buttons are clicked or navigated to.
12254
12255 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12256
12257         * XplatUIX11.cs: Treat toolwindows as if they had no window manager, since
12258           it's XplatUIX11 that attaches them.
12259
12260 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12261
12262         * DataGridView.cs: If a column has been added, recreate the editing row.
12263           Fixes #82226.
12264
12265 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12266
12267         * TextControl.cs: Use Math.Max instead of Math.Min when deciding the length
12268           of the tag to draw. Makes disappearing text show up again.
12269
12270 2007-08-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12271
12272         * StatusBar.cs: Take into account any icons when a panel has AutoSize =
12273           Contents. Fixes #82487.
12274
12275 2007-08-19  Andreia Gaita  <avidigal@novell.com>
12276
12277         * Added HtmlElement.cs, HtmlElementCollection.cs, 
12278           HtmlElementEventArgs.cs, HtmlElementEventHandler.cs
12279           
12280 2007-08-19  Andreia Gaita  <avidigal@novell.com>
12281
12282         * BindingSource.cs: Implement this, dispose and getenumerator.
12283         * DataGridViewRowCollection.cs: Move the InvalidOperationException
12284         out of AddInternal, throw it only on public Add calls. The 
12285         UsingWebBrowser sample was blowing up with this when setting the
12286         DataSource after adding DataBindings, so it's likely that .net
12287         only throws this exception when Add is called directly. 
12288         
12289         * ToolStripControlHost.cs: Return the hosted control's text
12290         property, and not the ToolStripItem one (it would always return
12291         the initial value).
12292         
12293         * HtmlDocument.cs: Implement GetElementById and All
12294         * WebBrowser.cs: Remove exception on set_DocumentStream.        
12295
12296 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12297
12298         * Form.cs: Fix the max and min value for opacity (0~1).
12299
12300 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12301
12302         [Fixes #80118]
12303         * DataGridTableStyle.cs: Default header font is now null, on getter it 
12304         returns datagrid font when is null. On setter permits null.
12305
12306         * DataGrid.cs:
12307         - When ResetHeaderFont set header font to null.
12308         - On EndInit set grid_style.DataGrid.
12309
12310 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12311
12312         * TabControl.cs: Fix regression in default padding x.
12313
12314 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12315
12316         * TabControl.cs: Fix tab page text area removing padding. Fixes #82471.
12317
12318 2007-08-19  Everaldo Canuto  <ecanuto@novell.com>
12319
12320         * TabControl.cs: Fix first tab drawing, when selected it must have x = 0
12321         not 2. Fixes #82229.
12322
12323 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12324
12325         * TabControl.cs: Fix tab size when image height is less than text height.
12326         Partially fixes #81837.
12327
12328 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12329
12330         * Form.cs: Add WS_EX_CONTROLPARENT to forms to make it selectable using 
12331         "alt + tab". It works only for Win32, for X11 theres no way to remove window
12332         from taskbar and keep it on "alt_tab". Fixes #81722.
12333
12334 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12335
12336         * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
12337         and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
12338         Fixes #80877 and #79418.
12339
12340 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12341
12342         * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
12343         between position and one of the screen borders. Fixes #82349.
12344
12345 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12346
12347         * MessageBox.cs: When there is no form that invoked the MessageBox, shows
12348         the MessageBox in the taskbar. Fixes #82457.
12349
12350 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
12351
12352         * MessageBox.cs: Fix form size when icon is set and text height is bigger
12353         than icon. Fixes #82468.
12354
12355 2007-08-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12356
12357         * ThemeWin32Classic.cs: A FixedToolWindow has border size 3.
12358         * InternalWindowManager.cs: Change HandleCalcSize to return a boolean value
12359           if handled or not. Implement WM_NCCALCSIZE for WParam == 0 as well.
12360           Refactored HandleNCCalcSize somewhat to avoid code duplication.
12361         * Form.cs: Add is_clientsize_set, set in set_ClientSize, used by
12362           FormBorderStyle to decide if we're calculating a new size from the
12363           client size or not. CreateParams: Don't fake tool windows, only the X11
12364           backend manages toolwindows manually.
12365
12366 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12367
12368         * Form.cs: Only reset is_visible if !IsDisposed to prevent an
12369         ObjectDisposedException.
12370
12371 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12372
12373         * Form.cs: Reset is_visible back to true after OnLoad.  Setting this
12374         in OnLoad should not have any effect.  [Fixes bug #82470]
12375
12376 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12377
12378         * ToolTip.cs: Add a hack to ToolTipWindow so it will still size and
12379         paint for controls that create their own ToolTipWindow instead of
12380         going through ToolTip.
12381
12382 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12383
12384         * ToolTip.cs: Make Hide internal instead of public to match MS API.
12385
12386 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12387
12388         * ListViewGroupCollection.cs: Use generic List instead of an
12389         ArrayList, since this collection is 2.0 only.
12390
12391 2007-08-17  Jeffrey Stedfast  <fejj@novell.com>
12392
12393         * ToolTip.cs (Hide): Made public to make the build work (should
12394         this not be public?).
12395
12396 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12397
12398         * ToolBar.cs, ToolStrip.cs, TreeView.cs: Use a ToolTip instead of a
12399         ToolTipWindow.
12400         * ToolTip.cs: Add an internal Visible property to facilitate transition.
12401
12402 2007-08-17  Jonathan Pobst  <monkey@jpobst.com>
12403
12404         * DrawToolTipEventArgs.cs, DrawToolTipEventHandler.cs, PopupEventArgs.cs,
12405         PopupEventHandler.cs: Make these internal for 1.1.
12406         * ThemeClearlooks.cs, ThemeWin32Classic.cs: Use TextRenderer, and modify to not
12407         use ToolTipWindow internals.
12408         * ToolTip.cs: Add 2.0 modal Show methods.  Had to move a lot of stuff around to
12409         support this.  A lot of stuff in the ToolTipWindow got moved to the ToolTip.
12410
12411 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12412
12413         * X11Dnd.cs: Add a null check.
12414
12415 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12416
12417         * X11Dnd.cs: MwfWindow: Try to load the control directly from the handle if
12418           nothing else succeeds. Fixes #82453.
12419
12420 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12421
12422         * XplatUIWin32.cs: PaintEventStart: validate the entire source client
12423           rectangle if we're painting to another window than the one the paint
12424           message was generated on. Simplify the code somewhat, which makes
12425           PaintEventEnd also simpler.
12426
12427 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12428
12429         * Control.cs: When changing parent of a form, let the form decide whether
12430           XplatUI.SetParent should be called or not.
12431         * Form.cs: ChangingParent: only call XplatUI.SetParent if we're not
12432           recreating the handle. If the new parent's handle isn't created, don't
12433           recreate our handle, just destroy it. CreateParams: Check if the
12434           parent's handle is created before fetching it.
12435
12436 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12437
12438         * Control.cs, Form.cs, InternalWindowManager.cs, MainMenu.cs, MdiClient.cs:
12439           Update calls to PaintEventStart/End to take a Message argument.
12440         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Update PaintEventStart/End to
12441           take a Message argument.
12442         * XplatUIWin32.cs, XplatUIX11.cs: Update PaintEventStart/End to take a
12443           Message argument, and handle the case where we don't paint to the window
12444           for which the paint message was generated.
12445
12446 2007-08-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12447
12448         * XplatUIWin32.cs: Don't call Win32GetLastError directly, use
12449           Marshal.GetLastWin32Error. Plug nasty memory leak in
12450           PaintEventStart/End, we were creating a DC we weren't releasing.
12451
12452 2007-08-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12453
12454         * ListView.cs: Add Groups support in Details view. Also have a small
12455         method to do the layout of the group header. Don't use a separate
12456         method to do the groups calculation in Icons view, since our methods
12457         are now a little simpler.
12458         * ListViewGroup.cs: Use the more accurate `HeaderBounds' name than
12459         `Bounds'.
12460         * ThemeWin32Classic.cs: Likewise.
12461
12462 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
12463
12464         * Application.cs: Add FilterMessage method and rework our message loop
12465         logic to use it.
12466
12467 2007-08-16  Jonathan Pobst  <monkey@jpobst.com>
12468
12469         * Application.cs: Add some methods and stub a few methods that are
12470         pretty much never used.
12471
12472 2007-08-15  Jonathan Pobst  <monkey@jpobst.com>
12473
12474         * TreeNode.cs: Add some serialization methods.
12475
12476 2007-08-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12477
12478         * ListView.cs: In ListViewItemCollection have a 
12479         'is_main_collection' field to not modify ListViewItem.ListView
12480         when using it as ListViewGroup.Items (and not ListView.Items)
12481         and also don't modify selection state (.Net behaviour). 
12482         Instead, set group for items contained in a ListViewGroup.Items collection.
12483         * ListViewItem.cs: Simplify some code in Group setter.
12484         * ListViewGroup.cs: use the new .ctor to pass the current instance
12485         to the ItemsCollection.
12486         * ListViewGroup.cs: Set the ListView property for ListViewGroup
12487         instances when adding/removing. Also make Remove use RemoveAt, which
12488         should perform better.
12489
12490 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12491
12492         * Message.cs, TabControl.cs, TextBox.cs, TextBoxBase.cs: Hide some 2.0 API
12493         that crept into the 1.1 profile.
12494
12495 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12496
12497         * ToolBarButton.cs: Implement ImageKey.
12498
12499 2007-08-14  Jonathan Pobst  <monkey@jpobst.com>
12500
12501         * ToolBar.cs: Implement ScaleControl/ScaleCore.
12502
12503 2007-08-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12504
12505         * PictureBox.cs: OnAnimateImage/UpdateAnimateImage: Check if handle is still
12506           created, it might have gotten destroyed since we last checked. Fixes
12507           #82405.
12508
12509 2007-08-11  Jonathan Pobst  <monkey@jpobst.com>
12510
12511         * ToolTip.cs: Remove mouse in control check from mouseleave handler so
12512         tooltip will hide when mouse is moved off the control.
12513         [Fixes bug #82407]
12514
12515 2007-08-11 Andreia Gaita <avidigal@novell.com>
12516
12517         * WebBrowserBase.cs, WebBrowser.cs: add implementation
12518         using Mono.Mozilla for loading and navigating webcontrol
12519         with xulrunner.
12520         The initial implementation was done on 
12521         /trunk/mozembed/tests/browser , and copied here.
12522
12523 2007-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
12524
12525         * ThemeWin32Classic.cs: On 2.0 profile, use ForeColor and BackColor of
12526         ToolTipWindow for drawing the tooltip. Fixes bug #82408.
12527
12528 2007-08-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12529
12530         * DataGridView.cs: Add support for an editing row. Fixes #82226.
12531           RowTemplateFull: throw an exception if a column doesn't have a template.
12532         * DataGridViewRowCollection.cs: AddInternal: if there are any editing rows,
12533           add the row just before it.
12534         * DataGridViewTextBoxCell.cs: Don't paint cells which are in edit mode as
12535           selected.
12536         * DataGridViewSelectedRowCollection.cs: Don't return the editing row. Add a
12537           DataGridView field to be able to reach the grid's editing row.
12538
12539 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12540
12541         * ToolTip.cs: If the control's handle hasn't been created when it has a
12542         tooltip set on it, don't check to see if we need to show the tooltip.  This
12543         check was causing the control's handle to be created.
12544         [Fixes bug #82399]
12545
12546 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12547
12548         * TextBoxBase.cs: Fix SelectionLength when no text selected to match MS:
12549                                         1.1             2.0
12550         Handle Not Created      -1              0
12551         Handle Created          0               0
12552         [Fixes bug #82371]
12553
12554 2007-08-10  Jonathan Pobst  <monkey@jpobst.com>
12555
12556         * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior.
12557         [Fixes bug #82348]
12558
12559 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
12560
12561         * DrawToolTipEventArgs.cs: Don't dispose a brush we got from the respool.
12562         * ToolTip.cs: Implement some properties and owner draw.
12563
12564 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12565
12566         * DataGridView.cs: OnPaint: don't set scrollbar visibility to false then
12567           show them again, since setting visibility causes a paint, causing an
12568           endless loop (instead use a temporary and set it all when it's known if
12569           they should be shown or not). Fixes #79265.
12570
12571 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12572
12573         * DataGridView.cs: Only do a full column/row selection if a header was
12574           clicked and we're in Column/RowHeader selection mode. If shift and ctrl
12575           isn't pressed, deselect everything before selecting something.
12576
12577 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12578
12579         * DataGridView.cs: Fix SelectedRows and SelectedColumns to match MS
12580           behaviour according to bug #81075 - they are returned in the order they
12581           are selected. Fix HitTest to check if the point is within any of the
12582           headers. Allow for row/column selection when in ColumnHeader or
12583           RowHeader selection mode. Add SetSelected[Column|Row]CoreInternal for
12584           the row and column to call when their selected state changes, and
12585           updated selected_[rows|columns] whenever SetSelected* is called.
12586         * DataGridViewBand.cs: Initialize isRow correctly. Call
12587           SetSelected[Row|Column]CoreInternal when the selected state changes, and
12588           add a SelectedInternal to avoid StackOverflows.
12589         * DataGridViewColumn.cs, DataGridViewRow.cs: If DGV is ReadOnly, we're also
12590           ReadOnly no matter what.
12591         * DataGridViewSelectedColumnCollection.cs,
12592           DataGridViewSelectedRowCollection.cs: Add an InternalAddRange that adds
12593           the items in reverse order (just as MS does...)
12594
12595 2007-08-09  Jonathan Pobst  <monkey@jpobst.com>
12596
12597         * Application.cs: Only release menustrips if Alt (MenuKey) is pressed by
12598         itself, not part of a mnemonic.  [Fixes bug #82378]
12599
12600 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12601
12602         * DataGridView.cs: BeginEdit: don't allow editing of readonly cells.
12603         * DataGridViewCell.cs: Implement ReadOnly better: the cell is ReadOnly if
12604           the DGV, the column, the row, or the cell itself is readonly.
12605
12606 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
12607
12608         * ThemeNice.cs: Use XplatUI.RunningOnUnix instead of checking
12609         OSVersion.Platform.
12610         * FileDialog.cs: Same.
12611         * TextRendered.cs: Same.
12612         * FolderBrowserDialog.cs: Same.
12613         * TextBoxBase.cs: Same.
12614         * Application.cs: Same.
12615         * Cursors.cs: Same.
12616         * ThemeClearLooks.cs: Same.
12617
12618 2007-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
12619
12620         * XplatUI.cs: Added RunningOnUnix property to be used by controls
12621         instead of duplicating these checks everywhere.
12622         * FileDialog.cs: Use case-insensitive comparison for populating the
12623         DirComboBox when not running on unix. Fixes bug #82385.
12624         * OpenFileDialog.cs: to match MS, change label of DirComboBox to 
12625         "Look in".
12626
12627 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12628
12629         * DataGridView.cs: SelectedRows: we need to check if selectionMode is
12630           FullRowSelect (not FullColumnSelect). Fixes #81075. Implemented
12631           BeginEdit, EndEdit, SetSelected<Cell|Row|Column>Core. Implemented row,
12632           cell and column selection with ctrl and shift pressed. Call the correct
12633           BeginEdit/EndEdit whenever we start/end editing. Move painting code to
12634           the corresponding virtual method (PaintBackground to paint background,
12635           etc).
12636         * DataGridViewCell.cs: Implement Selected correctly, we're selected if
12637           either the column, row or the cell itself is selected.
12638         * DataGridViewRowCollection.cs: Use DGV.OnRowsAddedInternal instead of
12639           OnRowsAdded.
12640         * DataGridViewRow.cs: Moved some of the painting code from DataGridView
12641           here. When the row is selected, don't select all cells. Each cell now
12642           queries the row to see if the row is selected.
12643
12644 2007-08-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12645
12646         * DataGridViewColumn.cs: Throw if the SortMode conflicts with DataGridView's
12647           SelectionMode.
12648
12649 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12650
12651         * ListView.cs: In ListViewItemsCollection check that owner is
12652         not null before trying to access it (this happens quite often
12653         using Groups). Also don't duplicate calls by calling CollectionChanged
12654         method.
12655
12656 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12657
12658         * ToolStrip.cs: Record if we were activated by mouse or keyboard.  Redraw
12659         when we are dismissed to clear keyboard mnemonics.
12660         * MenuStrip.cs, ToolStripDropDown.cs, ToolStripItem.cs, 
12661         ToolStripMenuItem.cs: Record if we were activated by mouse or keyboard.
12662         * ToolStripItemTextRenderEventArgs.cs: Draw mnemonic underlines if menu
12663         was activated by keyboard or the OS tells us to always draw them.
12664         * ToolStripManager.cs: Setup storage for activated by mouse or keyboard.
12665         [Fixes bugs #82376, #82377]
12666
12667 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12668
12669         * Control.cs: If no one accepts a mnemonic, let the MenuStrip have a 
12670         shot at having it because Alt was pressed.
12671         * MenuStrip.cs: When handling Alt, don't select a SystemMenuItem, select
12672         the first real menu item.
12673         * ToolStrip.cs: Don't crash when looking for a ToolStripItem to handle
12674         a mnemonic if Text is null.
12675         [Fixes bug #82374]
12676
12677 2007-08-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12678
12679         * ListView.cs: In ListViewItemCollection.AddItem, don't do a linear
12680         search do check whether the item is already contained in the
12681         collection or not; instead check if the owner of the item is the same
12682         as ours. Also, remove a redundant check in the same method. 
12683
12684 2007-08-08  Jonathan Pobst  <monkey@jpobst.com>
12685
12686         * Control.cs: Allow the clip region to be set back to null.
12687         * XplatUIWin32.cs: If we are sent a null clip region, use IntPtr.Zero.
12688         [Fixes button still showing up in bug #82370 when Show Through is turned off]
12689
12690 2007-08-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12691
12692         * GridEntry.cs: Add a null check.
12693         * PropertyGrid.cs: When checking for existing grid entries, ignore category
12694           entries. Fixes #82297.
12695
12696 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
12697
12698         * OwnerDrawPropertyBag.cs: Make the serialization constructor protected
12699         for 2.0.
12700
12701 2007-08-07  Jonathan Pobst  <monkey@jpobst.com>
12702
12703         * ListBox.cs: Implement ScaleControl.
12704
12705 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12706
12707         * Form.cs: Add a few ActiveMenu null checks. ActiveMenu might be null if we
12708           have a menu strip.
12709         * MdiWindowManager.cs: Don't create a maximized menu if the child or it's
12710           parent has a menu strip. Fixes #81689.
12711
12712 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12713
12714         * ToolTip.cs: We don't get mouse events on all platforms in the exact same
12715           moments, so apply some fuzzy logic to determine if the mouse is still
12716           inside a control or not. Fixes #82288 (for the third time).
12717
12718 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12719
12720         * Control.cs: CreateControl: create implicit children as well. Fixes #82344.
12721           Don't create the child if it has been disposed already (may happen if
12722           the user closes the form the Load event).
12723
12724 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12725
12726         * ToolTip.cs: If ReshowDelay is 0, show the tooltip immediately. Fixes
12727           #82288.
12728
12729 2007-08-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12730
12731         * Control.cs: Add a null check in OnParentBindingContextChanged. The parent
12732           might call us after we've been destroyed, in which case our own private
12733           parent field is null. Fixes #82326.
12734
12735 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
12736
12737         * ToolStripDropDown.cs: Fix a failing test on X11 by adding a null
12738         check for setting the dropdown's owner.
12739
12740 2007-08-06  Jonathan Pobst  <monkey@jpobst.com>
12741
12742         * MdiClient.cs: Fix some failing tests on X11 by adding a null check
12743         before removing system menu items.
12744
12745 2007-08-02  Jonathan Pobst  <monkey@jpobst.com>
12746
12747         * MdiClient.cs, MdiWindowManager.cs: Support 2.0 Mdi MenuStrip
12748         folding.
12749         * MdiControlStrip.cs: Added.  These are the menu items used in mdi
12750         folding.
12751         * ToolStrip.cs: Add a null check to mnemonics.
12752         * ToolStripDropDownMenu.cs: When using a SystemMenuItem, there is
12753         no ConnectedArea.
12754         [Fixes most of bug #81689]
12755
12756 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12757
12758         * PropertyGrid.cs: Add a null-check. Fixes #82289/SVGPad.
12759
12760 2007-08-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12761
12762         Use InitialDelay if ReshowDelay is zero. Fixes #82288.
12763
12764 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12765
12766         * DataGridViewCell.cs: EditType: returns
12767           DataGridViewTextBoxEditingControl always.
12768
12769 2007-08-01  Jonathan Pobst  <monkey@jpobst.com>
12770
12771         * TextRenderer.cs: Remove the LineLimit string format flag from the
12772         DrawString fallback method so that things like buttons that aren't
12773         tall enough to draw a full line will still draw part of the text.
12774         [Fixes part of bug #82272]
12775
12776 2007-08-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12777
12778         * DataGridView.cs: Implemented AutoResizeColumn(s).
12779         * DataGridViewCellStyle.cs: Added SetAlignment, fills in a StringFormat
12780           according to the Alignment.
12781         * DataGridViewColumnHeaderCell.cs, DataGridViewTextBoxCell.cs:
12782           Implement alignment and padding when painting.
12783         * DataGridViewRow.cs: SetValues: Don't create a cell if it already
12784           exists.
12785         * DataGridViewCell.cs: Implement BorderWidths in the most primitive
12786           way.
12787         * DataGridViewColumnCollection.cs: Raise OnColumnAdded on the DGV when
12788           a column is added.
12789
12790 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12791
12792         * TextBoxBase.cs: Use Control.ExplicitBounds instead of explicit_bounds,
12793         which is internal.
12794
12795 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12796
12797         * ToolStrip.cs: Stub out drag and drop methods, fix some corcompare stuff,
12798         hide GetPreferredSize from public API.
12799         * ToolStripDropDown.cs: Override AllowItemReorder, fix AccessibleObject.
12800         * ToolStripItem.cs: Stub out drag and drop methods and events.
12801         * ToolStripManager.cs: Stub out Save/LoadSettings.
12802         * ToolStripOverflow.cs: Use renamed ToolStrip.GetPreferredSize.
12803         * ToolStripPanel.cs: Fix corcompare error.
12804         * ToolStripPanelRow.cs: Use renamed ToolStrip.GetPreferredSize.
12805         * ToolStripSplitButton.cs: Fix AccessibleObject stuff.
12806         * ToolStripSplitStackLayout.cs: Use renamed ToolStrip.GetPreferredSize.
12807
12808 2007-07-31  Jonathan Pobst  <monkey@jpobst.com>
12809
12810         * TextBoxBase.cs: In our new GetPreferredSizeCore, return the explicit
12811         bounds height instead of PreferredHeight.  Puts things back the way 
12812         they were for height while still fixing the width.  Fixes broken unit
12813         tests.
12814
12815 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12816
12817         * Binding.cs: Implement 2.0 constructors and add a null check.
12818
12819 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12820
12821         * DataGridViewRowCollection.cs: Allow a null DGV in the constructor,
12822           and fix row index (off by one).
12823
12824 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12825
12826         * PropertyGridView.cs: Remove debug output.
12827
12828 2007-07-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12829
12830         * Control.cs: We need to reset the is_created flags when the handle is
12831           destroyed. Fixes #82187.
12832         * XplatUIWin32.cs: In GetWindowRect don't offset screen coordinates to
12833           client coordinates if the window doesn't have a parent.
12834           Win32GetParent returns the parent or the owner, and for top-level
12835           windows with no parent (but with an owner) we were calculating the
12836           location from the location of the owner.
12837         * Form.cs: Remove incorrect fix for #82187. Don't raise OnLoad if the
12838           form has been disposed.
12839         * MdiClient.cs: Add a null-check.
12840
12841 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
12842
12843         * TextBoxBase.cs: TextBoxBase reports itself at AutoSize, but doesn't
12844         actually do auto-sizing.  Override the internal GetPreferredSizeCore 
12845         so we can provide an implementation that returns the current width
12846         and preferred height.  Allows anchor = right to work with TextBox 2.0.
12847         [Fixes bug #82233]
12848
12849 2007-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12850
12851         * ListView.cs: Add support for navigating items in Groups mode, by
12852         creating a big matrix containing all rows and cols of all groups. When
12853         are in other mode than Details, pressing Up should have a similar
12854         behaviour as that one of Down (moving to the next available column if
12855         current one doesn't have an item in the requested row). Also, don't
12856         proceed to use groups if ShowGroups is false.
12857         * ListViewGroup.cs: Add an internal int field to store the starting
12858         row of the group (used by the big matrix used for navigating the
12859         ListView).
12860         * ThemeWin32Classic.cs: Don't draw headers if ListView.ShowGroups is
12861         false.
12862
12863 2007-07-30  Jonathan Pobst  <monkey@jpobst.com>
12864
12865         * ToolStripDropDown.cs: When we do Show, start with the 
12866         DefaultDropDownDirection, but if our popup menu is going to off-screen,
12867         modify the direction to keep it on screen.  [Fixes bug #82210]
12868
12869 2007-07-29  Gert Driesen  <drieseng@users.sourceforge.net>
12870
12871         * FileDialog.cs: Accept any FilterIndex value, and store it
12872         unmodified. When FilterIndex is less than 1, or greater than number
12873         of filters, then default to first filter. Only add filter extension to
12874         file if user did not specifiy an extension. When type of dialog is
12875         OpenFileDialog and DefaultExt is set, then only use filter extension
12876         if: CheckFileExists is true and no file wih the default extension
12877         exists, or CheckFileExists is false, and user specified file does not
12878         exist. When CheckFileExists is true, then add first extension of 
12879         selected filter that matches existing file. Perform checks for
12880         existing file, overwrite and create after extension has been added to
12881         file name. When CheckFileExists is true and type is SaveFileDialog,
12882         then only consider first filter extension if DefaultExt is set.
12883         When CheckFileExists is true, then ignore DefaultExt if file with that
12884         extension does not exist. Also perform check for existing file when
12885         type is SaveFileDialog. Changed some field to constants.
12886
12887 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12888
12889         * ListView.cs: Take into account the region used by header
12890         control when doing the vertical scroll (this way we invalidate
12891         the precise area, and don't get any dirty one).
12892
12893 2007-07-27  Everaldo Canuto  <ecanuto@novell.com>
12894
12895         * FileDialog.cs: Check for valid filterIndex on button open/save. 
12896         Fixes #82184.
12897
12898 2007-07-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12899
12900         * ListView.cs: Update some layout calculations in details view
12901         and clean the code in a pair of assignations.
12902
12903 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12904
12905         * ComboBox.cs, ContainerControl.cs, DataGrid.cs, FontDialog.cs, Label.cs,
12906         LinkLabel.cs, ListBox.cs, ListView.cs, ListViewItem.cs, MessageBox.cs,
12907         MonthCalender.cs, StatusBar.cs, ThemeClearlooks.cs, ThemeWin32Class.cs,
12908         ToolBar.cs, TreeView.cs: First pass at using thread-safe string measuring.
12909
12910 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12911
12912         * TextRenderer.cs: Use [ThreadStatic] instead of locks to improve
12913         performance of thread-safe Graphic methods.  (Thanks rolf!)
12914
12915 2007-07-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12916
12917         * ListView.cs: When doing the layout calculations, don't calculate
12918         scroll bars before handle is created. This is unnecessary and also
12919         calculating them before handle creation item causes a number of random
12920         bugs (which begin to appear after Chris' big patch for handle creation
12921         fixes). 
12922
12923 2007-07-26  Jonathan Pobst  <monkey@jpobst.com>
12924
12925         * TextRenderer.cs: Create thread-safe versions of Graphics.MeasureString
12926         for things that don't have a Graphics object.  Currently, things just use
12927         the static Hwnd.bmp_g which is not thread safe.
12928
12929 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12930
12931         * Form.cs: ShowDialog: don't destroy handles if the dialog is a common
12932           dialog. Fixes #82187.
12933
12934 2007-07-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12935
12936         * DataGridViewElement.cs: Initialize state.
12937         * DataGridView.cs: Forward a few Mouse events to cells. Add
12938           GetRowInternal and GetCellInternal that doesn't unshare rows.
12939           Implement GetCellDisplayRectangle. HitTest: if the row is shared,
12940           don't use the index, but look it up. Add
12941           DataGridViewControlCollection.RemoveInternal to remove controls
12942           that Remove won't remove (scrollbars, edit control).
12943         * DataGridViewColumn.cs: Initialize State correctly.
12944         * DataGridViewColumnHeaderCell.cs, DataGridViewComboBoxCell.cs,
12945           DataGridViewHeaderCell.cs, DataGridViewRowHeaderCell.cs: Started
12946           implementing this.
12947         * DataGridViewRowCollection.cs: Implemented shared rows.
12948         * DataGridViewRow.cs: Throw exceptions as MS do.
12949         * DataGridViewCell.cs: A few properties are implemented by a
12950           Get<Property> method, so move implementation there and remove the
12951           NIEX in the method. Add a bunch of OnXInternal that DataGridView
12952           calls when necessary.
12953         * DataGridViewComboBoxEditingControl.cs: Remove a few NIEX'es that just
12954           complicates matters.
12955         * DataGridViewCellCollection.cs: Add a GetCellInternal that doesn't
12956           unshare any rows.
12957
12958 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12959
12960         * UpDownBase.cs: We cannot override SetBoundsCore for 2.0, which was relayout-ing
12961         the children controls.  Instead, we will just set up the proper docking for the
12962         children controls so we don't have to worry about it.  [Fixes bug #82188]
12963
12964 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12965
12966         * TreeView.cs, NodeLabelEditEventArgs.cs, LabelEditTextBox.cs: Support edit
12967         canceling and correct Before/AfterLabelEdit properties as layed out in bug
12968         81847.  [Fixes bug #81847]
12969
12970 2007-07-25  Jonathan Pobst  <monkey@jpobst.com>
12971
12972         * Label.cs: If AutoSize = true and a width or height is set, ignore it and
12973         redo the autosize.  VS2005 defaults to setting the AutoSize, and then setting
12974         an explicit size based on the design-time size of the text.  Since our fonts
12975         may not match this explicit size, we tend to cut off the ends of people's labels.
12976
12977 2007-07-24  Jonathan Pobst  <monkey@jpobst.com>
12978
12979         * Menu.cs: Add some missing methods to MenuItemCollection.
12980
12981 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12982
12983         * DataGridView.cs: Added RowTemplateFull, creates a row from the templates in the columns.
12984         * DataGridViewBand.cs: DefaultHeaderCellType: initialize correctly. Resizable: if not set, check DGV.
12985         * DataGridViewColumn.cs: InheritedAutoSizeMode: if not set, check DGV. Resizable: delegate to base class. ToolTipText: Never return null. Initialize a few other properties correctly.
12986         * DataGridViewColumnCollection.cs: Add: Default column is a TextBoxColumn.
12987         * DataGridViewComboBoxCell.cs: Started implementing this, lots left still.
12988         * DataGridViewElement.cs: State defaults to Visible.
12989         * DataGridViewRowCollection.cs: Add: creates the new row based on a template.
12990         * DataGridViewTextBoxColumn.cs: SortMode: delegate to base class, but initialize to Automatic. ToString: implement correctly.
12991
12992 2007-07-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
12993
12994         * Control.cs: Minor 1.1 corcompare fix.
12995
12996 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
12997
12998         * LinkLabel.cs, PrintPreviewDialog.cs, TabPage.cs, TextBox.cs,
12999         TextBoxBase.cs, ToolBar.cs: 2.0 corcompare work.
13000
13001 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13002
13003         * DataGridViewLinkColumn.cs, DataGridViewRowCollection.cs,
13004           DataGridViewImageColumn.cs, DataGridViewSelectedCellCollection.cs,
13005           DataGridViewComboBoxCell.cs, DataGridViewLinkCell.cs,
13006           DataGridViewSelectedColumnCollection.cs,
13007           DataGridViewSelectedRowCollection.cs: Corcompare work.
13008
13009 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
13010
13011         * PrintDialog.cs: Stub UseEXDialog.  I chose to stub this because
13012         it is autoset by VS2005 designer and the effect is barely noticeable.
13013
13014 2007-07-23  Jonathan Pobst  <monkey@jpobst.com>
13015
13016         * TreeView.cs: Implement HitTest.
13017
13018 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13019
13020         * DataGridViewTextBoxCell.cs: Use DGV.EditControlInternal instead of
13021           manually adding and removing the control from the Controls
13022           collecftion.
13023         * DataGridView.cs: Implement DataGridViewControlCollection. Add an
13024           EditingControlInternal property that tracks the editing control.
13025           Always keeping the scrollbars in the Controls collection, as MS
13026           testing confirms is the right behaviour.
13027
13028 2007-07-23  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13029
13030         * ScrollableControl.cs: Fix implementation of AutoScrollPosition
13031           according to MSDN and new test.
13032
13033 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
13034
13035         * TreeNode.cs: Implement ToolTipText.
13036         * TreeView.cs: Implement tooltips, NodeMouse* events.
13037
13038 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
13039
13040         * TreeView.cs: Implement OnNodeMouseClick and OnNodeMouseDoubleClick.
13041
13042 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
13043
13044         * TreeNode.cs: Implement ContextMenu, ContextMenuStrip, and Level.
13045         * TreeView.cs: Use the node's contextmenu[strip] if applicable.
13046
13047 2007-07-20  Ivan N. Zlatev  <contact@i-nz.net>
13048
13049         * Control.cs, Form.cs, ContainerControl.cs,
13050         ScrollableControl.cs, ButtonBase.cs:  Added ShouldSerialize
13051         for misc properties.
13052
13053 2007-07-20  Jonathan Pobst  <monkey@jpobst.com>
13054
13055         * TreeNode.cs: Implement StateImageIndex and StateImageKey.
13056         * TreeView.cs: Implement StateImageList.
13057
13058 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13059
13060         * Form.cs: Don't check if the current form is the active form before
13061           activating it. Fixes #81904.
13062
13063 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13064
13065         * Form.cs: Don't check if the current form is the active form before
13066           activating it. Fixes #81904.
13067
13068 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13069
13070         * TreeView.cs: Apply patch from Tyron (tmm@aon.at). Fixes #81847.
13071
13072 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13073
13074         * Form.cs: Don't try to position the form after loading if the form was
13075           disposed. Fixes #81969.
13076
13077 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13078
13079         * PropertyGrid.cs, PropertyGridView.cs: Implemented 2.0 methods and
13080           properties. Had to change ToolBar into ToolStrip, which required a
13081           few #ifs.
13082
13083 2007-07-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13084
13085         * PropertyGrid.cs: PropertyToolBar: Redraw the entire toolbar when it's
13086           resized, fixes part of #79829 (vertical lines in toolbar).
13087           PropertyGrid: Refactored Populate* to something that's easier to
13088           follow at least for me, as well as splitting it up into several new
13089           methods, required to update only subitems when something has
13090           changed by a popup editor or listbox. Don't use events to check
13091           when any values are changed, since the events are unreliable (we're
13092           changing the objects the events are registered with, and if the
13093           event handling requires the objects to be immutable (objects stored
13094           in hashtables for instance), the events will never be raised).
13095         * PropertyGridView.cs: Call PropertyGrid.PropertyValueChangedInternal
13096           everytime we change a value, since events are unreliable.
13097           DropDownButtonClicked: For the same reason don't compare objects to
13098           check if it has changed or not, it would require all objects to
13099           derive Equals. Fix dialog location on windows, MS is doing weird
13100           things when creating parented forms.
13101         * GridEntry.cs: Add a SelectedObject setter.
13102
13103 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
13104
13105         * TreeNode.cs: Add some corcompare attributes.
13106         * TreeNodeCollection.cs: Implement 2.0 stuffs.
13107         * TreeView.cs: Implement some 2.0 stuffs.
13108
13109 2007-07-18  Andreia Gaita  <avidigal@novell.com>
13110
13111         * WebBrowser.cs, WebBrowserBase.cs: add some more MonoTODOs now
13112         for moma.
13113
13114 2007-07-19  Jonathan Pobst  <monkey@jpobst.com>
13115
13116         * ListBox.cs: Implement custom tab offsets.
13117
13118 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13119
13120         * ToolStripContentPanel.cs: Support System renderer.
13121         * ToolStripControlHost.cs: Set RightToLeft to default to No.
13122
13123 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13124
13125         * ScrollableControl.cs: Don't mess up the user's explicit bounds.
13126
13127 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13128
13129         * CheckBox.cs: Chain TextAlign to base implementation instead of
13130         maintaining another one.
13131
13132 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13133
13134         * ButtonBase.cs: Fix an incorrect string constant.
13135
13136 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13137
13138         * TextRenderer.cs: Use the static Graphics context in Hwnd instead
13139         of creating one for measuring strings.
13140
13141 2007-07-18  Jonathan Pobst  <monkey@jpobst.com>
13142
13143         * ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownMenu.cs: 
13144         Implement MaxItemSize.
13145
13146 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
13147
13148         * Control.cs: Remove per-control 1x1 Bitmap and Graphics context used
13149         for DeviceContext.  Instead, use the static one available in Hwnd.
13150         Informal tests show this saves about 500k on formtest.exe.
13151
13152 2007-07-17  Jonathan Pobst  <monkey@jpobst.com>
13153
13154         * ContainerControl.cs: Implement 2.0 AutoScaling.
13155
13156 2007-07-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13157
13158         * ComboBox.cs: Work around bug #82120 (bug in mcs).
13159
13160 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
13161
13162         * ThemeWin32Classic.cs: Allow a Flat button to be Focused and Entered.
13163         Darken the focus color.
13164
13165 2007-07-16  Jonathan Pobst  <monkey@jpobst.com>
13166
13167         * ListBox.cs: When measuring items, if it's a CheckedListBox, add room
13168         for the checkbox.
13169         * ThemeWin32Classic.cs: Make the checkbox bigger in a CheckedListBox and use
13170         X, Y instead of a rect for drawing text.
13171         - For ControlPaint.DrawCheckBox, center the check a little better when the
13172         checkbox is odd width.  When drawing a flat checkbox, use a white background
13173         when state != inactive.
13174         [Fixes bugs #82097, 82100]
13175
13176 2007-07-16  Gert Driesen  <drieseng@users.sourceforge.net>
13177
13178         * ListControl.cs: When changing CurrencyManager, disconnect event
13179         handlers from previous one. Fixes bug #81771. Code formatting.
13180
13181 2007-07-15  Andreia Gaita <avidigal@novell.com>
13182
13183         * PrintPreviewControl.cs: Remove extraneous Invalidate calls. Separate
13184         full preview invalidation from layout invalidation, and only invalidate
13185         the layout when setting zoom or other properties. Invalidation should
13186         always be done even when resetting properties with the same values as
13187         what is there. Fixes #81744 and #79830.
13188
13189 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13190
13191         * ListView.cs: Implement initial support for Groups. Split some of the
13192         LayoutIcons code to render a partial list of the items (needed by
13193         items contained in ListViewGroup instances). Let the
13194         ListViewItemsCollection.ListView property be modifiable (needed when
13195         using Groups, too).
13196         * ListViewGroup.cs: Use a Bounds property rather than a Location
13197         one. Also invalidate the bounds when they get changed.
13198         * ThemeWin32Classic.cs: When drawing items, also draw the group header
13199         if ListView.Groups.Count is bigger than 0. Add a DrawListViewGroupHeader
13200         method as well.
13201
13202 2007-07-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13203
13204         * ListView.cs: When space gets pressed and CheckBoxes is true, 
13205         don't invoke the Begin and EndUpdate methods. We are generating 
13206         a redraw of the entire control without need to do so.
13207
13208 2007-07-13  William Holmes <billholmes54@gmail.com> 
13209
13210         * Control.cs: Changing logic in FindFlatForward and 
13211           FindFlatBackward to handle multiple Controls with 
13212           the same TabIndex.  
13213           This fixes bug 81687.
13214
13215 2007-07-13  Jonathan Pobst  <monkey@jpobst.com>
13216
13217         * OSFeature.cs: Enable IsPresent.
13218
13219 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13220
13221         * Control.cs: Don't do anything in WmShowWindow if the control has been
13222           disposed. We can get WM_SHOWWINDOW after a control is disposed: a
13223           control is created, put on a form, the control is disposed (the
13224           form is never shown), and then we get a MapNotify, triggering a
13225           WM_SHOWWINDOW.
13226         * Form.cs: Exclude the current form when sending Deactivate to all
13227           MdiChildren.
13228         * NativeWindow.cs: Set WindowCreating to null as soon as possible,
13229           there was a race condition because assigning the handle raises
13230           events, we can get more messages, therefore trying to assign the
13231           handle again, which would fail if any of those event handlers
13232           closed/disposed the control.
13233
13234 2007-07-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13235
13236         * Form.cs: Make the fix for #80775 windows-only (fixes #81957).
13237
13238 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
13239
13240         * SystemInformation.cs, Theme.cs, XplatUI.cs, XplatUIDriver.cs,
13241         XplatUIWin32.cs: Implement SystemInformation 2.0 properties.
13242
13243 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13244
13245         * DateTimePicker.cs: If there's no part format specifier, return an
13246           empty string.
13247
13248 2007-07-12  Jonathan Pobst  <monkey@jpobst.com>
13249
13250         * FlatButtonAppearance.cs: Throw NotSupportedException for a
13251         Transparent BorderColor.
13252
13253 2007-07-12  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13254
13255         * DataGridView.cs, TextControl.cs, ProgressBar.cs, PrintDialog.cs,
13256           MessageBox.cs, ButtonBase.cs, PageSetupDialog.cs, NumericUpDown.cs,
13257           X11Dnd.cs, Binding.cs, DataGrid.cs, AxHost.cs,
13258           LinkLabelLinkClickedEventArgs.cs, TextRenderer.cs, Label.cs,
13259           LinkLabel.cs, TreeNode.cs, BindingSource.cs, TabPage.cs,
13260           TextBoxBase.cs, BindingNavigator.cs, Application.cs,
13261           ToolStripPanel.cs, TabControl.cs, ThemeClearlooks.cs, TreeView.cs:
13262           Remove warnings.
13263         * X11Structs.cs: Remove warnings, add ToString implementations.
13264
13265 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13266
13267         * XplatUIX11.cs: Translate min/max size according to the actual min/max
13268           size, and not the current size. Fixes #81798.
13269
13270 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13271
13272         * XplatUIX11.cs: Fix #80822 again (DefWndProc can be reached before
13273           XplatUI.CreateWindow returns, in which case the hwnd isn't assigned
13274           to the control yet).
13275
13276 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13277
13278         * PropertyGridTextBox.cs: Add a method that sends any forwarded
13279           mousedowns to the contained textbox.
13280         * X11Structs.cs: More ToString implementation.
13281         * PropertyGridView.cs: Forward any mousedowns to the textbox, fixes
13282           #81791.
13283
13284 2007-07-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13285
13286         * PropertyGridView.cs: Add a null-check, fixes a few tests.
13287
13288 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
13289
13290         * TableLayoutPanelCellPosition.cs: TypeConverter.
13291
13292 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13293
13294         [ Fixes #79761]
13295         
13296         * PropertyGridTextBox.cs: Propagate any color changes to all contained
13297           controls.
13298         * PropertyGridView.cs: A few color fixes.
13299
13300 2007-07-10  Jackson Harper  <jackson@ximian.com>
13301
13302         * TextControl.cs: Remove some old unused text formatting stuff.
13303
13304 2007-07-10  Jackson Harper  <jackson@ximian.com>
13305
13306         * TreeView.cs: Update full row select invalidation to match the
13307         newer DrawSelection... method.
13308         - Make sure to invalidate the entire width when selecting a new
13309         node, if we have full row selection enabled.
13310
13311 2007-07-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13312
13313         * PropertyGridView.cs: Fix for #81800, makes text show up on initial
13314           display of properties again.
13315
13316 2007-07-10  Jonathan Pobst  <monkey@jpobst.com>
13317
13318         * ListBox.cs: Add IntegerCollection and Add, Clear, Remove
13319         to existing collections.
13320
13321 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13322
13323         * AccessibleObject.cs, RadioButton.cs: Fix some base classes
13324         that changed between 1.1 and 2.0.
13325
13326 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13327
13328         * PowerStatus.cs: Added.  This is just a data class, it is filled
13329         in by SystemInformation.
13330
13331 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13332
13333         * Message.cs: Add op_Equality and op_Inequality.
13334
13335 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13336
13337         * MenuStrip.cs: Finish corcompare work.
13338
13339 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13340
13341         * LinkArea.cs: Add op_Equality and op_Inequality.
13342
13343 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13344
13345         * Application.cs: Add MessageLoopCallback delegate.
13346
13347 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13348
13349         * ListBox.cs: First set of 2.0 stuffs.
13350
13351 2007-07-09  Jonathan Pobst  <monkey@jpobst.com>
13352
13353         * Control.cs: Make an internal Height property we can override
13354         without messing up the public API.
13355         * ListBox.cs: Override HeightInternal to always return the size
13356         the user set.  [Fixes bug #80466]
13357
13358 2007-07-08  Jonathan Pobst  <monkey@jpobst.com>
13359
13360         * TableLayoutPanel.cs: Add a null check so we don't NRE trying to
13361         paint cell borders if we haven't calculated where they go yet.
13362         [Fixes bugs #82040 and #82041]
13363
13364 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13365
13366         * ListView.cs: In Details view, set the location of item_control
13367         in the (0,0) position (and the header_control is thus on the
13368         item_control). This way the Bounds of the Items are relative to the
13369         ListView control (before this, they had a Bounds value without the
13370         header_control offset, which wasn't matching .Net). Fixes #82004.
13371
13372 2007-07-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13373
13374         * ListControl.cs: When DataSource is set to null, pass an empty
13375         array of object to SetItemsCore. This is done to clean the items
13376         in the ListContol children. Fixes #81788.
13377
13378 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13379
13380         * ListControl.cs: Add 2.0 stuffs.
13381
13382 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13383
13384         * Label.cs: Finish up 2.0 stuffs.  Replace calls to Refresh with Invalidate,
13385         Refresh is overkill for just about every repaint request.
13386
13387 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13388
13389         * ToolStripItem.cs: TextDirection getter handles looking up Inherit for us,
13390         so remove my custom Get method and fix the property getter.
13391
13392 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13393
13394         * Label.cs: DefaultMargin for 2.0.
13395
13396 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13397
13398         * ComboBox.cs: Override IsInputCharInternal and return true.  Fixes 
13399         reported issue where other controls with mnemonics would steal strokes
13400         from a selected ComboBox.
13401
13402 2007-07-06  Jonathan Pobst  <monkey@jpobst.com>
13403
13404         * ScrollOrientation.cs: Make internal for 1.1.
13405         * ScrollEventArgs.cs: Add 2.0 stuffs.
13406
13407 2007-07-05  Jonathan Pobst  <monkey@jpobst.com>
13408
13409         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
13410         ToolStripItem.cs, ToolStripItem.cs, ToolStripItemTextRenderEventArgs.cs,
13411         ToolStripRenderer.cs, ToolStripSeparator.cs: Implement TextDirection.
13412
13413 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13414
13415         * ListViewItem.cs: Implement the small 2.0 GetSubItemAt method.
13416
13417 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13418
13419         * ListView.cs: Implement the so-incredibly broken 2.0 
13420         VirtualItemsSelectionRangeChanged event.
13421
13422 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13423
13424         * ListView.cs: When enter is pressed and selection is non empty,
13425         an OnItemActivate event must be fired.
13426
13427 2007-07-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13428
13429         * ListView.cs: Store the FocusedItem information as an
13430         int instead of a ListViewItem (needed by VirtualMode).
13431         Update the calls to SetFocusedItem to pass an index instead of
13432         an item.
13433         * ListViewItem.cs: Likewise. Also, in VirtualMode retrieve
13434         the Focused state from the owner ListView. 
13435
13436 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13437
13438         * ListView.cs: Set ListView.focused_item from ListViewItem.Focused
13439         property. Also, invalidate previous focused item in the mentioned
13440         property (match .Net).
13441
13442 2007-07-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13443
13444         * ListView.cs: Implement 2.0 FocusedItem property setter.
13445
13446 2007-07-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13447
13448         * ListView.cs: Implement 2.0 TopItem property setter.
13449
13450 2007-07-03  Jonathan Pobst  <monkey@jpobst.com>
13451
13452         * StatusStrip.cs: The default renderer is System.
13453         * ToolStrip.cs, ToolStripManager: Now that we have System renderer, use it 
13454         if the user specifies it.
13455         * ToolStripDropDown.cs: Don't reset our Renderer on changing OwnerItem
13456         if we are ManagerRenderMode.
13457         * ToolStripMenuItem.cs: Calculate our text color better.
13458         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Move some stuff
13459         from Professional to the base class based off working with the System renderer.
13460         * ToolStripSystemRenderer.cs: Added.
13461
13462 2007-07-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13463
13464         * ListView.cs: I'm so lame - the real name is HitTest, not HitInfo.
13465
13466 2007-07-02  Jonathan Pobst  <monkey@jpobst.com>
13467
13468         * ToolTip.cs: Implement 2.0 Tag property.
13469
13470 2007-06-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13471
13472         * ListView.cs: Implement 2.0 HitTest methods.
13473
13474 2007-06-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13475
13476         * ListViewItem.cs: Add a 2.0 bool Hot property, to tell whether the
13477         item is under the pointer or not (sugar). Also remove the TODO
13478         regarding to the cursor changes in OneClick activation.
13479         * ThemeWin32Classic.cs: When HotTracking is true and we are drawing
13480         the subitems use the parent's HotFont if UseItemStyleForSubItems is
13481         true; otherwise don't show the underline style.
13482
13483 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13484
13485         * ListView.cs: In ItemControl.ItemsMouseMove, refactor
13486         the code to retrieve the item at position only one time. Also
13487         change cursor when Activation is ItemActivation.OneClick as well
13488         as invalidate the item if HotTracking is true (to show/hide the
13489         underline style). Add an internal HotItemIndex property to retrieve
13490         the current hot item's index.
13491         * ListViewItem.cs: Add an internal HotFont property to cache the
13492         font used when HotTracking is true and the pointer moves within the
13493         item's borders.
13494         * ThemeWin32Classic.cs: When drawing the item's text, use Font or
13495         HotFont depending on the hot state of the item.
13496
13497 2007-06-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13498
13499         * ListView.cs: Implement 2.0 HotTracking property.
13500
13501 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13502
13503         * ToolStripControlHost.cs: If our hosted control never got created,
13504         don't try to dispose it.  [Fixes bug #81909]
13505
13506 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13507
13508         * TableLayoutPanel.cs: Implement ScaleCore, ScaleControl.
13509
13510 2007-06-21  Jonathan Pobst  <monkey@jpobst.com>
13511
13512         * TableLayoutPanel.cs: Implement CellBorderStyle.  [Fixes bug #81884]
13513
13514 2007-06-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13515
13516         * ThemeWin32Classic.cs: In OwnerDraw mode draw subitems only for 
13517         Details view.
13518         * DrawListViewColumnHeaderEventArgs.cs:
13519         * DrawListViewSubItemEventArgs.cs: Add padding to the bounds when drawing text
13520         using the DrawText () methods.
13521
13522 2007-06-19  Jonathan Pobst  <monkey@jpobst.com>
13523
13524         * ToolStripProfessionalRenderer.cs: Put back clearing a ToolStripDropDown's
13525         background which got erased in my changes yesterday.
13526
13527 2007-06-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13528
13529         * ListViewItem.cs: Actually set bounds for subitems in Details view
13530         (2.0 feature).
13531         * ThemeWin32Classic.cs: Refactor the drawing code for subitems, so we
13532         can invoke from the owner draw routines if we need it. Also, add
13533         support for Owner draw in Details view.
13534
13535 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13536
13537         * ToolStripDropDownMenu.cs, ToolStripItem.cs, ToolStripLabel.cs,
13538         ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs: Respect the
13539         ShowImageMargin setting, properly align text in a ToolStripLabel
13540         hosted on a ToolStripDropDown.
13541
13542 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13543
13544         * ToolStrip.cs, ToolStripContentPanel.cs, ToolStripDropDownMenu.cs,
13545         ToolStripProfessionalRenderer.cs: Refactor and clean up some rendering code.
13546
13547 2007-06-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13548
13549         * DrawListViewSubItemEventArgs.cs: Actually implement its methods.
13550
13551 2007-06-18  Jonathan Pobst  <monkey@jpobst.com>
13552
13553         * ToolStripLabel.cs: If the label is on a dropdown, adjust the text
13554         location to match ToolStripMenuItems.
13555
13556 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13557
13558         * DrawListViewColumnHeaderEventArgs.cs:
13559         * ThemeWin32Classic.cs: Implement 2.0 OwnerDraw support for
13560         column headers in ListView. 
13561
13562 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
13563
13564         * UserControl.cs: Implement AutoSize.
13565
13566 2007-06-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13567
13568         * DrawListViewItemEventArgs.cs:
13569         * ListView.cs:
13570         * ThemeWin32Classic.cs: Implement basic support for 2.0 OwnerDraw in
13571         ListView.
13572
13573 2007-06-15  Jonathan Pobst  <monkey@jpobst.com>
13574
13575         * ToolStripDropDownItemAccessibleObject.cs: Added.
13576         * ToolStripDropDownItem.cs, ToolStripItem.cs, ToolStripMenuItem.cs,
13577         ToolStripOverflow.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
13578         ToolStripProgressBar.cs, ToolStripSeparator.cs, ToolStripSplitButton.cs,
13579         ToolStripTextBox.cs: corcompare work.
13580
13581 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
13582
13583         * OSFeature.cs, StatusStrip.cs, TabControl.cs, TableLayoutSettings.cs,
13584         TableLayoutStyle.cs, TableLayoutCollection.cs, ToolStripContentPanel.cs,
13585         ToolStripControlHost.cs, ToolStripDropDown.cs, ToolStripDropDownButton.cs:
13586                 corcompare.
13587
13588 2007-06-14  Jonathan Pobst  <monkey@jpobst.com>
13589
13590         * OSFeature.cs: Add IsPresent.
13591         * PrintPreviewControl.cs: Add RightToLeft.
13592         * SplitContainer.cs: Add AutoScrollOffset, ScaleControl.
13593         * SplitterPanel.cs: Add AutoSizeMode.
13594
13595 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13596
13597         * LayoutEventArgs.cs: Add 2.0 AffectedComponent.
13598         * MdiClient.cs: Add 2.0 ScaleControl.
13599         * NativeWindow.cs: Implement 2.0 interface IWin32Window.
13600         * NumericUpDownAccelerationCollection.cs: Add [ListBinding].
13601
13602 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13603
13604         * Form.cs: Implement some scaling methods, stub some RTL methods,
13605         corcompare work.
13606
13607 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13608
13609         * Control.cs: corcompare work.
13610         * FlatButtonAppearance.cs, FolderBrowserDialog.cs: Add TypeConverters.
13611
13612 2007-06-13  Jonathan Pobst  <monkey@jpobst.com>
13613
13614         * ControlPaint.cs, Theme.cs, ThemeWin32Classic.cs: Implement
13615         ControlPaint 2.0 stuffs.
13616
13617 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13618
13619         * ThreadExceptionDialog.cs: Add 2.0 stuffs.
13620
13621 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13622
13623         * UpDownBase.cs: Add 2.0 stuffs.
13624
13625 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13626
13627         * NumericUpDown.cs: Add 2.0 stuffs.
13628
13629 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13630
13631         * NotfiyIcon.cs: Add MouseDoubleClick event, hook up MouseClick event.
13632
13633 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13634
13635         * ErrorProvider.cs: Implement 2.0 stuffs.
13636
13637 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13638
13639         * DomainUpDown.cs: Implement 2.0 stuffs.
13640
13641 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13642
13643         * CheckedListBox.cs: Fix RefreshItems signature.
13644
13645 2007-06-12  Jonathan Pobst  <monkey@jpobst.com>
13646
13647         * PictureBox.cs: Implement 2.0 stuffs.
13648
13649 2007-06-12  Andreia Gaita  <avidigal@novell.com>
13650         
13651         * TabControl.cs: Check if there are tabpages before checking
13652         the selected index - fix #81802 (font changes raise a ResizeTabs
13653         call on controls.add, which blew up nicely with no tabpages)
13654
13655 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13656
13657         * ListView.cs:
13658         * ListViewItem.cs: Implement 2.0 ItemSelectionChanged event.
13659
13660 2007-06-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13661
13662         * ListView.cs:
13663         * ListViewItem.cs: In VirtualMode the selection information
13664         resides in the ListView, rather than in the Items. Also, throw
13665         InvalidOperationExceptions when VirtualMode is being used and
13666         CheckedItemCollection is accessed.
13667
13668 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13669
13670         * ComboBox.cs: Add ScaleControl.
13671
13672 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13673
13674         * ButtonBase.cs: ButtonBaseAccessibleObject.State should not be visible to 1.1.
13675
13676 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13677
13678         * GroupBox.cs: Add 2.0 stuffs.
13679
13680 2007-06-08  Jonathan Pobst  <monkey@jpobst.com>
13681
13682         * Panel.cs: Add autosize properties/event.
13683
13684 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
13685
13686         * Control.cs:
13687         - When we remove a control, remove it from the collection before performing the layout.
13688         - Setup an internal property for explicit_bounds.
13689         - Don't let the UpdateBounds in CreateHandle overwrite our explicit bounds.
13690         - Perform a layout when we set a new AutoSizeMode.
13691
13692 2007-06-07  Jonathan Pobst  <monkey@jpobst.com>
13693
13694         * ScrollableControl.cs: Add 2.0 stuffs.
13695
13696 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13697
13698         * ScrollBar.cs: Add 2.0 stuffs.
13699
13700 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13701
13702         * Splitter.cs: Add 2.0 stuffs.
13703
13704 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13705
13706         * SplitContainer.cs: Apply patch from Neil Cawse <neilcawse@geotab.com>
13707         to have BindingContext simply use base implementation.
13708
13709 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13710
13711         * ColumnHeader.cs: corcompare fix.
13712
13713 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13714
13715         * Button.cs: corcompare fixes.
13716         * ButtonBase.cs: corcompare fixes, add ButtonBaseAccessibleObject.State.
13717
13718 2007-06-06  Jonathan Pobst  <monkey@jpobst.com>
13719
13720         * Button.cs: Override GetPreferredSizeCore.
13721         * ButtonBase.cs: PerformLayout after changing properties that can affect
13722         AutoSize.  Simplify some mouse/keyboard code.
13723         * Control.cs: PerformLayout after changing Padding if AutoSize = true.
13724         * MouseEventArgs.cs: Make Location internal for 1.1.
13725         * TextRenderer.cs: Make MeasureTextInternal (string, Font, bool) internal for 1.1.
13726         * Theme.cs: Add CalculateButtonAutoSize.
13727         * ThemeWin32Classic.cs: Implement CalculateButtonAutoSize.
13728
13729 2007-06-05  Miguel de Icaza  <miguel@novell.com>
13730
13731         * TreeNodeCollection.cs: Applied patch from Neil Cawse <neilcawse@geotab.com>
13732
13733 2007-06-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13734
13735         * ListViewItem.cs: We can't cache Bounds in VirtualMode 
13736         since we can get different item instances every time we retrieve it.
13737
13738 2007-06-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13739
13740         * ListView.cs: Work around for #81602, since an unkown an pretty
13741         infrequent condition appears only in some systems (old linux boxes, it
13742         seems).
13743
13744 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13745
13746         * Button.cs: Completely reformat and a little refactor to bring
13747         this closer to Mono circa 2007.
13748
13749 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13750
13751         * CheckBox.cs, Form.cs, RadioButton.cs: Change call to ButtonBase.Redraw
13752         to be ButtonBase.Invalidate.
13753
13754 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13755
13756         * ButtonBase.cs: GetPreferredSize is 2.0 only.  Fixes build.
13757
13758 2007-06-04  Jonathan Pobst  <monkey@jpobst.com>
13759
13760         * ButtonBase.cs: Completely reformat and a little refactor to bring
13761         this closer to Mono circa 2007.
13762
13763 2007-06-01  Everaldo Canuto  <ecanuto@novell.com>
13764
13765         * Label.cs: Fixes preferred sizes for 2.0 profile, also adjust some
13766         values for autosize. Fixes #80137.
13767
13768 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13769
13770         * Control.cs: Don't perform layout when AutoSize changes.
13771         * Form.cs: Perform layout in AutoSize override.  Don't set ClientSize
13772         directly when autosizing, use SetBounds with BoundsSpecified.None.
13773         Fixes unit tests my last commit broke.
13774
13775 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13776
13777         * Control.cs: Perform layout when AutoSize changes.
13778         * Form.cs: Implement AutoSizing.
13779
13780 2007-06-01  Chris Toshok  <toshok@ximian.com>
13781
13782         * DataGrid.cs: remove the XXX'ed check at the top of
13783         ProcessGridKey.  fixes #80464.
13784
13785 2007-06-01  Chris Toshok  <toshok@ximian.com>
13786
13787         * DataGridTextBoxColumn.cs: TextBox.TextChanged event handler
13788         adding idempotent (add/remove in Edit()), and also make sure we
13789         don't add it until after we set the text, so it's not tripped in
13790         Edit().  Fixes unit test regression.
13791
13792 2007-06-01  Jonathan Pobst  <monkey@jpobst.com>
13793
13794         * Control.cs: In UpdateBounds, only recalculate anchor distances if the
13795         change is user explicit, not when the layout engine moves stuff.  Fixes
13796         anchoring to bottom and right.  [Fixes bug #81790]
13797
13798 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13799
13800         * PrintDialog.cs: Add collation preview thumbnails. Fixes #80726.
13801
13802 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13803
13804         * ContainerControl.cs: 
13805         Fire enter event for common ancestor if it is not a ContainerControl.
13806         Send focus to the active_control and not the 'value', the active 
13807         control might have been changed in one of the events fired.     
13808         Definitely fixes #80159.
13809
13810 2007-06-01  Andreia Gaita  <avidigal@novell.com>
13811
13812         * DataGrid.cs: Finish editing when focus leave the datagrid. Fixes #80159.
13813
13814 2007-06-01  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13815
13816         * PropertyGrid.cs: Anchor the help description to the bottom of the
13817           help panel and refactor SelectGridItem into a
13818           SelectGridItemInternal that can be set to null (and update it to
13819           clear the help texts when it is set to null). Set root item to null
13820           when there's no SelectedObject. Fixes #80438.
13821         * ScrollableControl.cs: In Recalculate we need to ResumeLayout(true)
13822           when we're recalculating after a resize (only).
13823
13824 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13825
13826         * ListView.cs: Implement 2.0 RedrawItems method.
13827
13828 2007-05-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13829
13830         * ListControl.cs: Disconnect PositionChanged and ItemChanged
13831         handlers from previous data manager when DataSource is set to
13832         null. Fixes #81771.
13833
13834 2007-05-31  Jackson Harper  <jackson@ximian.com>
13835
13836         * TextBoxBase.cs: These seem to be the correct values.
13837
13838 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
13839
13840         * FileDialog.cs: When close dialog with ok set filterindex using combobox
13841         value. Fixes #81784.
13842
13843 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
13844
13845         * Control.cs: Implement 2.0 scaling methods.
13846
13847 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13848
13849         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
13850           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
13851           corcompare issues.
13852
13853 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13854
13855         * ProgressBar.cs: Implemented missing 2.0 members.
13856
13857 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13858
13859         * Control.cs: Corcompare issues.
13860         * MessageBox.cs: Implemented missing 2.0 functions.
13861
13862 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13863
13864         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
13865           Implemented more 2.0 members.
13866
13867 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
13868
13869         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
13870           null (strange, but it seems to happen when running unit tests).
13871
13872 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13873
13874         * ContainerControl.cs: Set active_control even earlier, before 
13875         firing any events, and undo it if validation returns false.
13876
13877 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13878
13879         * ContainerControl.cs: Raise Validation and Enter/Leave events
13880         even if there is no Form and set active_control earlier, just
13881         before firing Enter events (toshok's patches). Fixes #80647.
13882
13883 2007-05-30  Jackson Harper  <jackson@ximian.com>
13884
13885         * TextControl.cs: Redid the pageup/pagedown a little to simplify
13886         things and fix bug #81311.
13887
13888 2007-05-30  Jackson Harper  <jackson@ximian.com>
13889
13890         * X11Dnd.cs: Now that we have our own event loop, we need to
13891         cancel when we get a mouseup but it won't be accepted.
13892
13893 2007-05-30  Chris Toshok  <toshok@ximian.com>
13894
13895         * DataGrid.cs (set_CurrentCell): guard against negative
13896         column/row.
13897
13898         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
13899         array index syntax instead of looping over the property names.
13900
13901         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
13902         and set IsInEditOrNavigateMode to false there.
13903
13904 2007-05-30  Jackson Harper  <jackson@ximian.com>
13905
13906         * TreeView.cs: Make sure we don't get a bad visible order when
13907         setting to the top node.  Fixes some misc crashing in
13908         ControlInspector.
13909
13910 2007-05-30  Andreia Gaita  <avidigal@novell.com>
13911
13912         * UserControl.cs: Add 2.0 AutoSizeMode
13913
13914 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13915
13916         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
13917
13918 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13919
13920         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
13921         lines. Fixes #80285. 
13922
13923 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13924
13925         * DataGridColumnStyle.cs: Add char trimming column header text format. 
13926
13927 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
13928
13929         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
13930         Fixes #80147.
13931
13932 2007-05-29  Jackson Harper  <jackson@ximian.com>
13933
13934         * TreeNode.cs: Fix off by one on calculating whether or not a node
13935         is visible.
13936
13937 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
13938
13939         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
13940         * ScrollableControl.cs: Force an UpdateDistances when we move the
13941         scrollbars.
13942         [Fixes bug #80605]
13943
13944 2007-05-29  Andreia Gaita  <avidigal@novell.com>
13945
13946         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
13947         update the page setup screen.
13948
13949 2007-05-29  Andreia Gaita  <avidigal@novell.com>
13950
13951         * PageSetupDialog.cs: Fix landscape mode.
13952
13953 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13954
13955         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
13956         IconSizeHorizontalSpacing.
13957
13958 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13959
13960         * ListView.cs: The declaration of prev_tooltip_item should be inside
13961         a NET_2_0 conditional (avoid a warning).
13962
13963 2007-05-28  Andreia Gaita  <avidigal@novell.com>
13964
13965         * PageSetupDialog.cs: Implement PrintPreview control to display
13966         the preview thumbnail. Change unit conversion to use 
13967         PrinterUnitConvert methods.
13968         
13969         Note: there is a huge bug in ms.net where the default margins are 
13970         interpreted as centimeters (?), when in fact they are set in inches. When 
13971         loading the page setup dialog initially (ms.net), the default margins 
13972         are set to 1 inch, and the dialog shows them with value 10, when in fact 
13973         it should be 25 (properly converted). Our dialog doesn't have this bug.
13974         
13975         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
13976         RectangleF.
13977         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
13978
13979 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13980
13981         * ListView.cs:
13982         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
13983         items.
13984
13985 2007-05-28  Andreia Gaita  <avidigal@novell.com>
13986
13987         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
13988         an IntPtr on csc (it builds fine on mcs, could it be a compiler
13989         bug?), convert the ptr to Int32 first.
13990
13991 2007-05-28  Jackson Harper  <jackson@ximian.com>
13992
13993         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
13994         recieved, we will exit the dnd tracking loop.
13995
13996 2007-05-28  Jackson Harper  <jackson@ximian.com>
13997
13998         * X11Dnd.cs: Keep tracking until the xdnd finished event is
13999         recieved. TODO: I should probably stick a timer on the dropped
14000         event, and finish the drag if the XDND Finished event never shows
14001         (because some apps don't seem to send it).
14002
14003 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
14004
14005         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
14006         #81733.
14007
14008 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14009
14010         * MonthCalendar.cs: Only mark the keypresses we actually handle as
14011           handled.
14012
14013 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14014
14015         * MonthCalendar.cs: Set the size after initializing all the relevant
14016           variables. Fixes #81742.
14017
14018 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14019
14020         * KeyEventArgs.cs: Fix typo.
14021
14022 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
14023
14024         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
14025         to match MS. Fixed MinDate to only accept value less than or equal
14026         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
14027         Removed TODO's that are now verified by unit tests.
14028
14029 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
14030
14031         * TreeNodeCollection.cs: Minor corrections to exceptions to match
14032         MS.
14033
14034 2007-05-25  Jackson Harper  <jackson@ximian.com>
14035
14036         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
14037         it's own message loop.
14038         * XplatUIX11.cs: Remove some of the dnd hooks
14039
14040 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
14041
14042         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
14043         instead of MinimizedWindowSize.
14044
14045 2007-05-25  Jackson Harper  <jackson@ximian.com>
14046
14047         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
14048
14049 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14050
14051         * KeyEventArgs.cs: Added SuppressKeyPress.
14052         * Control.cs: Added support for SuppressKeyPress.
14053
14054 2007-05-24  Andreia Gaita  <avidigal@novell.com>
14055
14056         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
14057         problems with PieChart. suppress_validation should not be a counter,
14058         if there are several BeginInit calls, the first EndInit will 
14059         activate validation. Fix exceptions thrown by set_Value.
14060         * UpDownBase.cs: ValidateText only if it's the user editing it.
14061
14062 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14063
14064         * ListControl.cs: FilterItemOnProperty should return the filtered
14065         item proeprty even if DataSource is null. The same applies for
14066         GetItemText. Fixes #80427.
14067
14068 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
14069
14070         * Control.cs: If a control doesn't have a parent when it's Dock is
14071         set, but it has children, it needs to do a layout.  Fixes some nested
14072         controls issues.  [Fixes bug #81199]
14073
14074 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14075
14076         * ComboBox.cs: If there are few items in the drop down list, make it
14077           the exact size the items need, no bigger. Fixes #81612.
14078
14079 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
14080
14081         * Application.cs: When we have captured the keyboard for a menu,
14082         check for mouse down events in case we need to close the menu.
14083         * Control.cs, Form.cs: Remove mouse down checks for menus.
14084
14085 2007-05-24  Jackson Harper  <jackson@ximian.com>
14086
14087         * TextControl.cs: Handle tabs in non multiline mode a little
14088         differently.
14089
14090 2007-05-24  Jackson Harper  <jackson@ximian.com>
14091
14092         * TextControl.cs: We need to manually break apart tabbed text and
14093         move the tabs, since the system.drawing tabbing mechanism relies
14094         on tab stops.
14095         * TextBoxBase.cs: Move the caret properly when the user enters a
14096         tab.
14097
14098 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
14099
14100         * ContainerControl.cs: Don't check CanSelect before calling
14101         ProcessMnemonic.
14102         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
14103         release a KeyboardActive on click if it's not ours.
14104
14105 2007-05-23  Andreia Gaita  <avidigal@novell.com>
14106
14107         * ColumnHeader.cs: Add TypeConverter
14108
14109 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14110
14111         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
14112
14113 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14114
14115         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
14116
14117 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14118
14119         * LinkLabel.cs: Implement public Padding property.
14120
14121 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14122
14123         * LinkLabel.cs: Implement public FlatStyle.
14124
14125 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
14126
14127         * Control.cs: Apply patch from George to call parent.PerformLayout
14128         when Visible is changed.  [Fixes bugs #81118, 81718]
14129
14130 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14131
14132         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
14133
14134 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14135
14136         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
14137
14138 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
14139
14140         * ContextMenu.cs: Implement Collapse.
14141
14142 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
14143
14144         * ToolBarButton.cs: Implement Name.
14145
14146 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
14147
14148         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
14149         use current_item, it prevents some NRE. Fixes #81675.  
14150
14151 2007-05-22  Andreia Gaita  <avidigal@novell.com>
14152
14153         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
14154         without updating the text.
14155
14156 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
14157
14158         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
14159         without calling DeleteObject.  [Should fix bug #81709]
14160
14161 2007-05-22  Jackson Harper  <jackson@ximian.com>
14162
14163         * RichTextBox.cs: Set the line endings correctly, when flushing
14164         RTF text.
14165
14166 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
14167
14168         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
14169          {Width=0,Height=0}.
14170
14171 2007-05-22  Jackson Harper  <jackson@ximian.com>
14172
14173         * TreeView.cs: Setting top with a null node should set to the very
14174         top.
14175
14176 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14177
14178         * Form.cs: ShowDialog: destroy the handle when message loop is
14179           finished, matches MS behaviour. Refactor parts of WmClose into
14180           RaiseCloseEvents, that only raises events if they haven't already
14181           been raised. Fixes #81688 and #81521.
14182         * Application.cs: Don't call close on the form when exiting a modal
14183           loop, it will raise all the (Form)Closed/Closing events again if
14184           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
14185           which doesn'r raise any events it they have been raised before.
14186
14187 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
14188
14189         * Control.cs: Add OnPrint.
14190         * ToolStrip.cs: Add GetChildAtPoint.
14191         * ToolStripContainer.cs: Add OnRightToLeftChanged.
14192         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
14193
14194 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
14195
14196         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
14197
14198 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14199
14200         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
14201           isn't visible anymore. Fixes #81651.
14202
14203 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14204
14205         * Control.cs: WmShowWindow: Update children's z-order after setting
14206           their parent. SetParent may show the window, thereby corrupting
14207           z-order, since the window will be shown on top.
14208         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
14209           multiple (and redundant) WM_SHOWWINDOW messages.
14210         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
14211           event has already been raised.
14212         * Form.cs: Change is_changing_visible_state to a counter, since
14213           SetVisibleCore can be called recursively. CreateHandle: when
14214           creating mdi children, send (De)Activated events.
14215         * MdiClient.cs: Update use of is_changing_visible_state.
14216         * Application.cs: OnThreadException: Surround exception handling with
14217           try/finally to ensure we always reset the error-handling state
14218           before leaving.
14219
14220 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14221
14222         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
14223           (#81704).
14224
14225 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14226
14227         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
14228         SmallIcon views, now that we have a standarized horizontal spacing.
14229
14230         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
14231         4, just like the other views (Match .Net).
14232
14233 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
14234
14235         * Control.cs: Delay calculating anchor distances until we actually layout.
14236         Always query the WM for the actual size and location it put us at instead of
14237         only when we send negative values.
14238         [Fixes bugs #81694, 81695]
14239
14240 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14241
14242         * Application.cs: Avoid a possible stack overflow when trying to exit
14243           the application.
14244
14245 2007-05-19  Marek Safar  <marek.safar@gmail.com>
14246
14247         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
14248         enum value.
14249
14250 2007-05-19  Andreia Gaita  <avidigal@novell.com>
14251
14252         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
14253         * NumericUpDownAcceleration.cs, 
14254           NumericUpDownAccelerationCollection.cs: Added 2.0
14255           implementation.
14256
14257 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
14258
14259         * RichTextBox.cs: Recalculate the document after the ScrollBars
14260         property is changed. Fixes bug #81681.
14261
14262 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
14263
14264         * DataObject.cs: Implement 2.0 methods.
14265
14266 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14267
14268         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
14269         in the center of the checkbox, not in the left-top corner. 
14270         Fixes #80037.
14271
14272 2007-05-18  Jackson Harper  <jackson@ximian.com>
14273
14274         * RichTextBox.cs: Recalculate the document after the scrollbars
14275         property is changed.
14276         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
14277         81486.
14278
14279 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14280
14281         * CreateParams.cs: Make HasWindowManager marginally faster.
14282         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
14283           into Hwnd so that other drivers can use it as well.
14284         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
14285           the default location from Hwnd. Fixes MDI client windows always
14286           showing up at (0,0) in Windows (Win32 won't set the default
14287           location since the window styles aren't correct).
14288
14289 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
14290
14291         * TreeView.cs: Modified DoubleBuffered to just use the base
14292         implementation.
14293
14294 2007-05-18  Jackson Harper  <jackson@ximian.com>
14295
14296         * TreeView.cs: Set the top node to the last child node when
14297         expanding all
14298         - When we get focus, if there is no selected node, use the top
14299         node.
14300
14301 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
14302
14303         * KeysConverter.cs: Add CanConvertTo.
14304         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
14305         * LinkConverter.cs: Added.
14306
14307 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14308
14309         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
14310         it prevents error when file dont have write access. Fixes #81669 and #81667.  
14311
14312 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14313
14314         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
14315         button text. Fixes #79640.  
14316
14317 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14318
14319         * Control.cs: According to MSDN controls created in the designer theres 
14320         keyboard accelerators visible by default. So included check for design
14321         in ShowKeyboardCuesInternal.  
14322
14323 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14324
14325         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
14326         text. Fixes #81621.  
14327
14328 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
14329
14330         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
14331         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
14332
14333 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14334
14335         * Control.cs: Finish implementation of UI State using WmChangeUIState
14336         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
14337         in some controls to check for show_keyboard_cues to draw accell keys "_".  
14338
14339 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14340
14341         * ListBox.cs: When calculating the horizontal scrollbar
14342         in single column mode, don't use values less than 0 for
14343         Maximum. Fixes #81474.
14344
14345 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14346
14347         * ListBox.cs: Throw the some missing exceptions in
14348         ListBox.ObjectCollection methods.
14349
14350 2007-05-17  Jackson Harper  <jackson@ximian.com>
14351
14352         * TextBoxBase.cs: Recalculate the document when the word wrap
14353         value has changed. This fixes 81488.
14354
14355 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14356
14357         * Clipboard.cs: Implement missing GetText overload.
14358
14359 2007-05-17  Chris Toshok  <toshok@ximian.com>
14360
14361         * Control.cs (CheckDataBindings): remove the binding_context arg
14362         to binding.Check.
14363
14364         * CurrencyManager.cs (OnItemChanged): fix this now that
14365         BindingManagerBase is fixed. also remove the comment telling where
14366         the fix should go.  We set transfering_data to true/false around
14367         the call to PushData to keep UpdateIsBinding from being called.
14368         (ListChangedHandler): remove the extra OnMetaDataChanged call for
14369         PropertyDescriptorAdded in the 1.1 case.  The extra call is
14370         actually generated by System.Data generating 2 metadata changed
14371         events of its own per column add.  The fix should go there.  Add a
14372         comment to that affect in our test's Assert.Ignore.
14373
14374         * BindingManagerBase.cs: Rework PullData and PushData slightly.
14375         we keep a boolean flag (transfering_data) that keeps us from
14376         calling UpdateIsBinding multiple times if we re-enter either of
14377         them.
14378
14379         * ControlBindingsCollection.cs (AddCore): remove the
14380         binding_context arg to binding.Check.
14381
14382         * Binding.cs (IsBinding): don't check if we're binding here, just
14383         return our cached value.  we update it in UpdateIsBinding.
14384         (Check): don't take the binding_context arg, we'll just use our
14385         control's.  Also, for some reason MS doesn't use the data member
14386         field when getting the bindingmanager for this binding.  it just
14387         uses the datasource.  Make this method callable multiple times,
14388         and only do the is_null_desc stuff if manager.Position != -1 (so
14389         we don't get an exception accessing manager.Current).
14390         (UpdateIsBinding): move the code from IsBinding here.
14391         (PositionChangedHandler): call Check here to we can initialize
14392         things that require a non- -1 position.
14393
14394 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14395
14396         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
14397         control.
14398
14399 2007-05-17  Andreia Gaita  <avidigal@novell.com>
14400
14401         * TabControl.cs: Add 2.0 methods and events, including
14402         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
14403         * TabPage.cs: Add 2.0 methods
14404
14405 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
14406
14407         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
14408         keyboard_cues is properly handled by message method.  
14409
14410 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14411
14412         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
14413
14414 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
14415
14416         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
14417
14418 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
14419
14420         * Control.cs: 
14421         - WmUpdateUIState added to handle state changes, it make call to
14422         OnChangeUICues event.
14423         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
14424         SystemInformation.
14425
14426 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
14427
14428         * ImageKeyConverter.cs: Added.
14429         * TreeViewImageKeyConverter.cs: Added.
14430
14431 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14432         
14433         * ToolTips.cs: Update Text if SetToolTip is called for a control
14434         already showing the tooltip, as well as restarting its timer; show
14435         tooltip if we are inside the control bounds by the time of calling
14436         SetToolTip. Inside ShowTooltip remove the check to not show the 
14437         tooltip again for the active control (it is allowed by .Net to 
14438         show the tooltip on the same control multiple times).
14439
14440 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14441
14442         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
14443
14444 2007-05-16  Andreia Gaita <avidigal@novell.com> 
14445
14446         * ContainerControl.cs: only process tab key if there are no 
14447         modifier keys present, otherwise the control does the 
14448         tab processing, if it needs to. Fixes #81622
14449         * TabControl.cs: Fixes calculation for which tab to select on
14450         shift+ctrl+tab.
14451
14452 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14453
14454         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
14455
14456 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
14457
14458         * Control.cs: Make IsInputCharInternal to allow controls to
14459         override it and still match MS API.
14460         * TextBoxBase.cs: Override IsInputCharInternal and always
14461         return true.
14462         [Fixes bug #81616]
14463
14464 2007-05-15  Jackson Harper  <jackson@ximian.com>
14465
14466         * TextBox.cs: Disable some of the menu options when using a
14467         readonly textbox.
14468
14469 2007-05-15  Jackson Harper  <jackson@ximian.com>
14470
14471         * TextBox.cs:
14472         * TextBoxBase.cs:
14473         * RichTextBox.cs: Some new 2.0 methods
14474
14475 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
14476
14477         * FileDialog.cs: On 1.0 profile, do not support multidotted 
14478         extensions.
14479
14480 2007-05-14  Jackson Harper  <jackson@ximian.com>
14481
14482         * TextBoxBase.cs: Implement some of the new 2.0 methods.
14483         * RichTextBox.cs: We need to override these methods on 2.0.
14484         * MaskedTextBox.cs: These are implemented now
14485         * TextControl.cs: This was off by one.
14486
14487 2007-05-14  Jackson Harper  <jackson@ximian.com>
14488
14489         * TextControl.cs: Because the line endings are including in the
14490         text, we don't need to add them in anymore.
14491
14492 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14493
14494         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
14495         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
14496
14497 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14498
14499         * ToolBar.cs: Adjust size to default size when button theres no text and
14500         image, it fixes remaining issues from #81524.
14501
14502 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14503
14504         * ToolBar.cs: 
14505         - When not flat call redraw to recalculate sizes on creare handle to match
14506         win32 behavior.
14507         - Revert 77220 because it causes some regressions in toobar
14508         button.
14509
14510 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14511
14512         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
14513           now actually enters a usable state.
14514
14515 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14516
14517         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
14518         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
14519         3 buttons.
14520
14521 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14522
14523         * ToolBar.cs: Save default_size on create handle to use later for buttons
14524         without text, needed to mimic win32 behavior.
14525
14526 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
14527
14528         * ToolBar.cs: Fix button layour to best fit width or height according to
14529         vertical or not. Fixes #81524.
14530
14531 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
14532
14533         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
14534         toolbar size info because different styles theres different sizes.
14535         Fixes #81522.
14536
14537 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14538
14539         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
14540         if we are using checkboxes, checked is true, and we have less
14541         than two images in StateImageList; for the 1.1 in the same scenario
14542         draw the first image if we have at least one image in StateImageList.
14543         Fixes part of #81191.
14544
14545 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14546
14547         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
14548         the owner's Items collection on merge.
14549
14550 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14551
14552         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
14553         * ToolStripItemCollection.cs: Lots of fixes to when events get called
14554         and parent/owner gets changed based on gert's unit tests.
14555
14556 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14557
14558         * MaskedTextBox.cs: Started implementing parts of it.
14559
14560 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14561
14562         * ListView.cs: When clicking the checkbox on the items
14563         take into account the double clicks even if we have only
14564         one image in StateImageList (only for 1.0/1.1). Also 
14565         generate an extra change of checked state when we receive
14566         the second click on checkbox (match .Net behaviour). 
14567         Fixes part of #81191.
14568
14569 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
14570
14571         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
14572
14573 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
14574
14575         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
14576         even if OnLoad is overriden and base.OnLoad is not called.
14577         [Fixes bug #81582]
14578
14579 2007-05-10  Andreia Gaita  <avidigal@novell.com>
14580
14581         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
14582         shame. (I blame my ever-persisting and annoying cold)
14583
14584 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14585
14586         * ListView.cs: Don't eat navigation keys.  Let them flow through to
14587         KeyDown/KeyPress routines.  [Fixes bug #81569]
14588
14589 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14590
14591         * ListView.cs: When handling keys for selecting the item based off
14592         keyboard input, do not consider keys pressed with Alt or Control.  Also,
14593         correctly handle keys when the Shift key is down. [Fixes bug #81578]
14594
14595 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14596
14597         * Control.cs: When using UseWaitCursor, we have to store the requested
14598         Cursor to use when UseWaitCursor is turned off.
14599
14600 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
14601
14602         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
14603         to false.
14604         * Application.cs: Use PreProcessControlMessage instead of
14605         PreProcessMessage.
14606         * PreProcessControlMessage.cs: Make internal for 1.1.
14607
14608 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14609
14610         * Control.cs: Add InternalContains focus property, which hast the same
14611         functionality of ContainsFocus, but also including implicit controls.
14612         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
14613         since we need to know if the focus is contained in our implicit
14614         ItemControl when calculating Layout. Fixes part of #80888.
14615
14616 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
14617
14618         * ToolTip.cs: Remove center form string alignment as it must be align to
14619         left.
14620
14621 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
14622
14623         * ToolStripItemCollection.cs: Set the new item's parent and owner
14624         in Insert like we do in Add.  [Fixes bug #81568]
14625
14626 2007-05-08  Jackson Harper  <jackson@ximian.com>
14627
14628         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
14629         - Off by one error in SetTop
14630         - Disable DoubeBuffering
14631         
14632 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14633
14634         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
14635           control as much as necessary in order to make it entirely visible,
14636           instead of centering the control in the container (matches MS
14637           behaviour). CalculateCanvasSize: we need to take the current scroll
14638           position into account when calculating the maximum canvas,
14639           otherwise the following scenario will fail: resize so that the
14640           scrollbars appear, use the scrollbars to scroll, resize again
14641           smaller, and now the canvas size is too small. Recalculate: when
14642           showing scrollbars make sure they start off at 0, and try to scroll
14643           the active control into view. Fixes #79540. HandleScrollBar: don't
14644           scroll anywhere if the scrollbar isn't visible.
14645
14646 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14647
14648         * ListView.cs: When focus changed, call Layout/Invalidate
14649         in the focused item to update the selected state (should show
14650         entire label when ListView is focused, and a part of it if is not).
14651         * ListViewItem.cs: When doing layout for LargeIcon, take into account
14652         for displaying the entire label not only the Focused state of the
14653         item, but also the Focused state of the ListView (match .Net
14654         behaviour).
14655
14656 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14657
14658         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
14659         Implement UseWaitCursor. 
14660
14661 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14662         Applying contributed patch from Sergey Volk.
14663
14664         * Clipboard.cs: Implement SetDataObject retry logic and new overload
14665         of SetDataObject.
14666         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
14667
14668 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14669
14670         * Control.cs: Implement DrawToBitmap.
14671
14672 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14673         Applying contributed patch from Stefan Noack.
14674         
14675         * Control.cs: Add [Get|Set]AutoSizeMode.
14676
14677 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14678
14679         * MdiClient.cs: Unmerge menus when the last child is closed.
14680
14681 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
14682
14683         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
14684         * ToolStripManager.cs: Call Merge on DropDowns.
14685         [Fixes bug #81477]
14686
14687 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14688
14689         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
14690           uints.
14691         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
14692           visibility. We can't create forms visible, since we have to set the
14693           owner before making the form visible (otherwise Win32 will do
14694           strange things with task bar icons). The problem is that we set the
14695           internal is_visible to true before creating the control, so
14696           is_changing_visible_state is the only way of determining if we're
14697           in the process of creating the form due to setting Visible=true -
14698           this works because SetVisibleCore explicitly makes the form
14699           visibile afterwards anyways. Fixes #80775.
14700
14701 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14702
14703         * ThemeWin32Classic.cs: When drawing ListViewItems,
14704         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
14705         or LargeIcon _and_ item is not focused (match .Net behaviour).
14706
14707 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
14708
14709         * Control.cs, Form.cs: Fix some obsolete method warnings.
14710
14711 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
14712
14713         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
14714         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
14715
14716 2007-05-04  Andreia Gaita  <avidigal@novell.com>
14717
14718         * ContainerControl.cs: Fix active_control attribution when going
14719         up the parent chain so that the first parent container gets the control
14720         and the rest of the parent containers get the child containers (skips
14721         non-containers). Fixes #80729
14722
14723 2007-05-04  Randolph Chung  <tausq@debian.org>
14724
14725         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
14726         [Fixes bug #81499]
14727
14728 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14729
14730         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
14731           takes a size parameter, since the CreateParam's size isn't true for
14732           minimized forms. Fixes #81518,
14733
14734 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14735
14736         * Form.cs: Add OnDeactivateInternal.
14737         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
14738
14739 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14740
14741         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
14742           accessing the parent. Fixes #81508.
14743
14744 2007-05-03  Chris Toshok  <toshok@ximian.com>
14745
14746         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
14747         2.0 block, pass listposition + 1 to ChangeRecordState when a row
14748         was added before the current listposition.  Fixes the
14749         TestInsertRowBeforeCurrent unit test.
14750
14751 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
14752
14753         * Application.cs: Add RaiseIdle.
14754         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
14755         XplatUIX11.cs: Implement RaiseIdle.
14756
14757 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
14758         corcompare work: N - Z
14759         * NotifyIcon.cs
14760         * ProgressBar.cs
14761         * RadionButton.cs
14762         * ScrollableControl.cs
14763         * SplitContainer.cs
14764         * SplitterPanel.cs
14765         * StatusBar.cs
14766         * SystemInformation.cs
14767         * TabControl.cs
14768         * TableLayoutControlCollection.cs
14769         * TableLayoutPanel.cs
14770         * TabPage.cs
14771         * ToolBar.cs
14772         * ToolBarButton.cs
14773         * ToolStrip.cs
14774         * ToolStripComboBox.cs
14775         * ToolStripContainer.cs
14776         * ToolStripContentPanel.cs
14777         * ToolStripDropDown.cs
14778         * ToolStripDropDownItem.cs
14779         * ToolStripDropDownMenu.cs
14780         * ToolStripItem.cs
14781         * ToolStripItemCollection.cs
14782         * ToolStripMenuItem.cs
14783         * ToolStripPanel.cs
14784         * ToolStripSplitButton.cs
14785         * ToolTip.cs
14786         * TreeNode.cs
14787         * TreeNodeCollection.cs
14788         * TreeNodeMouseHoverEventArgs.cs
14789         * TreeView.cs
14790
14791 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
14792
14793         * ContextMenu.cs: Add public method Show with alignment property to 2.0
14794         stuff. Thanks aatdark for the patch. 
14795
14796 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14797
14798         * GridItem.cs: Implement 2.0 Tag property.
14799
14800 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
14801
14802         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
14803         count instead of Nodes.Length.  [Fixes bug #81448]
14804
14805 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14806
14807         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
14808         [Fixes bug #81506]
14809
14810 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14811         corcompare work: A - M
14812         * BindingNavigator.cs
14813         * Button.cs
14814         * ButtonBase.cs
14815         * CheckBox.cs
14816         * Control.cs
14817         * FlowLayoutPanel.cs
14818         * Form.cs
14819         * Label.cs
14820         * LinkLabel.cs
14821         * ListView.cs
14822
14823 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
14824
14825         * Application.cs: Give toolstrips a chance to process mnemonics.
14826         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
14827         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
14828         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
14829
14830 2007-05-01  Jackson Harper  <jackson@ximian.com>
14831
14832         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
14833         wider area too.
14834         - Don't set the BoundsSpecified
14835
14836 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14837
14838         * Application.cs: When using the toolstrip shortcut mechanism, allow the
14839         message to pass through to a regular control if it hosted by a toolstrip.
14840         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
14841         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
14842
14843 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14844
14845         * TextRenderer.cs: Use the flags argument when using the MeasureString
14846         fallback algorithm.
14847
14848 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
14849
14850         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
14851         the MDI menu item.  [Fixes bug #81483]
14852
14853 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
14854
14855         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
14856         string. When setting Name to null, use zero-length string instead.
14857
14858 2007-04-29  Andreia Gaita  <avidigal@novell.com>
14859
14860         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
14861         DeselectTab). Implement missing 2.0 TabPageCollection methods
14862         (Add, ContainsKey, RemoveByKey, IndexOfKey)
14863
14864 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
14865
14866         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
14867
14868 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
14869
14870         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
14871         Fixes bug #81479. Include details of exception when LoadFile fails.
14872
14873 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
14874
14875         * DrawListViewSubItemEventArgs.cs: Added missing setter
14876
14877 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14878
14879         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
14880         Hide methods (not complete). Implement missing 2.0 OnPopup event.
14881
14882 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14883
14884         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
14885         removed in ly last commit (it was breaking the Label edit feature).
14886
14887         * ThemeWin32Classic.cs: When drawing a ListViewItem use
14888         StringAlignment.Near for LineAlignment (match .Net).
14889
14890 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14891
14892         * TabControl.cs: Change SetTab so it adds the tabpage to the list
14893         of controls if it isn't already there - was blowing up when doing
14894         tabcontrol.TabPages[i]=new TabPage(). 
14895         SetTab now does a replace by removing the page at the index. 
14896         Add a new InsertTab method that inserts a page in a given index 
14897         instead of replacing. 
14898         Implements TabPageCollection.Insert(int, TabPage).
14899
14900 2007-04-27  Chris Toshok  <toshok@ximian.com>
14901
14902         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
14903         internal handler that can be invoked from our subclasses.)  Also,
14904         add a comment to PushData about how we need to fix it.
14905
14906         * CurrencyManager.cs: tons of changes here.  trying to get things
14907         matching the behavior of .net wrt event orders (ItemChanged,
14908         CurrentChanged, PositionChanged.)  I've implemented a private .net
14909         symbol (ChangeRecordState) that appears in stack traces because
14910         it's actually easier to do this than to effective inline all its
14911         various behaviors at every call site.
14912
14913         * RelatedPropertyManager.cs: guard against an exception here by
14914         not using parent.Current if the position is set to -1 (if the
14915         parent datasource is cleared, for instance).
14916
14917         * Binding.cs: don't parse data in PushData (this might be wrong,
14918         but it jives with MS's behavior.)  Also, don't call PushData when
14919         we get a CurrentChanged event.
14920
14921 2007-04-27  Andreia Gaita  <avidigal@novell.com>
14922
14923         * WebBrowser.cs,
14924           WebBrowserBase.cs,
14925           WebBrowserSiteBase.cs,
14926           HtmlDocument.cs: Added stubbed out classes, no real implementations 
14927           yet.
14928
14929 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14930
14931         * MainMenu.cs: In draw method without parameters call draw method with 
14932         PaintEvent, another one (just rect) adjust rectangle and we dont need it
14933         as Rect property is already adjusted. Fixes #80694.
14934
14935 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
14936
14937         * Application.cs: Need to handle keyboard menu deselection here.
14938         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
14939         navigation, allowing keyboard to work on X11.
14940         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
14941
14942 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14943
14944         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
14945         menu bar. It fixes some drawing issues in menu bar.
14946
14947 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
14948
14949         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
14950         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
14951         when <alt> key is pressed.
14952
14953 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
14954
14955         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
14956         example just set visible to false and make this prevent from other problems.
14957         In SystrayAdd always remove pending expose. Fixes #81072.
14958
14959 2007-04-26  Marek Safar  <marek.safar@gmail.com>
14960
14961         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
14962         value is set.
14963
14964 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14965
14966         * ListView.cs: Added three missing 2.0 events and corresponding
14967         EventHandlers. Added the OwnerDraw property.
14968         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
14969
14970 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14971
14972         * DrawListViewItemEventArgs.cs
14973         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
14974
14975 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
14976
14977         * TextControl.cs: Fixed typo in constructor
14978
14979 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
14980
14981         * Application.cs: Create a shortcut path so that currently selected
14982         MenuStrips can intercept keyboard events without having focus.
14983         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
14984         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
14985         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
14986         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
14987         generate WM_SYSCOMMAND message in X11 for other platforms.
14988         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
14989         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
14990         * ToolStripSplitButton.cs: Add DefaultItem property.
14991         
14992 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
14993
14994         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
14995         fixes some menu draw problem on Windows with border diferent from default
14996         it also fixes #81403.
14997
14998 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
14999
15000         * Form.cs: Refactor WndProc into separate methods, just like Control is
15001           doing it.
15002
15003 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15004
15005         * Control.cs: set_Text: move the call to the driver into a seperate
15006           virtual method so that Form can override it.
15007         * MaskedTextBox.cs: Corcompare fixes.
15008         * Form.cs: Override UpdateWindowText and only update the styles if the
15009           form has been shown (fixes #81405).
15010
15011 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
15012
15013         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
15014         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
15015         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
15016         the form lost focus or another control was clicked.
15017
15018 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
15019
15020         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
15021         fixed.
15022
15023 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15024
15025         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
15026           DrawListViewItemEventHandler.cs,
15027           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
15028           Added.
15029         * X11Structs.cs: More ToString implementation.
15030
15031 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
15032
15033         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
15034         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
15035
15036 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15037
15038         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
15039           handle.
15040         * FormCollection.cs: Don't add a form if it's already in the
15041           collection.
15042         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
15043           according to behaviour and MSDN. The ownerWin32 is the active
15044           window at the moment when we call ShowDialog, not the context's
15045           main form (the context's main form may open another form that opens
15046           a form with ShowDialog, the win32 owner is the second form). Add
15047           and remove forms to the Application.OpenForms in other places to
15048           better match MS behaviour. Add an IsActive property that raises
15049           On(de)Activated only if the active state has changed (we were
15050           raising OnDeactivated before OnActivated while creating forms).
15051         * Application.cs: Refactor Enabling/Disabling of windows for modal
15052           dialog loops out to separate methods, and restore the thread
15053           context when we quit the method. Fixes #81407.
15054
15055 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15056
15057         * ListView.cs: In ItemControl.HandleClicks, also fire 
15058         2.0 MouseClick or MouseDoubleClick events on the parent,
15059         not only the Click/DoubleClick events.
15060
15061 2007-04-24  Andreia Gaita  <avidigal@novell.com>
15062
15063         * TableLayoutSettings.cs: 
15064         - Added a GetControls method and a support structure to help the 
15065         TypeConverter to enumerate the controls for     serialization. 
15066         - Added a new serialization constructor. 
15067         - Added a isSerialized flag initialized to true on the 
15068         serialization constructor so that the TableLayoutPanel.LayoutSettings 
15069         setter does not throw the designed NotSupportedOperation exception
15070         when the object is built through deserialization.
15071         - Implemented GetObjectData
15072         
15073         * TableLayoutPanel.cs: Added check on LayoutSettings.
15074
15075 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15076
15077         * ListView.cs: Report Click and DoubleClick events to the parent
15078         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
15079         from breaking the click count state when using dialog forms (Control
15080         reports the clicks in a similar fashion). In the previous behaviour
15081         the last WM_LBUTTONUP message in a  double click was sent to the
15082         ListView's form, instead of the ListView, which was breaking the click
15083         count for it. Fixes #80387.
15084
15085 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
15086
15087         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
15088
15089 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
15090
15091         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
15092         us from created dropdowns for menu items that do not have subitems.
15093         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
15094         Check HasDropDownItems before calling DropDown so a dropdown will not be
15095         created if it isn't needed.
15096
15097 2007-04-24  Jackson Harper  <jackson@ximian.com>
15098
15099         * TreeView.cs: Set the first node to the selected node when we get
15100         focus if there is no selected node.
15101
15102 2007-04-24  Andreia Gaita  <avidigal@novell.com>
15103
15104         * MimeIcon.cs: remove using blocks so that image streams are
15105         not disposed of. Fixes #80151
15106
15107 2007-04-24  Jackson Harper  <jackson@ximian.com>
15108
15109         * TextBoxBase.cs: Fixup the height of textboxes when the control
15110         is created.
15111
15112 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
15113
15114         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
15115         for each ToolStripItem when the parent's RightToLeftChanged is called.
15116
15117 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15118
15119         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
15120           Fixes #80163.
15121         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
15122           property, so that the setter can be overriden too.
15123         * TextBox.cs: Change GetContextMenuInternal() to use
15124           ContextMenuInternal.
15125
15126 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15127
15128         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
15129           #81406.
15130
15131 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15132
15133         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
15134           #81406.
15135
15136 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15137
15138         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
15139           avoid duplicate work. Mostily skeleton code, it's not working at
15140           all yet.
15141
15142 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
15143
15144         * NotifyIcon.cs : stub for MouseClick event
15145         * Application.cs: stub for SetUnhandledExceptionMode
15146
15147 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
15148
15149         * BindingNavigator.cs : Initial (partial) implementation
15150
15151 2007-04-23  Jackson Harper  <jackson@ximian.com>
15152
15153         * TreeView.cs: Do not create the treeview's handle when setting
15154         the scroll position.
15155         - ExpandAll needs to compute the scrollbars so it knows which
15156         position to set the bar too.
15157         * TreeNode.cs: 
15158         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
15159
15160 2007-04-23  Jackson Harper  <jackson@ximian.com>
15161
15162         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
15163         key. Fixes #81408.
15164
15165 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
15166
15167         * ToolStripItem.cs: Make GetImageSize internal.
15168         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
15169         need to draw an item.  Fixes a reported issue where images on menus
15170         that were not 16x16 were drawing incorrectly.
15171
15172 2007-04-21  Miguel de Icaza  <miguel@novell.com>
15173
15174         * Padding.cs: Use the converter, fixes the resgen2 issue with
15175         XMLNotePad. 
15176
15177 2007-04-21  Jackson Harper  <jackson@ximian.com>
15178
15179         * TreeView.cs: Dont try to unhighlight the selected node if there
15180         isn't a selected node.
15181
15182 2007-04-21  Jackson Harper  <jackson@ximian.com>
15183
15184         * UpDownBase.cs:
15185         * TextBoxBase.cs:
15186         * ListView.cs:
15187         * ListBox.cs:
15188         * TreeView.cs: Use the InternalBorderStyle property to set the
15189         initial border style, this forces the client rectangle to be sized
15190         correctly.
15191
15192 2007-04-20  Jackson Harper  <jackson@ximian.com>
15193
15194         * TreeView.cs: Simplify scrolling to the last node after expanding
15195         all.
15196         - Fix some off by ones with setting the bottom.
15197
15198 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
15199
15200         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
15201         that.  We were incorrectly doing it the other way around.  Also,
15202         update ClientSize if we change the BorderStyle before the control
15203         is created.
15204
15205 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
15206
15207         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
15208         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
15209         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
15210         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
15211         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
15212         Caption to CaptionHeight.
15213         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
15214         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
15215         and FixedFrameBorderSize to return value from current XplatUI driver.
15216         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
15217         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
15218         and FixedFrameBorderSize using win32 API. Renamed Caption to
15219         CaptionHeight.
15220         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
15221         * SystemInformation.cs: Fixed typo in BorderSize.
15222
15223 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
15224
15225         * XplatUI.cs: Added MenuAccessKeysUnderlined.
15226         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
15227         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
15228         returning false.
15229         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
15230         value from XplatUI driver.
15231         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
15232         SystemParametersInfo.
15233         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
15234         override.
15235         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
15236         returning false.
15237
15238 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15239
15240         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
15241
15242 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15243
15244         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
15245
15246 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
15247
15248         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
15249         MenuStrips that contain ToolStripSeparators.
15250
15251 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15252
15253         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
15254           DefineStdCursorBitmap.
15255         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
15256           has been created off a standard cursor. This is used to get a
15257           bitmap of the standard cursor when Draw or DrawStretched is called
15258           in order to draw the cursor.
15259         * X11Structs.cs: Added XcursorImage and XcursorImages.
15260         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
15261           DefineStdCursorBitmap.
15262         * Cursors.cs: Update all relevant creations of Cursor to use the new
15263           internal constructor.
15264
15265 2007-04-19  Jackson Harper  <jackson@ximian.com>
15266
15267         * TextBox.cs: Move the has_been_focused into the base control, so
15268         some of the text adding methods can manipulate it (probably time
15269         for a better name for this flag too).
15270         - Call a new version of selectall that doesn't scroll
15271         * TextBoxBase.cs: When we append text, if the document is empty,
15272         don't scroll.  If the document has text already, we scroll to the
15273         end of the appended text.
15274         - When the text is changed, we reset the has_been_focused, so the
15275         next time the control gets focused, all the text is selected.
15276
15277 2007-04-19  Jackson Harper  <jackson@ximian.com>
15278
15279         * TextControl.cs: Move the margins to the document, add a method
15280         so the margin sizes can be updated.
15281         * TextBoxBase.cs: When the border style is changed, update the
15282         border sizes.
15283
15284 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
15285
15286         * Control.cs: Respect DefaultPadding.
15287         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
15288         padding into account.
15289         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
15290
15291 2007-04-19  Jackson Harper  <jackson@ximian.com>
15292
15293         * TextControl.cs: Oops, we need to use the ClientRect not the
15294         bounds here.
15295
15296 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15297
15298         * ListView.cs: In ItemControl.ItemsMouseDown, take into
15299         account the double clicks when CheckBoxes are used and
15300         the pointer is inside the checkbox. Fixes part of #81191.
15301
15302 2007-04-18  Jackson Harper  <jackson@ximian.com>
15303
15304         * TextControl.cs: Pressing the end key shouldn't move the caret
15305         past the line ending.
15306         * TextBoxBase.cs: We can still delete if we are in the line
15307         ending and the combine will just kill the existing line ending.
15308
15309 2007-04-18  Jackson Harper  <jackson@ximian.com>
15310
15311         * TextControl.cs: We can't move lines, then invalidate their
15312         bounds, we need to get the old bounds and combine that with the
15313         new bounds.
15314         * TextBoxBase.cs: Before combining two lines for a delete, we need
15315         to invalidate the area of the old line, since that will be moved
15316         in the combine operation.
15317
15318 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
15319
15320         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
15321         with transparent background. Fixes #80482.
15322
15323 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
15324
15325         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
15326         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
15327         [Fixes bug #81391]
15328
15329 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15330
15331         * CreateParams.cs: Add a couple of helper methods and do a less string
15332           concatenation in ToString.
15333         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
15334           overload that takes a Control parameter, since this method may be
15335           called before a control is assigned to the hwnd (from
15336           CreateWindow), and update CreateWindow to use the new overload. In
15337           GetMenuOrigin subtract the title bar from the y position if the
15338           form has a window manager (since we're painting it and not X).
15339         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
15340           CreateParams to calculate the origin (since border sizes may vary).
15341           In ScreenToMenu only subtract the title height if we actually have
15342           a title.
15343         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
15344           mdi children never have menus of themselves.
15345         * InternalWindowManager.cs: Implement menu handling like form does.
15346           Added GetMenuOrigin to calculate the menu origin, can't use the
15347           CreateParams from the form like normally since it's lying.
15348         * Hwnd.cs: Implement GetBorderSize better (in the sense more
15349           windows-like) and add Inflate and comparison operators to the
15350           Borders type. When calculating MenuOrigin and it's a form with a
15351           window manager, use the window manager to calculate it.
15352
15353 2007-04-17  Chris Toshok  <toshok@ximian.com>
15354
15355         * Control.cs (CreateControl): turns out in 2.0 we don't need this
15356         OnBindingContextChanged thing here.  It's only generated from
15357         ContainerControl.OnCreateControl.  Fixes a newly written unit test
15358         - BindingTest.BindingContextChangedTest4.
15359         
15360 2007-04-17  Jackson Harper  <jackson@ximian.com>
15361
15362         * ScrollBar.cs: When setting values, make sure the current
15363         position stays within the new values range.
15364
15365 2007-04-17  Chris Toshok  <toshok@ximian.com>
15366
15367         * Control.cs (CreateControl): talk about a bizarre corner case.
15368         Don't emit OnBindingContextChanged here if we're a parentless
15369         control (i.e. if we're a form.).  Fixes
15370         BindingTest.BindingContextChangedTest2.
15371
15372 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
15373
15374         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
15375         from win32. Fixes #81255.
15376
15377 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
15378
15379         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
15380         already present in CalculateButtonTextAndImageLayout.
15381
15382 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15383
15384         * XplatUIX11.cs: When setting min/max size for a window we need to
15385           translate the coordinates to x coordinates. Create an overload of
15386           SetWindowMinMax that takes a CreateParams handling this, and change
15387           SetWMStyles to call this function (can't use Control.FromHandle in
15388           the SetWindowMinMax to get the control/CreateParams from the handle
15389           because the handle might not have been assigned to the control
15390           yet). Fixes #81371.
15391
15392 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15393
15394         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
15395         if StateImageList is non-null and it has less than two items (match MS
15396         behaviour). Also, in HandleNavKeys handle the Space key, calling
15397         the new ToggleItemsCheckState method, which tries to change the
15398         checked state of the selected items. Fixes part of #81191.
15399
15400 2007-04-16  Jackson Harper  <jackson@ximian.com>
15401
15402         * RichTextBox.cs: namespace cleanup.
15403
15404 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
15405
15406         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
15407
15408 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
15409
15410         [Fixes #79447]
15411         * Control.cs: Call invalidate in set_Region.
15412
15413         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
15414         it dont works here.
15415
15416 2007-04-16  Jackson Harper  <jackson@ximian.com>
15417
15418         * TextBoxBase.cs: When enter is pressed, we need to update all
15419         lines below the current.
15420
15421 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
15422
15423         * MdiClient.cs: Implement implicit menu merging for MDI
15424         children.  When a child form is active, if it has a menustrip
15425         and the parent form has a MainMenuStrip, automatically merge
15426         the menus.
15427
15428 2007-04-15  Andreia Gaita  <avidigal@novell.com>
15429
15430         * TabControl.cs: Refactored sizing methods to not repeat
15431         code all over the place. Tab bounds are now calculated
15432         as if alignment is top and single line, and only when 
15433         setting the bounds are the positions adjusted according
15434         to alignment. Replaced hardcoded positions, spacings and
15435         paddings by getting the values the ThemeEngine. 
15436         Fixes #79619.
15437         
15438         * Theme.cs: Change TabControl properties and methods so
15439         that all start with TabControl*. Added more properties
15440         to help remove hardcoded values on tabcontrol.
15441         Add CPDrawBorder3D declaration so the Theming classes
15442         can access it.
15443         
15444         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
15445
15446         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
15447         on the Theming namespace, and call the appropriate methods here.
15448         Change CPDrawBorder3D to public.
15449
15450 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15451
15452         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
15453         the control after firing the OnMouseUp event, instead of sending
15454         the message before the mentioned event. This is so we can match the
15455         MS behaviour. Fixes part of #80385.
15456
15457 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
15458
15459         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
15460         RightToLeft property.
15461
15462 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
15463
15464         * ToolStrip.cs: Add properties and internal methods to support merging.
15465         * ToolStripItem.cs: Add MergeAction and MergeIndex.
15466         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
15467         not trigger reparenting or layouts.
15468         * ToolStripManager.cs: Add Merge and RevertMerge methods.
15469         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
15470         is hosting the overflow menu.
15471
15472 2007-04-13  Jackson Harper  <jackson@ximian.com>
15473
15474         * TextControl.cs: Set the line ending correctly for the first
15475         inserted line.
15476
15477 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
15478
15479         * Theme.cs: Update GetMethod to get the new definition for 
15480         KnownColors.Update (and fix theme color updates).
15481
15482 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
15483
15484         * MessageBox.cs: Fix some test and button position.
15485
15486 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15487
15488         * Form.cs: Consider the implicit controls in
15489         GetRealChildAtPoint. We need it since this method
15490         is called on Form when handling the some messages in
15491         WndProc, and need to consider those implicit ones too.
15492         Fixes #80385.
15493
15494 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
15495
15496         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
15497         if there are no ShortcutKeys set.
15498         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
15499         set, use it when painting.
15500
15501 2007-04-12  Jackson Harper  <jackson@ximian.com>
15502
15503         * TextControl.cs: Fix some off-by-one issues in line duplication
15504         and insertion in the undo manager. Also, overwrite the first tag
15505         of a line on insert, if it is just a zero lengthed tag. This
15506         prevents us from getting an extra stranded tag at the beginning of
15507         the first line.
15508
15509 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
15510
15511         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
15512         to calculated proper size including when handle was not created yet.
15513
15514 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15515
15516         * MdiWindowManager.cs: When moving a form, allow the form to be moved
15517           when the mouse is outside of it's parent's client rectangle. Fixes
15518           #79982 (take 3, part 2).
15519
15520 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15521
15522         * X11Structs.cs: Add a few ToString() overrides.
15523         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
15524           the window location in a window-manager independent way. Reworked
15525           FrameExtents, it now actually works. Reworked AddConfigureNotify
15526           and ReparentNotify handling to use GetTopLevelWindowLocation
15527           instead of the earlier, more hacky solution. Reworked SetWMStyles,
15528           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
15529           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
15530           for all other windows (fixes #81281 part 1), a toolwindow is hidden
15531           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
15532           and generally refactored to do as few calculations as possible
15533           inside the lock.
15534
15535 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
15536
15537         * Theme.cs: Change "reflective-contract" between MWF and SD to 
15538         minimize # of calls, avoid Color serialization and avoid updating 
15539         every "known colors" each time a single one is updated.
15540
15541 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
15542
15543         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
15544         when not readonly and the text is explicitly set. Code style updates.
15545         * DataGridTableStyle.cs: Removed extra line.
15546         * DataGrid.cs: Code style updates. Removed extra whitespace.
15547         * DataGridColumnStyle.cs: Code style updates. Removed extra 
15548         whitespace.
15549
15550 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15551
15552         * XplatUIX11.cs: Added comment that "fixes" #80021.
15553
15554 2007-04-09  Jackson Harper  <jackson@ximian.com>
15555
15556         * TextControl.cs: We don't need this -1 on the line count anymore.
15557
15558 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
15559
15560         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
15561         entered value to underlying type, and convert it back to a string to
15562         apply formatting. Modified GetFormattedValue to use TypeConverter
15563         if available.
15564
15565 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
15566
15567         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
15568         Use SubItems property when we want to ensure there's at least one
15569         subitem. Modified SubItems property to ensure there's always at least
15570         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
15571         the NRE's reported by MS.
15572
15573 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
15574
15575         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
15576         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
15577         Spaces to tabs. Removed extra tabs.
15578
15579 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
15580
15581         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
15582         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
15583
15584 2007-04-06  Jackson Harper  <jackson@ximian.com>
15585
15586         * TextBoxBase.cs: When a delete removes a line, recalculate all
15587         lines below that line (they need to get offsets setup correctly)
15588         and invalidate.
15589
15590 2007-04-05  Jackson Harper  <jackson@ximian.com>
15591
15592         * TextControl.cs: We need to invalidate across the width of the
15593         document when we are invalidating multiple lines.
15594         * TextBoxBase.cs: Don't delete into the line ending.
15595
15596 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15597
15598         * ListView.cs: Restore the check for the MouseHover event
15599         in ListView. It looks like the ListView fires more than one MouseHover
15600         event when HoverSelection is true  _only_ in weird-corner scenarios, but
15601         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
15602         event.
15603
15604 2007-04-05  Mike Kestner  <mkestner@novell.com>
15605
15606         * ListView.cs : raise MouseDown before updating selection.
15607         [Fixes #80373 tab 1&3]
15608
15609 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
15610
15611         * ToolStripRenderer.cs: Add static method to mirror image.
15612         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
15613         and RightToLeftAutoMirrorImage.
15614         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
15615
15616 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
15617
15618         * ToolStripSplitStackLayout.cs: Support Alignment property.
15619         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
15620
15621 2007-04-05  Jackson Harper  <jackson@ximian.com>
15622
15623         * TextControl.cs: Move around the line endings when crossing line
15624         boundaries.
15625         - When combining lines, strip the ending text off the first line.
15626
15627 2007-04-05  Jackson Harper  <jackson@ximian.com>
15628
15629         * TextControl.cs:
15630         * TextBoxBase.cs: Try to never move the cursor into the line
15631         ending.
15632         
15633 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15634
15635         * ToolStripItem.cs: Make sure we aren't firing mouse events when
15636         the item is disabled.  Also add a few missing methods.
15637
15638 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15639
15640         * ListView.cs: We don't need the MouseEnter/MouseLeave check
15641         to fire just one MouseHover event when HoverSelection is true, since
15642         .Net does fire more than one MouseHover event in that scenario. Also,
15643         fix the selection in HoverSelection, by invoking UpdateMultiSelect
15644         if MultiSelect is true, instead of only setting ListViewItem.Selected.
15645         Finally, we need to reset the Hover logic in MouseMove, even when we
15646         don't have a selected item.
15647
15648 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15649
15650         * ToolStrip.cs: Add several missing methods, properties, and events.
15651
15652 2007-04-04  Chris Toshok  <toshok@ximian.com>
15653
15654         * DataGridTextBoxColumn.cs: set the bounds of the text box to
15655         (0,0,0,0) in Commit, as MS does.
15656
15657         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
15658         make sure we set CurrentRow on a row header click *before* calling
15659         Select.  This moves the current cell (and the textbox) to the new
15660         row.  The call to Select then hides the textbox, giving us the
15661         correct behavior.  Fixes #80362.
15662
15663         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
15664         (ListChangedHandler): reorder the position/current changed events,
15665         and call UpdateIsBinding in the ItemAdded case.
15666
15667         * GridColumnStylesCollection.cs: add some columns events, one of
15668         which raises the CollectionChanged event.
15669
15670 2007-04-04  Jackson Harper  <jackson@ximian.com>
15671
15672         * TextControl.cs: When we delete multiple selection lines
15673         invalidate the selection area, don't need to do that for single
15674         lines because the final update view will handle it.
15675
15676 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
15677
15678         * Control.cs: When we CreateControl, we need to also create all of the
15679         control's children.  The child's OnLoad must also fire before the parent's
15680         OnLoad.  Fixes the toolbox size in PDN.
15681
15682 2007-04-04  Jackson Harper  <jackson@ximian.com>
15683
15684         * TextBoxBase.cs: When the user presses enter, insert a line
15685         ending into the text. (Maybe this would be a good spot for
15686         Environment.NewLine).
15687         * TextControl.cs: Remove undo manager hack, line endings get
15688         inserted properly now.
15689         
15690 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
15691
15692         * MenuAPI.cs: 
15693         - Remove unneeded parameters in UpdateCursor.
15694         - Fix UpdateCursor to check if menu is active.
15695         - Call UpdateCursor when menu deactivate my click.
15696         [Fixes remaining issues from #80410]
15697
15698 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
15699
15700         * Control.cs: GetRealChildAtPoint method added, it make an
15701         recursive child control search for the point. 
15702
15703         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
15704         menu.
15705
15706         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
15707
15708 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
15709
15710         * Form.cs: Fix mouse position when send back mouse event after closes
15711         menu.
15712
15713 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
15714
15715         * Form.cs: Simplify the BUTTONDOWN for active tracker.
15716
15717 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
15718
15719         * Control.cs: Fix an issue where if a user resized a control inside
15720         a sizing method like OnResize, we would overwrite their explicit
15721         value.  Also, only call DefaultSize once in the constructor instead
15722         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
15723         nothing actually changed.
15724
15725 2007-04-03  Jackson Harper  <jackson@ximian.com>
15726
15727         * TextControl.cs: Don't attempt to copy text for lines with no
15728         text in them (technically this shouldn't happen, but we aren't
15729         always inserting line endings when we should be).
15730
15731 2007-04-03  Jackson Harper  <jackson@ximian.com>
15732
15733         * TextBoxBase.cs: Calculate the scrollbars before calculating the
15734         document, because this sets some of the document size properties
15735         that are needed.
15736
15737 2007-04-03  Jackson Harper  <jackson@ximian.com>
15738
15739         * TextBoxBase.cs: We need to calculate maximums even if this is
15740         not a multiline control, because the maxs are used for scrolling.
15741         - Display the caret after doing a page up/down, we need to
15742         manually display it because a proper CaretMoved event isn't
15743         triggered (this is because of the way the math is done to
15744         determine how far to scroll).
15745
15746 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
15747
15748         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
15749         (ToolBar was relying on SetBoundsCore to default the values sent 
15750         base off of BoundsSpecified.)
15751
15752 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15753
15754         * DateTimePicker.cs: Change Text so that when a null value or empty
15755           string is assigned to the test we always raise ValueChanged and
15756           TextChanged (earlier implementation would only raise ValueChanged
15757           if the current date value was different from DateTime.Now).
15758
15759 2007-04-03  Andreia Gaita <avidigal@novell.com> 
15760
15761         * ButtonBase: Call update after invalidation, fixes #80194
15762
15763 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15764
15765         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
15766           #79335.
15767
15768 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15769
15770         * XplatUIX11.cs: SetWMStyles: If the control is a form with
15771           FormBorderStyle = None, don't give the window any decorations.
15772           Fixes #81276.
15773
15774 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15775
15776         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
15777         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
15778           to check for is a mix of several styles (such as WS_CAPTION for
15779           instance).
15780         * Control.cs: Don't paint an area bigger than the client area when
15781           painting the background colour. Add an internal GetCreateParams.
15782           Update calls to XplatUI.CalculateWindowRect due to API change.
15783         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
15784           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
15785           the size if it hasn't been handled by any windows. When creating
15786           and moving windows, X wants the location of the entire window, but
15787           the size of the client window, so add
15788           TranslateClientRectangleToXClientRectangle,
15789           TranslateWindowSizeToXWindowSIze and
15790           TranslatedXWindowSizeToWindowSize to cope with this, and call them
15791           before every window creation and move. Update CalculateWIndowRect
15792           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
15793           In AddConfigureNotify don't do anything if the hwnd is a zombie
15794           (fixes the BadWindow we were getting while running the tests),
15795           always calculate the offsets when it's a parentless window, not
15796           only when reparented, and translate the window size, since we're
15797           getting the client size of the whole window, excluding entire
15798           window.
15799         * Theme.cs: Added BorderSizableSize.
15800         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
15801           anymore. Update calls to XplatUI.CalculateWindowRect due to API
15802           chang
15803         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
15804           change. Fake the window styles here instead of in XplatUIWin32 so
15805           that all back-ends get the same window styles (and it's Form that's
15806           deciding when to use wm, not the Win32 backend anyways)
15807         * Hwnd.cs: Completely reworked GetWindowRectangle and
15808           GetClientRectangle - they are now passed a CreateParams and they
15809           only use Style and ExStyle to determine the rectangles (they should
15810           now work just like Win32AdjustWindowRectEx - though quite a few
15811           special cases are probably missing). They should also be 100%
15812           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
15813           == rect), and all numbers (borders, menu sizes) are taken from the
15814           current theme. Added a GetBorders helper function that will return
15815           the borders for any given CreateParams (including captions and
15816           menus), and GetBorderSize that returns the given border size only.
15817         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
15818           Hwnd.GetClientRectangle.
15819
15820 2007-04-02  Chris Toshok  <toshok@ximian.com>
15821
15822         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
15823         logic between the values we present to the user and the values
15824         which are stored in the column's property.  Also, don't call
15825         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
15826
15827 2007-04-02  Jackson Harper  <jackson@ximian.com>
15828
15829         * TextBoxBase.cs: Scroll faster!
15830
15831 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
15832
15833         * StatusStrip.cs: Layout fixes for PDN.
15834         * ToolStrip.cs: Set item's available to true, and placement to main when
15835         added.
15836         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
15837         changing in setter before doing any work, add InternalVisible.
15838         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
15839         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
15840         infinite loop.
15841
15842 2007-04-02  Jackson Harper  <jackson@ximian.com>
15843
15844         * TextBox.cs: LBUTTON does not make the textbox select all of it's
15845         text on focus.
15846
15847 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15848
15849         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
15850           Makes ToolStripComboBoxes show up again.
15851
15852 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15853
15854         * ListView.cs: Add a hover_pending field in ListView
15855         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
15856         cycle (we are resetting the MouseHover logic in XplatUI
15857         to handle HoverSelection). Fixes #80429.
15858
15859 2007-04-02  Jackson Harper  <jackson@ximian.com>
15860
15861         * TextControl.cs: Make sure the attributes get set on the last
15862         tag.
15863         - Still have to do the end tag if we have stepped all the ways to
15864         the end.
15865
15866 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
15867
15868         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
15869         on an internal libgdiplus call when the information is already 
15870         available via the public API.
15871
15872 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15873
15874         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
15875           control is removed from a control collecftion.
15876         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
15877           Fixes FormPropertyTest (failed on rare occasions).
15878         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
15879           of Win32SetParent (when changing from no parent to a parent it
15880           might add the new parent's location in screen coordinates to this
15881           window's location).
15882         * Form.cs: Rework ChangingParent once again, now the handle is
15883           recreated whenever a FormWindowManager is added or removed (that is
15884           whenever a normal form is parented or abandoned). Also change
15885           CreateParams so that all non-toplevel windows always get the
15886           specified sice (StartupPosition is never considered for
15887           non-TopLevel forms).
15888         * ContainerControl.cs: Add ChildControlRemoved, the container control
15889           needs to be notified when a control is removed from it's
15890           collection, in the case the removed control is the active control.
15891
15892 2007-04-02  Jackson Harper  <jackson@ximian.com>
15893
15894         * RichTextBox.cs: Use the new methods for setting the font and
15895         color, these methods set the specified attribute without
15896         overriding the other attributes.
15897
15898 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
15899
15900         * ToolStripPanel.cs: Fixes for better layouts in PDN.
15901
15902 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
15903
15904         * TextBox.cs: Added internal ChangeBackColor method to special-case
15905         Color.Empty. Added check for invalid ScrollBars value.
15906         * TextBoxBase.cs: Added internal ChangeBackColor method.
15907         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
15908         internal ChangeBackColor method to special-case Color.Empty. Added
15909         check for invalid ScrollBars value.
15910
15911 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
15912
15913         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
15914
15915 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
15916
15917         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
15918         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
15919         [Based on submitted patch from Olivier Duff.]
15920
15921 2007-03-30  Jackson Harper  <jackson@ximian.com>
15922
15923         * TextBox.cs: Only select all on initial focus if the user has not
15924         specified a selection area.
15925
15926 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
15927
15928         * UserControl.cs: Override CreateParams.
15929
15930 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15931
15932         [ Fixes #80995 ]
15933
15934         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
15935         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
15936           check for is a mix of several styles (such as WS_CAPTION for instance).
15937         * Control.cs: Don't paint an area bigger than the client area when painting
15938           the background colour. Add an internal GetCreateParams. Update calls to
15939           XplatUI.CalculateWindowRect due to API change.
15940         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
15941           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
15942           hasn't been handled by any windows. When creating and moving windows, X
15943           wants the location of the entire window, but the size of the client
15944           window, so add TranslateClientRectangleToXClientRectangle,
15945           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
15946           to cope with this, and call them before every window creation and move.
15947           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
15948           removing DeriveStyles). In AddConfigureNotify don't do anything if the
15949           hwnd is a zombie (fixes the BadWindow we were getting while running the
15950           tests), always calculate the offsets when it's a parentless window, not
15951           only when reparented, and translate the window size, since we're getting
15952           the client size of the whole window, excluding entire window.
15953         * Theme.cs: Added BorderSizableSize.
15954         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
15955           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
15956         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
15957           Fake the window styles here instead of in XplatUIWin32 so that all
15958           back-ends get the same window styles (and it's Form that's deciding when
15959           to use wm, not the Win32 backend anyways)
15960         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
15961           they are now passed a CreateParams and they only use Style and ExStyle
15962           to determine the rectangles (they should now work just like
15963           Win32AdjustWindowRectEx - though quite a few special cases are probably
15964           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
15965           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
15966           sizes) are taken from the current theme. Added a GetBorders helper
15967           function that will return the borders for any given CreateParams
15968           (including captions and menus), and GetBorderSize that returns the given
15969           border size only.
15970         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
15971           Hwnd.GetClientRectangle.
15972
15973 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15974
15975         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
15976           layout of the mdi children is handled by CreateParams. Fixes
15977           #79964,
15978
15979 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
15980
15981         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
15982         processed.
15983
15984         * Form.cs: When active tracker mouse down is not processed, send event 
15985         back to control inside mouse position. [Fixes #81227]
15986
15987 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
15988
15989         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
15990         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
15991         stealing focus from the active form on Windows.  (Control will be made
15992         visible in ShowWindow.)
15993
15994 2007-03-29  Mike Kestner  <mkestner@novell.com>
15995
15996         * ImageList.cs : add internal Changed event.
15997         * ListView.cs : hook up to StateImageList.Changed to perform
15998         invalidations when the the state icon list changes. [Fixes #81191]
15999
16000 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
16001
16002         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
16003         to prevent tooltips from stealing focus from the active form on Windows.
16004
16005 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
16006
16007         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
16008
16009         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
16010
16011 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
16012
16013         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
16014         balloons.
16015
16016 2007-03-29  Jackson Harper  <jackson@ximian.com>
16017
16018         * TextControl.cs: When deleting text from non multiline textboxes,
16019         we need to update the entire document, because line offsets will
16020         be shifting.
16021
16022 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
16023
16024         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
16025         added to theme, now we can create themes that uses diferent notify engines
16026         like notification-daemon from galago project or growl for Mac OS.
16027
16028 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
16029
16030         * NotifyIcon.cs: Prevent Balloon to show in task bar.
16031
16032 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
16033
16034         * XplatUIX11.cs: Prevent system to open more than one balloon.
16035
16036         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
16037         some compiler warning messages.
16038
16039 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
16040
16041         [Fixes #79149]
16042
16043         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
16044
16045         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
16046         implemented, this methods is used by NotifyIcon.BalloonWindow class.
16047
16048         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
16049         systems.
16050
16051 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16052
16053         * ListViewItem.cs: Forgot to make Invalidate internal.
16054
16055 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16056
16057         * ListView.cs: Add a InvalidateSelection method to
16058         invalidate methods which are currently selected, and call
16059         it when setting FullRowSelect and HideSelection, instead of
16060         calling Redraw.
16061
16062 2007-03-28  Chris Toshok  <toshok@ximian.com>
16063
16064         * XplatUIX11.cs (UnmapWindow): reindent this block.
16065
16066         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
16067         the selection_start if we're moving the selection (that is, not
16068         extending it). Fixes bug #80461.
16069
16070 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
16071
16072         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
16073         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
16074         create private ControlCollection.
16075
16076 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
16077
16078         * Control.cs: We need to call OnVisibleChanged for our implicit
16079         children as well as our normal children.  Fixes scrollbars in
16080         comboboxes not showing up.
16081
16082 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
16083
16084         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
16085         the check for IsHandleCreated first.  The check in CreateHandle is not
16086         good enough because CreateHandle can be overriden, and the override 
16087         should not be called if the handle is already created.
16088
16089 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
16090
16091         * ToolStrip.cs: Remove MonoTODO for tooltips.
16092         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
16093         * ToolStripContainer.cs: Add custom ControlCollection class.
16094         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
16095         * ToolStripDropDown.cs: Add some missing properties/methods.
16096         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
16097         * ToolStripItem.cs: Remove MonoTODO for tooltips.
16098         * ToolStripManager.cs: Add IsShortcutDefined.
16099         * ToolStripOverflow.cs: Override LayoutEngine.
16100         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
16101         * ToolStripSeparator.cs: Add ImageKey.
16102
16103 2007-03-28  Jackson Harper  <jackson@ximian.com>
16104
16105         * TextControl.cs: If a char delete removes a line ending, we need
16106         to update the ending style.
16107         - Make sure the line ending calcs get called.
16108
16109 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16110
16111         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
16112           it was making the new code not work. Fixed a typo in the new code
16113           as well. Fixes #79826.
16114
16115 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
16116
16117         * XplatUIWin32.cs:
16118         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
16119         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
16120         - SystrayBalloon method implemented.
16121         [Add support for notifyicon balloon on win32, #79149]
16122
16123 2007-03-27  Mike Kestner  <mkestner@novell.com>
16124
16125         * ThemeWin32Classic.cs : update StateImageList selection to mirror
16126         the ms behavior when only one image is added to the list.
16127         [Fixes #81191]
16128
16129 2007-03-27  Jackson Harper  <jackson@ximian.com>
16130
16131         * TextControl.cs: Improvements to non multiline line ending
16132         drawing/measuing.
16133
16134 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
16135
16136         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
16137
16138 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
16139
16140         * NotifyIcon.cs: 
16141         - Balloon message handling added.
16142         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
16143
16144         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
16145         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
16146         to SystrayBalloon to me like other Systray method, also a
16147         handle parameter added.
16148
16149 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16150
16151         * ListView.cs: Show scrollbars even when items.Count == 0
16152         but the columns Width is bigger than the ListView.Width.
16153         Also, when columns.Count == 0 set layout_wd and layout_ht
16154         to the ClientRectangle values, so we don't show any scrollbar
16155         in that case.
16156
16157 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
16158
16159         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
16160
16161 2007-03-27  Jackson Harper  <jackson@ximian.com>
16162
16163         * RichTextBox.cs: The RTF library decodes the text properly for us
16164         now.
16165
16166 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16167
16168         * ListView.cs: Display HeaderControl even when columns.Count == 0.
16169         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
16170         ListView header (HeaderControl), instead of Control.BackColor.
16171
16172 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
16173
16174         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
16175         Fixes tab control issues where controls would not show up because they
16176         never received their OnVisibleChanged call.
16177
16178 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
16179
16180         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
16181         BalloonTipShown).
16182
16183 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
16184
16185         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
16186         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
16187         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
16188         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
16189         the handle.  Fix WindowState by using the internal variable until we are 
16190         sure that we've been shown.
16191         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
16192         max or min.
16193         [Fixes bug #81198]
16194
16195 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16196
16197         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
16198           (at least borders). Fixes #79386 on Linux (with a small difference
16199           in behaviour: when trying to resize a caption-less window metacity
16200           shows the sysmenu. Resizing is still possible though).
16201         * XplatUIWin32.cs: When setting window styles send request an extra
16202           WM_NCCALCSIZE when it's a form without title (due to no text and no
16203           caption), since Win32 seems to calculate it wrong the first time we
16204           get the message, though the second time things work as they should.
16205         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
16206           newly reparented window might show up unparented. Update
16207           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
16208           there's no title text. Fixes #79386.
16209
16210 2007-03-27  Mike Kestner  <mkestner@novell.com>
16211
16212         * ListBox.cs : don't perform invalidations if the handle hasn't been
16213         created.  [Fixes #80753]
16214
16215 2007-03-27  Mike Kestner  <mkestner@novell.com>
16216
16217         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
16218         [Fixes #80428]
16219
16220 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
16221
16222         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
16223         needed to implement Balloon.
16224
16225 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16226
16227         * ListViewItem.cs: In the constructors that take
16228         an array of strings, don't use ListViewSubItemCollection.AddRange
16229         method to add items, since we need to have a different behaviour (in
16230         the constructors we add an item for each null string, opposed to
16231         the behaviour of AddRange, which adds nothing).
16232
16233 2007-03-26  Andreia Gaita  <avidigal@novell.com>
16234
16235         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
16236
16237 2007-03-26  Jackson Harper  <jackson@ximian.com>
16238
16239         * TextControl.cs: Draw and measure line endings when in non
16240         multiline mode.
16241         - When searching the text, count the end of the last line as a
16242         word boundary.
16243
16244 2007-03-26  Jackson Harper  <jackson@ximian.com>
16245
16246         * RichTextBox.cs: The selection_start and selection_end don't
16247         really track the correct tags for the selection. So we'll manually
16248         compute the correct tag here.
16249
16250 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16251
16252         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
16253           and Continuous styles. Fixes #79469.
16254
16255 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
16256
16257         * ToolStrip.cs: Implement Tooltips.
16258         * ToolStripItem.cs: Create internal method for determining tooltip.
16259
16260 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
16261
16262         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
16263
16264 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
16265
16266         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
16267         it prevents a problem thak keeps icon visible after application 
16268         closes on win32.
16269
16270 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
16271
16272         * NotifyIcon.cs: Balloon properties and methods created.
16273
16274         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
16275         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
16276
16277 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
16278
16279         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
16280
16281 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
16282
16283         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
16284         parameter indicates which aspects were explicit/user-set.
16285         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
16286
16287 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
16288
16289         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
16290         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
16291         SmallChange, and Value (2.0).
16292         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
16293
16294 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16295
16296         * ListView.cs: Always set item_control.Width in LayoutDetails
16297         if View is Details. Setting it later in CalculateScrollBars
16298         in a not-so-corner scenario (the sum of columns width is
16299         not bigger than the ListView width when handle is created, and then
16300         that sum gets bigger by increasing the width of the columns)
16301         causes a very weird recursion path (which shouldn't be happening,
16302         since header_control sets it in CalculateScrollBars too). This bug
16303         appeared after Chris' fixes for handle created issues, so probably
16304         it's related to some handle-creation time.
16305
16306 2007-03-23  Chris Toshok  <toshok@ximian.com>
16307
16308         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
16309         case where there's an add row, just so we don't end up in a case
16310         where it's not displayed (this happens when the row is partially
16311         obscured).  Fixes bug #79574.
16312
16313 2007-03-23  Jackson Harper  <jackson@ximian.com>
16314
16315         * TextControl.cs:
16316         * TextBoxBase.cs:
16317         * RichTextBox.cs: Preserve line endings in the lines text buffer,
16318         also added an enum that represents the line ending type. 
16319
16320 2007-03-23  Andreia Gaita  <avidigal@novell.com>
16321
16322         * NumericUpDown.cs: Fix logic so Text and Value properties are not
16323         messed with in every method call, but only from DownButton, 
16324         UpButton, UpdateEditText() and ValidateText. Fixes #80346
16325
16326 2007-03-23  Chris Toshok  <toshok@ximian.com>
16327
16328         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
16329         format objects if the format spec is "".  Fixes bug #80889.
16330
16331 2007-03-22  Miguel de Icaza  <miguel@novell.com>
16332
16333         * ToolStripPanel.cs (Join): added stubs to build PDN3
16334
16335         * Control.cs (AutoScrollOffset): Add.
16336
16337         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
16338         property, its only implemented for Win32, on X11 it defaults to
16339         some hardcoded value.
16340
16341         * ToolStripItem.cs (AllowDrop): Add property
16342
16343 2007-03-22  Mike Kestner  <mkestner@novell.com>
16344
16345         * ListView.cs : in FullRowSelect Details mode, only enable box
16346         selection if the user clicks over the "item" column outside of the
16347         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
16348
16349 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16350
16351         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
16352           handle is not created yet.
16353         * Form.cs: Select: Don't call CreateHandle if the handle is already
16354           created, avoids a stack overflow on Windows when we are recreating
16355           controls.
16356         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
16357           they are made visible, and override AfterTopMostControl to keep
16358           them on top when other controls are brought to front.
16359           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
16360           or force_*scroll_visible is true (old implementation always shows
16361           scrollbars when needed, no matter what auto_scroll was set to).
16362         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
16363           IsHandleCreated check.
16364
16365 2007-03-22  Andreia Gaita  <avidigal@novell.com>
16366
16367         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
16368         row or col separator.
16369         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
16370
16371 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16372
16373         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
16374
16375 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16376
16377         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
16378         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
16379         every time. Fixes #80410.
16380
16381 2007-03-22  Chris Toshok  <toshok@ximian.com>
16382
16383         * BindingSource.cs (AddNew): partially implement.
16384
16385         remove a couple of NotImplementedException's
16386         to get bug #81148 closed.
16387
16388 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
16389
16390         [Fixes #80380]
16391         
16392         * Control.cs:
16393         - UpdateCursor method added to update the screen cursor.
16394         - GetAvailableCursor method added to return cursor for enabled tree,
16395         it searches for cursor on control and it's parent's for enabled control.
16396         - Call UpdateCursor method on setter of Cursor property.
16397         - On setter of Enabled call UpdateCursor when it is false, we need to
16398         change cursor to normal (or to this parent cursor) because cursor 
16399         setting theres no effect to disabled controls.
16400         - Some minor source changes to follow the coding style guidelines.
16401
16402         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
16403         controls.
16404
16405 2007-03-22  Chris Toshok  <toshok@ximian.com>
16406
16407         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
16408         generates.
16409
16410 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16411
16412         * XplatUIX11.cs: Implement default locations for forms.
16413         * Form.cs: Completely rework startup location for forms. Fixes #79964.
16414         * Hwnd.cs: Add previous_child_startup_location (to track the current
16415           startup location for any child forms of the current form) and
16416           previous_main_startup_location (to track the startup location for
16417           the current toplevel form).
16418
16419 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16420
16421         * Control.cs: Don't trigger a layout if an implicit control is added
16422         that isn't visible.  Also, don't notify the owner when an implicit control
16423         is added.  (Owners shouldn't even know about their implicit controls.)
16424
16425 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16426
16427         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
16428         to save some re-layouts.
16429
16430 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
16431
16432         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
16433         [Fixes #81203]
16434
16435 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
16436
16437         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
16438         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
16439
16440 2007-03-21  Mike Kestner  <mkestner@novell.com>
16441
16442         * ListView.cs : disable selection update for non-left button clicks
16443         with mods and over selected items.  [Fixes #80524]
16444
16445 2007-03-20  Jackson Harper  <jackson@ximian.com>
16446
16447         * TextControl.cs:
16448         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
16449         \r\r\n, \n.
16450
16451 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16452
16453         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
16454           very probably a more complicated calculation there. Update the
16455           textbox' ForeColor and BackColor when the ComboBox' colors are
16456           changed. Change the border change in LayoutComboBox to only affect
16457           the textbox, not all the calculations there. Seems to fix most of
16458           #79436.
16459
16460 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16461
16462         * ComboBox.cs: Handle Home and End keys as well as all combinations of
16463           modifiers + navigation keys as input keys, enables advanced text
16464           selection in the combobox (like Shift+Left Arrow for instance).
16465           ComboTextBox now overrides Focused and returns whatever
16466           ComboBox.Focused returns, since it really should be focused
16467           whenever the ComboBox is. Fixes #80795. Also make the border around
16468           the text box one pixel bigger, as mentioned in #79436.
16469
16470 2007-03-20  Jackson Harper  <jackson@ximian.com>
16471
16472         * TreeView.cs: Don't offset the images, this was causing some
16473         artifacts when expanding/collapsing with images that were the
16474         exact height of the treenode.
16475
16476 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16477
16478         * TrackBar.cs: Query the theme for the correct value when the mouse
16479           moves and the thumb is pressed. 
16480         * Theme.cs: Added TrackBarValueFromMousePosition
16481         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
16482           implementation was updating the trackbar value when drawing, now
16483           the drawing methods only draw. Fixes #80900. Refactored the
16484           calculations out to TrackBarValueFromMousePosition and
16485           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
16486           according to the mouse position whenever it wants to. Changed the
16487           light coloured pen when drawing the thumb from ControlLight to
16488           ControlLightLight, because the ControlLight is the same colour as
16489           the background so the 3D effect is lost. 
16490
16491 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16492
16493         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
16494         defined. Fixes #80784.
16495
16496 2007-03-20  Marek Habersack  <mhabersack@novell.com>
16497
16498         * ContextMenuStrip.cs: align with the change introduced in
16499         revision 74664.
16500
16501 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16502
16503         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
16504         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
16505         in SetTopmost.
16506
16507 2007-03-19  Chris Toshok  <toshok@ximian.com>
16508
16509         * Control.cs (WmPaint): don't make use of the Handle property
16510         after an event is emitted, as the user could have closed the
16511         form/destroyed the control.  Store the Handle in a local variable
16512         and make use of that.  Fixes bug #80768.
16513
16514 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16515
16516         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
16517         behavior in X11 environments.
16518
16519 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16520
16521         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
16522         because on setter of topmost we dont call SetTopmost when handle is not
16523         created.
16524
16525 2007-03-20  Jackson Harper  <jackson@ximian.com>
16526
16527         * TextControl.cs: Need to use SelectionLength () not
16528         selection_length, since that var is reset to -1.
16529         - Draw the caret when we don't have focus.
16530         * TextBox.cs: The selectall actually doesn't occur until the first
16531         focus.
16532         * TextBoxBase.cs: Need to update the caret position after a
16533         selectall.
16534         
16535 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16536
16537         * ListView.cs: Enable scrolling when using Tile view.
16538
16539 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
16540
16541         [Fixes #80902]
16542
16543         * XplatUIDriver.cs: Abstract SetOwner method created.
16544
16545         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
16546         must be implemented and was masked as todo.
16547
16548         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
16549         GWL_HWNDPARENT.
16550
16551         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
16552         cheking for null owner to remove transient. The SetTopmost will be change
16553         on a decond step.
16554
16555         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
16556         SetTopmost. Now owned forms will work properly in win32 and X11.
16557
16558 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16559
16560         * MdiWindowManager.cs: Update function name.
16561         * Form.cs: After closing a form MdiParent is always null.
16562         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
16563           better what it should do: necessary book-keeping when the form is
16564           closed, it should not close the form itself.
16565
16566 2007-03-19  Andreia Gaita  <avidigal@novell.com>
16567
16568         * ListViewItem.cs: Fix back and fore color. The subitems only
16569         use their own colors if they are set, otherwise use the listview's
16570         colors. Don't set default colors on constructor for subitem.
16571         Fixes #79315.
16572
16573 2007-03-19  Mike Kestner  <mkestner@novell.com>
16574
16575         * ListView.cs : make box selection for Details views with 
16576         FullRowSelect conform to MS behavior when clicking in the "item" 
16577         column and clicking outside the defined columns.
16578         [Fixes case 5-6 of #80374]
16579
16580 2007-03-19  Chris Toshok  <toshok@ximian.com>
16581
16582         * ScrollableControl.cs: create the controls from within the ctor,
16583         but don't actually add them until our handle is created.  this
16584         fixes a NRE possibility jpobst found (if you override OnLayout in
16585         a subclass, it's called before your ctor).  Also, add a
16586         IsHandleCreated guard to UpdateSizeGripVisibility as well.
16587
16588 2007-03-19  Jackson Harper  <jackson@ximian.com>
16589
16590         * TextBox.cs: Reduce the amount of invalidation we do.
16591         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
16592         some of them are true by default on MS.
16593         - Add some functions to reduce the amount of invalidates we do.
16594         * TextControl.cs: Less invalidation.
16595
16596 2007-03-19  Chris Toshok  <toshok@ximian.com>
16597
16598         [ Fixes #81773, and *seems* to fix #81553 as well ]
16599
16600         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
16601         AccumulateDestroyedHandles.  We need to do it *after* we send
16602         WM_DESTROY, as the user's code can access Control.Handle in
16603         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
16604         move the WM_DESTROY/zombie handling to before the call to
16605         XDestroyWindow.  For some reason without this ordering
16606         FormTest.RecreateHandle hangs.  This ordering is semantically
16607         equivalent, however, as XDestroyWindow is async anyway.
16608
16609 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
16610
16611         * RichTextBox.cs: Reset backcolor_set after setting default.
16612
16613 2007-03-19  Chris Toshok  <toshok@ximian.com>
16614
16615         * ScrollableControl.cs: the scroll position should not effect the
16616         canvas size.  commit patch from georgegiolfan@yahoo.com, which
16617         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
16618         
16619 2007-03-19  Chris Toshok  <toshok@ximian.com>
16620
16621         * ScrollableControl.cs: clean this up a bit.  create the
16622         scrollbars in the ctor and just show/hide them as needed.  Also,
16623         make hscroll_visible/vscroll_visible internal to Recalculate, and
16624         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
16625         everywhere else.  This seems to fix the scrollbars appearing
16626         beneath the content for me (i have *no* idea why that is,
16627         however.)
16628
16629 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
16630
16631         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
16632         some redundacy for stuff in Anchor and Dock that base will take care of.
16633         [Fixes #80762]
16634
16635 2007-03-19  Mike Kestner  <mkestner@novell.com>
16636
16637         * ListView.cs : make box selection for Details views without 
16638         FullRowSelect dependent on the text bounds, not item bounds.
16639         * ListViewItem.cs : add an internal property to obtain the TextBounds
16640         in Details view.  [Fixes case 1-4 of #80374]
16641
16642 2007-03-19  Andreia Gaita  <avidigal@novell.com>
16643
16644         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
16645         we're < 2.0. #78448 && #80316
16646
16647 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
16648
16649         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
16650         have the same style available as the previously selected one.  Also,
16651         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
16652
16653 2007-03-19  Jackson Harper  <jackson@ximian.com>
16654
16655         * TextControl.cs: Add an alignment property that all new lines
16656         will be given.
16657         - Make sure to use the align shift when calculating the line's X
16658         position.
16659         * TextBox.cs: Set the alignment on the document as well as on all
16660         the document lines.
16661
16662 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16663
16664         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
16665           throw if setting the parent of an mdichild that already has an
16666           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
16667           AssemblyProductAttribute in the assembly, use the type's namespace (as
16668           MS seems to do). CreateControl: don't create the handle if the control
16669           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
16670           create handle if the control is not a form. Change FocusInternal to
16671           virtual so that it can be overriden by Form.
16672         * TextBox.cs: Update call to FocusInternal.
16673         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
16674           form is not a toplevel form when it's a mdi child, so update is_toplevel
16675           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
16676           hasn't been created. Show (IWin32Window): Don't allow this overload for
16677           toplevel windows. CenterToParent/CenterToScreen/Select: create the
16678           handle as MS does. SetVisibleCore: if called on a MdiChild and the
16679           parent isn't visible yet, save the visibility and restore it when the
16680           parent is made visible.
16681         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
16682           methods, since the visibility of the scrollbars can be changed from
16683           several places, not only from AutoScroll.
16684           [Fixes #81179]
16685
16686 2007-03-19  Jackson Harper  <jackson@ximian.com>
16687
16688         * RichTextBox.cs: Enable shortcuts by default.
16689         * TextBoxBase.cs: Add conditional shortcuts.  
16690
16691 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
16692
16693         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
16694
16695 2007-03-19  Chris Toshok  <toshok@ximian.com>
16696
16697         [ Fixes bug #80604]
16698         
16699         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
16700         swallow the message we're waiting on, instead of delivering it, as
16701         this is only used for the WM_SHOWWINDOW raised from
16702         MapWindow/UnmapWindow, and the message needs to be generated
16703         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
16704         before doing the Map/Unmap.  Also make sure that the Hwnd is still
16705         alive after the message has been handled.
16706
16707         *before* the window is shown.
16708
16709         * Control.cs (CreateControl): guard a few more things inside the
16710         if (!is_created) block, as we might end up being called again -
16711         yay .net.
16712         (WmShowWindow): call CreateControl if we're showing the control.
16713
16714 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16715
16716         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
16717           controls without a handle if they have any parent with a handle. In
16718           Dispose add a check whether the handle is created or not before
16719           calling BeginInvoke, this removes the need of the extra disposing
16720           parameter (which was bogus anyway since it didn't prevent the
16721           invoke from happening, it only skipped the check for an existing
16722           handle, meaning that the invoke would call on an inexistent
16723           handle).
16724
16725 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
16726
16727         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
16728         appears in taskbar.
16729
16730 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
16731
16732         * MessageBox.cs:
16733         - Fixed a problem that dont show help button for messages with 3 buttons.
16734         - Refactory button size and position calculations, now dont use fixed 
16735         values, also fixed button sizes (#80043) and form's border space.
16736         - AddButton method created, now all other AddButton methods call this one.
16737         - Some other source code cosmetic changes.
16738
16739 2007-03-18  Jackson Harper  <jackson@ximian.com>
16740
16741         * RichTextBox.cs: Don't do this all fonts must match check if
16742         there is only one char selected.
16743
16744 2007-03-18  Jackson Harper  <jackson@ximian.com>
16745
16746         * TreeView.cs: ScrollWindow works properly now, so we don't need
16747         to screw around with the scroll area.  This fixes some artifacts
16748         when expanding and collapsing.
16749
16750 2007-03-18  Jackson Harper  <jackson@ximian.com>
16751
16752         * TextBoxBase.cs: Allow updating the selection position when the
16753         cursor is outside the textarea, but we have a capture.
16754         * TextControl.cs: A special case for when the cursor is outside
16755         the bounds of the TB.
16756         
16757 2007-03-18  Jackson Harper  <jackson@ximian.com>
16758
16759         * TextBoxBase.cs: Remove image pasting code for now.  There is no
16760         way to get an image on the clipboard right now anyways.
16761         * TextControl.cs:
16762         * RichTextBox.cs: Use the new RTF Picture class for pictures.
16763
16764 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
16765
16766         * MessageBox.cs:
16767         - Set window properties in constructor intead of on CreateParams.
16768         - Remove topmost from Window ExStyle.
16769         - Set ShowInTaskbar to false.
16770         - Set form border to FixedDialog.
16771         - Some cosmetic changes and remove unneeded comments.
16772         - It fixes itens 2,3 and 4 of bug #80043.
16773
16774 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
16775
16776         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
16777         none was explicitly set. Fixes part of bug #79949.
16778
16779 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
16780
16781         * ToolStripComboBox.cs: Add AutoComplete*.
16782
16783 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
16784
16785         * ToolStripComboBox.cs: Add FlatStyle.
16786
16787 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
16788
16789         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
16790         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
16791
16792 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16793
16794         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
16795           CheckBox.cs, RadioButton.cs, BindingSource.cs,
16796           DataGridColumnStyle.cs: Remove warnings.
16797
16798 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
16799
16800         * Menu.cs: MergeMenu: Check menu argument for null before looping over
16801           it.
16802         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
16803           visibility of mdi child forms. FormSizeChangedHandler: update the
16804           maximized size if size has changed while maximized.
16805         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
16806           creating the handle.
16807         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
16808           avoid creating the handle if not created.
16809         * XplatUI.cs: Update debug output.
16810         * XplatUIStructs.cs: Added ToString's for a couple of structs.
16811
16812 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
16813
16814         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
16815         ProcessCmdKey().
16816         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
16817         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
16818         Implement keyboard shortcuts.
16819
16820 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
16821
16822         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
16823         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
16824         ColorDialog and all derived classes.
16825
16826 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
16827
16828         [ Fixes bug #79828 ]
16829
16830         * ToolBar.cs:
16831         - Rename ToolBarButtonInfor to ToolBarItem.
16832         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
16833         - Maintain an array of ToolBarItem, used instead of ToolBarButton
16834         collection to be able add same button more than one time on a toolbar.
16835         - Refactory all properties and methods to use ToolBarItem. 
16836
16837         * ToolBarButton.cs: 
16838         - Remove all propeties and methods that is now in ToolBarItem.
16839         - Rectangle propery now gets the rectangle from first ToolBarItem to
16840         mimic win32 behavior.
16841         - Size calculation and layout methods also removed.
16842
16843         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
16844         ToolBarItem instead of ToolBarButton to right drawing buttons when
16845         same button/separator was added more than one time to ToolBar.
16846
16847         * ThemeNice.cs: Same as above. 
16848
16849 2007-03-15  Andreia Gaita  <avidigal@novell.com>
16850
16851         * XplatUIX11.cs: Fire extra MouseMove events right after
16852         MouseDown and MouseUp, emulating win32's <censored> behaviour
16853         for apps that rely on it.
16854
16855 2007-03-15  Jackson Harper  <jackson@ximian.com>
16856
16857         * TextControl.cs:
16858         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
16859         it is drawn on the controls client window and there is no NC
16860         area.
16861         - Set the background color to gray on 2.0 when we are readonly.
16862
16863 2007-03-15  Chris Toshok  <toshok@ximian.com>
16864
16865         [ Fixes bug #81144 ]
16866         
16867         * XplatUIX11.cs: implement VirtualScreen independently of
16868         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
16869         property.
16870
16871 2007-03-15  Chris Toshok  <toshok@ximian.com>
16872
16873         * Hwnd.cs: add an internal field for the cached_window_state.
16874
16875         * XplatUIX11.cs: cache the window state, invalidating the cache
16876         (and thus re-querying the X server) only when we see an update to
16877         the _NET_WM_STATE property.
16878
16879 2007-03-15  Chris Toshok  <toshok@ximian.com>
16880
16881         * BindingSource.cs: get a lot of the unit tests working.
16882
16883 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
16884
16885         * Control.cs: Modify UpdateStyles to store distances when bounds >=
16886         0 instead of just bounds > 0.  [Fixes bug #80912]
16887
16888 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
16889
16890         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
16891         and methods.
16892
16893 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
16894         
16895         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
16896         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
16897         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
16898         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
16899
16900 2007-03-15  Chris Toshok  <toshok@ximian.com>
16901
16902         [ Fixes #81101 ]
16903         
16904         * Control.cs: add Ivan's fix for 81101, with a slight modification
16905         - you can set control.Target to null.
16906
16907 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
16908
16909         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
16910         HideDropDown, use Hide instead to prevent an NRE.
16911         [Fixes bug #81147]
16912
16913 2007-03-14  Jackson Harper  <jackson@ximian.com>
16914
16915         * TextBoxBase.cs: Mess with the creation stuff a little. We need
16916         to calculate the document before the handle is created, in some
16917         cases. (Actually just one case).
16918
16919 2007-03-14  Jackson Harper  <jackson@ximian.com>
16920
16921         * TextBoxBase.cs: Need to display the caret after letting the base
16922         wndproc handle the focus methods, because the caret display
16923         methods check the focus state.
16924         - Try to display the caret after updating it's position with SelectWord.
16925         - Don't need to do an immediate update on this recalc, since there
16926         will be an invalidate anyways.
16927
16928 2007-03-14  Jackson Harper  <jackson@ximian.com>
16929
16930         * TreeView.cs: Some workarounds so that we can match event order a
16931         little better.
16932
16933 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
16934
16935         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
16936         #80803. Avoid NullReferenceException when Control does not have
16937         parent. Fixed different blinkstyle issues. Only subscribe to Tick
16938         event a single time. Only draw error icon when control is created and
16939         visible. Fixes failing unit tests.
16940
16941 2007-03-14  Andreia Gaita  <avidigal@novell.com>
16942
16943         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
16944         Selecting events. Fire Leave and Enter events when changing tabs.
16945
16946 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
16947
16948         * TreeView.cs: Add TreeViewNodeSorter.
16949         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
16950
16951 2007-03-14  Chris Toshok  <toshok@ximian.com>
16952
16953         * Form.cs: go ahead and remove the RecreateHandles that jpobst
16954         removed earlier and I had him add back it.  It turns out metacity
16955         *does* in fact handle the MOTIF_WM_HINTS property changing, it
16956         just doesn't redraw the window titlebar until you resize the
16957         window.  This also means we aren't recreating the entire window
16958         hierarchy on X when you change this property.  And it looks better
16959         on windows, too.
16960
16961 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16962
16963         * ListViewItem.cs:
16964         * ListView.cs: Collecting selection information
16965         is now done in SelectedIndexCollection rather than in
16966         SelectedListViewItemCollection. This is done so we can
16967         have the selection information code in one single place
16968         (virtual mode selection information entirely depends on
16969         SelectedIndexCollection).
16970
16971 2007-03-13  Miguel de Icaza  <miguel@novell.com>
16972
16973         * ErrorProvider.cs: Add stubs for ISupportInitialize
16974
16975 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16976
16977         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
16978         in the right order with the right values, from the Checked property, 
16979         just as MS does (instead of triggering them from ListView).
16980
16981         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
16982
16983 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
16984
16985         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
16986         the correct handler in OnItemCheck method (ItemCheckEventHandler 
16987         instead of EventHandler). This used to throw an InvalidCastException.
16988
16989 2007-03-13  Jackson Harper  <jackson@ximian.com>
16990
16991         * TextBoxBase.cs: Calculate the document before the handle is
16992         created, so there isn't an extra invalidate called.
16993
16994 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
16995
16996         * Form.cs: Don't set owner in ShowDialog until we are sure
16997         that we aren't going to throw an exception.  [Fixes bug #80773]
16998
16999 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
17000
17001         * TreeView.cs: Make it compile.
17002
17003 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
17004
17005         * Control.cs: Another place we don't call SizeFromClientSize.
17006         * Form.cs: Another place we don't call SizeFromClientSize.
17007         [Fixes bug #81125]
17008
17009 2007-03-12  Jackson Harper  <jackson@ximian.com>
17010
17011         * TreeView.cs: Basically emulating some strangness here with
17012         exanding nodes and setting node positions when windows aren't
17013         created.
17014         - Also attempting to walk the node tree less than previously, and
17015         just use visible order calculations for determining offsets.
17016         - oops made scrolling backwards.
17017         * TreeNode.cs: We need to start nodes with a zero visible order,
17018         because the order calcs are based on the first nodes order.
17019
17020 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
17021
17022         * Form.cs: Don't exit the program if RecreateHandle is called on
17023         the main form.
17024
17025 2007-03-12  Chris Toshok  <toshok@ximian.com>
17026
17027         * XEventQueue.cs: remove the use of PostQuitState.
17028
17029         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
17030         WM_QUIT message in GetMessage, return false (and if we're in the
17031         nested WaitForHwndMessage, repost the WM_QUIT message).
17032
17033 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
17034
17035         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
17036         or the MaximizeBox properties.  [Part of bug #80640]
17037
17038 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
17039
17040         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
17041         no links.
17042
17043 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
17044
17045         * ToolStripItem.cs: Fix some tests I broke by checking Visible
17046         instead of visible.
17047
17048 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
17049
17050         * FileDialog.cs: Use text of File name combobox to determine what
17051         files the user selected. Added tokenizer to parse the file names.
17052         Fixes bug #81123.
17053
17054 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
17055
17056         * Control.cs: We can't call SizeFromClientSize in the constructor,
17057         but we still need to do the same work, so make an internal version.
17058         [Fixes bug #80621]
17059
17060 2007-03-12  Jackson Harper  <jackson@ximian.com>
17061
17062         * TreeView.cs:
17063         * TreeNode.cs:
17064         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
17065         IsExpanded.
17066
17067 2007-03-12  Jackson Harper  <jackson@ximian.com>
17068
17069         * TextBoxBase.cs: Now that the handles are being created a little
17070         later, we need to make sure that the document is recalculated when
17071         the handle is created.
17072
17073 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
17074
17075         * Theme.cs: GetLinkFont abstract method added.
17076         
17077         * LinkLabel.cs: 
17078         - Remove CalcTrimRectangle, no longer needed.
17079         - Factor also remove, position issues must be fixed in libgdiplus.
17080         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
17081         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
17082         care about font used to draw links.
17083         - Set TabStop to true when control is "Selectable", control is selectable
17084         when have one or more links. Fixes #80501 (test case is also added).
17085         - Set the LinkArea values after links change, LinkArea values must be
17086         based in first link position and size, a test case was created.
17087         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
17088         the attribute must be true LinkArea.Length > 0. The same was applied to
17089         TabStop.
17090         
17091         * ThemeWin32Classic.cs: 
17092         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
17093         in draw method.
17094         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
17095         color change.
17096         - Draw focus rectangle for every parts focused, including parts that 
17097         is on another line, its because regions returns various rectangles
17098         and not only one. Needed to mimic W32 look.
17099         - Uses Graphics.Clip to delimite region painted, it mean that now 
17100         complete text is passed to DrawString, with this we solve layout
17101         issues without create another text renderer.
17102         - Uses Region.Intersect to fix some flickers problems, now only needed
17103         parts will redrawed.
17104         - This changes fixes #79614 and some other unreported issues, on Linux 
17105         some layout problems still remain, the problem is under 
17106         MeasureCharacterRanges but it is an libgdiplus bug.
17107
17108 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
17109
17110         * TextBox.cs: Set for foreground color.
17111         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
17112         this is already done in Control.
17113
17114 2007-03-10  Jackson Harper  <jackson@ximian.com>
17115
17116         * TextBox.cs: Set the background color, but reset the
17117         backcolor_set flag which is just for the user setting the
17118         background color.
17119
17120 2007-03-09  Chris Toshok  <toshok@ximian.com>
17121
17122         * Control.cs: really remove the call to XplatUI.SetVisible from
17123         CreateHandle(), like I said I did when I merged the branch.
17124
17125         * BindingSource.cs: implement some more of this stuff.
17126
17127 2007-03-09  Jackson Harper  <jackson@ximian.com>
17128
17129         * TextBox.cs: Don't explicitly set our background colors.
17130         * TextControl.cs:
17131         * TextBoxBase.cs: Draw readonly text.
17132         - Need to invalidate when backcolor or readonly are changed.
17133         
17134 2007-03-09  Jackson Harper  <jackson@ximian.com>
17135
17136         * TextBoxBase.cs: Don't set the forecolor until the handle is
17137         created.
17138         - Do not raise OnPaint, and removed some old debug code.
17139
17140 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
17141
17142         * ScrollableControl.cs: Fix mouse wheel scrolling.
17143
17144 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
17145
17146         * Control.cs: Wire up MouseDoubleClick event.
17147
17148 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
17149
17150         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
17151         top or bottom.
17152         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
17153         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
17154         item is added.  This logic was moved to ToolStrip.OnItemAdded.
17155         [Fixes bug #81090]
17156
17157 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17158
17159         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
17160
17161 2007-03-08  Jackson Harper  <jackson@ximian.com>
17162
17163         * TreeView.cs: Show the correct image for selected node (this used
17164         to work, not sure how the code got deleted). Also implemented 2.0 feature
17165         SelectedImageKey.
17166
17167 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17168
17169         * ListView.cs:
17170         * ListViewItem.cs: Cache index in items when retrieving them
17171         in VirtualMode.
17172
17173 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
17174
17175         * ToolStripItem.cs: Don't return the explicit_size if we are using 
17176         AutoSize.  Fixes invalidation issue when user has explicitly set a
17177         size and has AutoSize = true.
17178
17179 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
17180
17181         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
17182
17183 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17184
17185         * DataGridView.cs: Remove event handler from DataView when a
17186         DataTable is used as DataSource.
17187
17188 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
17189
17190         * Control.cs: Create internal setter for client_size to allow it to be
17191         set without triggering resizing code.
17192         * Form.cs: Calculate client_size in constructor, only change client_size
17193         in FormBorderStyle property if Handle has been created.
17194         [Fixes #80574, #80791]
17195
17196 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
17197
17198         * SystemInformation.cs: Add TerminalServerSession.
17199
17200 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
17201
17202         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
17203         TreeView code.
17204
17205 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
17206
17207         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
17208         Handle before we were supposed to.  Now checks ActivateOnShow property
17209         in Control.
17210         * Control.cs: Add internal ActivateOnShow property.
17211         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
17212         for ActivateOnShow.
17213         * Hwnd.cs Remove no longer needed no_activate field.
17214
17215 2007-03-07  Jackson Harper  <jackson@ximian.com>
17216
17217         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
17218         2.0 properties
17219         * DrawTreeNodeEventHandler.cs: Add
17220         * DrawTreeNodeEventArgs.cs: Correct default value.
17221         
17222 2007-03-07  Chris Toshok  <toshok@ximian.com>
17223
17224         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
17225         to be called before NativeWindow.WndProc.  Put the HwndCreating
17226         magic there to hook up our Hwnd's to handles.
17227
17228 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
17229
17230         * DataGridView.cs: Comment out debug code.
17231
17232 2007-03-07  Chris Toshok  <toshok@ximian.com>
17233
17234         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
17235         to make the rest of the world happy]
17236
17237         * Control.cs (CreateHandle): there's no need to call
17238         XplatUI.SetVisible here, it's effectively done by
17239         XplatUI.CreateWindow on X now, and always was on windows.
17240
17241         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
17242         shortcircuit out of the loop if we have a message loop running on
17243         this thread.
17244
17245         [Changelog from merge]
17246
17247         2007-03-05  Chris Toshok  <toshok@ximian.com>
17248
17249                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
17250                 causes handle creation.
17251
17252         2007-02-28  Chris Toshok  <toshok@ximian.com>
17253
17254                 * ApplicationContext.cs: Add a flag to make sure we only raise the
17255                 ThreadExit event once (ExitThreadCore can be indirectly called
17256                 from a few places.)  I don't like the additional flag, but it
17257                 makes the event ordering/count correct.
17258
17259                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
17260                 without locking the collection.  An enumerator doesn't give us any
17261                 protection from modification anyway.  Lock the thread hash and
17262                 replace the complicated enumerator loop with a foreach.
17263                 (Application.CloseForms): make internal so it can be called from
17264                 ApplicationContext.  This should probably be moved to MWFThread.
17265                 (Application.ExitThread): don't call MWFThread.Current.Exit()
17266                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
17267                 when the runloop exits (in response to WM_QUIT.)
17268                 (Application.RunLoop): add a comment (and check) for
17269                 context.MainForm being null after setting context.MainForm.Visible
17270                 = true.  This is because you're perfectly free to dispose of a
17271                 form in VisibilityChanged.  Chalk this up to another case where we
17272                 need to synchronously generate WM_ACTIVATE from Control.Show.
17273                 Also, add handling for WM_QUIT here so we'll exit the loop.
17274                 
17275                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
17276                 fact that we don't wait if we're only unmapping the whole_window
17277                 makes me a bit nervous, but it doesn't seem to cause any problems
17278                 yet.
17279
17280                 also, add a comment about the stupid, broken and wrong resetting
17281                 of PostQuitState to false in GetMessage().
17282
17283                 In PostQuitMessage, we need to add a WM_QUIT message to the
17284                 thread's queue.  We use the FosterParent to get the right
17285                 handle/hwnd/queue.
17286
17287                 Lastly, in SetVisible, we need to unmap both windows, since the
17288                 waiting only happens when we're unmapping the client window.  So
17289                 now, the *only* time we unmap just the whole_window is in the hack
17290                 for resizing a control to 0,0.
17291                 
17292         2007-02-21  Chris Toshok  <toshok@ximian.com>
17293
17294                 * Application.cs (CloseForms): rewrite this so that we don't
17295                 modify the list while we're traversing it.
17296
17297         2007-02-20  Chris Toshok  <toshok@ximian.com>
17298
17299                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
17300                 of OnHandleCreated.
17301                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
17302                 handle is created.  otherwise we'll create it here.
17303                 (VerticalScrollEvent): same here.
17304
17305                 * Application.cs (CloseForms): call Form.Dispose, don't post
17306                 WM_CLOSE_INTERNAL.
17307
17308                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
17309                 here. Application should Dispose() of the Form's.
17310
17311                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
17312                 WM_DESTROY as well.
17313                 (MapWindow,UnmapWindow): only actually do the waiting for
17314                 SHOWWINDOW if the control we're dealing with is a Form.
17315                 (CreateWindow): if the control isn't a form, SendMessage
17316                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
17317
17318                 * Control.cs (SetVisibleCore): always use is_visible here, not
17319                 value.  If we use value, we can end up re-setting something
17320                 visible if, for instance, you do Control.Hide() in a delegate
17321                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
17322
17323         2007-02-20  Chris Toshok  <toshok@ximian.com>
17324
17325                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
17326                 the message we need.  PeekMessage returning false should not be a
17327                 condition under which we exit the loop.
17328
17329         2007-02-15  Chris Toshok  <toshok@ximian.com>
17330
17331                 * Control.cs (Refresh): only refresh if we've got a handle and are
17332                 visible.
17333                 (CreateAccessibilityInstance): CreateControl() here.
17334                 (UpdateChildrenZOrder): complicate the code loop even more by
17335                 taking into account controls that haven't had their handle
17336                 created, and those that aren't visible.  But on the flip side,
17337                 simplify the code by splitting it into two loops.  one which
17338                 builds up the list of child controls we're interested in, and the
17339                 other that sets the z order of those children.
17340
17341         2007-02-14  Chris Toshok  <toshok@ximian.com>
17342
17343                 * Control.cs: Control.AccessibilityObject causes the control to be
17344                 created, not just the handle.
17345
17346         2007-02-14  Chris Toshok  <toshok@ximian.com>
17347
17348                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
17349                 problem on X where a window might have its handle created (and be
17350                 visible) while the window is unmapped.  calling XConfigureWindow
17351                 on an unmapped window is bad, and generates X errors.
17352
17353         2007-02-13  Chris Toshok  <toshok@ximian.com>
17354
17355                 * Control.cs (CreateHandle): don't loop over our children setting
17356                 their parent here.  do it when in WndProc when we're shown.
17357                 (UpdateChildrenZOrder): make this internal so we can call it from
17358                 ScrollableControl.
17359                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
17360                 creating its handle.  Also, remove the calls to PerformLayout from
17361                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
17362                 OnVisibleChanged only seems to be called directly here for the
17363                 toplevel control.  It's propagated down the window hierarchy by
17364                 calls to child.OnParentVisibleChanged.
17365                 (OnVisibleChanged): don't do layout here - it's done (oddly
17366                 enough, according to a glance at stack traces on ms.net..) in
17367                 ScrollableControl.
17368                 
17369                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
17370                 z order of our children before calling PerformLayout.
17371
17372         2007-02-12  Chris Toshok  <toshok@ximian.com>
17373
17374                 [big change, fixes #80020]
17375                 
17376                 * AccessibleObject.cs: we need to make owner internal again to fix
17377                 some of ControlAccessibleObject.
17378
17379                 * Control.cs: lots of changes here.  add support for WM_CREATE,
17380                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
17381                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
17382                 we create child controls.  leave the MonoTODO's for the
17383                 accessibility calls, but fix the exceptions so the tests pass.
17384
17385                 Add the InvalidOperationExceptions to Invoke methods, and remove a
17386                 couple of InvokeInternal methods we aren't using.
17387                 
17388                 Also, add a couple of CreateHandle calls in places where we know
17389                 the handles are being created but our code doesn't reference
17390                 .Handle.
17391
17392                 Make SetVisibleCore call OnVisibleChange if the handle isn't
17393                 created.  If the handle is created, we rely on XplatUI.SetVisible
17394                 generating the event synchronously.
17395                 
17396                 Lastly, make sure we don't use this.Handle inside CreateHandle,
17397                 because we can call back into client (and that code can dispose of
17398                 the control).
17399
17400                 * XplatUIStructs.cs: misc/cleanup.
17401
17402                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
17403                 although we don't populate the wParam properly.
17404                 (CreateWindow): generate WM_CREATE.
17405                 (MapWindow,UnmapWindow): make these calls synchronous, at great
17406                 performance expense (particularly in the unmap case), to match
17407                 win32 behavior.
17408
17409                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
17410                 to call it.
17411                 (set_MdiParent): don't recreate the handle unless it's been
17412                 created already.
17413                 
17414                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
17415                 it's created.
17416
17417                 * NativeWindow.cs: this is probably the weirdest part of the
17418                 patch.  We need a way to link up the window being created to the
17419                 WM_CREATE message.  Since we can only be creating one window at a
17420                 time on a given thread, we keep track of a per-thread reference so
17421                 we can dispatch it properly.  We also need to keep track of the
17422                 Hwnd currently being created so that the win32 backend doesn't
17423                 have problems.
17424                 
17425                 * XplatUIWin32.cs: a similar change to the one we made in
17426                 NativeWindow.cs.
17427
17428 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
17429
17430         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
17431         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
17432         to draw the menu shortcut string.
17433
17434 2007-03-07  Jackson Harper  <jackson@ximian.com>
17435
17436         * TreeNode.cs: Add the 2.0 collapse method.
17437
17438 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17439
17440         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
17441
17442 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17443
17444         * DataGridView.cs: Change DataSource will clear column and row
17445         lists. Call Invalidate() to reflect DataSource change.
17446
17447 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17448
17449         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
17450         and a new row is added to it.
17451
17452 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
17453
17454         * DataGridView.cs: Add columns when DataSource is en empty list but
17455         is a System.Data.DataView (from a System.Data.DataTable).
17456
17457 2007-03-06  Andreia Gaita  <avidigal@novell.com>
17458
17459         * Label.cs: Implement AutoEllipsis (2.0)
17460
17461 2007-03-06  Jackson Harper  <jackson@ximian.com>
17462
17463         * TreeView.cs: Implement 2.0 TopNode setter property.
17464         - Use a local var instead of the skipped_nodes field for computing
17465         how many nodes to skip.  Otherwise we won't scroll because the
17466         valuechanged handler checks if skipped_nodes is equal to the new
17467         value.
17468         - Implement 2.0 Sort method.
17469         - Add useless 2.0 DoubleBuffer property
17470         - Implement 2.0 LineColors property.  Lets you change the color of
17471         the lines in the tree. Terribly useful for creating non cohesive
17472         desktops.
17473         - Implement 2.0 image key feature.
17474
17475 2007-03-06  Jackson Harper  <jackson@ximian.com>
17476
17477         * TreeView.cs: We can't get the bounds of the nodes before raising
17478         the AfterSelect event, because that event could change the node's
17479         bounds (scrolling, font change, etc).
17480
17481 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17482
17483         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
17484         * Form.cs: Don't recreate handle when creating FormWindowManager, just
17485           update window styles. In CreateParams us VisibleInternal instead of
17486           VIsible to get the actual visible flag set for this form.
17487         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
17488           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
17489           handle the case when the form is already maximized, in which case
17490           it should be restored. Fixes #81043.
17491
17492 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17493
17494         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
17495
17496 2007-03-05  Jackson Harper  <jackson@ximian.com>
17497
17498         * TreeViewHitTestInfo.cs: implement.
17499
17500 2007-03-05  Jackson Harper  <jackson@ximian.com>
17501
17502         * InternalWindowManager.cs: class status fix.
17503
17504 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17505
17506         * InternalWindowManager.cs: All windows that have a parent
17507         are confined to their parent when they're being moved.
17508         Fixes #80822.
17509
17510 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
17511
17512         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
17513         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
17514
17515 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17516
17517         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
17518           buttons invisible before deciding which ones should be visible
17519           (fixes minimize/maximize buttons showing up in toolwindows). Remove
17520           an unused variable.
17521         * InternalWindowManager.cs: Remove warning.
17522
17523 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17524
17525         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
17526         to throw an InvalidOperationException is virtual mode is being used.
17527
17528 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
17529
17530         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
17531         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
17532         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
17533         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
17534         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
17535         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
17536
17537 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17538
17539         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
17540           driver.KeyboardDelay from XplatUI.KeyboardDelay 
17541         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
17542           (patch by Sergey Volk)
17543
17544 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17545
17546         * ToolWindowManager.cs: Added, contains logic for
17547           tool windows.
17548         * CreateParams.cs: Add a few helper methods and an
17549           internal variable to know which control the CreateParams belongs
17550           to.
17551         * Control.cs: Call Form.ChangingParent when the
17552           parent is about to be changed.
17553         * XplatUIX11.cs: DeriveStyles (): Set
17554           caption_height for all windows that have captions and are children.
17555           Update to use ToolWindowManager instead of InternalWindowManager
17556           for ToolWindows.
17557         * XplatUIWin32.cs: Set fake window styles for all
17558           windows that have window managers.
17559         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
17560           now duplicated for mdi windows when they are
17561           maximized, first for the buttons the window itself has, then for
17562           the buttons that appear in the menu bar. Makes things a little
17563           easier). Updated UpdateWindowDecorations, SetWindowState and the
17564           mouse eventhandlers accordingly.
17565         * Form.cs: Add ChangingParent (), contains the
17566           logic of what should happen when the parent changes. In MdiParent
17567           don't set things that ChangingParent () is doing. When handling
17568           WM_CLOSE, we can close the form if there are any other modal forms
17569           and the current form is a descendent of the modal form.
17570         * InternalWindowManager.cs: A lot of refactoring,
17571           the title buttons are now extracted to a separate container class
17572           that takes care of all button code (clicks, tooltips, etc). Moved
17573           Iconic|Maximized|Normal Bounds properties to this class from
17574           MdiWindowManager, so that the window state logic can succeed for
17575           other than mdi wm's. Implemented general window state change logic.
17576           Moved CreateButtons to ThemeWin32Classic, since the theme might
17577           override which buttons are available when as well as the exact
17578           location.
17579         * FormWindowManager.cs: Added, contains logic for
17580           normal forms.
17581         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
17582           which buttons go where (and if they are at all visible). 
17583           Removed special handling of maximized windows, since they aren't special. 
17584           In DrawManagedWindowDecorations don't try to draw the text if it is
17585           empty.
17586         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
17587           use whatever the wm gives us.
17588
17589 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
17590
17591         * ButtonBase.cs: Add 2.0 properties.
17592         * Button.cs: Override Draw for 2.0.
17593         * Control.cs: Add Entered and Selected properties.
17594         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
17595         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
17596         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
17597         buttons.
17598         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
17599
17600 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
17601
17602         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
17603
17604 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
17605
17606         * XplatUIWin32.cs: Register a new class with Windows each time we get
17607         a new ClassStyle.  [Fixes bugs #79432, #80817]
17608         * Controls.cs: Set the correct ClassStyle in CreateParams.
17609         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
17610
17611 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
17612
17613         * ListView.cs: Add fireEvent argument to ReorderColumn since the
17614         ColumnReordered event must not be signaled when modifying DisplayIndex
17615         of a ColumnHeader. Added internal ReorderColumns method which takes
17616         care of drawing, and updating the internal DisplayIndex of the
17617         ColumnHeader. Added AddColumn method which is invoked from
17618         ColumnHeaderCollection when adding or inserting columns, and which
17619         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
17620         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
17621         Recalculated dispay indices after removing a ColumnHeader.
17622         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
17623         match MS. Allows last display index to be returned after ListView
17624         is disposed. Update actual location of ColumnHeader when DisplayIndex
17625         is modified.
17626
17627 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
17628
17629         * LinkLabel.cs: Improve CalcTrimRectangle.
17630         
17631         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
17632
17633 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
17634
17635         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
17636         get rectangle as a result value.
17637
17638 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
17639
17640         * LinkLabel.cs: Theres some diferences between rectangle return from 
17641         MeasureCharacterRanges and the area used for DrawString to fix this 
17642         CalcMeasurementFactor method was created, it calcules the diferences
17643         to be use later to adjust rectangle in draw operations. Fixes #80473.
17644         
17645         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
17646         to adjust draw rectangle.
17647
17648 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
17649
17650         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
17651         text and some other changes to reduce and optimize source code.
17652
17653 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
17654
17655         * RadioButton.cs: Implement 2.0 event.
17656         * RelatedImageListAttribute.cs: Implement new class.
17657
17658 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
17659
17660         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
17661
17662 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
17663
17664         * CheckBox.cs: Implement 2.0 functionality.
17665
17666 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17667
17668         * ListView.cs: Refactor Add and AddRange methods of
17669         ListViewItemCollection, to not update the ListView
17670         everytime an item is added in AddRange. Also move the update
17671         code to a new CollectionChanged method, and call it
17672         from other methods that need it as well (this should also fix some
17673         bugs when Sorting is used).
17674
17675 2007-02-27  Jackson Harper  <jackson@ximian.com>
17676
17677         * TextControl.cs: Try to never let the caret stay in a non-text
17678         tag.
17679         * TextBoxBase.cs: Update the caret.
17680
17681 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
17682
17683         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
17684         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
17685         delete POINT structure, duplicate of one in XplatUIStructs.
17686         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
17687
17688 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
17689
17690         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
17691         edit box since otherwise the Label would immediately be set (even if
17692         the user did not modify the label). In OnKeyDown set Handled to true
17693         if Return or Escape was pressed. In ColumnHeaderCollection unlink
17694         columns that are to be removed. In ListViewItemCollection unlink items
17695         that are to be removed.
17696
17697 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
17698
17699         * TextRenderer.cs: If we set a GDI clip region, we need to clear
17700         it when we are done.  [Fixes bug #80949]
17701
17702 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17703
17704         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
17705
17706 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17707
17708         * ListView.cs: I forgot to commit the changes for ListView 
17709         in my previous patch.
17710
17711 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17712
17713         * Clipboard.cs: Partially implement an overload of SetDataObject.
17714         * Form.cs: Implement ShowWithoutActivation.
17715         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
17716
17717 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17718
17719         This is a first set of changes to make the Virtual mode works,
17720         by avoiding the retrieval of ListViewItem instances until
17721         draw time.
17722
17723         * ListView.cs: Store item position in the ListView instead of the
17724         ListViewItem, this way we don't request the Bounds property of
17725         ListViewItem inside the ListView calculations, as well as cache the item
17726         size in item_size field. Store indexes instead of ListViewItem
17727         instances in the matrix used by icon view. Add a ItemMatrixLocation
17728         struct to hold the row and col info of the matrix info.
17729
17730         * ListViewItem.cs: Don't store the location anymore, and only cache
17731         the rectangles for GetBounds. Use the ListView.GetItemLocation
17732         method to retrieve the actual location.
17733
17734 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17735
17736         * TextRenderer.cs: Add clipping support, thanks to George.
17737         [Fixes bug #80949]
17738
17739 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17740
17741         * ListViewItem.cs: Cancel label edit when item is removed from 
17742         ListView.
17743         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
17744         event before the edit textbox is displayed.  Added CancelEdit method
17745         which is used end to editing while ignoring the value set by the
17746         user. In EndEdit, set focus to ListView to avoid losing focus to
17747         other controls. In ListViewItemCollection.Clear, cancel editing of
17748         any of the items.  In Remove, cancel editing of item being removed.
17749         Avoid udplicate code by modifing RemoveAt to invoke Remove.
17750
17751 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17752
17753         * FileDialog.cs: Update FSEntry when move is successful. Fixes
17754         bug #80948.  
17755
17756 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17757
17758         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
17759         compatible with non X11 systems. Fixes #80901.
17760
17761 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
17762
17763         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
17764         whether the item should be unselected and reselect. We do no want this
17765         when we're starting to edit the label. Do not fire the 
17766         SelectedIndexChanged event from ListView when its already been fired
17767         by modifying ListViewItem.Selected. Fixes bug #80943.
17768
17769 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17770
17771         * TextRenderer.cs: Previos commit logic was backwards.
17772
17773 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
17774
17775         * TextRenderer.cs: Don't add padding on MeasureText if we were
17776         sent the NoPadding flag.
17777
17778 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17779
17780         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
17781         after DrawButton. To prevent image overlaps button borders SetClip and 
17782         ResetClip added before and after draw image. Fixes #79129.
17783
17784 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
17785
17786         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
17787         window size, it fix problem when you run under win32 that theres
17788         Size diferent than ClientSize. Also fix controls size and positions
17789         to mimic Win32. Fixes #80837.
17790
17791 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
17792
17793         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
17794         menu area to fix some problems for non X11 systems. Fixes #80613.
17795
17796 2007-02-22  Jackson Harper  <jackson@ximian.com>
17797
17798         * TreeNode.cs: When a node is expanded, set its is_expanded flag
17799         even if it doesn't have any children.
17800
17801 2007-02-22  Jackson Harper  <jackson@ximian.com>
17802
17803         * TreeView.cs: Calculate the top node 'on the fly', this
17804         eliminates issues where you need to click on the tree before
17805         scrolling it to get the top node computed correctly.
17806         * TreeNodeCollection.cs: We don't need to mess with the top node
17807         anymore.
17808
17809 2007-02-22  Jackson Harper  <jackson@ximian.com>
17810
17811         * DataGridViewRow.cs: Fix typo so height can actually be set.
17812         Patch by Peter Grimm.
17813
17814 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17815
17816         * FileDialog.cs: Fixed support for renaming files and directories.
17817         * ListView.cs: Do not lose focus when edit is canceled. Process
17818         Escape as regular key (to prevent closing of dialogs).
17819
17820 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17821
17822         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
17823         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
17824
17825 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
17826
17827         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
17828         did not modify label.
17829         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
17830         modified the text. Reset Label when user presses Escape in edit mode.
17831         Move focus to ListView after having cancelled or finished editing the
17832         label.
17833
17834 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
17835
17836         * ComboBox.cs: Removed unnecessary initializations. Marked items field
17837         private. Clear textbox when Text is set to null and SelectedIndex is
17838         already -1.
17839         * FileDialog.cs: Removed unnecessary initializations. Removed 
17840         workarounds for ComboBox bugs that are now fixed. Modified
17841         DefaultExt, InitialDirectory and Title property to change null to
17842         zero-length string in getters. Avoid directly accessing fields.
17843
17844 2007-02-20  Jackson Harper  <jackson@ximian.com>
17845
17846         * TextControl.cs: Remove RecalAlignments call, that was some
17847         debugging leftovers.
17848         - Don't use the line indent when we shouldn't.
17849         * RichTextBox.cs: Add support for paragraph left indents.
17850
17851 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
17852
17853         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
17854         Seems like the class status pages doesn't catch params differences.
17855
17856 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
17857
17858         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
17859
17860 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
17861
17862         * ComboBox.cs: Setting Text should have no effect if item text of
17863         selected item exactly matches value. First lookup text using
17864         case-sensitive comparison, and fallback to case-insensitive comparison.
17865         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
17866         allow startIndex to be last index. Changed ArgumentOutOfRangeException
17867         paramname to match MS. Restart from first item if string is not found
17868         after startIndex. Fixed paramname of ArgumentNullException that is
17869         thrown for null value in ObjectCollection.Contains.
17870
17871 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
17872
17873         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
17874
17875 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17876
17877         * ListControl.cs: In SelectedValue use value.Equals to compare for
17878         equality instead of ==, otherwise it will fail for strings.
17879         Fixes #80794.
17880
17881 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17882         
17883         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
17884         since the caret won't show up unless ShowSelection is true. 
17885         Fixes #80795.
17886
17887 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17888
17889         * Application.cs: When disabling all forms but the main form, do not
17890           disable any descendants of the main form (such as mdi children or
17891           other parented forms). Fixes #80822 on Windows.
17892         * Form.cs: If we have a parent, set the WS_CHILD style.
17893         * Control.cs: Update the window styles if the control whose parent has
17894           changed is a form (the WS_CHILD style has to be switched).
17895
17896 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
17897
17898         * XplatUIStructs.cs: MsgUIState structure added.
17899
17900 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
17901
17902         * FileDialog.cs: Removed need for separate fileName field. On 2.0
17903         profile, do not check filename(s) for illegal character if filename(s)
17904         were set non-interactively but always check on 1.0 profile. Fixed NRE
17905          in DefaultExt and only strip off first leading dot. Improve exception
17906         message when invalid Filter is set. Do not ignore InitialDirectory if
17907         it does no exist. Store specified Title, and if empty use default
17908         title (depending on type of dialog). Added an internal DialogTitle 
17909         property for retrieving dialog title. Fixed logic of displayed dir to
17910         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
17911         string as its buggy.
17912         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
17913         FileName is a zero-length string (it can never be null). Override 
17914         DialogTitle property to set default title of dialog box.
17915         * SaveFileDialog.cs: Override DialogTitle property to set default
17916         title of dialog box.
17917
17918 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
17919
17920         * FileDialog.cs: Modify default text of filename and filetype labels
17921         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
17922         after we've updated the SelectedIndex. Fixes part of bug #80887.
17923         * SaveFileDialog.cs: Set text of filetype label.
17924
17925 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17926
17927         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
17928         label field. Needed by latest Jackson's fixes for ListView.
17929
17930 2007-02-16  Andreia Gaita  <avidigal@novell.com>
17931
17932         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
17933         print preview images.
17934
17935 2007-02-16  Jackson Harper  <jackson@ximian.com>
17936
17937         * ListView.cs: Make AfterLabelEdit work correctly.
17938         * FileDialog.cs: After changing the name of the folder, we have to
17939         make sure that it is created, or that we pop up an error because
17940         it already exists.
17941
17942 2007-02-16  Jackson Harper  <jackson@ximian.com>
17943
17944         * X11Dnd.cs: Implement aliases on mime handlers, so things like
17945         System.String are mapped to text.
17946         - Handle dataobjects, getting all the possible formats out of them
17947         - We dont need the drag event args before we give feedback. This
17948         allows feedback cursors to be immediate before selections have
17949         been converted.
17950
17951 2007-02-16  Jackson Harper  <jackson@ximian.com>
17952
17953         * TextBoxBase.cs: Modified the method for inserting images to
17954         taking a line and position instead of tag and position.
17955         * RichTextBox.cs: Handle PngBlip data by inserting the png image
17956         into the RTF file.
17957         * TextControl.cs: Allow images to be inserted as the first tag of
17958         a line.
17959         - Fix some off by one issues when we assume the first tag is a
17960         text tag, not an image tag.
17961
17962 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17963
17964         * ListView.cs: Set focus to ListView when ItemControl gets a
17965         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
17966         Fixes part of #80467.
17967
17968 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
17969
17970         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
17971           validate Text input (if null or empty string reset Value to default
17972           value). Fixes #80830.
17973
17974 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
17975
17976         * ListView.cs: Set owner as null for columns and items when
17977         Dispose is invoked. Fixes #80607.
17978
17979 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
17980
17981         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
17982         showing DropDowns, don't show a Grip when doing Flow layout.
17983         [This fixes the toolbox in PDN 2.72.]
17984         * ToolStripItem.cs: Add Anchor property and some internal properties to
17985         reduces needed changes to FlowLayout.
17986         * ToolStripOverflow.cs: Remove unused variable.
17987         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
17988         use it in the layout calculations.
17989
17990 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17991
17992         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
17993         reported in #79640.
17994         
17995         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
17996         size calculation.
17997
17998 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
17999
18000         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
18001         MeasureString format, it can make button very large in some cases, it is
18002         strange but is what win32 do.
18003
18004 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
18005
18006         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
18007         size calculation.
18008
18009         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
18010         rendering, the value is based on MenuAccessKeysUnderlined.
18011
18012 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
18013
18014         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
18015         for most themes.
18016         
18017         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
18018         
18019         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
18020         and use MenuAccessKeysUnderlined instead.
18021
18022 2007-02-13  Andreia Gaita  <avidigal@novell.com>
18023
18024         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
18025         A selected control would not get a Focus call if:
18026                 - the default active control of the container is the same as
18027                   the one that was selected
18028                 - we are switching from one container to another
18029         Under these conditions, the container being selected already has
18030         an active_control, which is the same as the one being activated, 
18031         so set_ActiveControl would always return and not send the Focus
18032         call. Fix to check if the currently active control of the container
18033         is actually focused.
18034
18035 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
18036
18037         * StatusStrip.cs: Implement the spring layout.
18038         * ToolStripControlHost.cs: Make sure the hosted control's visibility
18039         always matches the host.
18040         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
18041         and TextAfterImage.
18042
18043 2007-02-13  Andreia Gaita  <avidigal@novell.com>
18044
18045         * Control.cs: Code reorganization only.
18046           - Reorganize the WndProc cases so that each case has it's own handling method, 
18047           to help with the no-line-numbering stack traces.
18048           - Formatting changes (it's vstudio's fault, really :p)
18049
18050 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18051
18052         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
18053           Thread.CurrentUICulture to match DateTimePicker's (and MS)
18054           behaviour.
18055
18056 2007-02-12  Jackson Harper  <jackson@ximian.com>
18057
18058         * RichTextBox.cs:
18059         * TextBox.cs: By default we have a non multiline document
18060         - use the multiline property instead of the internal variable
18061         * TextBoxBase.cs: Treat multiline and non multiline the same in
18062         most places.
18063         - Use the documents multiline flag instead of tracking it ourself
18064         * TextControl.cs: Attempt at getting multiline to match MS
18065         behavior.  Lines now track an offset, which is either their X or Y
18066         offset depending on whether or not we are in multiline mode.
18067         - Update all the methods to understand that lines have an X value.
18068         - Fix crash in Undo::Duplicate when empty lines are deleted.
18069
18070 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
18071
18072         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
18073         code moved to properties PreferredHeight and PreferredWidth. It solve the
18074         all problems when preferred sizes must be recalculated. Fixes #80801.
18075
18076 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
18077
18078         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
18079         font height when compatible_text_rendering is false. Partially fix #80801.
18080
18081 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
18082
18083         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
18084
18085 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
18086
18087         * Form.cs: Improved exception messages in ShowDialog.
18088
18089 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
18090
18091         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
18092         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
18093         if not set. Fixes bug #80764. Avoid accessing current_settings field
18094         directly.
18095
18096 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
18097
18098         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
18099         false.
18100
18101         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
18102         public in 2.0 and for easy maintenance and dont break compatibility it is 
18103         internal in 1.1.
18104         
18105 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
18106
18107         * ToolStripItem.cs: Implement using images from ImageList.
18108
18109 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18110
18111         * DateTimePicker.cs: Change default date-formatting culture from
18112           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
18113           seems to be the way MS does it.
18114
18115 2007-02-08  Andreia Gaita  <avidigal@novell.com>
18116
18117         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
18118         (the 6 was cut off on the right side)
18119
18120 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
18121
18122         * Form.cs: Tell MenuStrips to close when the form is clicked.
18123         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
18124         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
18125         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
18126         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
18127         support for Overflow, where items that do not fit are automatically
18128         reparented to a drop down menu.
18129         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
18130         Also: fixes bug #80747.
18131
18132 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18133
18134         * ComboBox.cs: Remove warning (unused code).
18135         * ScrollableControl.cs: Remove warning for 1.1 profile.
18136
18137 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18138
18139         * Form.cs: Remove a warning.
18140
18141 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18142
18143         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
18144           'g' specifier, not documented anywhere, but seems to always show up
18145           as a single space (might have something to do with the DateTime 'g'
18146           specifier, which is the era format, but since DateTimePicker can't
18147           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
18148           won't crash if the format has an unmatched quote. Now shows
18149           single-character formats correctly. Fixes #80744.
18150
18151 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
18152
18153         * StatusStrip.cs: Stretch property needs to call base.Stretch,
18154         not this.Stretch to fix stack overflow. [Fixes bug #80760]
18155
18156 2007-02-07  Chris Toshok  <toshok@ximian.com>
18157
18158         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
18159         background color.  it overwrites the background image we've
18160         already painted.  Fixes #80599.
18161
18162 2007-02-07  Chris Toshok  <toshok@ximian.com>
18163
18164         * DataGrid.cs: return immediately from Edit() when there are no
18165         columns.  Fixes #80662.
18166
18167 2007-02-07  Chris Toshok  <toshok@ximian.com>
18168
18169         * MessageBox.cs: fix #80625.  don't always show the Help button in
18170         2.0.  use the displayHelpButton parameter to determine if we
18171         should show it. Also, make the internal show_help field private.
18172
18173 2007-02-07  Chris Toshok  <toshok@ximian.com>
18174
18175         * Control.cs (SetVisibleCore): check in the proposed patch for
18176         80604, and set is_visible before calling CreateControl.
18177
18178 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
18179
18180         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
18181         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
18182         on it.
18183
18184 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
18185
18186         * MenuAPI.cs: hotkey_active internal field added, it is required because
18187         we need to know when hotkeys must be draw, before this change a keystate
18188         Navigating was used but we can have menu in navigating state without
18189         hotkeys. Fixes #80694.
18190         
18191         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
18192
18193 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18194
18195         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
18196           corresponding events and methods to be internal for 1.1 profile and
18197           public for 2.0 profile (required by SizeGrip).
18198         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
18199           implicit control list). Don't set the size nor the location of the
18200           SizeGrip anymore as it's not needed.
18201         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
18202           draw directly on the captured control (fixes #80656). Removed
18203           ShowGrip (it wasn't used anywhere), redraw (always true), added
18204           GetDefaultSize and GetDefaultRectangle to calculate defaults.
18205         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
18206           be called from SizeGrip.
18207
18208 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18209
18210         * Timer.cs: Throw ArgumentException if Interval <= 0.
18211
18212 2007-02-05  Jackson Harper  <jackson@ximian.com>
18213
18214         * TreeView.cs: We need to check scrollbar visibility when window
18215         visibility is updated, because non visible trees don't ever add
18216         scrollbars.
18217         * Cursor.cs: We want the override cursor to be reset to NULL when
18218         we set current cursor to the default cursor.
18219
18220 2007-02-05  Jackson Harper  <jackson@ximian.com>
18221
18222         * TextControl.cs: Don't have crlfs when we are non multiline.
18223         - Consolidate the line position.
18224
18225 2007-02-05  Jackson Harper  <jackson@ximian.com>
18226
18227         * X11Keyboard.cs: BACK+CTRL gets a special char code.
18228
18229 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18230
18231         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
18232           handling LeaveNotify->NotifyUngrab in order to send
18233           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
18234           after calling XUngrabPointer, so we call WindowUngrabbed directly
18235           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
18236         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
18237           MouseCaptureChanged correctly. Also create handles if changing
18238           Capture (matches MS behaviour).
18239
18240 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18241
18242         * SizeGrip.cs: Make the last change 2.0 only.
18243
18244 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18245
18246         * SizeGrip.cs: If resizing and the capture is lost, revert any size
18247           changes to initial size (fixes #80597).
18248
18249 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18250
18251         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
18252
18253 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
18254
18255         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
18256           background) and only allow dragging if enabled. This way the
18257           sizegrip can be used to fill the open square that otherwise would
18258           have been shown in the bottom right corner of ScrollableControl
18259           when ScrollableControl is not suppose to support sizing.
18260         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
18261           sizegrip is shown and enabled, and hook up with necessary events.
18262
18263 2007-02-01  Chris Toshok  <toshok@ximian.com>
18264
18265         * DataGridTextBoxColumn.cs: clean up the
18266         GetFormattedString/GetColumnValueAtRow combination of functions.
18267         Also fix UpdateUI, and the initial state of
18268         IsInEditOrNavigateMode.
18269
18270         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
18271         aren't supposed to scroll the textbox here, we're supposed to
18272         scroll the datagrid.
18273
18274 2007-02-01  Chris Toshok  <toshok@ximian.com>
18275
18276         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
18277         setting the position.
18278
18279 2007-02-01  Chris Toshok  <toshok@ximian.com>
18280
18281         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
18282         here, since the most recent focus fixes keep us from generating
18283         the Leave event when our textbox gets focus.
18284         (Edit): we should be passing null for the column style's
18285         instantText parameter.
18286         
18287 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
18288
18289         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
18290         raised.  Fixes menu text/icons not showing up in PDN.
18291
18292 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18293
18294         * Control.cs: Remove code in constructor that makes every
18295         control with WS_CHILD set have initial location -1, -1.
18296
18297 2007-01-31  Jackson Harper  <jackson@ximian.com>
18298
18299         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
18300         XplatUIX11.
18301         * XplatUIX11.cs: Give teh keyboard to teh dnd.
18302
18303 2007-01-31  Jackson Harper  <jackson@ximian.com>
18304
18305         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
18306         - Remove some debug code.
18307
18308 2007-01-31  Jackson Harper  <jackson@ximian.com>
18309
18310         * XplatUIX11.cs: If you set the override cursor during a grab, it
18311         should actually override the grab cursor.  This comes into play
18312         when you are setting custom cursors in a DND feedback method.
18313
18314 2007-01-31  Jackson Harper  <jackson@ximian.com>
18315
18316         * X11Dnd.cs: Add support for handling the QueryContinue and
18317         GiveFeedback events.
18318         - Cancel drag and drop actions when the escape key is clicked.
18319         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
18320         can handle the ESCAPE key.
18321         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
18322         done when dnd events are continued after the button is released.
18323         - Add a new helper method so that dnd can translate key events.
18324
18325 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
18326
18327         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
18328         make it more obvious what is happening.
18329
18330 2007-01-30  Jackson Harper  <jackson@ximian.com>
18331
18332         * XplatUIX11.cs: Don't break when handling button release in drag
18333         and drop operations. We need that BUTTONUP message to get through
18334         so capture is released.
18335         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
18336         this is handled automatically when the mouse is down.
18337
18338 2007-01-30  Jackson Harper  <jackson@ximian.com>
18339
18340         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
18341         is closed, so we need to make sure that we aren't changing the
18342         dialog result when the OK (Open or Save) button has been clicked
18343         and we are closing the window ourselves.  Note we don't need to
18344         worry about the cache being written in this case, because it was
18345         already done in the previous FilOk call.
18346
18347 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18348         
18349         * DateTimePicker.cs: Remove a warning.
18350         * ComboBox.cs: Remove a couple of warnings.
18351
18352 2007-01-29  Chris Toshok  <toshok@ximian.com>
18353
18354         * XplatUIX11.cs: don't crash, and remove the icon if the user has
18355         set one, if SetIcon is passed a null icon.
18356
18357 2007-01-29  Andreia Gaita  <avidigal@novell.com>
18358
18359         * TextBox.cs: Redraw when the password characters changes
18360         * TextControl.cs: Check if textbox has a password char and draw 
18361         a line of password chars instead of the text in the line. LineTag gets 
18362         an extra Draw() method which allows document.Draw to override the text 
18363         that will be drawn. Removes 1024 char limitation on length of passworded 
18364         lines.
18365
18366 2007-01-29  Jackson Harper  <jackson@ximian.com>
18367
18368         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
18369         single chars is not.
18370
18371 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
18372
18373         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
18374         one pixel.  Fix a StackOverflowException caused by an overload wrongly
18375         calling itself.
18376
18377 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
18378
18379         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
18380         also remove ProcessArrowKey and put the code inside ProcessKeys.
18381
18382 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
18383
18384         * PaddingConverter.cs: Added.
18385
18386 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18387         
18388         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
18389         ShowPanels is false (fixes #80600). Only draw up to 127 characters
18390         of text (fixes #80601). For panels clip the text to draw to the
18391         panel (fixes #80603).
18392
18393 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18394
18395         * ComboBox.cs: Fixed implementation of ResetText.
18396
18397 2007-01-25  Jackson Harper  <jackson@ximian.com>
18398
18399         * TextControl.cs: For the last char of a line we need to use the
18400         line size, not that chars width, since it won't actually be
18401         computed since the right side of a char is based on the start of
18402         the left side of the next char, and the next char does not exist.
18403
18404 2007-01-25  Chris Toshok  <toshok@ximian.com>
18405
18406         * Splitter.cs: fix the new unit tests, and reindent some switch
18407         statements.
18408
18409 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18410
18411         * ComboBox.cs: Implemented 2.0 methods and events.
18412         * TextBoxBase.cs: Added OnTextUpdate, so that
18413         ComboBox.ComboTextBox can inform ComboBox of it.
18414
18415 2007-01-25  Jackson Harper  <jackson@ximian.com>
18416
18417         * TextControl.cs: Respect ShowSelection when deciding whether or
18418         not to display the caret, this allows comboboxes to have carets
18419         when the combotextbox does not have focus.
18420
18421 2007-01-25  Jackson Harper  <jackson@ximian.com>
18422
18423         * TextControl.cs: Add a Suspend/Resume for updating, basically the
18424         same as the Suspend/Resume for recalc, except this will do actual
18425         Invalidates.
18426         - New Undo manager, works much like the MS version.
18427         - Implemented Redo
18428         * TextBoxBase.cs: The Cut operation is undoable.
18429
18430 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18431         
18432         * TextBoxBase.cs: Don't antialias text. Makes it look way better
18433         on Windows (no difference on Linux).    
18434
18435 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18436
18437         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
18438         we don't want to activate any windows. Fixes #79433.
18439
18440 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
18441
18442         - ButtonBase.cs: Fix capitalization of parameter: disposing.
18443         [Fixes bug #80609]
18444
18445 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
18446
18447         * FileDialog.cs:
18448         - Move to using System.ComponentModel.EventHandlerList
18449         - Replace Refresh with Invalidate
18450         - Clear the mime filecache on closing
18451         - Some other memory reducing work. After beeing closed FD now uses
18452           only about 300 KB for the fdo mime stuff plus the memory of the
18453           cached icons.
18454         * Mime.cs: Changed coding style and removed unnecessary commented
18455         code. Some more memory memory reducing work.
18456
18457 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18458
18459         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
18460         a few other missing 2.0 properties.
18461         * Theme.cs: Added DrawFlatStyleComboBox.
18462         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
18463
18464 2007-01-24  Chris Toshok  <toshok@ximian.com>
18465
18466         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
18467         wake_waiting flag, not just when there's data to be read.  if we
18468         don't, then future wakeup's won't reach us and we'll be doomed to
18469         wait for the entire 1 second timeout forever (unless there are X
18470         events to be had).
18471
18472 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
18473
18474         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
18475         until you pass Items.Count, not Items.Count - 1 like 1.1.
18476
18477 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
18478
18479         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
18480
18481 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
18482
18483         * ToolStripContainer.cs: The recent Dock fix exposed that I was
18484         adding the panels in the wrong order.
18485
18486 2007-01-24  Jackson Harper  <jackson@ximian.com>
18487
18488         * TextBoxBase.cs: When we move the caret we also need to move the
18489         selection, this fixes some random crashing after doing select
18490         text, unselect, delete a char, paste.
18491
18492 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18493
18494         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
18495
18496 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18497
18498         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
18499         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
18500         * ToolBar.cs: Force redraw in BackgroundImageChanged.
18501
18502 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18503
18504         * ToolBar.cs:
18505         - Implement support for vertical toolbars. Fixes #80539;
18506         - Call LayoutToolBar when resize, it fix some other problems in layout.
18507         - Rename requested_height to requested_size, as we can have width on it
18508         when toolbar is vertical.
18509         - Create a private property "Vertical" that uses Dock to verify when 
18510         toolbar is vertical or not.
18511         - Set ControlStyles when change Dock property.
18512         - Refactory in LayoutToolBar to have better variables names and to support
18513         vertical toolbars.
18514         - Fixes default value for ButtonSize when button count is equal zero, size
18515         must be (39, 36) test case writed.
18516
18517 2007-01-23  Chris Toshok  <toshok@ximian.com>
18518
18519         * Control.cs: fix the checks so that they work correctly for mdi
18520         parents/children.
18521
18522 2007-01-23  Chris Toshok  <toshok@ximian.com>
18523
18524         * Control.cs: ControlCollection seems to have super-secret
18525         abstraction breaking knowledge of Mdi containers.  allow MdiClient
18526         to add toplevel controls.
18527
18528 2007-01-23  Chris Toshok  <toshok@ximian.com>
18529
18530         * Control.cs: throw an ArgumentException if a toplevel control is
18531         added to our control collection from ControlCollection.Add, as
18532         well as from ControlCollection.IList.Add.  This fixes the
18533         ControlSetTopLevelTest.TestTopLevelAdd unit test.
18534
18535         Also, in ControlCollection.IList.Add, don't through an
18536         ArgumentNullException, throw an ArgumentException, when value ==
18537         null.  This matches MS.
18538
18539 2007-01-23  Chris Toshok  <toshok@ximian.com>
18540
18541         * BindingSource.cs: initial, incomplete, implementation of
18542         BindingSource.
18543
18544 2007-01-23  Jackson Harper  <jackson@ximian.com>
18545
18546         * TextControl.cs:
18547         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
18548         that I can fix a broken unit test (TextBoxTest::ClearUndo)
18549         
18550 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
18551
18552         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
18553
18554 2007-01-23  Andreia Gaita  <avidigal@novell.com>
18555
18556         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
18557         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
18558         IndexOfKey() for 2.0
18559
18560 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18561
18562         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
18563         to prevent it from changing z-order.
18564         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
18565         leave UI updates in MdiWindowManager.
18566         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
18567         1 sized (NC handling goes weird on Linux otherwise).
18568         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
18569         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
18570         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
18571         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
18572         and SetWindowState(s) to allow for changing the size of an activated child
18573         before activating it (reduces a lot of flicker).
18574
18575 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
18576
18577         * Form.cs: Changing FormBorderStyle has different semantics based
18578         on whether the Form is visible or not.  If not visible, don't change
18579         the Size.  But InvalidateNC needs to be called to force the window
18580         to pick up the changes and redraw itself.  [Fixes bug #80574]
18581
18582 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
18583
18584         [Moma work]
18585         * ContainerControl.cs: ProcessCmdKey.
18586         * ErrorProvider.cs: new constructor.
18587         * Form.cs: fix AutoValidateEvent compiler warning.
18588         * Label.cs: fix OnAutoSizeChanged compiler warning.
18589         * MenuStrip.cs: fix CanOverflow compiler warning.
18590         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
18591         * TextBox.cs: Dispose.
18592         * ToolStrip.cs: CanOverflow, re-enable double buffering.
18593         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
18594         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
18595         * ToolStripItem.cs: Overflow, RightToLeft properties.
18596
18597 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18598
18599         * Form.cs: Move the layout of the main form to MdiWindowManager.
18600         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
18601         do a layout of the main window to update MdiClient's client area to
18602         the right area. Fixes #80533. Remove the calculation of nc size, 
18603         it was just wrong and the correct one is the same as for 
18604         InternalWindowManager. 
18605
18606 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
18607
18608         * Control.cs: Setting Anchor or Dock needs to reset the other
18609         to its default.  [Fixes bug #80556]
18610
18611 2007-01-20  Chris Toshok  <toshok@ximian.com>
18612
18613         * CheckedListBox.cs: class status changes.
18614
18615         * ScrollableControl.cs: same.
18616
18617         * RichTextBox.cs: same.
18618
18619         * ContainerControl.cs: same.
18620
18621         * ListView.cs: same.
18622
18623         * NotifyIcon.cs: same.
18624
18625         * MenuStrip.cs: same.
18626
18627         * RadioButton.cs: same.
18628
18629         * CheckBox.cs: same.
18630
18631         * PrintPreviewDialog.cs: same.
18632
18633         * Form.cs: same.
18634
18635 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
18636
18637         * TreeNode.cs: Apply Alan's patch for Name property.
18638
18639 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18640         
18641         * Form.cs: Implemented SizeGripStyle.
18642         * SizeGrip.cs: Check for minimum and maximum size for the
18643         control being resized and only resize if size has actually
18644         changed.
18645
18646 2007-01-19  Chris Toshok  <toshok@ximian.com>
18647
18648         * DataGridColumnStyle.cs: stop setting _readonly in the
18649         PropertyDescriptor setter.  fixes a unit test failure.
18650
18651         also, rename ParentReadOnly to TableStyleReadOnly, and have it
18652         just consult our table style (if we have one).  We don't need to
18653         consult the datagrid readonly attribute because that's passed in
18654         as the _ro arg to Edit.  this simplifies things a little.
18655         
18656         * DataGrid.cs: use CurrentColumn instead of
18657         current_cell.ColumnNumber just to simplify some of the code.
18658
18659         switch the order of some things in the CurrentCell setter to keep
18660         the previous cell from getting a textbox again -
18661         EnsureCellVisibility causes scrolling to happen, which calls Edit.
18662         So we need to set the new cell before calling it.
18663         
18664         call Edit in OnEnter, as does Microsoft.
18665         
18666         also, make sure the current table style isn't the one we create
18667         initially when checking to see if it's different than the one
18668         we're setting it to in BindColumns (this fixes #80421).
18669
18670         * GridTableStylesCollection.cs: table styles can have "" for a
18671         mapping name.  part of the fix for #80421.
18672
18673         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
18674         Edit significantly.
18675
18676 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18677
18678         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
18679         and less GDI object leaky-er.
18680
18681 2007-01-18  Andreia Gaita  <avidigal@novell.com>
18682
18683         * LinkLabel.cs: Add opaque control style
18684
18685 2007-01-18  Jackson Harper  <jackson@ximian.com>
18686
18687         * TextControl.cs: Calculate width properly.
18688         - Don't store the tag's X offset, this can be figured out very
18689         easily.
18690         - When getting the caret tag make sure to get the last empty tag.
18691
18692 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18693
18694         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
18695         [Fixes bug #79959]
18696
18697         * Control.cs: Color.Empty shouldn't count for previous transparent
18698         redraw changes.
18699
18700 2007-01-18  Jackson Harper  <jackson@ximian.com>
18701
18702         * TextBox.cs:
18703         * RichTextBox.cs:
18704         * TextControl.cs: Starting to merge in some pieces of my older
18705         undo work.  Basically just some slight cleanup of the undo API.
18706
18707 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18708
18709         * TrackBar.cs: Fix signature of RightToLeftLayout.
18710         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
18711         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
18712         * Application.cs: Implemented UseWaitCursor.
18713
18714 2007-01-18  Jackson Harper  <jackson@ximian.com>
18715
18716         * TextControl.cs: We can't skip tags if any part of the tag is
18717         visible.
18718
18719 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18720
18721         * ContainerControl.cs: Override OnLayout.
18722
18723 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18724
18725         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
18726
18727         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
18728         everything else.
18729
18730 2007-01-18  Chris Toshok  <toshok@ximian.com>
18731
18732         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
18733         (leftover from the container_selected days, I'd wager).  fixes bug
18734         #80546.
18735
18736 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18737
18738         * Control.cs: Apply patch from George to fix the new testcase on
18739         bug #80451.  We can't just check for Color.Transparent, we need 
18740         to check if the back color's alpha channel is < 255.
18741
18742 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
18743
18744         * Form.cs: Move setting show_icon = true to before the constructor
18745         so that the base constructor has that information when it calculates
18746         the form's size.  Was causing forms to be (6, 6) bigger than they
18747         were supposed to be.  Thanks for catching this Rolf!
18748
18749 2007-01-18  Jackson Harper  <jackson@ximian.com>
18750
18751         * TextControl.cs: When replacing a selection we need to invalidate
18752         from the initial selection start, because selection start is moved
18753         to the end of the replacement.
18754
18755 2007-01-18  Andreia Gaita  <avidigal@novell.com>
18756
18757         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
18758
18759 2007-01-18  Chris Toshok  <toshok@ximian.com>
18760
18761         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
18762         I just added.
18763
18764 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
18765
18766         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
18767         layout methods and properties from ToolBarButton must be available
18768         into ToolBarButtonInfo.
18769
18770 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18771
18772         * Control.cs: If the control has a transparent background, we
18773         need to refresh it when it moves and when it's parent's background
18774         image changes.  [Fixes bug #80451]
18775
18776 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18777
18778         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
18779
18780 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
18781
18782         * XplatUIWin32.cs: Implement proper double buffering for Windows.
18783         [Fixes bug #80447, and probably speeds up things as well]
18784
18785 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18786
18787         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
18788         * XplatUIWin32.cs: We need to recalculate NC size after changing 
18789         window style to toolwindow (otherwise the client rectangle will be
18790         3 pixels to small for some reason).
18791         * MdiWindowManager.cs: Revert NC size calculations to match how
18792         they are calculated only based on window styles (to match
18793         Win32AdjustWindowRectEx, since otherwise when setting size or 
18794         location, Control will call Win32AdjustWindowRectEx to update client 
18795         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
18796         calculate a different value of client size causing another paint 
18797         (and flickering))
18798         * InternalWindowManager.cs: When moving or resizing a window only
18799         update size or location if they actually changed.
18800         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
18801         (seems to match Windows behaviour better). Cleaned up 
18802         ManagedWindowDecorations to draw what's needed and nothing else
18803         (was drawing borders and lines where they shouldn't be)
18804         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
18805         (style = 0xFFFF) and takes into account caption height when 
18806         calculating window rectangle.   
18807
18808 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
18809
18810         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
18811         can be added to toolbar multiple times, we need to maintain a list of 
18812         button information for each positions.
18813
18814 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
18815
18816         * ToolBar.cs: Some small stetic changes.
18817
18818 2007-01-16  Jackson Harper  <jackson@ximian.com>
18819
18820         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
18821         that allow us to have nested recalc = false blocks.
18822         - Add paste support for images in the RichTextBox
18823         * RichTextBox.cs: flush the text after the color is changed, so
18824         the change takes effect.
18825         - Use SuspendRecalc
18826         - Some extra debugging info
18827         * TextControl.cs: Tags no longer track their length, it is just
18828         computed from the next tags length, this makes things a little
18829         simpler and reduces places that we have to track length changes.
18830         - Refactored the linetag class a little so we could make it
18831         a base class for different kinds of tags
18832         - Created a image tag, a tag that can have a single image inserted
18833         into it
18834         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
18835         that we can call suspend multiple times.
18836         - Add some debugging methods
18837
18838 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18839
18840         * MdiClient.cs: Add ActivatePreviousChild for 
18841         mdi child window navigation.
18842         * Form.cs: Use MdiClient.ActivateNextChild/
18843         ActivatePreviousChild instead of Form.SelectNextControl
18844         to select the next/previous child since 
18845         SelectNextControl doesn't do it in the same order
18846         as mdi children should do it.
18847
18848 2007-01-16  Chris Toshok  <toshok@ximian.com>
18849
18850         * Control.cs: remove container_selected field.
18851
18852 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18853
18854         * MdiClient.cs: Update main form's ActiveChild when
18855         updating keyboard focus for the mdi child.
18856
18857 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
18858
18859         * Control.cs: PreferredSize fix.
18860
18861         * Form.cs: Add several 2.0 events, properties, and methods.
18862
18863 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
18864
18865         * Form.cs: Provide meaningful message when MdiParent is assigned a
18866         Form that is not an MdiContainer.
18867
18868 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18869
18870         * MdiClient.cs: Update main form's ActiveChild when
18871         activating a mdi child.
18872
18873 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
18874
18875         * MdiWindowManager.cs: Fix NRE when merging menus and main form
18876         doesn't have a menu.
18877
18878         * Form.cs: Request NCRecalc after creating a mdi child window.
18879         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
18880         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
18881         
18882         * MdiClient.cs: Add new method SendFocusToActiveChild that either
18883         sends keyboard focus to the active child, or to the MdiClient
18884         if there are no child forms.
18885         
18886 2007-01-15  Chris Toshok  <toshok@ximian.com>
18887
18888         * ListView.cs: drop the *Internal overrides, just do our work in
18889         ItemControl's WndProc instead.
18890
18891         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
18892         of the various controls, and forward the events properly (in the
18893         same manner as MS) from the textbox to the UpDown.  Also the
18894         ActiveControl of the UpDownBase gets set properly now.  Finally,
18895         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
18896
18897         * NumericUpDown.cs: set Text in the ctor.
18898
18899         * DomainUpDown.cs: call UpdateEditText in the ctor.
18900         
18901         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
18902         so even a Selectable = false textbox can be focused if you click
18903         in it.  Go figure.
18904
18905         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
18906         just add their handling in their respective WndProc's.  Also add
18907         an explicit FocusInternal method that doesn't consult CanFocus
18908         before calling Select(this).
18909
18910         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
18911         do our work in WndProc instead.
18912
18913         * TabControl.cs: same.
18914
18915         * ComboBox.cs: same.
18916
18917 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18918
18919         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
18920         Fixes #80006.
18921
18922 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
18923
18924         * ListViewItem.cs:
18925         * ThemeWin32Classic.cs: Don't draw the item text outside
18926         item bounds in Details view, as well as use trimming.
18927         Fixes bug #80376.
18928
18929 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18930
18931         * Form.cs: Implement Form.ShowIcon.
18932         
18933         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
18934         null, which when combined with the DlgModalFrame window style removes
18935         the icon from the title bar.
18936
18937 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18938
18939         * Control.cs: Call OnMouseClick after OnClick. (2.0)
18940
18941 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18942
18943         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
18944         menu when mdi child windows theres a menu, uses insert to get icon
18945         at first position. Partially fix #80006.
18946
18947 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
18948
18949         * Clipboard.cs: Implement 2.0 methods.
18950
18951 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
18952
18953         * Menu.cs: Implement Insert method of MenuItemCollection class
18954         to fix MenuMerge.
18955
18956 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
18957
18958         * ListView.cs: Implement 2.0 FindItemWithText method.
18959
18960 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
18961
18962         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
18963         to calculate menu bar size. Fixes #80290.
18964
18965 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
18966
18967         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
18968
18969 2007-01-11  Chris Toshok  <toshok@ximian.com>
18970
18971         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
18972         initial form.
18973
18974 2007-01-11  Chris Toshok  <toshok@ximian.com>
18975
18976         * LinkLabel.cs: make sure to call base.Select in our Select method
18977         if it turns out we're going to be selected (i.e. if we have a link
18978         that is going to receive focus).  That way our container's
18979         ActiveControl is updated properly.
18980
18981 2007-01-11  Chris Toshok  <toshok@ximian.com>
18982
18983         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
18984         they have 1 or more links.  this fixes the crash gert reported.
18985
18986 2007-01-11  Andreia Gaita  <avidigal@novell.com>
18987
18988         * ContainerControl.cs: Remove ContainerSelected flag, not needed
18989         anymore.
18990
18991         * Control.cs (Controls.Add): Check if control to be added to the collection
18992         is a top level control, and throw an ArgumentException if it is.
18993         Remove ContainerSelectedFlag, not needed anymore.
18994
18995         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
18996         top most control doesn't activate the form. This fixes a problem in the
18997         MessageBox, where the default button wouldn't get focus because the form
18998         was activated before being Loaded - when the Owner is set, SetTopMost is
18999         called, and it would activate it.
19000
19001 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
19002
19003         * Button.cs: When clicked and setting the parent form's DialogResult,
19004         use FindForm instead of Parent, since parent could be a container
19005         control and not the Form.  Fixes bug #80495.
19006
19007 2007-01-10  Chris Toshok  <toshok@ximian.com>
19008
19009         * Form.cs: move the call to SendControlFocus into the same
19010         is_loaded check.
19011
19012 2007-01-10  Chris Toshok  <toshok@ximian.com>
19013
19014         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
19015         It breaks in the face of the new ActiveControl stuff, and should
19016         be unnecessary.
19017
19018         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
19019         activecontrol's focus if it's not already set, after we set
19020         ActiveControl, but before we call OnActivated.  Re-fixes #79667
19021         after the previous focus/active control fixes regressed it.
19022
19023         * Control.cs: reindent some code.
19024         
19025 2007-01-10  Chris Toshok  <toshok@ximian.com>
19026
19027         * Splitter.cs: clearing some outstanding changes from my tree.
19028         Replace all accesses (not writes) to the internal dock_style field
19029         with the Dock property.
19030
19031 2007-01-10  Chris Toshok  <toshok@ximian.com>
19032
19033         * Control.cs: make FireEnter, FireLeave, FireValidating, and
19034         FireValidated virtual.
19035
19036         * Form.cs: override and don't chain up calls to FireEnter and
19037         FireLeave.
19038
19039 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19040
19041         * ListView.cs: Add more text padding space when using
19042         auto resize for columns (the previous value didn't work fine).
19043
19044         * ThemeWin32Classic.cs: Update text position inside columns,
19045         to match the appeareance of .Net.
19046
19047         * ColumnHeader.cs: When using auto resize, only the Width should
19048         depend on the sub items, not the Height. Also, set width after
19049         auto resizing (the value of Width should never remain as -1 or -2).
19050
19051 2007-01-10  Chris Toshok  <toshok@ximian.com>
19052
19053         * Application.cs: fix compilation errors when debug is enabled.
19054
19055 2007-01-10  Chris Toshok  <toshok@ximian.com>
19056
19057         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
19058         add some nice ascii art pictures and explanation of the process).
19059         (GetMostDeeplyNestedActiveControl): new utility function we need
19060         because our ActiveControl can refer to a child container with its
19061         own ActiveControl.
19062
19063         * Form.cs (OnActivated): remove the call to SelectActiveControl
19064         from here, since you can override this method and not chain up,
19065         and winforms still sets the active control.
19066         (OnCreateControl): also remove the unnecessary SelectActiveControl
19067         call from here.
19068         (WndProc): it's actually called from the WM_ACTIVATE block, just
19069         before calling OnActivated.
19070
19071         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
19072         inside the else.  the ActiveControl setter will end up setting
19073         focus on @control.  This keeps us from setting it again (and
19074         generating an extra LostFocus/GotFocus pair).
19075         (Select (bool, bool)): reindent.
19076
19077 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
19078
19079         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
19080         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
19081         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
19082         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
19083         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
19084         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
19085         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
19086         ToolStripTextBox.cs: Another wave of corcompare work.
19087
19088 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19089
19090         * ColumnHeader.cs: Implement 2.0 AutoResize method using
19091         the Width property.
19092
19093         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
19094         methods by callling Column.AutoResize method on columns.
19095
19096 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
19097
19098         * Control.cs: Provide proper implementations of PreferredSize
19099         and GetPreferredSize (2.0).
19100
19101 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
19102
19103         * Form.cs: Remove one character (!) to make my previous OnClosing
19104         stuff work for modal windows like MessageBox.
19105
19106 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19107
19108         * ListView.cs:
19109         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
19110         ListView.Columns to get the last displayed column. Fixes #80452.
19111
19112 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
19113
19114         * Label.cs, LinkLabel.cs: Source code identation fixes.
19115
19116 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
19117
19118         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
19119         we dont need to invalidate only borders because when we invalidate four
19120         border lines the invalidate's generates a complete redraw of button, 
19121         because it now invalidate a complete rect some other redraws operations
19122         are fixed. Fixes #80196.
19123         
19124         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
19125         Remove ToolBarInvalidateEntireButton as it is not used.
19126
19127 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
19128         
19129         * Form.cs: Make sure that both OnClosing and OnFormClosing are
19130         called for 2.0 profile.
19131         * CloseReason.cs: Make class internal for 1.1.
19132
19133 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
19134
19135         * ToolStripManager.cs: Implement FindToolStrip functionality.
19136         * ToolStrip.cs: Register and unregister with ToolStripManager.
19137
19138 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
19139
19140         * Control.cs: This was messy.  2.0 moves much of ControlCollection
19141         to ArrangedElementCollection.  Implemented this with as few #if's as 
19142         possible (which is still too many).
19143
19144 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
19145
19146         * Control.cs: Implement SizeFromClientSize() [2.0].
19147
19148 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
19149
19150         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
19151         use Theme.BorderSize to calculate area instead of static value 1, 
19152         by the way use new BorderStaticSize instead     Border3DSize when 
19153         border_static is true. Fixes #79537.
19154         
19155         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
19156         
19157         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
19158         it is not needed.
19159
19160 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
19161
19162         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
19163
19164 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
19165
19166         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
19167         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
19168         
19169         * Hwnd.cs: 
19170         - border_static field added, it will used to define when a control 
19171         theres 3D border but it must be static (thin).
19172         - In GetWindowRectangle use Theme.BorderSize to calculate area 
19173         instead of static value 1, by the way use new BorderStaticSize instead
19174         Border3DSize when border_static is true.
19175
19176         * XplatUIX11.cs, XplatUIOSX.cs: 
19177         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
19178         
19179         * Theme.cs: BorderStaticSize field added.
19180
19181 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
19182
19183         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
19184
19185 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
19186
19187         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
19188         mimic same behavior than win32 that set border only in CreateParams,
19189         it fix problems under CreateParams overrides. Fix #79442 and partial
19190         fix #79537.
19191         
19192         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
19193         of thi control you must call recreate handle. 
19194         
19195         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
19196         need to do anything as RecreateHangle will take care about borders.
19197
19198 2007-01-05  Mike Kestner  <mkestner@novell.com>
19199
19200         * ListView.cs: hack to eliminate Lost/Got focus notifications on
19201         cycles between the ItemControl and parent.  Fixes #80388.
19202
19203 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
19204
19205         * Control.cs: Lazy init layout engine. Do not directly use 
19206         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
19207
19208 2007-01-05  Chris Toshok  <toshok@ximian.com>
19209
19210         * DataGrid.cs: don't forceably rebind columns in SetDataSource
19211         unless our list manager has changed (i.e. unless we have reason to
19212         believe our columns have changed).  Fixes #80422.
19213         
19214         also, disable the call do BindColumns in
19215         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
19216         1.1 the event isn't raised in response to a column addition on a
19217         table.)
19218
19219 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
19220
19221         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
19222         that inheritors can not call it if they choose.  Fixes bug #80456.
19223
19224 2007-01-05  Andreia Gaita  <avidigal@novell.com>
19225
19226         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
19227         doesn't blow up with a null exception on marshalling.
19228         
19229 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
19230
19231         * Control.cs: Implement several 2.0 protected properties and methods.
19232         Ensure that all necessary events are being called when properties
19233         are set.
19234
19235 2007-01-05  Mike Kestner  <mkestner@novell.com>
19236
19237         * ListView.cs: implement PgUp/PgDn for Details view.  Also
19238         fixes First/LastVisibleIndex to use the item_control.ClientRect 
19239         instead of the parent control.  Fixes #80378.
19240
19241 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
19242
19243         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
19244           determine whether to use yard-pound or not (bug #78399).
19245
19246 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
19247
19248         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
19249         problems. So it is time to bring back the old popupbutton colors.
19250
19251 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19252
19253         * ColumnHeader.cs:
19254         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
19255         property by using the internal information of the
19256         columns order in ListView.
19257
19258 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
19259
19260         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
19261         Add 2.0 Tag properties.
19262
19263         * LinkArea.cs: Add 2.0 ToString method.
19264
19265 2007-01-03  Chris Toshok  <toshok@ximian.com>
19266
19267         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
19268         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
19269         when we're editing, which fixes #80047.
19270
19271 2007-01-03  Chris Toshok  <toshok@ximian.com>
19272
19273         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
19274         #80404.
19275
19276 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
19277
19278         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
19279         property and implementation.
19280
19281         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
19282         for MdiWindowListItem property.
19283
19284         * ToolStripDropDown.cs: Don't consider hidden menu items while
19285         laying out the menu.
19286
19287 2007-01-03  Andreia Gaita  <avidigal@novell.com>
19288
19289         * SendKeys.cs: window handle is not needed in win32, so just
19290         get the active window for X after parsing keys and don't use
19291         it when building the message; it is passed by parameter to the 
19292         Xplat method and used there to build the message instead. Also,
19293         wait for events to be processed on SendWait, as opposed to Send,
19294         which doesn't wait :) Playing with threads and Send() completely 
19295         hangs on ms.net, only SendWait() works.
19296         
19297         XplatUIX11.cs
19298         X11Display.cs: Check for valid window handle.
19299
19300 2007-01-03  Jackson Harper  <jackson@ximian.com>
19301
19302         * TextControl.cs: Need to prevent wrap calculations when replacing
19303         text (this was there before i removed it accidently).
19304         - Don't update the cursor during the positioning, just set it to
19305         selection_start at the end of the operaion.
19306
19307 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19308
19309         * Control.cs:
19310         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
19311         
19312 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19313
19314         * MonthCalendar.cs: Added Click and DoubleClick events again,
19315         but this time they only hide Control's Click and DoubleClick.
19316         
19317 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
19318
19319         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
19320         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
19321
19322 2007-01-02  Jackson Harper  <jackson@ximian.com>
19323
19324         * TextBoxBase.cs: We move the caret with the split now, so we
19325         don't need to explicitly move the caret after splitting.  This
19326         fixes the caret bumping down an extra line on Enter.
19327
19328 2007-01-02  Miguel de Icaza  <miguel@novell.com>
19329
19330         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
19331         2.72). 
19332
19333         * ScrollableControl.cs: Add Scroll event.
19334
19335 2007-01-02  Mike Kestner  <mkestner@novell.com>
19336
19337         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
19338         to fix all hdr height padding codepaths.  Fixes #80207.
19339
19340 2007-01-02  Chris Toshok  <toshok@ximian.com>
19341
19342         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
19343         setting it to the Control defaults anyway, and it being after the
19344         Dock set was screwing up layout.
19345         (set_Dock): don't short circuit out of setting base.Dock.  Also,
19346         no need to call UpdateStatusBar here, as it'll be re-layed out if
19347         it needs to be.
19348
19349 2007-01-02  Mike Kestner  <mkestner@novell.com>
19350
19351         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
19352         to header height for width == -1. Fixes the rest of #80207.
19353
19354 2007-01-02  Mike Kestner  <mkestner@novell.com>
19355
19356         * ListView.cs: rework the mouse event forwarding everaldo added
19357         to translate the coordinates to the parent control not
19358         raise the parent events until after we've done our work. Hover
19359         needs more work, in the case where HoverSelection is on, because
19360         the item control receives more than one MouseHover per Enter
19361         event, so we need to ensure only the "first" hover gets forwarded.
19362         Opening a minor bug for that.
19363
19364 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
19365
19366         * CheckedListBox.cs: Fixed SelectionMode to match MS.
19367         * ListControl.cs: Implemented AllowSelection property. Removed extra
19368         tabs.
19369         * ListBox.cs: Implemented AllowSelection property.
19370
19371 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19372
19373         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
19374         SelectedItem, it prevent for errors when you must disable item
19375         before perform click. Fixes #80409.
19376
19377 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19378
19379         * MenuAPI.cs: Prevent second level and beyond submenus to close
19380         until first level when move out side of popup.
19381         
19382 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19383
19384         * MenuAPI.cs:
19385         - Down submenu positin in three pixels.
19386         - Closes sub menu when mouse leaves from menu. Fixes #80402.
19387
19388 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
19389
19390         * ThemeWin32Classic.cs:
19391         - Fix popup menu size adding one pixel on the top.
19392         - Down menu item border from two to one to mimic Win32.
19393         - Some source identation fixes. 
19394
19395 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
19396
19397         * ThemeWin32Classic.cs: Use float numbers to calculate size and
19398         position of menu arrows, it fix wrong arrow size.
19399
19400 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
19401
19402         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
19403         instead of line, it simplify draw operation and fix it using 3D
19404         borders to mimic Win32.
19405
19406 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
19407
19408         * StatusStrip.cs: Add implementation of the sizing grip.
19409
19410         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
19411         StatusStrip rendering.
19412
19413 2006-12-31  Chris Toshok  <toshok@ximian.com>
19414
19415         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
19416         override the layout style (anchor/dock) of the control.  assign to
19417         Dock instead.  Fixes bug #80416.
19418
19419         * ToolStrip.cs: same.
19420
19421 2006-12-31  Andreia Gaita  <avidigal@novell.com>
19422
19423         * ContainerControl.cs: Use ContainerSelected flag to check if 
19424         a Container is directly selected, or if Select is called on a 
19425         non-container. If a container is directly selected, focus events 
19426         should not be raised.
19427         Apply #80411 patch to throw exception on set_ActiveControl if 
19428         control is the same as the current one.
19429         
19430         * Control.cs: Use ContainerSelected flag (see above).
19431         Add invalidation check to raise event but not invalidate if 
19432         dimensions are 0.       
19433         Apply #80411 patch.
19434         
19435
19436 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
19437
19438         * MenuAPI.cs: After click, dont close popup menu when menu is
19439         ContextMenu. Fixes #80399.
19440
19441 2006-12-30  Chris Toshok  <toshok@ximian.com>
19442
19443         * ContainerControl.cs: make sure we throw the exception if the
19444         container control doesn't contain the control we're setting
19445         ActiveControl to.
19446
19447 2006-12-30  Chris Toshok  <toshok@ximian.com>
19448
19449         * Control.cs (SetTopLevel): fix the exception raised by
19450         SetTopLevel for child controls.
19451         (set_Anchor): call UpdateDistances when setting the anchor type.
19452         This fixes bug #80336.
19453
19454 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19455
19456         * Theme.cs: For now, revert back to 8pt font.
19457
19458 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
19459
19460         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
19461         Fixes #80395.
19462
19463 2006-12-29  Chris Toshok  <toshok@ximian.com>
19464
19465         * Control.cs: reorder the code in OnResize to give the same event
19466         ordering as MS.
19467
19468 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19469
19470         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
19471         TileHorizontally and TileVertically.
19472         
19473 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
19474
19475         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
19476         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
19477         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
19478         Corrected copyright and email adress.
19479
19480 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19481
19482         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
19483         of Exception in FullPath property if no TreeView is associated with
19484         the TreeNode.
19485
19486 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
19487
19488         * Theme.cs: Marked default_font as private, and initialize it in ctor
19489         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
19490         on 2.0 profile.
19491         * ThemeGtk.cs: Removed default_font intialization.
19492         * ThemeWin32Classic.cs: Removed default_font initialization.
19493
19494 2006-12-28  Chris Toshok  <toshok@ximian.com>
19495
19496         * Control.cs: fix a couple of place where we were creating handles
19497         more aggressively than we should be.  Fixes ControlRefresh unit
19498         tests.
19499
19500 2006-12-28  Chris Toshok  <toshok@ximian.com>
19501
19502         * Control.cs: contrary to what the comment said, Control.Dock does
19503         not supercede Control.Anchor - the last one you assign to decides
19504         the layout behavior.  so we need to keep track of which was the
19505         last set.  Also, fix some of the affected property arguments in
19506         PerformLayout calls, and remove an redundant parent.PerformLayout
19507         call in OnResized.
19508
19509         Add a VisibleInternal property, which returns is_visible.  We
19510         can/should get rid of all the usage of this field elsewhere.
19511
19512 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19513         
19514         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
19515         control style, not DoubleBuffer. Added UseDoubleBuffering property
19516         that indicates whether doublebuffering is enabled and supported.
19517         (comment from and code based on Gert Driesen's patch in #80324).
19518         Fixes #80324.
19519
19520 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19521         
19522         * Control.cs: Fixed a NRE.
19523
19524 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19525
19526         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
19527         for 2.0.
19528
19529 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19530
19531         * Control.cs: Rewrote double buffering, now a seperate
19532         class handles all the buffering, no Graphics is disposed of
19533         until the painting is finished (earlier implementation 
19534         would crash if the control was resized in the OnPaint, 
19535         since it would cause the double buffer to be recreated
19536         and the old one disposed), a separate Graphics is 
19537         created for every paint (MS behaviour and anyways the state
19538         of the Graphics would have to be saved and restored otherwise)
19539         
19540         * XplatUIDriver.cs: 
19541         * XplatUIX11.cs:
19542         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
19543         so that we can get the graphics for the back buffer without
19544         having to create a new one and remove the offscreen_dc parameter
19545         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
19546         
19547 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19548
19549         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
19550         Also make virtual all the key-related methods.
19551
19552         * ListViewItem.cs: Make virtual the key related methods for
19553         ListViewSubItemCollection.
19554
19555 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19556
19557         * ListView.cs:
19558         * ListViewItem.cs:
19559         * ThemeWin32Classic.cs:
19560         * Theme.cs: Initial support for Tile view in ListView,
19561         as well as the implementation of the required bits for it (Item
19562         and Subitem).
19563
19564 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19565
19566         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
19567         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
19568         Provide useful exception messages.
19569
19570 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19571
19572         * TrackBar.cs: Remove a warning.
19573         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
19574         when used by DateTimePicker, fixes #80287. This also requires that 
19575         MonthCalendar implements it's own drawing for the yearly updown control,
19576         otherwise the Capture tracking would be too complicated. Removed the Click 
19577         and DoubleClick events (according to comments they were hiding the base class
19578         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
19579         raise these events, not that they cannot be raised. It is possible to raise 
19580         them by calling OnClick and OnDoubleClick). Added two internal fields in 
19581         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
19582         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
19583         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
19584         event, no longer needed.
19585         
19586 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19587
19588         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
19589         true if new value differs from current value.
19590
19591 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19592
19593         * Control.cs: ControlCollection.Count must be public. Fixed build of
19594         unit tests.
19595
19596 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19597
19598         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
19599
19600 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
19601
19602         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
19603
19604 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
19605
19606         * Control.cs: Invalidates control including when Width and Height is 
19607         equal zero or is not visible, only Paint event must be care about 
19608         this. Fixes #79913.
19609
19610 2006-12-26  Chris Toshok  <toshok@ximian.com>
19611
19612         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
19613         more corcompare work.
19614
19615         * DataGridView.cs: fix compiler warning.
19616
19617         * ColumnHeader.cs: some corcompare work, and also take the
19618         opportunity to make the internal fields private.
19619
19620         * ListView.cs: fix the fallout from the above field change.
19621
19622 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
19623
19624         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
19625         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
19626         ToolStripTextBox.cs: Fixes to events and corcompare.
19627
19628 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
19629
19630         * ListView.cs: Call owner.OnMousexx event to propagate events from
19631         item to ListView. Fixes #80367.
19632
19633 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19634
19635         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
19636         if value is less than one. ItemHeight should not be set to a value
19637         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
19638         Removed extra tabs.
19639
19640 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
19641
19642         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
19643         * ToolStripStatusLabel.cs: Add Spring for Moma.
19644
19645 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19646
19647         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
19648         Fixed code formatting. Removed debug code.
19649         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
19650
19651 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
19652
19653         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
19654         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
19655         ArgumentOutOfRangeException if ColumnCount is negative. In 
19656         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
19657         less than 4 or higher than 32768.
19658         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
19659         Fixed FormatProvider to return CurrentCulture unless explicitly set.
19660         Fixed IsFormatProviderDefault to return true if FormatProvider has
19661         not been explicitly set.
19662
19663 2006-12-25  Chris Toshok  <toshok@ximian.com>
19664
19665         * Application.cs: add a couple of 2.0 events.
19666
19667 2006-12-25  Chris Toshok  <toshok@ximian.com>
19668
19669         * Control.cs: fix compiler warning.
19670
19671         * AxHost.cs: corcompare fixes.
19672
19673         * ApplicationContext.cs: corcompare fixes.
19674
19675 2006-12-25  Chris Toshok  <toshok@ximian.com>
19676
19677         * Control.cs: only update dist_right/dist_bottom if the
19678         width/height is > 0.  this fixes anchored controls being resized
19679         smaller until they disappear and then resized larger again.
19680
19681 2006-12-25  Chris Toshok  <toshok@ximian.com>
19682
19683         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
19684         since they're nothing more than X/Left and Y/Top, respectively.
19685
19686         Also, move back to a per-control Bitmap/Graphics for
19687         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
19688         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
19689         Height.
19690
19691 2006-12-25  Miguel de Icaza  <miguel@novell.com>
19692
19693         * MessageBox.cs: Implemented overload that takes a new "bool
19694         displayHelpButton" by adding a new internal field "show_help".
19695         When clicked this will raise the HelpRequested on the owner or the
19696         main form. 
19697
19698         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
19699         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
19700
19701         * ListView.cs: Add support ColumnWidthChanged and
19702         ColumnWidthChanging. 
19703
19704         Add support for ColumnReordered event.
19705         (ReorderColumn): Add NET_2_0 specific support for cancelling the
19706         reorder.
19707
19708         Very nice codebase!
19709
19710         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
19711
19712         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
19713
19714 2006-12-24  Chris Toshok  <toshok@ximian.com>
19715
19716         * GridTablesFactory.cs: 2.0 corcompare work.
19717
19718         * ToolStripContainer.cs: add "override" to
19719         ContextMenuStripChanged, and remove the local event object.
19720
19721         * ToolStripDropDown.cs: same with a couple properties.
19722
19723         * ToolStripPanel.cs: same with AutoSizeChanged event.
19724
19725         * TextBoxBase.cs: add "override" to AutoSizeChanged.
19726
19727         * Form.cs: add the remaining 2.0 events, and do some corcompare
19728         attribute work.
19729
19730         * DateTimePicker.cs: add "new" to padding.
19731
19732         * ButtonBase.cs: use Control's use_compatible_text_rendering.
19733
19734         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
19735
19736         * DataGridView.cs: PaddingChanged is overridden.
19737
19738 2006-12-24  Chris Toshok  <toshok@ximian.com>
19739
19740         * Control.cs: corecompare work here too.
19741
19742         * DataGridViewElement.cs, DataGridView.cs,
19743         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
19744         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
19745         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
19746         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
19747         work.
19748
19749 2006-12-24  Miguel de Icaza  <miguel@novell.com>
19750
19751         * Control.cs: Switched the error message on the console for a
19752         todo.  A review of the code will have to cope with this anyways
19753         (since its a large feature, it is in our radar) and it was
19754         producing too much output when running PDN.
19755
19756         * ToolStripComboBox.cs: Set the text when the SelectedIndex
19757         changes.  Applications depend on this (PDN 2.72)
19758
19759 2006-12-23  Chris Toshok  <toshok@ximian.com>
19760
19761         * TableLayoutSettings.cs: finish up the corcompare work for this
19762         class.
19763
19764 2006-12-23  Chris Toshok  <toshok@ximian.com>
19765
19766         * Control.cs: make SetImplicitBounds internal, do some futzing
19767         with LayoutEngine so that it's available in 1.1, and remove the
19768         entire duplicated code mess from PerformLayout.  Use
19769         System.Windows.Forms.Layout.DefaultLayout instead.
19770
19771         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
19772
19773 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
19774
19775         * Form.cs: Add MainMenuStrip property.
19776
19777 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
19778
19779         * Control.cs: Add ContextMenuStrip property and implementation.
19780         Fix ContextMenu implementation to show menu centered on control when
19781         activated using the keyboard instead of showing at screen (0,0).
19782
19783         * ToolStripDropDown.cs: Fix needed overload of Show ().
19784
19785 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19786
19787         * Menu.cs: Name property added for 2.0 profile.
19788         
19789 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19790
19791         * Menu.cs: Update information about FindMenuItem, method to be
19792         implemented soon.
19793
19794 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19795
19796         * MenuAPI.cs: When deselect items deselect also selected subitems.
19797         
19798 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
19799
19800         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
19801         FindSubItemByCoord to found itens that is not active, also an
19802         cheking added to FindSubItemByCoord to search for items only 
19803         in visible popup windows. Fixes #80274.
19804
19805 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
19806
19807         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
19808         internal property, it be care about change ExStyle. 
19809
19810 2006-12-22  Andreia Gaita  <avidigal@novell.com>
19811
19812         * ContainerControl.cs: set activeControl for parent forms up the 
19813         tree when the new activecontrol is a container.
19814         When validating the active control, if it is a container, also
19815         raise up the validation for it's active control. Fixes #80280
19816         
19817         * Control.cs: Add internal property flag and check to prevent
19818         Focus events from getting raised when Select() is called for
19819         a ContainerControl. There are still too many focus events being
19820         raised at the moment though.
19821         Cleaned up the code a bit.
19822
19823 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19824
19825         * Control.cs: Added all missing 2.0 events.and
19826         fixed a couple of corcompare issues.
19827         * TrackBar.cs: Implemented missing 2.0 bits.
19828         * MonthCalendar.cs, 
19829         * DateTimePicker.cs, 
19830         * MdiClient.cs: Fixed some corcompare issues.
19831
19832 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19833
19834         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
19835         SplitterPanel.cs: corecompare work.
19836
19837 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19838
19839         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
19840         Clean up warnings for BackgroundImageChanged and PaddingChanged
19841         events now that they are implemented in Control.cs.
19842
19843 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
19844
19845         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
19846         
19847         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
19848         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
19849         of TableLayoutPanel and supporting cast.
19850
19851 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19852
19853         * XplatUIWin32.cs: 
19854         - GrabWindow now confines the mouse pointer to the confine window.
19855         - Added Win32ClipCursor and Win32GetClipCursor.
19856
19857         * Control.cs: 
19858         - Added CaptureWithConfine to be able to capture and confine 
19859         mouse pointer.
19860         
19861         * InternalWindowManager.cs: 
19862         - Call CaptureWithConfine instead of Capture if we're an
19863         MdiChild (fixes #79982).
19864
19865 2006-12-21  Chris Toshok  <toshok@ximian.com>
19866
19867         * DataGrid.cs: guard against the initial state of selection, where
19868         selection_start == -1.  make sure we only select from index >= 0.
19869         Fixes bug #80291.
19870
19871 2006-12-21  Chris Toshok  <toshok@ximian.com>
19872
19873         * Control.cs: we don't need to be so draconian with
19874         UpdateDistances, and we thusly don't need to call it before
19875         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
19876
19877 2006-12-21  Daniel Nauck  <dna@mono-project.de>
19878
19879         * ComboBox.cs,
19880         TextBox.cs: Implemented AutoComplete properties.
19881
19882 2006-12-20  Chris Toshok  <toshok@ximian.com>
19883
19884         * DataGridView*.cs: some corecompare work.
19885
19886 2006-12-20  Jackson Harper  <jackson@ximian.com>
19887
19888         * XplatUIX11.cs: We need to hide the caret when deleting it,
19889         otherwise you get carets left lying around everywhere.
19890         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
19891         prevents getting some weird half drawn caret tracers when
19892         scrolling.
19893         * TextControl.cs: Attempt to reduce the number of times we need to
19894         recreate the caret.
19895
19896 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
19897
19898         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
19899
19900 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19901
19902         * DateTimePicker.cs:
19903         - Implemented missing 2.0 bits.
19904         - Changed some default values to match MS.
19905         
19906 2006-12-20  Jackson Harper  <jackson@ximian.com>
19907
19908         * TextBoxBase.cs: When changing the font across the document we
19909         can't recalculate after changing each line, since that will cahnge
19910         the line count.
19911         - PreferredHeight is a little different than i thought.
19912         - When backspacing, move the caret before we do the actual char
19913         delete, because when that delete crosses a wrap boundary the
19914         positional information will change.
19915
19916 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
19917
19918         * Control.cs: Added some missing 2.0 bits: 
19919         BackgroundImageLayout, BackgroundImageLayoutChanged, 
19920         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
19921         add IBindableComponent and IDropTarget implementation.
19922         
19923         * MonthCalendar.cs: 
19924         - Added all missing 2.0 features:
19925         BackgroundImageLayout, RightToLeftLayout, 
19926         OnHandleDestroyed, RightToLeftLayoutChanged, 
19927         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
19928         PaddingChanged.
19929         - Rewrote all the BoldDate code, it was completely broken.
19930         - Fixed all the tests (the tests can now be re-enabled, the
19931         problems were not with the tests, but with the control, it was
19932         mostly broken).
19933         
19934         * DateTimePicker.cs: Changed the location where the 
19935         MonthCalendar is shown.
19936         
19937 2006-12-19  Chris Toshok  <toshok@ximian.com>
19938
19939         * DataGridView.cs: add IDropTarget implementation.
19940
19941         * ToolStripPanel.cs: add IDropTarget implementation.
19942
19943 2006-12-19  Jackson Harper  <jackson@ximian.com>
19944
19945         * TextControl.cs: soft now means something different than what it
19946         used to mean, we want to move the caret regardless of whether or
19947         not this break was soft (would we really have wanted the caret
19948         to not move with the break in the old context?)
19949         * TreeView.cs: Make sure we factor in the vert scrollbar when
19950         calculating the horizontal scrollbar's maximum.
19951
19952 2006-12-19  Andreia Gaita  <avidigal@novell.org>
19953
19954         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
19955         check for keywords in alternate casing, close bug #80049.
19956
19957 2006-12-19  Chris Toshok  <toshok@ximian.com>
19958
19959         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
19960         methods (which all do nothing).
19961
19962         * IDropTarget.cs: add the 4 missing methods.
19963
19964 2006-12-19  Chris Toshok  <toshok@ximian.com>
19965
19966         * TableLayoutRowStyleCollection.cs: corcompare work.
19967         
19968         * TableLayoutSettings.cs: same.
19969
19970         * TableLayoutStyle.cs: same.
19971
19972         * TableLayoutColumnStyleCollection.cs: same.
19973
19974 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
19975
19976         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
19977         TableLayoutPanel I've had in my local tree for way too long.
19978
19979 2006-12-19  Miguel de Icaza  <miguel@novell.com>
19980
19981         * TableLayoutSettings.cs: Finish the public API (still needs all
19982         the logic to update on changes). 
19983
19984         * TableLayoutPanelCellPosition.cs: new file.
19985         
19986         * TableLayoutRowStyleCollection.cs,
19987         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
19988         TableLayoutSettings.cs: Track the final 2.0 table api.
19989
19990 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
19991
19992         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
19993         and Image List 2.0 members for ColummnHeader.
19994         * ListView.cs: Add key-related 2.0 methods for
19995         ColumnHeaderCollection.
19996
19997 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
19998
19999         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
20000         ArgumentNullException if items argument is null. Ignore null item in
20001         arrays. Removed extra tabs.
20002
20003 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
20004
20005         * MonthCalendar.cs: Fixed InvalidCastException.
20006
20007 2006-12-19  Jackson Harper  <jackson@ximian.com>
20008
20009         * TextControl.cs: Don't increment the position here.
20010         - When calculating char positions only add in the line break size
20011         for hard line breaks.
20012
20013 2006-12-19  Andreia Gaita  <avidigal@novell.org>
20014
20015         * SendKeys.cs: Changed some things to match ms.net behaviour
20016         when parsing shifted capital letters.
20017         
20018         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
20019         Add window handle as parameter to SendInput. X11 needs the 
20020         window handle, and the handle being passed      to it in the keys 
20021         queue is the active control handle (which windows needs), not 
20022         the window handle.
20023         
20024         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
20025         to support SendKeys on X.       
20026         
20027         * X11Keyboard: Implement helper method to lookup a linux keycode
20028         given the virtual keycode. Added table of keycode-2-virtualkey
20029         values to support this.
20030
20031 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20032
20033         * ListView.cs: Add support for SelectedIndexCollection
20034         and SelectedItemCollection 2.0 methods. Implement support
20035         for ImageKey too.
20036         * ListViewItem.cs: Add support for ListViewSubItemCollection
20037         2.0 methods. Also, fix an incorrect behavior of AddRange method
20038         (it shouldn't call Clear).
20039         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
20040
20041 2006-12-19  Jackson Harper  <jackson@ximian.com>
20042
20043         * RichTextBox.cs: 
20044         * TextBoxBase.cs: New args for FormatText
20045         * TextControl.cs: Rewrote the main drawing method, this version
20046         feels a little easier to understand and debug to me.  Hopefully it
20047         does to others also
20048         - Fix FormatText to OR in the new formating values.  Added
20049         FormatSpecified param, basically this works in the same way as
20050         BoundsSpecified in Control.
20051         - Set the caret properties when the caret is positioned.
20052         - When wrapping text make sure that we calculate the width of the
20053         last character
20054         - when calculating alignments we might have wrapped down to the
20055         next line, so don't search for an individual tag, search for the
20056         end of the line
20057         - We need to invalidate the selection area when we replace the
20058         selection.
20059         
20060 2006-12-19  Daniel Nauck  <dna@mono-project.de>
20061
20062         * Application.cs: add Restart () 2.0 support
20063
20064 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
20065
20066         * MenuItem.cs: Invalidate menu item rectangle after change Enable
20067         property. Fixes #80268.
20068         
20069 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
20070
20071         * MenuAPI.cs: Dont trigger select event when closes top menu
20072         item. Fixes #80270.
20073
20074 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
20075
20076         * MenuAPI.cs: When you click on menuitem only trigger onselect
20077         event for top menu itens. Fixes #80271.
20078         
20079 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20080
20081         * MdiWindowManager.cs: Make IconicBounds depend on
20082         the bottom of MdiClient, not the top (fixes #80267)
20083         
20084 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20085
20086         * MdiClient.cs: Added missing 2.0 attribute
20087
20088 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20089
20090         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
20091         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
20092
20093 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
20094
20095         * MenuAPI.cs: Fix click when menuitem is not popup,
20096         this regression was caused by last commit (#80272).
20097
20098 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
20099
20100         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
20101         fire click event or close menu. Fixes #80272.
20102
20103 2006-12-17  Daniel Nauck  <dna@mono-project.de>
20104
20105         * ListViewHitTestInfo.cs: add
20106
20107 2006-12-17  Daniel Nauck  <dna@mono-project.de>
20108
20109         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
20110         * FlatButtonAppearance.cs: add
20111         * DockingAttribute.cs: add
20112
20113 2006-12-17  Chris Toshok  <toshok@ximian.com>
20114
20115         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
20116         and rebind our columns when it does - this way, if you make
20117         changes to the DataTable (or set the Table attribute on a DataView
20118         after setting it as the DataGrid's DataSource, the changes are
20119         made visible.)  Fixes bug #80107.
20120
20121 2006-12-17  Daniel Nauck  <dna@mono-project.de>
20122
20123         * ListViewGroup.cs: add internal Location property for layouting.
20124         * Theme.cs: add abstract ListViewGroupHeight function.
20125         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
20126
20127 2006-12-16  Andreia Gaita  <avidigal@novell.com>
20128
20129         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
20130         Added reset of selected index to 0 when adding first tab page.
20131         Fixes #80264
20132         
20133         * NumericUpDown.cs: Fix NET_2_0 check
20134
20135 2006-12-16  Daniel Nauck  <dna@mono-project.de>
20136
20137         * ListViewGroup.cs: fixed DefaultValueAttribute value
20138
20139 2006-12-16  Daniel Nauck  <dna@mono-project.de>
20140
20141         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
20142
20143 2006-12-15  Miguel de Icaza  <miguel@novell.com>
20144
20145         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
20146         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
20147         ScrollableControl.cs: Add a handful of methods that are
20148         overwritten in 2.0 
20149
20150 2006-12-15  Chris Toshok  <toshok@ximian.com>
20151
20152         * XplatUIWin32.cs: initial implementation of the Reversible
20153         drawing functions.  there are some problems.  DrawReversibleFrame
20154         doesn't seem to work at all for Dashed FrameStyle, and in the
20155         Thick case there are drawing errors at the corners (we probably
20156         need to bind Rectangle instead of doing moveto/lineto's.)
20157
20158 2006-12-16  Andreia Gaita  <avidigal@novell.com>
20159         
20160         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
20161         to send blocks of key messages. Send accumulates keys to send with Flush, 
20162         while SendWait sends all keys immediately.
20163                 
20164         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
20165         XplatUIX11.cs,  XplatUIX11-new.cs:
20166         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
20167         to Win32 SendInput.
20168         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
20169         
20170         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
20171         testing for ms.net on this class is very tricky, as the tests run too fast 
20172         to allow the hook to release, essentially freezing the keyboard and the 
20173         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
20174         category :p
20175
20176 2006-12-16  Daniel Nauck  <dna@mono-project.de>
20177
20178         * Padding.cs: fixed serialization compability to MS ("_var" field names),
20179                         added missing attributes.
20180  
20181 2006-12-15  Daniel Nauck  <dna@mono-project.de>
20182
20183         * ListViewGroup.cs: Added missing attributes.
20184         * ListViewGroupCollection.cs: Added missing attributes.
20185
20186 2006-12-15  Daniel Nauck  <dna@mono-project.de>
20187
20188         * ListViewItem.cs: fixed ListViewSubItem text property.
20189
20190 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20191         
20192         * Control.cs: Added missing 2.0 attributes
20193         
20194 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20195         
20196         * MdiClient.cs: Added missing 2.0 attribute.
20197         * MonthCalendar.cs: Added some missing 2.0 attributes 
20198         and properties.
20199         
20200 2006-12-15  Daniel Nauck  <dna@mono-project.de>
20201
20202         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
20203
20204 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
20205
20206         * MainMenu.cs: Add the new 2.0 constructor to help out people
20207         using the MainMenu in VS2005.
20208
20209 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20210         
20211         * MdiChildContext.cs: Removed it, no longer used.
20212         * MdiClient.cs: Added missing 2.0 attributes.
20213         
20214 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20215         
20216         * InternalWindowManager.cs: Fix a NullRef with previous 
20217         changes for toolwindows.
20218         
20219 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20220
20221         * Control.cs: 
20222         - Added AfterTopMostControl to allow for certain controls 
20223         to always stay on top when normal controls are brought to 
20224         front.
20225         
20226         * XplatUIWin32.cs: 
20227         - (DrawInversibleRectangle): Get window rectangle from Win32 
20228         in stead of from control, since Win32 doesn't calculate
20229         screen coords correctly from control's Location if it 
20230         have docked siblings.
20231         
20232         * MdiWindowManager.cs:
20233         - Correct the control menu popup location when clicked on
20234         the maximized form icon. (fixes #80223.1)
20235         - Don't show moving rectangle if mouse hasn't moved from
20236         the original clicked point.
20237         - Removed FormGotFocus handler (not used).
20238         - Calculate the control buttons location from the main
20239         window's size and not client size (fixes #79770).
20240         - Form is now closed when the form icon is double-clicked
20241         (fixes #79775). 
20242         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
20243         
20244         * InternalWindowManager.cs:
20245         - Moved some MDI-only methods to MdiWindowManager.
20246         - Removed unused properties and methods.
20247         - Unified method naming for methods handling wm messages.
20248         - Moved all message handling to seperate methods for
20249         each message.
20250         
20251         * ThemeWin32Classic.cs:
20252         - DrawManagedWindowDecorations now draws the title bar 
20253         with a gradient brush.
20254         - Add a CPDrawButtonInternal that allows us to specify
20255         light, normal and dark colors for the buttons (control 
20256         buttons for MDI children were drawn with the same light
20257         color as the background, therefore loosing the 3D effect).
20258         
20259         * SizeGrip.cs:
20260         - Add a CapturedControl property that is used to 
20261         determine the control to resize (defaults to parent). 
20262         Needed for MdiClient, since its SizeGrip's parent is
20263         MdiClient, but the control to resize is the main form.
20264         
20265         * MdiClient.cs:
20266         - Set SizeGrip's CapturedControl to the main form in order
20267         to resize the main form and not the MdiClient.
20268         - Override AfterTopMostControl to leave the scrollbars 
20269         always on top.
20270
20271 2006-12-15  Daniel Nauck  <dna@mono-project.de>
20272
20273         * ListView.cs: fixed ListViewItemCollection AddRange and
20274                         implemented ListViewItemCollection AddRange 2.0 support.
20275
20276 2006-12-15  Daniel Nauck  <dna@mono-project.de>
20277
20278         * ListViewGroup.cs: Add.
20279         * ListViewGroupCollection.cs: Add
20280         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
20281         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
20282                                 stub for ImageKey 2.0 support.
20283
20284 2006-12-14  Mike Kestner  <mkestner@novell.com>
20285
20286         * ListView.cs: add text padding to the autocalculation for columns
20287         of width -2.  Fixes #80207.
20288  
20289 2006-12-14  Mike Kestner  <mkestner@novell.com>
20290
20291         * ListView.cs: add some index guarding for partial row navigation 
20292         logic.  Fixes #80250.
20293
20294 2006-12-14  Mike Kestner  <mkestner@novell.com>
20295
20296         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
20297         are added or inserted to the collection.  Fixes #81099.
20298
20299 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
20300
20301         * MenuAPI.cs: Closes menu when right click out side of popup
20302         it fix problem in ContextMenu and MainMenu. Fixes #80252.
20303
20304 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20305
20306         * ListViewItem.cs: Fix dumb error.
20307
20308         * ListView.cs: Add Find and ContainsKey methods in 
20309         ListViewItemCollection, and also return true for IsReadOnly
20310         and IsFixedSize (changes for 2.0). 
20311
20312 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
20313
20314         * Control.cs: Allow Region to be set to null.
20315
20316 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20317
20318         * MdiWindowManager.cs: Remove unused (commented out) code.
20319         * Form.cs: When the MdiChild is maximized, the form needs 
20320         WM_NCMOUSELEAVE, so request it.
20321         * InternalWindowManager.cs: 
20322         - Added tooltips to control buttons.
20323         - Removed duplicated control button handling code.
20324         - Removed unused (commented out) code.
20325         
20326 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
20327
20328         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
20329         was used because we must set cursor without trigger ChangeCursor event
20330         and without change Cursor control property. Fixes #79963.
20331
20332 2006-12-12  Andreia Gaita  <avidigal@novell.com>
20333         
20334         * Control.cs: Check if Region setter value is null, and ignore
20335
20336 2006-12-12  Jackson Harper  <jackson@ximian.com>
20337
20338         * TextControl.cs: We were almost always drawing one more line then
20339         needed, since the GetLineByPixel will return the last line found
20340         at that pixel. In most cases though, we were invalidating up to
20341         the junction between two lines.
20342         - Improve debug code.
20343
20344 2006-12-12  Chris Toshok  <toshok@ximian.com>
20345
20346         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
20347         and FillReversibleRectangle.
20348
20349         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
20350         and FillReversibleRectangle.
20351
20352         * XplatUIWin32.cs: add stubs which do nothing for
20353         DrawReversibleFrame, DrawReversibleLine, and
20354         FillReversibleRectangle.
20355
20356         * XplatUIOSX.cs: add stubs which raise NIE for
20357         DrawReversibleFrame, DrawReversibleLine, and
20358         FillReversibleRectangle.
20359
20360         * XplatUIX11.cs: add working implementation for
20361         DrawReversibleFrame, DrawReversibleLine, and
20362         FillReversibleRectangle.
20363         
20364         * ControlPaint.cs: implement DrawReversibleFrame,
20365         DrawReversibleLine, and FillReversibleRectangle, by calling into
20366         the appropriate XplatUI method.
20367
20368 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20369
20370         * Form.cs: Make MdiClient have the focus even if it's
20371         not selectable, since it should receive WM_KEY* and WM_MOUSE 
20372         messages. Fixes #79907.
20373         
20374 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20375
20376         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
20377         queried after the window is created.
20378         
20379         * XplatUIX11.cs: Added SendParentNotify to implement 
20380         WM_PARENTNOTIFY logic. Fixes #79965.
20381         
20382         * Control.cs: Added MakeParam.
20383         
20384 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20385
20386         * MdiClient.cs: Resume Layout before setting window
20387         states (fixes #80201).
20388
20389 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20390
20391         * MenuAPI.cs: Deselect a menu item after performing
20392         the click (fixes #80197).
20393
20394 2006-12-11  Jackson Harper  <jackson@ximian.com>
20395
20396         * TextBoxBase.cs: We need to cap this value, since Maximum -
20397         ViewPortHeight can be less than zero.
20398         - Only do selection with the left mouse button.
20399         * TextBox.cs: Don't tell the world that we have a context menu.
20400         * Control.cs: New method so that we can control whether or not the
20401         context menu is visible outside MWF.
20402
20403 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
20404
20405         * ToolBarButton.cs: Fix text positon. 
20406
20407 2006-12-11  Miguel de Icaza  <miguel@novell.com>
20408
20409         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
20410
20411         * Control.cs (DoubleBuffered): Add implementation.
20412
20413         * Application.cs (OpenForms): Add.
20414
20415 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
20416
20417         * Form.cs: Use opacity instead of Opactiy to determine if we need
20418         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
20419
20420 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
20421
20422         * Control.cs: Fix NRE if Control.Site was set to null.
20423
20424 2006-12-11  Chris Toshok  <toshok@ximian.com>
20425
20426         * Control.cs: ControlCollection.Remove should return if the arg is
20427         null, and ControlCollection.SetChildIndex should raise a ANE.
20428
20429 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
20430
20431         * Control.cs: Verify value set for Dock property. Code formatting
20432         updates.
20433
20434 2006-12-11  Jackson Harper  <jackson@ximian.com>
20435
20436         * TextControl.cs: Draw the caret and the selection when a flag is
20437         set on the owner.
20438         * TextBoxBase.cs: We want to draw the caret and the selection for
20439         TextBox but not for TextBoxBase.
20440         - If the window is resized and scrolling is no longer needed (the
20441         whole doc is visible) set the scroll position to zero.
20442         - The default SelectWord (the one TextBox uses) should move the
20443         caret to the end of the word.
20444         - SelectAll moves the caret to the end of the selection.
20445         * TextBox.cs: We don't selectall on focus, we just do it when the
20446         control is created.
20447         
20448 2006-12-11  Mike Kestner  <mkestner@novell.com>
20449
20450         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
20451
20452 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
20453
20454         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
20455         2.0 support.
20456         * ListViewItem.cs: Add Name 2.0 property.
20457
20458 2006-12-11  Andreia Gaita  <avidigal@novell.com>
20459
20460         * TabControl.cs: Set visibility on selected or default tab 
20461         when tabcontrol handle is created, so that it's contents
20462         actually show up (duh). Fixes #80193
20463         Don't redraw the control if there is no handle created, as
20464         the selected index might be completely invalid. Added some tests
20465         to check for this.
20466
20467 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
20468
20469         * ToolBar.cs: Uses maximun width and height of all buttons as 
20470         button rectangle when ButtonSize specified, it looks strange but
20471         is what happens in Win32. Fixes #80189.
20472
20473 2006-12-11  Jackson Harper  <jackson@ximian.com>
20474
20475         * TextControl.cs: Need to track undo levels ourself, since
20476         compound actions will mess them up.
20477
20478 2006-12-10  Andreia Gaita  <avidigal@novell.com>
20479
20480         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
20481         SelectedIndex value is changed (even if it's not valid).
20482         Reset SelectedIndex to 0 when the handle is created and if
20483         the current index is invalid.
20484         Fixes SelectdeIndex unit tests and #80128
20485
20486 2006-12-08  Chris Toshok  <toshok@ximian.com>
20487
20488         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
20489         calls EndEdit, it needs to be called before we set current_cell to
20490         its new value.  Otherwise, we end up committing the value in the
20491         textbox to the new cell as well.  Fixes bug #80160.
20492
20493 2006-12-08  Chris Toshok  <toshok@ximian.com>
20494
20495         * Form.cs (set_CancelButton): if the button's DialogResult is
20496         None, set it to Cancel.  Fixes bug 80180.
20497
20498 2006-12-08  Jackson Harper  <jackson@ximian.com>
20499
20500         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
20501         to watch ourselves when setting the canvas size and setting the
20502         scrollbar values.
20503
20504 2006-12-08  Chris Toshok  <toshok@ximian.com>
20505
20506         * DataGrid.cs: comment out the two MakeTransparent calls for the
20507         time being so people using trunk (and not 1.2.2) on windows can
20508         actually use the datagrid.  This deals with bug #80151.
20509
20510 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
20511
20512         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
20513         Graphics.DrawImage (image, int, int, int, int) overload instead
20514         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
20515         the dpi difference and was blurring images it drew.
20516         [Fixes bug #79960]
20517
20518 2006-12-08  Chris Toshok  <toshok@ximian.com>
20519
20520         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
20521         rowcnt is 0 (such as with an empty datasource), and make sure we
20522         initialize not_usedarea.Y to cells.Y, so we don't draw over the
20523         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
20524
20525 2006-12-08  Chris Toshok  <toshok@ximian.com>
20526
20527         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
20528         grid.
20529
20530 2006-12-08  Chris Toshok  <toshok@ximian.com>
20531
20532         [ Fixes bug #80167 ]
20533         
20534         * ThemeWin32Classic.cs: don't draw the image if the button's flat
20535         style is FlatStyle.System.
20536
20537         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
20538         ButtonBase.flat_style private, and switch uses of it to the public
20539         property.
20540         
20541 2006-12-08  Chris Toshok  <toshok@ximian.com>
20542
20543         [ Fixes bug #80121 ]
20544         
20545         * ThemeWin32Classic.cs: center the caption text in the datagrid
20546         when we draw it.
20547
20548         * DataGrid.cs: lessen the amount we add to the caption height from
20549         6 to 2.  6 was making it huge.
20550
20551 2006-12-08  Andreia Gaita  <avidigal@novell.com>
20552
20553         * UpDownBase: Handle MouseWheel call directly instead of capturing
20554         the inner textbox's OnMouseWheel. Fixes #80166
20555
20556 2006-12-08  Jackson Harper  <jackson@ximian.com>
20557
20558         * TextControl.cs: We need to invalidate the textbox when we empty
20559         it (how had this not been discovered before?)
20560
20561 2006-12-08  Jackson Harper  <jackson@ximian.com>
20562
20563         * TextBoxBase.cs: Reworked the mouse down code so I could get it
20564         to behave like MS, we now ignore the eventargs.Click and just
20565         track state ourself, which we were already doing anyways.
20566         - Constrain the double click handler to the double click size.
20567         
20568 2006-12-08  Chris Toshok  <toshok@ximian.com>
20569
20570         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
20571         direction if that scrollbar isn't shown.  fixes bug #80158.
20572
20573 2006-12-08  Andreia Gaita  <avidigal@novell.com>
20574
20575         * NumericUpDown.cs: Update value on getter. Fixes #79950
20576
20577 2006-12-08  Chris Toshok  <toshok@ximian.com>
20578
20579         * MenuItem.cs: add back in the event cloning code.  I didn't know
20580         how to do it in the face of the EventHandlerList work i'd done
20581         last week.  Fixes bug #80183.
20582
20583 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
20584
20585         * Control.cs: Add an invalidate to the BackgroundImage setter.
20586         [Fixes 80184]
20587
20588 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
20589
20590         * ToolStrip*: Add some small properties reported by MoMA, fix event
20591         firing and default properties based off of unit tests, and add some
20592         attributes based off of the class status page.
20593
20594 2006-12-07  Jackson Harper  <jackson@ximian.com>
20595
20596         * TextBoxBase.cs: Take HideSelection into account when determining
20597         whether or not to show the selection.
20598         * RichTextBox.cs: After inserting the RTF into the document move
20599         the cursor to the beginning of the document.
20600
20601 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
20602
20603         * Control.cs: Remove static ArrayList "controls" which maintained
20604         a reference to every control created.
20605         * Application.cs: Create a static FormCollection to maintain a reference
20606         to every form created.  Use it in places that formerly enumerated through
20607         the controls one looking for forms.
20608         * Form.cs: Add and remove self from above FormCollection.
20609
20610 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
20611
20612         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
20613           not libgdk (though it makes me wonder why I didn't have any
20614           problems)
20615
20616 2006-12-07  Chris Toshok  <toshok@ximian.com>
20617
20618         [ you had to know this was coming after that last commit...]
20619         
20620         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
20621         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
20622         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
20623         XCopyArea).
20624
20625 2006-12-07  Chris Toshok  <toshok@ximian.com>
20626
20627         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
20628         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
20629         all the behavior we need for double buffering.
20630
20631         * XplatUIDriver.cs: implement the 3 double buffer methods using a
20632         client side Bitmap, just like the old Control-based double buffer
20633         code did.  The methods are virtual, so each XplatUI driver
20634         subclass can replace the implementation to use a faster, platform
20635         specific approach.
20636
20637         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
20638         double buffer code, and clean things up a bit in the process.
20639
20640 2006-12-06  Chris Toshok  <toshok@ximian.com>
20641
20642         * Control.cs: reindent WndProc.
20643
20644 2006-12-06  Chris Toshok  <toshok@ximian.com>
20645
20646         [ I wanna be like BenM when I grow up ]
20647         
20648         * Hwnd.cs: create a single static Graphics object on the static
20649         Bitmap we create.  use this for our text measurements.
20650
20651         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
20652         This was causing us to allocate a backbuffer for every control,
20653         even when it wasn't flagged as double buffered.  Instead use the
20654         single graphics instance.  This might have implications for
20655         multithreaded applications.  If we run into problems we can switch
20656         to creating 1 Graphics per control, on the static Hwnd bitmap.
20657
20658         this change nets us a 7M savings in private dirty mappings when
20659         running FormsTest.exe.
20660
20661 2006-12-06  Chris Toshok  <toshok@ximian.com>
20662
20663         * ListView.cs: the BackgroundImage override is just to set
20664         attributes.  chain up to base.BackgroundImage.
20665
20666         * RichTextBox.cs: same.
20667
20668         * ToolBar.cs: same, but we need to also redraw the toolbar when it
20669         changes, so instead a handler for BackgroundImageChanged.
20670         
20671         * Control.cs: make background_image private.
20672
20673 2006-12-06  Chris Toshok  <toshok@ximian.com>
20674
20675         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
20676         sure we even need this assignment, but roll with it for now.
20677
20678         * Control.cs: make the cursor field private.
20679
20680 2006-12-06  Chris Toshok  <toshok@ximian.com>
20681
20682         * Form.cs: we don't need to explicitly set ImeMode to
20683         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
20684         behavior in the face of ImeMode.Inherit.
20685
20686         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
20687         change the ctor's assignment to use ImeMode instead of ime_mode.
20688
20689         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
20690         ImeModeInherit.  Only check for the parent's imemode (and return
20691         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
20692         This fixes the button unit test, which sets both ImeMode and
20693         DefaultImeMode to ImeMode.Disable.
20694
20695         also make the ime_mode field private.
20696
20697 2006-12-06  Chris Toshok  <toshok@ximian.com>
20698
20699         * Control.cs: make control_style private.
20700
20701         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
20702         setting the styles to true, then setting them to false instead of
20703         reverting to their previous values.
20704
20705         also, call SetStyle on the scrollbars instead of using
20706         control_style directly.
20707
20708 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
20709
20710         * FormCollection.cs: Implement. [2.0]
20711
20712 2006-12-06  Chris Toshok  <toshok@ximian.com>
20713
20714         * Control.cs: make tab_stop private.
20715
20716         * Label.cs: set TabStop, not tab_stop.  reformat some event
20717         add/remove methods to make them more compact.
20718
20719 2006-12-06  Chris Toshok  <toshok@ximian.com>
20720
20721         * RadioButton.cs: fix TabStop handling.
20722
20723 2006-12-06  Chris Toshok  <toshok@ximian.com>
20724
20725         * TextBox.cs: remove the explicit assignments to has_focus.
20726         Control does that.
20727
20728         * ButtonBase.cs: remove the assignment to has_focus.  Control will
20729         manage that.
20730         
20731 2006-12-06  Chris Toshok  <toshok@ximian.com>
20732
20733         * ButtonBase.cs: remove all uses of is_enabled from this code.
20734         it's always true when any of the code containing the checks is
20735         executed.
20736
20737 2006-12-06  Chris Toshok  <toshok@ximian.com>
20738
20739         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
20740         with different semantics (some are present in both 1.1 and 2.0
20741         profiles) so that we match MS's behavior in our unit tests.
20742
20743 2006-12-06  Jackson Harper  <jackson@ximian.com>
20744
20745         * TextControl.cs: Make this operation undoable.
20746         * TextBoxBase.cs: Factor the border width into the preferred
20747         height.
20748         - implement Modified as per the spec.
20749
20750 2006-12-06  Chris Toshok  <toshok@ximian.com>
20751
20752         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
20753
20754 2006-12-06  Chris Toshok  <toshok@ximian.com>
20755
20756         * Control.cs: make right_to_left and context_menu fields private.
20757
20758 2006-12-06  Chris Toshok  <toshok@ximian.com>
20759
20760         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
20761         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
20762         Control.child_controls private.  switch all uses over to
20763         Control.Controls.
20764
20765 2006-12-06  Chris Toshok  <toshok@ximian.com>
20766
20767         * System.Windows.Forms/GroupBox.cs,
20768         System.Windows.Forms/AccessibleObject.cs,
20769         System.Windows.Forms/ErrorProvider.cs,
20770         System.Windows.Forms/Control.cs,
20771         System.Windows.Forms/UpDownBase.cs,
20772         System.Windows.Forms/ScrollBar.cs,
20773         System.Windows.Forms/DateTimePicker.cs,
20774         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
20775         System.Windows.Forms/ToolTip.cs,
20776         System.Windows.Forms/RadioButton.cs,
20777         System.Windows.Forms/LinkLabel.cs,
20778         System.Windows.Forms/Splitter.cs,
20779         System.Windows.Forms/TextBoxBase.cs,
20780         System.Windows.Forms/ToolStripTextBox.cs,
20781         System.Windows.Forms/ContainerControl.cs,
20782         System.Windows.Forms/ThemeWin32Classic.cs,
20783         System.Windows.Forms/SizeGrip.cs,
20784         System.Windows.Forms/ToolStripDropDown.cs,
20785         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
20786         private.  switch all uses over to Control.Parent.
20787
20788 2006-12-06  Chris Toshok  <toshok@ximian.com>
20789
20790         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
20791         Control does this before calling emitting these events.
20792
20793         * TabControl.cs: same.
20794
20795         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
20796         Control.client_rect.
20797
20798         * ButtonBase.cs: use the ClientSize property instead of the
20799         client_size field.
20800
20801         * ScrollableControl.cs: same.
20802
20803         * Control.cs: another pass at making properties private.  also,
20804         move the initialization of tab_stop to the ctor.
20805
20806 2006-12-05  Andreia Gaita <avidigal@novell.com>
20807
20808         * TabControl.cs: Let the selected index be set freely if the 
20809         control handle is not yet created.
20810
20811 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
20812
20813         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
20814         internal until I can rewrite DefaultLayout.
20815         * ToolStrip.cs: Fix build error and some general cleaning.
20816         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
20817         Fix build errors caused by making some of Control's fields private.
20818
20819 2006-12-05  Jackson Harper  <jackson@ximian.com>
20820
20821         * TextControl.cs: Redo Insert a little so that it use IndexOf
20822         instead of Split, this prevents it from messing up on things like
20823         \n\n\n. Also more effecient since the split array doesn't need to
20824         be created.
20825         * TextBoxBase.cs: AppendText doesnt handle multiline and non
20826         multiline text differently, this is the first of many fixes that
20827         will make multiline/non-multiline the same thing as far as the
20828         TextBoxBase is concerned.
20829         - Don't split the text and insert lines, this can lose some line
20830         endings (like is the last line a soft or hard break). Instead use
20831         the new Insert.
20832         - Fix an off by one when combining all the lines in the Text
20833         getter.
20834         - Remove separate multiline handling from the Text getter/setter.
20835
20836 2006-12-05  Chris Toshok  <toshok@ximian.com>
20837
20838         * ButtonBase.cs: a few changes:
20839
20840         - don't reinitialize internal Control fields in the ctor when they
20841         have the same values as Control sets them.
20842
20843         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
20844         this before calling those methods.
20845
20846         - we don't need to call Refresh for anything.  use Invalidate
20847         instead.
20848
20849         - OnEnabledChanged doesn't need to redraw at all - Control.cs
20850         calls Refresh in its OnEnabledChanged.
20851         
20852         - several of the events we were registered for in the ctor to
20853         redraw ourselves already include calls to Invalidate in the
20854         property setters that raise the events.  remove the extra
20855         invalidation.
20856
20857         - reformat a switch statement that was 83274658 columns wide.
20858         
20859 2006-12-05  Mike Kestner  <mkestner@novell.com>
20860
20861         * ComboBox.cs: fix a unit test regression from a TextBox
20862         SelectionLength return of -1 when there's no selection.  
20863
20864 2006-12-05  Chris Toshok  <toshok@ximian.com>
20865
20866         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
20867         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
20868         cleaning up some of the internal Control fields being used by
20869         subclasses.
20870
20871 2006-12-05  Mike Kestner  <mkestner@novell.com>
20872
20873         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
20874         listbox after AddImplicit calls since it defaults to hidden. Add a 
20875         hack to preserve requested heights across DropDownStyle changes.
20876
20877 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
20878
20879         * PropertyGrid.cs: Hide FindFirstItem method from public API.
20880
20881 2006-12-05  Chris Toshok  <toshok@ximian.com>
20882
20883         * DataGridView.cs: fix compiler warnings.
20884
20885         * PrintControllerWithStatusDialog.cs: same.
20886
20887         * ToolBar.cs: same.
20888
20889         * FolderBrowserDialog.cs: same.
20890
20891         * Splitter.cs: same.
20892
20893         * DataGridViewComboBoxCell.cs: same.
20894
20895         * XplatUIWin32.cs: same.
20896
20897         * PictureBox.cs: same.
20898
20899         * Win32DnD.cs: same.
20900
20901         * PageSetupDialog.cs: same.
20902
20903         * FileDialog.cs: same.
20904
20905         * PrintDialog.cs: same.
20906
20907         * DataGridTextBoxColumn.cs: same.
20908
20909         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
20910
20911 2006-12-05  Chris Toshok  <toshok@ximian.com>
20912
20913         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
20914         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
20915         System.ComponentModel.EventHandlerList work.
20916
20917 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
20918
20919         * DrawTreeNodeEventArgs.cs: Added.
20920
20921 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20922         
20923         * InternalWindowManager.cs: Remove an unused field.
20924         
20925 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20926
20927         * InternalWindowManager.cs:
20928         - Save the point where the title bar is clicked.
20929         
20930         * MdiWindowManager.cs:
20931         - Only allow moving of the window as long as the 
20932         clicked point on the title bar does not get out of
20933         MdiClient's rectangle. Fixes #79982.
20934         
20935         * MdiClient.cs:
20936         - Added Horizontal/VerticalScrollbarVisible.
20937         - Simplified the scrollbar sizing algorithm.
20938         - Cache the difference in scrolled value in
20939         H/VBarValueChanged and move the calculation out
20940         of the for loop.
20941
20942 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
20943
20944         * Control.cs: Make the Console.WriteLine in WndProc 
20945         write more info.
20946
20947 2006-12-05  Chris Toshok  <toshok@ximian.com>
20948
20949         * ToolStripManager.cs, ToolStripButton.cs,
20950         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
20951         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
20952         ToolStripSplitButton.cs, ToolStripSeparator.cs,
20953         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
20954         ToolStripProgressBar.cs, ToolStripContainer.cs,
20955         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
20956         to using System.ComponentModel.EventHandlerList.
20957
20958 2006-12-04  Chris Toshok  <toshok@ximian.com>
20959
20960         * LinkLabel.cs: fix up compiler warnings.
20961
20962         * TableLayoutSettings.cs: same.
20963
20964         * TreeView.cs: same.
20965
20966         * ToolBar.cs: same.
20967
20968         * TabControl.cs: same.
20969
20970         * RichTextBox.cs: same.
20971
20972         * ListViewItem.cs: same.
20973
20974         * PropertyGrid.cs: same.
20975
20976         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
20977
20978         * ToolTip.cs same.
20979
20980         * TextRenderer.cs: fix up compiler warnings.
20981
20982         * Label.cs: same.
20983
20984         * Form.cs: corcompare fixes.
20985
20986         * PictureBox.cs: fix up compiler warnings.
20987
20988         * ImageListStreamer.cs: same.
20989
20990         * TrackBar.cs: corcompare fix.
20991
20992         * Control.cs: fix up compiler warnings.
20993
20994         * SplitterPanel.cs: same.
20995
20996         * NumericTextBox.cs: same.
20997
20998         * ImageList.cs: same.
20999
21000         * StatusStrip.cs: same.
21001
21002         * ProgressBar.cs: corcompare fix.
21003
21004         * ToolStripButton.cs: fix up compiler warnings.
21005
21006         * ToolStripStatusLabel.cs: same.
21007
21008         * ToolStripSplitButton.cs: same.
21009
21010         * ToolStripSeparator.cs: same.
21011
21012         * ToolStripProgressBar.cs: same.
21013
21014         * ToolStripDropDownMenu.cs: same
21015
21016         * ToolStripDropDown.cs: same.
21017
21018         * ToolStripDropDownButton.cs: same.
21019
21020         * ToolStrip.cs: same.
21021
21022         * ToolStripControlHost.cs: same.
21023
21024         * ToolStripContentPanel.cs: same.
21025
21026         * ToolStripDropDown.cs: same.
21027
21028         * ToolStripContainer.cs: same.
21029
21030         * ToolStripPanel.cs: same, and add "new" where we need it to work
21031         with the new ArrangedElementCollection.
21032
21033         * ToolStripItemCollection.cs: add "new" where we need it to work
21034         with the new ArrangedElementCollection.
21035
21036 2006-12-04  Andreia Gaita <avidigal@novell.com>
21037
21038         * TabControl.cs: Fix default tab selection to after TabControl
21039         gets focus and not before. Fixes #80128
21040
21041 2006-12-04  Chris Toshok  <toshok@ximian.com>
21042
21043         * DataGridTableStyle.cs: remove the gross calling of
21044         datagrid.Refresh from here.  It's a broken idea and it doesn't
21045         work anyway.
21046
21047         * DataGrid.cs: instead, just register/unregister from the
21048         DataGridTableStyle events in CurrentTableStyle.  we play it
21049         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
21050         even though some would most likely not require it.  Fixes bug
21051         #80115 (and one portion of #80117 as a side effect).
21052
21053 2006-12-04  Chris Toshok  <toshok@ximian.com>
21054
21055         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
21056         so the textbox (if any) goes away.  Fixes bug #80117.
21057
21058 2006-12-04  Chris Toshok  <toshok@ximian.com>
21059
21060         * DataGridColumnStyle.cs: set the column's readonly property
21061         initially based on the property descriptor's IsReadOnly.  Fixes
21062         bug #80044.
21063
21064 2006-12-04  Chris Toshok  <toshok@ximian.com>
21065
21066         * ComboBox.cs: wrap the dropdown style changing work in
21067         SuspendLayout/ResumeLayout.  Fixes bug #79968.
21068
21069 2006-12-04  Jackson Harper  <jackson@ximian.com>
21070
21071         * TextBoxBase.cs: Fix off by one, since these are one-based.
21072         * TextBox.cs: Select all the text when we get focus.  The TextBox
21073         does this but the RTB does not.
21074
21075 2006-12-04  Chris Toshok  <toshok@ximian.com>
21076
21077         * DataGridTextBoxColumn.cs: remove some spew.
21078
21079         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
21080         but some part of me is saying "it shouldn't be here.."  At any
21081         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
21082         setting the value.
21083
21084 2006-12-04  Chris Toshok  <toshok@ximian.com>
21085
21086         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
21087         to reassign the propertydescriptor.
21088
21089 2006-12-04  Jackson Harper  <jackson@ximian.com>
21090
21091         * TextBoxBase.cs:
21092         * TextControl.cs: Remove some unused variables.  Maybe this will
21093         patch things up between mike and I.
21094         - don't split lines less then one char wide, if the viewport is
21095         that small text won't be visible anyways.
21096         
21097 2006-12-04  Jackson Harper  <jackson@ximian.com>
21098
21099         * TextBoxBase.cs: Default selection length is -1, need to do some
21100         more testing on windows to see when this is used for the property.
21101         - Redid the Lines [] property to that we properly remove soft line
21102         breaks
21103         - added support for preserving carriage returns
21104         -  CanUndo is not a variable like 'is undo enabled' it just returns
21105         true if there is undo operations available.
21106         - AppendText doesn't need to grab the last tag itself anymore,
21107         this happens automatically when we move the cursor.
21108         * TextControl.cs: Add CompoundActions to the undo class. This
21109         allows combining the other operations into one big option.  ie a
21110         paste will combine { delete old, insert new, move cursor }
21111         - Add InsertString undo operation
21112         - New method for deleting multiline text
21113         - Add carriage returns to lines. So we can preserve carriage
21114         returns when text is 'roundtripped'
21115
21116 2006-12-04  Chris Toshok  <toshok@ximian.com>
21117
21118         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
21119         minimum 0.  Fixes the scrollbar exception in bug #80136.
21120
21121 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21122
21123         * MdiClient.cs: 
21124         * MdiWindowManager: Removed unused fields and methods.
21125         
21126 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21127         
21128         * StatusBar.cs: Update all panels when a AutoSize=Contents
21129         panel needs updating.
21130         
21131         * StatusBarPanel.cs: Remove twidth and only use initialize.
21132         Fixes #80031.
21133                 
21134 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21135
21136         * Form.cs: When a form's MdiParent is set add it directly
21137         on top of the z-order in stead of relying on MdiClient's
21138         ActivateChild to do it. Fixes #80135.
21139         
21140         * MdiClient.cs: 
21141         - Remove original_order, mdi_child_list is already doing
21142         the same thing.
21143         - Create mdi_child_list on construction in
21144         stead of first use (avoids a few null checks).
21145
21146         * MenuItem.cs: Use an already existing list of mdi children
21147         to get the correct order of children and remove the other
21148         redundant list.
21149
21150 2006-12-04  Chris Toshok  <toshok@ximian.com>
21151
21152         * PropertyGridView.cs: cached_splitter_location is only used in
21153         !DOUBLEBUFFER code.
21154
21155         * PropertyGrid.cs: implement the ComComponentNameChanged event
21156         using Events, hoping that would fix the warning.  Looks like a
21157         compiler bug instead (#80144).
21158
21159         * PropertyManager.cs: remove unused method.
21160
21161 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
21162
21163         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
21164         include parentesis to fix expression evaluation. Fixes #79634.
21165
21166 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
21167         
21168         * MenuAPI.cs:
21169         - Changes to fix behavior in Menu control, some reported in #80097
21170         and other detected during behavior refactory like a select event
21171         problems.
21172         - Remove unneded "if's" conditions.
21173         - Created an internal to flag when popup is active in control, we need 
21174         it because in .NET you can have menu active but without popup active
21175         when you active menu using popup without visible items.
21176         - Mimic win32 behavior for Select and Popup events.  
21177         - Dont open popup menu when you dont have visible subitems.
21178         - Do nothing when click on disabled menu item.
21179         - Some small changes to follow the coding style guidelines.
21180         - Unselect menu only when another control gives focus. Fixes #80097.
21181         - Remove unused code.
21182         
21183         * MenuItem.cs: internal VisibleItems method to check if menu
21184         theres visible subitems, it will be usefull to fix some 
21185         behavior in Menu control.
21186         
21187 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
21188         
21189         * Timer.cs: Tag property for 2.0 profile.
21190         
21191 2006-12-01  Chris Toshok  <toshok@ximian.com>
21192
21193         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
21194         
21195         * Win32DnD.cs: comment out some unused fields.
21196
21197         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
21198         some unused properties/methods.
21199
21200         * XplatUIX11.cs: fix MousePosition so we override the base class's
21201         property instead of conflicting with it.
21202
21203         * PictureBox.cs: comment out some unused fields
21204
21205         * OSXStructs.cs: make some struct fields public.
21206
21207         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
21208         MousePosition so we override the base class's property instead of
21209         conflicting with it.
21210
21211         * X11Dnd.cs: comment out some unused fields
21212
21213         * X11DesktopColors.cs: fix some struct field visibility to quiet
21214         the compiler.
21215
21216         * X11Dnd.cs: remove some debug code.
21217
21218         * ThemeClearlooks.cs: comment out unused field.
21219
21220         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
21221
21222         * ThemeGtk.cs: comment out some unused pinvokes.
21223
21224         * Timer.cs: remove some unused fields.
21225
21226         * ThemeClearlooks.cs: comment out unused field.
21227
21228         * UpDownBase.cs: comment out unused field.
21229
21230         * DataObject.cs: comment out unused field.
21231
21232         * DataGridBoolColumn.cs: reomve unused field.
21233
21234         * DataGrid.cs: remove unused field.
21235
21236         * Cursor.cs: remove old ToBitmap code.
21237
21238         * ControlPaint.cs: remove unused method.
21239
21240         * ScrollBar.cs: remove unused fields.
21241
21242         * ComboBox.cs: remove unused field, and chain up to
21243         AccessibleObject ctor.
21244
21245         * ListBox.cs: remove unused field.
21246
21247         * ButtonBase.cs: wrap a couple fields in NET_2_0.
21248
21249         * GridEntry.cs: remove unused fields.
21250
21251         * Binding.cs: remove unused fields.
21252
21253         * AxHost.cs: remove unused method.
21254
21255         * ContainerControl.cs: remove unused field.
21256
21257         * ScrollableControl.cs: remove unused fields.
21258
21259 2006-12-01  Chris Toshok  <toshok@ximian.com>
21260
21261         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
21262         the Where/WhereString stuff.  it's easy enough to CWL
21263         Environment.StackTrace.
21264
21265         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
21266         unused private fields.
21267
21268 2006-12-01  Jackson Harper  <jackson@ximian.com>
21269
21270         * TextControl.cs: Do not update the view while inserting multiline
21271         text. If we update the view we might wrap lines, before entering
21272         the new lines, which causes the new line insertion calculations to
21273         be totally fubared.
21274         - Remove an old TODO
21275         - Make debug output a little nicer
21276         
21277 2006-12-01  Chris Toshok  <toshok@ximian.com>
21278
21279         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
21280
21281 2006-12-01  Chris Toshok  <toshok@ximian.com>
21282
21283         [ fix the majority of the CS0108 warnings we've been suppressing ]
21284         
21285         * TreeView.cs: mark BackgroundImageChanged as 'new'.
21286
21287         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
21288         to "LayoutToolBar" to quiet mcs.
21289         
21290         * TabControl.cs: mark our ControlCollection class as 'new'.
21291
21292         * TextBoxBase.cs: mark some events as 'new'.
21293
21294         * Splitter.cs: TabStop is 'new'.
21295
21296         * ControlBindingsCollection.cs: mark a few methods as new since
21297         they change the visibility from protected to public.
21298
21299         * RadioButton.cs: DoubleClick -> base class, and remove unused
21300         HaveDoubleClick.
21301
21302         * MonthCalendar.cs: ImeMode property -> base class, and mark many
21303         events as new.
21304
21305         * NumericUpDown.cs: TextChanged -> base class.
21306
21307         * CheckedListBox.cs: mark our ObjectCollection class as new to
21308         quiet mcs.
21309
21310         * FolderBrowserDialog.cs: make HelpRequest event new and have it
21311         muck with the base class.
21312
21313         * StatusBar.cs: fix some mcs warnings about Update being the same
21314         name as a base class method.
21315
21316         * RichTextBox.cs: mark some events as new, and make them do things
21317         to the base class impl.
21318
21319         * UserControl.cs: mark TextChanged as new, and have it manipulate
21320         base.TextChanged.
21321
21322         * UpDownBase.cs: mark some things new.
21323
21324         * CheckBox.cs: mark DoubleClick "new", and add some text about
21325         what we need to look at.
21326
21327         * Panel.cs: make the events "new", and manipulate the base
21328         version.  these are just here for attributes.
21329
21330         * AccessibleObject.cs: make owner private.
21331
21332         * Control.cs: deal with AccessibleObject.owner being private.
21333         cache our own copy if we need it.
21334
21335         * Button.cs: add "new" to the DoubleClickEvent.
21336
21337         * ListBox.cs: no need to track our own has_focus here.  let
21338         Control.has_focus do it for us.  Also some other work to clear up
21339         warnings about not overriding base class methods of the same name.
21340         
21341         * ComboBox.cs: clear up some warnings about not override base
21342         class methods of the same name.
21343
21344 2006-12-01  Chris Toshok  <toshok@ximian.com>
21345
21346         * Form.cs: flag a few things as "new" to quiet some of the mcs
21347         warnings.
21348
21349         * AxHost.cs: same.
21350
21351         * PrintPreviewDialog.cs: same.
21352
21353         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
21354         now DGV isn't so horrible on the class status page.  also, move
21355         all events to using System.ComponentModel.EventHandlerList.  my
21356         wrists hurt.
21357
21358 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21359
21360         * MdiWindowManager.cs:
21361         - Set form to active mdi child if shown,
21362         and update the active mdi child to the next 
21363         remaining child in the z-order if the form is hidden.
21364
21365         * Form.cs: 
21366         - Track if the form has been visible and if its 
21367         visibility is beeing changed, so that the MdiClient
21368         can properly decide the ActiveMdiChild. The MdiClient 
21369         cannot track this since the form can change visibility 
21370         before MdiClient is created.
21371
21372         * MdiClient.cs:
21373         - Don't activate anything of the parent form is changing
21374         its visibility.
21375         - Rework ActiveMdiChild to only return visible mdi 
21376         children and take into account several other corner 
21377         cases.
21378
21379 2006-12-01  Chris Toshok  <toshok@ximian.com>
21380
21381         * IBindableComponent.cs: new 2.0 interface.
21382
21383 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
21384
21385         * DataGrid.cs: Font for caption area is bold by default.
21386
21387 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
21388
21389         * Menu.cs: Tag property for 2.0.
21390         
21391 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
21392
21393         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
21394         
21395 2006-12-01  Chris Toshok  <toshok@ximian.com>
21396
21397         * TreeView.cs: doh, the Begin* events should be
21398         TreeViewCancelEventHandler.
21399
21400 2006-12-01  Chris Toshok  <toshok@ximian.com>
21401
21402         * Form.cs: Form.ControlCollection already stores off the
21403         form_owner field.  don't access the base class's internal "owner"
21404         field.
21405
21406         * Control.cs: make all the fields in Control.ControlCollection
21407         private.  there's no need for any internal fields here.
21408
21409 2006-12-01  Chris Toshok  <toshok@ximian.com>
21410
21411         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
21412         OnHandleCreated.  Fixes bug #80109.
21413
21414 2006-12-01  Chris Toshok  <toshok@ximian.com>
21415
21416         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
21417         SplitContainer.cs, Control.cs, StatusStrip.cs,
21418         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
21419         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
21420         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
21421         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
21422         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
21423         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
21424         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
21425         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
21426         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
21427         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
21428
21429         do most of the work to convert our code over to use
21430         System.ComponentModel.Component.Events for
21431         adding/removing/dispatching events.
21432
21433
21434 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
21435
21436         * DataGridView.cs: Fix an ArgumentNullException reported 
21437         twice today in IRC.
21438
21439 2006-11-30  Mike Kestner  <mkestner@novell.com>
21440
21441         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
21442         grabbed listbox.  Fixes #80036 and #80101.
21443
21444 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
21445
21446         * Message.cs: Changed ToString() to match MS.
21447         
21448 2006-11-30  Jackson Harper  <jackson@ximian.com>
21449
21450         * TextBoxBase.cs: You can still change the selected text on a read
21451         only textbox.
21452         * TextControl.cs: Lower magic number for wrap calculations. This
21453         lets text get closer to the right (far) edge.
21454
21455 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
21456
21457         * Control.cs: Tweak 2.0 layout properties.
21458         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
21459         * TextRenderer.cs: Add a new overload.
21460         * ToolStrip*: Huge amount of changes and new features.
21461
21462 2006-11-30  Mike Kestner  <mkestner@novell.com>
21463
21464         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
21465         scroll range correct.  Fixes #79994.
21466
21467 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
21468
21469         * MdiWindowManager.cs: Update main form's text when
21470         a form is closed. (fixes #80038)
21471         
21472 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
21473
21474         * ToolBar.cs:
21475         - Fix an regression in ButtonSize.
21476         - Get ImeMode default value change to "Disable".
21477         - Get ShowTooltips default value change to true, default value is 
21478         "false" but after make a test in .NET we get "true" result as default.
21479         
21480 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
21481
21482         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
21483
21484 2006-11-29  Chris Toshok  <toshok@ximian.com>
21485
21486         * XplatUIWin32.cs (GetWindowTransparency): check return value of
21487         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
21488         SetWindowTransparency hasn't been called.
21489
21490 2006-11-29  Chris Toshok  <toshok@ximian.com>
21491
21492         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
21493         if it's supported.
21494         (set_AllowTransparency): reorder things a little so that the
21495         WS_EX_LAYERED style is removed properly.
21496
21497 2006-11-29  Chris Toshok  <toshok@ximian.com>
21498
21499         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
21500         
21501         * Form.cs: only call the XplatUI transparency method (get/set) if
21502         SupportsTransparency says it's supported. Otherwise fallback to
21503         doing nothing (in the set case) or returning the instance field we
21504         cache (in the get case).
21505
21506         * XplatUIStructs.cs: add TransparencySupport flag enum.
21507         
21508         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
21509         change to SupportsTransparency.
21510
21511         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
21512         TransparencySupport.None from SupportsTransparency.
21513
21514         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
21515         TransparencySupport.Set from SupportsTransparency.
21516
21517         * XplatUIWin32.cs: implement GetWindowTransparency calling
21518         GetLayeredWindowAttributes, and implement SupportsTransparency by
21519         checking whether or not both
21520         GetWindowTransparency/SetWindowTransparency are available
21521         entrypoints.  We need to do this since SetWindowTransparency is
21522         available as of win2k, but GetWindowTransparency requires winxp.
21523         yay win32 api.
21524
21525         * XplatUI.cs: Add GetWindowTransparency, and change
21526         SupportsTransparency to allow for either/both Get/Set.
21527
21528 2006-11-29  Chris Toshok  <toshok@ximian.com>
21529
21530         * DataGrid.cs: keep from going into an infinite loop redrawing a
21531         datagrid that has no datasource.  Fixes bug #80033.
21532
21533 2006-11-29  Chris Toshok  <toshok@ximian.com>
21534
21535         * MenuItem.cs: fix the NRE when we assign text (and therefore call
21536         Invalidate) before the mainmenu has been assigned to a control.
21537
21538 2006-11-29  Chris Toshok  <toshok@ximian.com>
21539
21540         * DataGrid.cs: detect when we should be double the double click
21541         row/column autosize stuff, although that codepath has yet to be
21542         written.  part of the work for bug #79891.
21543
21544 2006-11-29  Chris Toshok  <toshok@ximian.com>
21545
21546         * Binding.cs (SetControl): fix unit test.
21547
21548 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21549
21550         * PageSetupDialog.cs: Validate the margins and set them in
21551         PageSettings. 
21552         * NumericTextBox.cs: New class to mimic the behavior of the
21553         textboxes used in the printing dialogs.
21554
21555 2006-11-29  Andreia Gaita  <avidigal@novell.com>
21556         
21557         * Form.cs: Revert previous change (remove call UpdateBounds
21558         from form constructor), because it messes with the handle creation
21559         order, and that one needs lots and lots of love.
21560         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
21561         for valid printer and throw InvalidPrinterException if document
21562         is set but printer not valid), adding a MonoTODO. Once 
21563         handle creation is done properly, we can put this back in.
21564
21565 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21566
21567         * MenuItem.cs: Create a invalidate method for menu item, to be
21568         calling from set text, it make text changes to imadiate update
21569         on screen. Fixes #80013. 
21570         
21571 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21572
21573         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
21574         fixes bug #80070 and some other problem on toolbar buttons
21575         layout.
21576
21577 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
21578
21579         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
21580         with dotted brush.      Fixes #79564
21581         
21582 2006-11-28  Andreia Gaita  <avidigal@novell.com>
21583
21584         * Form.cs: Removed call to UpdateBounds on Form
21585         constructor, it was causing a call to CreateHandle
21586         before it was supposed to.
21587         * PrintControllerWithStatusDialog: Applied patch
21588         by Chris Toshok to hide controller when there are
21589         no printers available.
21590         PrintDialog.cs: initialize printer settings to 
21591         null - correct DefaultValues test #5
21592         * PrintPreviewControl.cs: Move PrintController
21593         initialization to GeneratePreview
21594         * PrintPreviewDialog.cs: 
21595         - Remove Preview generation     from Document_set(). It is 
21596         called on OnPaint
21597         - Throw InvalidPrinterException on CreateHandle if
21598         a Document is set but there are no printers or 
21599         printer is not valid.
21600         * ThemeWin32Classic: don't paint PrintPreviewControl
21601         if there is nothing to paint    
21602
21603 2006-11-28  Miguel de Icaza  <miguel@novell.com>
21604
21605         * Form.cs: Add another popular method.
21606
21607         * TabPage.cs: ditto.
21608
21609 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21610
21611         * MenuItem.cs: Fixed a warning.
21612         * InternalWindowManager: Fixed a warning.
21613
21614 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21615
21616         * MenuItem.cs:
21617         - When cloning a menu also clone MdiList and clone the 
21618           window menu items properly (as the forms and menuitems
21619           are kept in an internal hashtable, these need updating 
21620           as well)
21621         - Rewrote the window menu code, menu items are added in the
21622           order the forms were added to their parent, and they are
21623           updated every time the window menu is shown (before the
21624           list was only generated once, in the current order of the
21625           forms, and would never be updated). A checkmark is shown
21626           next to the item corresponding to the active mdi child.
21627
21628 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21629
21630         * XplatUIStructs.cs: 
21631         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
21632         
21633         * XplatUIWin32.cs: 
21634         - Added TME_NONCLIENT to TMEFlags.
21635         - Handles WM_NCMOUSEMOVE in GetMessage to 
21636           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
21637
21638         * MdiWindowManager:
21639         - Now merges mdi child menu to parent menu when maximized.
21640         - Recalculate NC areas of both mdi child and mdi parent. 
21641           Fixes #79757 (4).
21642           on window state and size changes.Fixes #79844 (3).
21643         - Handle WM_NCCALCSIZE to properly calculate borders.
21644
21645         * Form.cs:
21646         - Add/remove to the mdi containers list of mdi children 
21647           in the order they are added.
21648         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
21649           to the maximized mdi child.
21650         
21651         * InternalWindowManager.cs:
21652         - Only execute a click on the control buttons on the mouse up,
21653           not on the mouse down. Show the state of the button 
21654           (was only showing Normal state, never Pressed state). The
21655           pressed button now follows the mouse (if you click the Close 
21656           button and move the mouse over the Maximize button, the 
21657           Maximize button will be shown as pressed). Since Win32 does
21658           not generate WM_NCLBUTTONUP if you release the button outside
21659           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
21660           it as a mouse up.
21661         
21662         * ThemeWin32Classic.cs:
21663         - Draw a missing border around mdi child forms. Fixes #79844 (2).
21664
21665         * MdiClient.cs:
21666         - Added a list of forms which contains the order the forms are
21667           added to the mdi parent.
21668         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
21669         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
21670         - If the active form changes set the scrollbars to the top
21671           of the Z order, otherwise the form could hide them.
21672         - Scrollbars are now sized according to ClientSize, not 
21673           to Size, and they take into account the other scrollbar
21674           to determine maximum.
21675         
21676 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
21677         
21678         * XplatUI.cs:
21679         * XplatUIDriver.cs:
21680         * XplatUIX11.cs:
21681         * XplatUIWin32.cs:
21682         * XplatUIOSX.cs:
21683         - Added RequestAdditionalWM_NCMessages for windows to 
21684           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
21685           Currently only implemented in XplatUIWin32.
21686
21687 2006-11-27  Chris Toshok  <toshok@ximian.com>
21688
21689         * Hwnd.cs: only add the hwnd to the windows hash in
21690         set_WholeWindow and set_ClientWindow if whole_window/client_window
21691         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
21692
21693 2006-11-27  Mike Kestner  <mkestner@novell.com>
21694
21695         * ComboBox.cs: remove redundant OnDropDown call.  It is called
21696         from the ComboListBox.ShowWindow code. Fixes #79969.
21697
21698 2006-11-27  Chris Toshok  <toshok@ximian.com>
21699
21700         * Hwnd.cs: remove the setters for ExposePending and
21701         NCExposePending - noone uses them.
21702
21703 2006-11-27  Jackson Harper  <jackson@ximian.com>
21704
21705         * TextControl.cs: new param for ReplaceSelection which determines
21706         whether we select the new selection, or set the cursor to the end
21707         of the new selection.
21708         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
21709         pasting, select the new text.
21710         * RichTextBox.cs: Use new param for ReplaceSelection.
21711
21712 2006-11-27  Jackson Harper  <jackson@ximian.com>
21713
21714         * TextBoxBase.cs: Set the selection to the caret after the caret
21715         is moved, otherwise they get out of sync.
21716
21717 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
21718
21719         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
21720         it fixes #80015
21721
21722 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
21723
21724         * ThemeWin32Classic.cs: 
21725         - Fix toolbar drop down arrow position.
21726         - Fix drop down appearance when ToolBar.Appearance is normal,
21727         it fixes #80018.
21728         
21729 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
21730
21731         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
21732         * Control.cs: Same.
21733         * UpDownBase.cs: Same.
21734         * ButtonBase.cs: Same.
21735         * ScrollBar.cs: Same.
21736         * TrackBar.cs: Same.
21737         * PictureBox.cs: Same.
21738         * UserControl.cs: Same.
21739         * Label.cs: Same.
21740         * ListControl.cs: Same.
21741         * TextBoxBase.cs: Same.
21742         * ListView.cs: Same.
21743         * RichTextBox.cs: Same.
21744         * TreeView.cs: Same.
21745
21746 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
21747
21748         * PrintDialog.cs:
21749         - Text label for where 
21750         - Text label comment was not shown
21751
21752 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
21753
21754         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
21755
21756 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21757
21758         * InternalWindowManager.cs: 
21759         - Handle WM_PARENTNOTIFY to activate the form
21760         if any child control is clicked.
21761         - The form is only sizable if not minimized.
21762
21763         * MdiWindowManager.cs:
21764         - Save the IconicBounds if the form is moved.
21765         - Rework SetWindowState, now the window bounds 
21766         are stored only if the old window state is Normal.
21767         
21768         * MdiClient.cs:
21769         - In SetWindowStates store the old window state if 
21770         the window is maximized and restore window state if
21771         the window looses focus.
21772         - Don't handle any scrollbar value changes if 
21773         initializing the scroll bars. Fixes #79771.
21774         - Reworked ArrangeIconicWindows. Current algorithm
21775         tests bounds agains all other minimized windows, if
21776         any intersections create new bounds (going left to 
21777         right, bottom to top) and then test again. When 
21778         successful the bounds are saved and never computed
21779         again. Fixes #79774.
21780
21781 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21782
21783         * InternalWindowManager.cs: Added HandleTitleBarUp.
21784
21785 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21786
21787         * NumericUpDown.cs: In .NET 1.1, user entered text is still
21788         hexadecimal in ParseUserEdit.
21789
21790         
21791 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
21792
21793         * MdiWindowManager.cs: 
21794         - Handle a click on the form's icon to show the 
21795         system menu (when maximized). Fixes #79775.
21796         - Change the existing click handler for the form's
21797         icon when not maximized to show on MouseUp.
21798         Fixes #79776.
21799
21800         * Form.cs: In OnResize only layout the mdi child's
21801         parent if it actually has a parent. Might not if
21802         the window is closing.
21803
21804
21805 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21806
21807         * MdiClient.cs: Ignore active MDI client for text of parent, if
21808         child has no text set.
21809
21810 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
21811
21812         * ToolBar.cs: Fixed ToString to match MS.
21813
21814 2006-11-22  Andreia Gaita  <avidigal@novell.com>
21815
21816         * NumericUpDown: 
21817         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
21818         update inner values on set. Fixes #79966.
21819         - Override OnLostFocus to update value on NET 2. Fixes #79950.
21820         - Fix hexadecimal parsing.
21821         
21822         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
21823         parent. Fixes #79957
21824
21825 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21826
21827         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
21828         the actual size has to be queried, since if height /
21829         width is negative Win32 changes it to 0. 
21830         Fixes #79999 on Windows.
21831         
21832         * XplatUIX11.cs: Set height / width to 0 if negative
21833         in SetWindowPos. Fixes #79999 on Linux.
21834         
21835 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
21836
21837         * ThemeWin32Classic.cs: Fix text redenring when button is
21838         pressed.
21839
21840 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
21841
21842         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
21843         and later navigate by mouse. Fixes #79528.
21844
21845 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
21846
21847         * ToolBar.cs: Set default value for TabStop to false in
21848         constructor, it fixes remaining behavior of bug #79863.
21849
21850 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21851
21852         * MdiWindowManager.cs:
21853         * InternalWindowManager.cs:
21854         - Moved a few methods specific to Mdi from 
21855         InternalWindowManager to MdiWindowManager.
21856         Fixes #79996.
21857         
21858 2006-11-21  Chris Toshok  <toshok@ximian.com>
21859
21860         * XplatUIOSX.cs: stub out InvalidateNC.
21861
21862         * XplatUIWin32.cs: implement InvalidateNC using the call I found
21863         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
21864
21865         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
21866
21867         * XplatUIDriver.cs: add InvalidateNC abstract method.
21868
21869         * XplatUI.cs: add InvalidateNC.
21870
21871 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
21872
21873         * ToolBar.cs: Invalidate complete button area when pressed status 
21874         was changed.
21875         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
21876         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
21877         by 1 when button is pressed.
21878
21879 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21880
21881         * ToolButton.cs: Invalidate middle of DropDown button when
21882         ToolBar theres DropDownArrows.
21883         * ThemeWin32Classic.cs: Change position of DropDown arrow and
21884         fix DropDown drawing operations.
21885
21886 2006-11-20  Chris Toshok  <toshok@ximian.com>
21887
21888         * NativeWindow.cs: fix the formatting of functions ('{' on the
21889         following line), and enable the thread exception dialog.
21890
21891         * Application.cs: remove the duplicate exception catching from
21892         here.
21893
21894 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21895
21896         * Toolbar.cs: Triggers button click event when click on icon
21897         of dropdown ToolBarButton. Fixes #79912.
21898         
21899 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21900
21901         * Theme.cs:
21902         * ThemeWin32Classic.cs:
21903         - Added a property WindowBorderFont to enable themeing
21904           of mdi child windows' Text.
21905           
21906 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
21907
21908         * InternalWindowManager.cs:
21909         * Form.cs:
21910         * MdiClient.cs:
21911         * MdiWindowManager.cs: 
21912         - If mdi child is maximized, set mdi parent's
21913           text to "Parent - [Child]". Fixes #79770.
21914         - If there is any maximized mdi child windows, only the active 
21915           window (and any new windows) is maximized, the rest are normal.
21916         - On a WindowState change only save mdi child's window bounds 
21917           if the old window state was normal. Fixes #79774.
21918         - The scroll bars are now calculated on hopefully all
21919           necessary events. Fixed #79771 / #79844->6 / #79906.
21920         - MdiClient.SizeScrollBars() now takes into account docked 
21921           controls in the parent when calculating available space.
21922         - InternalWindowManager now always repaints the entire title
21923           area. Fixes #79844->1/4/5.
21924         - Added RequestNCRecalc on mdi child windowstate changes.
21925           Fixes #79772.
21926
21927 2006-11-20  Mike Kestner  <mkestner@novell.com>
21928
21929         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
21930         in the MouseUp handler of the listbox and move the return handling
21931         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
21932
21933 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
21934
21935         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
21936
21937 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
21938
21939         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
21940           working in 1.2.x anymore. So, updated.
21941
21942 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
21943
21944         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
21945         NumberGroupSeparator of current culture instead of assuming en-US.
21946         Fixed bug #79967.
21947
21948 2006-11-17  Mike Kestner  <mkestner@novell.com>
21949
21950         * Control.cs: Add the concept of implicit bounds setting so that
21951         dock/undock round trips preserve explicitly set size/locations.
21952         Fixes #79313.
21953
21954 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
21955
21956         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
21957           can't handle those filters. (Fixes bug #79961)
21958
21959 2006-11-17  Chris Toshok  <toshok@ximian.com>
21960
21961         [ fixes the exit/crashes associated with #79835.  it's clearly
21962         suboptimal though, we need to figure out a better way to solve
21963         this. ]
21964         
21965         * PrintPreviewControl.cs: deal with the new invalid printer
21966         exceptions.
21967
21968         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
21969         and return false (so CommonDialog.ShowDialog doesn't actually show
21970         the form.)
21971
21972         * PrintDialog.cs: enable/disable the Ok button depending on
21973         whether or not the printer is valid.
21974
21975         * CommonDialog.cs (ShowDialog): only actually show the form if
21976         RunDialog returns true.
21977
21978 2006-11-17  Jackson Harper  <jackson@ximian.com>
21979
21980         * TextControl.cs: When soft splitting a line, mark it as a soft
21981         split line. Also carry over the current line break to the next
21982         line.
21983
21984 2006-11-17  Chris Toshok  <toshok@ximian.com>
21985
21986         * XplatUIX11.cs: when scrolling a window with an invalid area, we
21987         only want to shift the part of the invalid area that overlaps the
21988         area we're scrolling.  we also don't want to clear the invalid
21989         area unless the invalid area was entirely contained within the
21990         scrolling area.
21991
21992 2006-11-16  Chris Toshok  <toshok@ximian.com>
21993
21994         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
21995         also make sure to free the memory returned by XGetWindowProperty
21996         in GetText().
21997
21998         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
21999
22000 2006-11-16  Chris Toshok  <toshok@ximian.com>
22001
22002         * XplatUI.cs: add a new super secret way to get at the totally
22003         unsupported X11 backend.
22004
22005 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
22006
22007         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
22008
22009 2006-11-16  Jackson Harper  <jackson@ximian.com>
22010
22011         * TreeView.cs: Allow more explicit setting of top node position
22012         for scrollbars. Slower algo, but more accurate.
22013         - CollapseAll should maintain the current top node.
22014         * TextBoxBase.cs: When positioning the caret, use the line, pos
22015         method, since the x, y method does not grab the correct tag, and
22016         the caret height never gets set correctly. (Maybe I should just do
22017         away with the caret having its own height, and always use the
22018         carets current tag for height).
22019
22020 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
22021
22022         [Fixes 79778, 79923]
22023
22024         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
22025         Parent to the FosterParent instead.
22026
22027 2006-11-16  Jackson Harper  <jackson@ximian.com>
22028
22029         * TreeView.cs: Need to recalc the topnode when we expand or
22030         collapse. The scrolling methods can't handle this on their own,
22031         since they use differences between the last scroll position, and
22032         those difference get completely messed up since we are expanding
22033         nodes.  This problem should probably be fixed in the scrolling
22034         methods, so they can figure out exactly where they are, but this
22035         will slow things down a little.
22036         * ThemeWin32Classic.cs: Special case for groupboxes with empty
22037         strings, makes nunit-gui look a lot nicer.
22038
22039 2006-11-16  Chris Toshok  <toshok@ximian.com>
22040
22041         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
22042         the broken multithreaded event handling we have in here.  File
22043         this entry under "Why we should move to the new X11 backend".
22044
22045         Any thread can make it into UpdateMessageQueue, which gets events
22046         from the X socket - some of which could belong to hwnds being
22047         managed by a different thread.  We can also have multiple threads
22048         in UpdateMessageQueue at the same time, with each one reading from
22049         the X socket.  This leads to many problems, with the following
22050         solutions:
22051
22052         We can't use hwnd.Queue.Enqueue anywhere in here and must use
22053         EnqueueLocked.
22054
22055         The MotionNotify compression we do can't work across threads
22056         (without locking the entire queue, perhaps) since we call
22057         hwnd.Queue.Peek, so we just punt and don't compress motion events
22058         unless the owning thread is the one which got the X event.
22059
22060         ConfigureNotify is another fun one, since it modifies the hwnd's
22061         bounds and then enqueues the event.  We add a lock to Hwnd which
22062         is held when setting configure_pending to true (and enqueuing the
22063         event).
22064
22065         There is a race wrt the wake socket.  we need to make sure that
22066         only 1 thread is waiting on that socket, or else a thread could
22067         sleep waiting for data that never comes.  It's difficult (but not
22068         impossible) to make happen, because it seems to require something
22069         like the following:
22070
22071             1. Thread 1 polls on wake_receive
22072         
22073             2. poll returns saying there's data to be read on
22074                wake_receive.
22075         
22076             3. Thread 2 polls on wake_receive and immediately returns
22077                saying there's data to be read.
22078
22079             4. Thread 2 reads the wakeup byte from wake_receive
22080
22081             5. Thread 1 attempts to read the wakeup byte from
22082                wake_receive.
22083
22084             6. Thread 2 exits (due to a form closing, perhaps).
22085
22086             7. Thread 1 blocks forever.
22087         
22088         Fun, eh?
22089
22090         Fixing the Expose handling isn't done yet, and the races inherent
22091         in that piece of code are responsible for the drawing mistakes you
22092         see when generating expose events in a MT app (like NPlot).  This
22093         one is the likely to be the hardest to bandaid, and it doesn't
22094         appear to cause anything but drawing problems.  The other issues
22095         caused apps to exit or hang.
22096
22097         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
22098         called from a different thread than the one that should be calling
22099         these functions.
22100
22101         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
22102
22103 2006-11-15  Chris Toshok  <toshok@ximian.com>
22104
22105         * Application.cs: null out the context's MainForm when we exit
22106         RunLoop.  Fixes a newly checked in unit test as well as the last
22107         ODE from bug #79933.
22108
22109 2006-11-15  Chris Toshok  <toshok@ximian.com>
22110
22111         * Form.cs (set_Owner): allow a null value so we can clear the
22112         form's owner.
22113         (Dispose): set all our owned_form's Owner properties to null, and
22114         clear the owned_forms collection.
22115         (WM_CLOSE): clean up this a little bit.. still not right though.
22116
22117         * ApplicationContext.cs: OnMainFormClosed should only call
22118         ExitThreadCore if the main form isn't recreating.  Fixes unit
22119         test.
22120
22121 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
22122
22123         [Fixes 78346]
22124
22125         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
22126
22127 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
22128
22129         [Fixes 79433]
22130
22131         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
22132         keep popup window types from stealing focus from the main form
22133         on Windows.
22134
22135         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
22136
22137         * MenuAPI.cs: Set above flag to true.
22138
22139 2006-11-15  Chris Toshok  <toshok@ximian.com>
22140
22141         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
22142         the button being released is not in wParam.
22143
22144 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
22145
22146         * Form.cs: Add the released button to MouseEventArgs.Button
22147         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
22148         on Win32.
22149
22150 2006-11-15  Chris Toshok  <toshok@ximian.com>
22151
22152         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
22153         GetText().  untested because it's unused in our implementation.
22154         Control.Text always caches the text, even if
22155         ControlStyles.CacheText is not set.
22156
22157         fixes bug #79939.
22158
22159 2006-11-15  Chris Toshok  <toshok@ximian.com>
22160
22161         [ fixes #79933 ]
22162         
22163         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
22164         message.  no hiding, no disposing.
22165
22166         in the WM_CLOSE handler, hide the form if it's modal.
22167
22168 2006-11-15  Chris Toshok  <toshok@ximian.com>
22169
22170         * XplatUIX11.cs: use AddExpose instead of sending a message.
22171         fixes textbox border drawing.
22172
22173 2006-11-15  Chris Toshok  <toshok@ximian.com>
22174
22175         * PropertyGridView.cs: keep from crashing on mouse move/down when
22176         the property grid is empty.
22177
22178 2006-11-14  Jackson Harper  <jackson@ximian.com>
22179
22180         * TextControl.cs: Make PageUp and PageDown more like the MS
22181         versions.
22182         * TextBoxBase.cs: When we set the text property position the
22183         cursor at the beginning of the document.
22184
22185 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22186
22187         * Form.cs: if a mdi child's WindowState has changed
22188         before it's creation, it would display wrong control
22189         buttons.
22190         
22191 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
22192
22193         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
22194           (Fixes bug #79927)
22195
22196 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
22197
22198         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
22199         the window gets to paint its borders even if the window is
22200         getting smaller.
22201         
22202         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
22203         otherwise the old control buttons would still be painted 
22204         if the window gets bigger.
22205         
22206         * PaintEventArgs.cs: add an internal method so that the clip 
22207         rectangle can be changed.
22208         
22209 2006-11-13  Chris Toshok  <toshok@ximian.com>
22210
22211         [ fixes bug #79745 ]
22212         
22213         * NotifyIcon.cs: lots of cleanup.
22214
22215         * X11Structs.cs: add an enum for XEMBED messages.
22216
22217         * XplatUIX11.cs: reindent one of the giant switch statements, it
22218         was taking up an additional tab stop, and this file is already way
22219         too wide for my laptop's screen.
22220
22221         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
22222         we get it, resize the hwnd to the WMNormalHints max_width/height.
22223
22224 2006-11-13  Jackson Harper  <jackson@ximian.com>
22225
22226         * TextBoxBase.cs: Compute the value changes for the mouse wheel
22227         teh simple way.
22228
22229 2006-11-13  Chris Toshok  <toshok@ximian.com>
22230
22231         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
22232         #79898.  force a reference to the Region to stick around so the
22233         unmanaged object isn't collected (rendering our handle in the MSG
22234         stale).
22235
22236 2006-11-13  Chris Toshok  <toshok@ximian.com>
22237
22238         * XplatUIX11.cs: fix #79917 for window managers which support
22239
22240         using XStoreName on the raw utf8, and we need to convert to
22241         COMPOUND_TEXT if it's non-latin1.
22242
22243 2006-11-13  Chris Toshok  <toshok@ximian.com>
22244
22245         * Form.cs (set_DialogResult): we need to set closing to false if
22246         we're setting our result to None.  fixes bug #79908.
22247
22248 2006-11-13  Jackson Harper  <jackson@ximian.com>
22249
22250         * TextControl.cs: When formatting text, compute the adjusted tag
22251         lengths correctly, using FindTag for the end tag instead of trying
22252         to figure it out outselves.
22253         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
22254         the item, ItemHeight doesn't work, because trees with large
22255         imagelists use those for their height
22256         * TreeView.cs: ActualItemHeight factors in the image height
22257         - compute left edge of checkboxes correctly
22258         - when expanding/collapsing move the bottom down one pixel, so we
22259         aren't moving part of the node
22260
22261 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22262
22263         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
22264         stack in PaintEventStart so that it won't get disposed by the gc
22265         before reaching PaintEventEnd.
22266
22267 2006-11-13  Jackson Harper  <jackson@ximian.com>
22268
22269         * TextBoxBase.cs: Don't select the word if we are on a line with
22270         no text.
22271         - We don't need to position the caret on mouse up, since the mouse
22272         move handler should be doing this
22273         - When double clicking a blank line, the caret is advanced to the
22274         next line.
22275
22276 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
22277
22278         * TreeNodeCollection.cs: Avoid duplicating indexer code.
22279
22280 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
22281
22282         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
22283         Fixes part of bug #79910.
22284
22285 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
22286
22287         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
22288           (bug #79903). Some minor string updates to match ms.
22289
22290 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
22291
22292         * FileDialog.cs: Don't add an extension if the filename
22293           already ends with that extension.
22294
22295 2006-11-10  Jackson Harper  <jackson@ximian.com>
22296
22297         * TreeView.cs: Use the currently highlighted node for the
22298         BeforeSelect event.
22299         * TextBoxBase.cs: There is no need to expand selection on
22300         MouseMove.
22301         - CanUndo means 'is there any undo operations', not 'is undo
22302         allowed on this textcontrol. Fixed ClearUndo unit test.
22303
22304 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
22305
22306         * Button.cs: only perform click when button is Selectable (so as 
22307         not to activate default buttons when they're disabled)
22308         
22309         * Control.cs: Rewrite of the SelectNextControl and related 
22310         methods. HandleClick now selects next control if the current one
22311         is being disabled.
22312         
22313         * Form.cs: OnActivated selects next active control only if Load 
22314         has already occurred. If Load hasn't run, there's no point in 
22315         selecting here, Load might change the state of controls.
22316         
22317         * FocusTest.cs: Tests marked as working again for these fixes
22318
22319 2006-11-10  Chris Toshok  <toshok@ximian.com>
22320
22321         * XplatUIX11.cs: a couple of fixes.
22322
22323         - use XInternAtoms with almost all the atoms we need to register,
22324         instead of many, many calls to XInternAtom.  should help a bit on
22325         startup time, at the expense of making the code look a little
22326         worse.
22327
22328         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
22329         isn't reparented (which seems to be a clue that we're running fon
22330         compiz) and they have an Owner form.  This fixes the tool windows
22331         in paint.net when running under compiz.
22332
22333         - when setting the opacity of a window, support both the case
22334         where the window has been reparented and also when it hasn't been.
22335         Since compiz/beryl doesn't seem to reparent windows, and these are
22336         the only window managers which support translucency, I'm not sure
22337         why we need the hwnd.reparented case at all.. but leave it in.
22338         now we get translucent windows in paint.net under compiz/beryl.
22339
22340 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
22341
22342         * FileDialog.cs: Always return the value for FilterIndex that
22343           was set. Internally convert it to values that make sense.
22344
22345 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
22346         
22347         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
22348
22349 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
22350
22351         * Toolbar.cs: Change default value of DropDownArrows to true, the 
22352         signature still using false to make it compatible with MS but the 
22353         initial value is true. Fixes #79855.
22354
22355 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
22356
22357         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
22358           only available on Linux.
22359
22360 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
22361
22362         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
22363         reduce number of calls to redraw method during toolbar creation.
22364
22365 2006-11-09  Mike Kestner  <mkestner@novell.com>
22366
22367         * ListView.cs : raise SelectedIndexChanged when an item is selected
22368         programmatically via the Item.Selected property.  Gert's nice 
22369         ListViewSelectedIndexChanged test fixture now runs clean.
22370
22371 2006-11-09  Mike Kestner  <mkestner@novell.com>
22372
22373         * ListView.cs : raise SelectedIndexChanged when a selected item is
22374         removed from the item collection using Remove or RemoveAt.
22375
22376 2006-11-09  Mike Kestner  <mkestner@novell.com>
22377
22378         * ListView.cs : raise SelectedIndexChanged once per selected item
22379         for compat with MS.  Fixes #79849+.
22380
22381 2006-11-09  Chris Toshok  <toshok@ximian.com>
22382
22383         * TabControl.cs: initialize row_count to 0, and set it to 1 when
22384         we need to (if we have any tab pages).  Fixes unit test.
22385
22386 2006-11-09  Chris Toshok  <toshok@ximian.com>
22387
22388         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
22389         width is 0, not 3.  Fixes a unit test.
22390
22391 2006-11-09  Mike Kestner  <mkestner@novell.com>
22392
22393         * ListView.cs : use Implicit scrollbars so that focus isn't 
22394         stolen from the listview when they are clicked. Fixes #79850.
22395
22396 2006-11-09  Chris Toshok  <toshok@ximian.com>
22397
22398         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
22399         have a root item.  Fixes #79879.
22400
22401 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
22402
22403         * FileDialog.cs:
22404           - Fix ToString ()
22405           - An ArgumentException is now thrown if a wrong filter
22406             is applied (matches ms). The previous filter doesn't change
22407             anymore if an exception is thrown.
22408           - Changing the FileName property also affects FileNames
22409         * ColorDialog.cs: The length of the CustomColors array is always
22410           16. It doesn't matter if we use a smaller array or null to update
22411           or change the custom colors property.
22412         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
22413           for RootFolder if we get a undefined value.
22414
22415 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22416
22417         * StatusBarPanel.cs: 
22418         - Width is set to MinWidth if Width is smaller than
22419         MinWidth. Fixes #79842.
22420         - MinWidth now always overrides Width (MSDN says MinWidth
22421         is set to Width when AutoSize = None, but they do not 
22422         behave like that).
22423         - Style has now the the correct default value.
22424         
22425 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22426  
22427         * TrackBar.cs: 
22428         - The control is completely invalidated on 
22429         Got/LostFocus to draw the focus rectangle correctly.
22430         - When AutoSize then height is always 45 (width for 
22431         vertical controls).
22432         
22433         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
22434         on the mouse when moved and it doesn't move when grabbed
22435         until the mouse moves as well. Also fixed some wrong 
22436         calculations when clicking on the thumb (control thought
22437         click was outside of thumb and didn't grab it).
22438         Fixes some of the issues in #79718.
22439
22440 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
22441
22442         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
22443
22444 2006-11-08  Chris Toshok  <toshok@ximian.com>
22445
22446         * PropertyGridView.cs: only call ToggleValue if the item is not
22447         readonly.
22448
22449 2006-11-08  Jackson Harper  <jackson@ximian.com>
22450
22451         * TextBoxBase.cs: The RichTextBox and textbox have very different
22452         word selection methods.  Implement the textbox's simple word
22453         selection here, and let the RichTextBox override and provide it's
22454         own.
22455         - Don't do extra selection on mouseup
22456         * RichTextBox.cs: Use the documents word selection algorithm, I
22457         think ideally, this function will be pulled into the
22458         RichTextBox.cs code someday.
22459
22460 2006-11-08  Chris Toshok  <toshok@ximian.com>
22461
22462         * RootGridEntry.cs: new class to represent GridItemType.Root.
22463
22464         * CategoryGridEntry.cs: reformat, and add boilerplate.
22465         
22466         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
22467         returns the UI parent anyway, and we need special handling to
22468         implement the GetTarget method in the face of it.  Also, implement
22469         Select().
22470
22471         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
22472         a root grid item, and use that instead of PropertyGrid.grid_items.
22473         Also, make use of TypeConverters (and add limitted support for
22474         ICustomTypeDescriptors) when initially populating the grid.
22475         Arrays now show up more or less properly.
22476
22477 2006-11-08  Chris Toshok  <toshok@ximian.com>
22478
22479         * Application.cs: set the modal dialog to non modal after we close
22480         it.  Fixes bug #79866.
22481
22482 2006-11-08  Jackson Harper  <jackson@ximian.com>
22483
22484         * TextControl.cs: When combining lines carry over the line end
22485         style from the end line.
22486         - Invalidate the selected area when setting it, if it is visible.
22487         * TextBoxBase.cs: Only rich text box can do full line selects.
22488         - Make sure to set the cursor position when there is a click,
22489         otherwise two clicks in separate areas could cause a large chunk
22490         to be selected.
22491
22492 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22493
22494         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
22495         Fixes #79863.
22496
22497 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22498
22499         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
22500         time. Remove tooltips when ToolButton click events.  Fixes #79856.
22501
22502 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22503
22504         * MenuAPI.cs: Ignore right click for menu actions and fixes
22505         menu border when clicked.  Fixes #79846.
22506
22507 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22508
22509         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
22510         MouseState after create wParam for message, this fixes mouse button 
22511         equal none in mouse up events.
22512         
22513 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
22514
22515         * Control.cs : Focus() now calls Select to set the Container's
22516         Active Control and to give it focus. To avoid infinite recursion
22517         (because ActiveControl also calls Focus at one point), a check 
22518         is made in Focus with the help of a new internal variable
22519         is_focusing.
22520
22521 2006-11-07  Mike Kestner  <mkestner@novell.com>
22522
22523         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
22524         if there's a selection.  Fixes #79849.
22525
22526 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
22527
22528         * PropertyGrid.cs: Avoid fixed height of help description label.
22529         Fixes part of bug #79829.
22530
22531 2006-11-07  Chris Toshok  <toshok@ximian.com>
22532
22533         * XplatUIX11.cs: fix #79790 again, by using the
22534         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
22535
22536 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22537
22538         * ToolBar.cs: Fix left click checking.
22539
22540 2006-11-07  Chris Toshok  <toshok@ximian.com>
22541
22542         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
22543
22544 2006-11-07  Chris Toshok  <toshok@ximian.com>
22545
22546         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
22547         PropertyManager unit tests.
22548
22549         * PropertyManager.cs: make property_name internal.
22550
22551 2006-11-07  Chris Toshok  <toshok@ximian.com>
22552
22553         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
22554         pass a unit test.  Also, don't set image_index to anything in
22555         response to setting the ImageList property.
22556
22557 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
22558
22559         * ToolBar.cs: Ignore click events when mouse button is not a
22560         left button, only accepts other button for dropdown menus.  
22561         Fixes #79854.
22562
22563 2006-11-07  Chris Toshok  <toshok@ximian.com>
22564
22565         * DataGrid.cs: make the back and parent row buttons a little less
22566         ugly.
22567
22568 2006-11-07  Jackson Harper  <jackson@ximian.com>
22569
22570         * TextBoxBase.cs: When converting to Text don't put line breaks in
22571         for soft line breaks.
22572         * TextControl.cs: There is an initial "fake" line in the document,
22573         this is now a soft break line, so that an extra line feed doesn't
22574         get added to the end of documents.
22575
22576 2006-11-07  Chris Toshok  <toshok@ximian.com>
22577
22578         [ fix bug #79778 ]
22579         
22580         * CurrencyManager.cs: if the list is readonly, don't bother
22581         checking if IBindingList.AllowNew is true.
22582
22583         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
22584         for non-DataRowView datasources..  or rather, make it not crash.
22585         (DataGridPaintRelationRow): make sure we limit the row painting to
22586         the area not covered by the row header, and make our cell width at
22587         least large enough to cover the relation area.  This allows grids
22588         that have relations but no rows to render correctly.
22589         (DataGridPaintRowContents): same type of changes here.
22590         (SetDataSource): move back to always calling
22591         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
22592         navigating back through relations.
22593         (HitTest): handle the case where we have no cells but have
22594         relations.  Right now we generate a hit in cell 0 of whatever the
22595         row is, not sure if this is strictly correct, but it works for our
22596         purposes.
22597         
22598         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
22599         bother doing anything.
22600
22601 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
22602
22603         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
22604         early version of StatusStrip.  Not responsible for eaten
22605         application or firstborn children.
22606
22607 2006-11-06  Chris Toshok  <toshok@ximian.com>
22608
22609         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
22610         call GetTabRect with a -1 index.  Fixes #79847.
22611
22612 2006-11-06  Jackson Harper  <jackson@ximian.com>
22613
22614         * TreeNodeCollection.cs: Update scrollbars after clearing.
22615
22616 2006-11-06  Chris Toshok  <toshok@ximian.com>
22617
22618         * NumericUpDown.cs: fix the ToString method for some unit test
22619         love.
22620
22621 2006-11-06  Chris Toshok  <toshok@ximian.com>
22622
22623         * PropertyGrid.cs:
22624         - set the initial SelectedGridItem if we can.
22625
22626         - Exclude non-mergable properties only if we're merging > 1
22627         object.  Merging 1 object isn't really merging, obviously.
22628
22629         - Handle PropertySort.NoSort just like Alphabetical, which is
22630         wrong of course, but at least gets things on the screen.
22631         
22632         * PropertyGridView.cs:
22633         - Add method "FindFirstItem" which finds the first property grid
22634         item, so we can select it by default.
22635
22636         - make use of GridEntry.CanResetValue.
22637
22638         - Don't call RedrawBelowItemOnExpansion here anymore, the
22639         individual GridEntry's will do that.
22640
22641         - Remove the ITypeDescriptorContextImpl internal class.
22642         
22643         * GridEntry.cs:
22644         - this class needs to implement ITypeDescriptorContext, as it's
22645         what MS's PropertyDescriptorGridEntry does, which means we can
22646         remove the ITypeDescriptorContextImpl internal class from
22647         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
22648
22649         - keep a reference to our PropertyGridView, and move the call to
22650         RedrawBelowItemOnExpansion here from PGV.  This means
22651         programmaticly setting Expanded actually does something visible.
22652
22653         - add a CanResetValue() function which takes into account our
22654         possibly multiple "selected_objects" in the merged case.  Shifting
22655         PropertyGridView to use this method fixes another unreported
22656         crasher found running the test for #79829.
22657
22658         - when Top or Bounds is updated, make sure the PropertyGridTextBox
22659         is updated to reflect this.
22660
22661         * CategoryGridEntry.cs: the ctor takes the PGV now.
22662         
22663 2006-11-06  Jackson Harper  <jackson@ximian.com>
22664
22665         * TextControl.cs: These are 1 based.
22666         * TextBoxBase.cs: When setting the selected text, don't change the
22667         selected text tags, this is done by ReplaceText, just position the
22668         cursor at the end of the new text.
22669
22670 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
22671
22672         * ListView.cs: Allow label edit only when, when LabelEdit is
22673           set to true.
22674
22675 2006-11-06  Jackson Harper  <jackson@ximian.com>
22676
22677         * TextControl.cs: If a suitable wrapping position isn't found,
22678         just wrap right in the middle of a word.
22679
22680 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
22681
22682         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
22683           bug #79820.
22684
22685 2006-11-06  Jackson Harper  <jackson@ximian.com>
22686
22687         * TreeView.cs: Can't use the VisibleCount property when setting
22688         scrollbar heights, because this doesn't take into account whether
22689         or not the horz scrollbar just came visible.
22690
22691 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
22692
22693         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
22694         activated.  Fixes #79369, #79832.
22695
22696 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
22697
22698         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
22699           had to remove support for links that point to a directory. FileInfo
22700           returns no usefull information (means, the directory they point to)
22701           for such links. Replaced some empty string ("") with String.Empty.
22702
22703 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
22704
22705         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
22706         NullReferenceException when attempting to remove node that is not in
22707         collection. Throw NullReferenceException when null is passed to 
22708         Remove. Allow first element of the collection to be removed. Fixes
22709         bug #79831.  In GetEnumerator ().Current return null if positioned 
22710         before the first element of the collection. In GetEnumerator ().Reset,
22711         position before first element of the collection.
22712
22713 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
22714
22715         * PropertyGrid.cs: To match MS, remove default title and description
22716         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
22717         buttons.
22718
22719 2006-11-04  Chris Toshok  <toshok@ximian.com>
22720
22721         * Theme.cs: add a Clamp method, just for kicks.
22722
22723         * ThemeWin32Classic.cs: clamp all color components to [0..255].
22724
22725 2006-11-04  Chris Toshok  <toshok@ximian.com>
22726
22727         * Form.cs: if the form isn't visible, Close() does nothing.
22728
22729 2006-11-03  Chris Toshok  <toshok@ximian.com>
22730
22731         * Form.cs (Close): if the form is modal, don't Dispose of it, only
22732         Hide it.
22733         (WndProc): don't Dispose after handling the WM_CLOSE message.
22734
22735         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
22736         them as such, instead of using casts from Control to Form.  Also,
22737         don't Dispose of the modal dialog when we fall out of the loop -
22738         Close() it instead.
22739
22740         fixes bug #79813.
22741
22742 2006-11-03  Chris Toshok  <toshok@ximian.com>
22743
22744         * Control.cs (Dispose): only go through the dispose thing if we're
22745         @disposing, and we haven't already been disposed.  Fixes bug
22746         #79814.
22747
22748         * Form.cs: no reason to call "base.Dispose()" here instead of
22749         "Dispose()".
22750
22751 2006-11-03  Mike Kestner  <mkestner@novell.com>
22752
22753         * ComboBox.cs : use ToString instead of casts in AddItem for
22754         sorting functionality.  Fixes #79812.
22755
22756 2006-11-03  Chris Toshok  <toshok@ximian.com>
22757
22758         * Application.cs: pave the way for actually using the thread
22759         exception dialog.  it's ifdefed out at the moment.
22760
22761 2006-11-03  Chris Toshok  <toshok@ximian.com>
22762
22763         * ThreadExceptionDialog.cs: until we get a better layout, actually
22764         hide the details textbox and label when we shouldn't see them.
22765
22766 2006-11-03  Jackson Harper  <jackson@ximian.com>
22767
22768         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
22769         multiline textboxes anymore.  This method also determines the
22770         width/height of a textboxes canvas area.
22771         - Sorta a revert of the last patch.  For multiline just position
22772         the controls, then bail.  This way the scrollbar width won't be
22773         altered.
22774
22775 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
22776
22777         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
22778         it dont need.  Fixes #79537.
22779
22780 2006-11-02  Jackson Harper  <jackson@ximian.com>
22781
22782         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
22783         send the status after firing the DndOver event.
22784
22785 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22786
22787         * TrackBar.cs: Now orientation only switches height / width if
22788         the control's handle is created (Win32 does it like this). Also 
22789         fixed a typo in ToString() for a test to pass, changed the 
22790         exception thrown in set_LargeChange and set_SmallChange to 
22791         match Win32 behaviour, and added TrackBar tests to the unit 
22792         tests.
22793
22794 2006-11-02  Chris Toshok  <toshok@ximian.com>
22795
22796         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
22797         not _NET_WM_STATE_NO_TASKBAR.
22798
22799 2006-11-02  Jackson Harper  <jackson@ximian.com>
22800
22801         * TextControl.cs: Increment count by one, since in the update view
22802         count - 1 is used.
22803
22804 2006-11-02  Jackson Harper  <jackson@ximian.com>
22805
22806         * TextBoxBase.cs: Use client rectangle not bounds for checking if
22807         the mouse is in the client rectangle (duh).
22808
22809 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
22810         
22811         * TrackBar.cs: Fixed trackbar jumping around when clicking
22812         on it - the trackbar was not detecting correctly at which
22813         side of the thumb the click was done. (fixes #79718)
22814
22815 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
22816
22817         * ListBox.cs: scroll visible area when change SelectedIndex to
22818         a non visible area.  Fixes #79481.
22819
22820 2006-11-01  Jackson Harper  <jackson@ximian.com>
22821
22822         * TextControl.cs: When replacing the selection move the selection
22823         start/end/anchor to the end of the new text.
22824
22825 2006-11-01  Jackson Harper  <jackson@ximian.com>
22826
22827         * XplatUIWin32.cs: When setting the parent change the controls
22828         visibility to it's visibility flag, not to it's old parents
22829         visibility (.Visible walks the parent chain).
22830
22831 2006-11-01  Chris Toshok  <toshok@ximian.com>
22832
22833         * XplatUIX11.cs: revert the #79790 fix, as the simple.
22834         XSetTransientForHint fix breaks paint .net's tool windows.  more
22835         work needed for that one.
22836
22837 2006-11-01  Chris Toshok  <toshok@ximian.com>
22838
22839         * ScrollBar.cs: throw ArgumentException instead of Exception in
22840         LargeChange/SmallChange setters.  fixes unit tests.
22841
22842 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
22843
22844         * ContainerControl.cs: reverted rev.67183 (which was itself
22845         a reversion of rev.66853... eh).
22846         
22847         * Control.cs: Fixes Reflector hang by changing Focus() call
22848         to what it was before rev.66643 (calling Select() here sets 
22849         ActiveControl, which in some situations calls back Focus and 
22850         eventually does a stack overflow). Temp fix.    
22851         Changes to GetNextControl() to not look for children to select when
22852         parent cannot be selectable (so it looks for siblings instead)  
22853         
22854 2006-10-31  Mike Kestner  <mkestner@novell.com>
22855
22856         * CheckedListBox.cs : off by one error in returned index from
22857         ObjectCollection.Add.  Fixes #79758.
22858
22859 2006-10-31  Chris Toshok  <toshok@ximian.com>
22860
22861         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
22862         calls for the textbox/spinner, to keep from recursing to the point
22863         where we crash.  Fixes #79760.
22864
22865 2006-10-31  Chris Toshok  <toshok@ximian.com>
22866
22867         * ListControl.cs (set_SelectedValue): don't throw exceptions on
22868         null/"" value, just return.  matches ms's behavior and fixes some
22869         failing tests.
22870
22871 2006-10-31  Chris Toshok  <toshok@ximian.com>
22872
22873         * Control.cs (set_Capture): make a logic a little easier to
22874         follow.
22875
22876         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
22877         if it's being destroyed.  A necessary fix surely, but a bandaid
22878         also, to fix the stuck capture problem in bug #78413.
22879
22880 2006-10-31  Chris Toshok  <toshok@ximian.com>
22881
22882         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
22883         convention of clearing hwnd.ClientRect when we set the
22884         width/height (so it'll be recalculated by Hwnd).
22885
22886 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
22887
22888         * ContainerControl.cs: reversed Contains check from
22889         ActiveControl due to hanging problems. This fix
22890         partly regresses #79667 (button does not have
22891         initial focus), so this might be a symptom for 
22892         a larger parenting problem (set_ActiveControl
22893         is being called but the child control does
22894         not have the parent set yet?)   
22895         
22896 2006-10-31  Mike Kestner  <mkestner@novell.com>
22897
22898         * MenuAPI.cs : fix keynav when menu is click activated.
22899
22900 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
22901
22902         * ToolStrip*: Version 0.2.
22903
22904         * MenuStrip.cs: Version 0.1.
22905
22906         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
22907
22908 2006-10-30  Chris Toshok  <toshok@ximian.com>
22909
22910         [ fixes the oversized notify icon issue in bug #79745 ]
22911         
22912         * NotifyIcon.cs: scale the icon down to the size we're given by
22913         the XplatUI layer (this would be faster if we did it once instead
22914         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
22915         since it's never invoked.
22916
22917         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
22918         pixels high by default, so let's hardcode our systray icon to that
22919         size.  The SYSTEM_TRAY protocol should really have a way for
22920         client apps to query for the correct icon size.. but oh well.  A
22921         couple of patches to deal with the screwy client_window ==
22922         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
22923         instance, and also make sure we don't XSelectInput twice).
22924
22925 2006-10-30  Chris Toshok  <toshok@ximian.com>
22926
22927         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
22928         recreating forms.  Control recreation is the bane of my existence.
22929         Fix it in a way that keeps everyone happy.
22930
22931 2006-10-30  Chris Toshok  <toshok@ximian.com>
22932
22933         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
22934         just non-CHILD ones.  otherwise sometimes scrollbars end up with
22935         client_windows not being resized to the proper size (ReportBuilder
22936         shows this extremely well).
22937
22938 2006-10-30  Chris Toshok  <toshok@ximian.com>
22939
22940         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
22941         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
22942         showing up in the gnome taskbar.  Fixes bug #79790.
22943
22944 2006-10-30  Chris Toshok  <toshok@ximian.com>
22945
22946         * ApplicationContext.cs: guard against a NRE.
22947
22948         * Application.cs: null out the old MainForm for the context, so we
22949         don't try to use it again once it's disposed.  Fixes bug #79783.
22950
22951 2006-10-30  Chris Toshok  <toshok@ximian.com>
22952
22953         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
22954         BindingContext, set the data source directly, otherwise do the
22955         lazy approach - the actual ListManager will be created when we get
22956         a BindingContext. Fixes bug #79700.
22957
22958 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
22959
22960         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
22961           XplatUIX11.cs: Remove old 2 parameter SetVisible.
22962
22963         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
22964
22965 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
22966
22967         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
22968         of SetVisible that allows a window to be shown, but not activated.
22969         This is needed on Windows for MenuStrip, and can probably be used
22970         with MainMenu and ComboBox to fix the focus stealing issues on
22971         Windows.
22972
22973         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
22974
22975 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
22976
22977         * PictureBox.cs: Fix the output of the ToString method.
22978
22979 2006-10-29  Chris Toshok  <toshok@ximian.com>
22980
22981         * Control.cs (get_TopLevelControl): fix bug #79781.
22982
22983 2006-10-29  Chris Toshok  <toshok@ximian.com>
22984
22985         * ListControl.cs (set_DataSource): throw Exception here, not
22986         ArgumentException, to match MS behavior.
22987
22988 2006-10-29  Chris Toshok  <toshok@ximian.com>
22989
22990         * Form.cs: remove the try-catch's around calls to GetWindowState.
22991         We can just check the return value.
22992
22993         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
22994         Instead return -1.
22995
22996         * XplatUI.cs: Add note about additional return value for
22997         GetWindowState.
22998
22999 2006-10-29  Chris Toshok  <toshok@ximian.com>
23000
23001         * Control.cs (CreateHandle): when we create our handle, we also
23002         create the handles of our child controls.  Fixes one of the
23003         Control unit tests (CH11).
23004
23005 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
23006
23007         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
23008
23009 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
23010
23011         * ThemeClearlooks.cs: A little speedup.
23012
23013 2006-10-27  Chris Toshok  <toshok@ximian.com>
23014
23015         * Control.cs: implement Control.FromChildHandle in a way that
23016         matches the docs (and fixes the failed test.)
23017
23018 2006-10-27  Chris Toshok  <toshok@ximian.com>
23019
23020         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
23021         comments).
23022
23023         * DataGrid.cs: implement ResetForeColor such that the tests
23024         succeed.
23025         
23026 2006-10-27  Chris Toshok  <toshok@ximian.com>
23027
23028         * ToolBarButton.cs: setting text/tooltiptext to null results in it
23029         being set to "".  Fixes bug #79759.
23030
23031 2006-10-27  Jackson Harper  <jackson@ximian.com>
23032
23033         * TextControl.cs: We need to clear the entire selection area when
23034         setting the start, otherwise multiline selections are still
23035         visible.
23036
23037 2006-10-26  Chris Toshok  <toshok@ximian.com>
23038
23039         * PropertyGridView.cs: 
23040
23041         - ifdef all the code specific to the double
23042         buffer case, and provide some alternatives in the non-doublebuffer
23043         code, which makes heavy use of XplatUI.ScrollWindow to move things
23044         around without having to invalidate (and cause flicker).  There
23045         are still some drawing problems in the non-doublebuffered case, so
23046         DOUBLEBUFFER is defined by default.
23047
23048         - Fix the way dropdowns are handled.  now we explicitly watch for
23049         the events which might cause the dropdown to close, and break out
23050         of the nested event loop there.  This gets rid of all Capture
23051         code, at the expense of the Msg special casing.  Seems to work,
23052         though, and fixes bug #79743.
23053
23054 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
23055         * Control.cs: SetIsRecreating now recreates implicitly added
23056         child controls as well. Finally fixes #79629. The flag passed to 
23057         SetIsRecreating has also been removed since it wasn't used.
23058         
23059 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
23060
23061         * PageSetupDialog.cs: Clean some code, fix some bits, 
23062         add some checks, and add a printer sub-dialog.
23063
23064 2006-10-26  Chris Toshok  <toshok@ximian.com>
23065
23066         * PropertyGrid.cs: make set_SelectedObject call
23067         set_SelectedObjects, and move the duplicate logic to the
23068         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
23069
23070         * PropertyGridView.cs: hide the textbox when we get a
23071         SelectedObjectsChanged event.
23072
23073         Fixes bug #79748.
23074
23075 2006-10-26  Chris Toshok  <toshok@ximian.com>
23076
23077         * PropertyGridView.cs: deal with the type converter not supporting
23078         GetStandardValues() or GetStandardValues() returning null, which
23079         is does in the default case.  Fixes #79742.
23080
23081 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
23082
23083         * CheckedListBox.cs: nunit no longer crashes when selecting 
23084         Project/Edit menu option
23085         
23086 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
23087
23088         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
23089         is no menu selected. fixes #79739
23090
23091 2006-10-25  Chris Toshok  <toshok@ximian.com>
23092
23093         * PropertyGridView.cs: factor out the splitter invalidation code
23094         into the SplitterPercent setter, and for kicks implement the
23095         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
23096         amount in either direction.
23097
23098 2006-10-25  Chris Toshok  <toshok@ximian.com>
23099
23100         * PropertyGridView.cs: do some cleanup of the brush used to draw
23101         text - read only fields should be grayed out.  not sure how to do
23102         this with the textbox, though.  but the textbox's should also be
23103         readonly now at least.  Also, hide/show the textbox when resizing
23104         the control.
23105         
23106         * CursorConverter.cs: use System.Reflection when getting the
23107         properties of Cursors, as TypeDescriptor.GetProperties isn't
23108         returning static properties.
23109
23110 2006-10-25  Chris Toshok  <toshok@ximian.com>
23111
23112         * PropertyGridView.cs: factor out the up/down handling, and reuse
23113         it for page up/down.  also add End/Home support.
23114
23115 2006-10-25  Chris Toshok  <toshok@ximian.com>
23116
23117         * PropertyGridView.cs:
23118
23119         - ensure the selected grid item is visible in the scrolled area,
23120         fixes bug #79572.
23121
23122         - fix Keys.Down handling when you're on the last item in the
23123         propertygrid.
23124
23125 2006-10-25  Mike Kestner  <mkestner@novell.com>
23126
23127         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
23128         clicks too.  Fixes #79725.
23129
23130 2006-10-24  Chris Toshok  <toshok@ximian.com>
23131
23132         * PropertyGrid.cs: use property.Converter instead of
23133         TypeDescriptor.GetConverter(property.PropertyType), so we catch
23134         TypeConverters declared on the property as well as on the
23135         PropertyType.  Fixes bug #79678.
23136
23137 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
23138
23139         * MimeIcon.cs, Mime.cs:
23140           Fallback to the default platform handler if no shared mime info
23141           stuff exists (fixes #79693).
23142
23143 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
23144         * ContainerControl.cs: Incorrect contains check in ActiveControl 
23145         from previous fix (duh).
23146
23147 2006-10-20  Chris Toshok  <toshok@ximian.com>
23148
23149         * PropertyGridView.cs: the dropdown should be MIN(number of items
23150         in list, 15).  Fixes #79551.
23151
23152 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
23153         Fixes #79384, #79394, #79652, #79667
23154         * Application.cs: 
23155         
23156         - Modal windows are now destroyed in the proper order for windows
23157         
23158         * ContainerControl.cs:
23159         
23160         - ActiveControl setter has more conditions on when to return:
23161                 - if we're reselecting the active control, but it actually
23162                 didn't have focus (window hidden or some such), it runs
23163                 - if the active control being selected doesn't actually 
23164                 exist in the container, it returns
23165         
23166         * Form.cs
23167         
23168         - The ShowDialog now gets the current form as the owner when
23169         invoking without parameters, and correctly activates the owner 
23170         when returning
23171         
23172         * MessageBox.cs
23173         
23174         - MessageBox now catches the Escape key to exit
23175
23176 2006-10-20  Chris Toshok  <toshok@ximian.com>
23177
23178         * PropertyGridView.cs: fix a number of issues (bug #78565, and
23179         most of bug #79676):
23180
23181         - you can navigate around the property grid with the arrow keys.
23182
23183         - the dropdown is sized properly when the pg has a vertical
23184         scrollbar.
23185
23186         - fix the indentation for subentries, and properly select the
23187         entire label rect.
23188
23189         - fix the gray bar's drawing (only draw it to the last element,
23190         not for the height of the control.  Also make sure we draw that
23191         last horizontal grid line.
23192
23193         - use the same mechanism the datagrid uses wrt the editing textbox
23194         when scrolling/resizing/etc.  Namely, we hide it first, do the
23195         operation, then show it again (if it's still visible).
23196         
23197         - aggressively remove a lot of unnecessary refreshes (and also
23198         calls to Invalidate(). call more limited variants, and only redraw
23199         what we need.)
23200         
23201         * PropertyGrid.cs:
23202
23203         - when we're populating the merged collection, fill in the UI
23204         parent with either the passed in item, or the category item we
23205         create.
23206
23207         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
23208
23209         * GridItem.cs: drop some fully qualified names.
23210         
23211         * GridEntry.cs: add a "UIParent", which is basically the parent
23212         treenode.
23213
23214         * GridItemCollection.cs: add an IndexOf method.
23215
23216 2006-10-20  Mike Kestner  <mkestner@novell.com>
23217
23218         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
23219         a working win32 NC invalidation mechanism, we can't invalidate
23220         menus.  [Fixes #79705]
23221
23222 2006-10-20  Mike Kestner  <mkestner@novell.com>
23223
23224         * ListBox.cs : don't update the VScrollbar if the list is empty,
23225         just hide it.  [Fixes #79692]
23226
23227 2006-10-20  Jackson Harper  <jackson@ximian.com>
23228
23229         * RichTextBox.cs: Handle some special chars better, and don't skip
23230         the entire group when we encounter a special char that we don't
23231         handle correctly.
23232
23233 2006-10-18  Chris Toshok  <toshok@ximian.com>
23234
23235         * PropertyGridView.cs: address a number of issues from bug #79676,
23236         mostly of the cosmetic variety.
23237
23238         - The highlight rectangle for indented items not extends all the
23239         way to the left.
23240
23241         - Indented items aren't indented so much.
23242
23243         - the dropdown is properly sized width-wise if the pg has a
23244         vertical scrollbar.
23245
23246 2006-10-18  Chris Toshok  <toshok@ximian.com>
23247
23248         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
23249         systray stuff is rather convoluted to begin with.
23250
23251         systray icons are a single window for some reason (that I haven't
23252         figured out yet), and for them, client_window == whole_window.
23253         Given the way the tests are structured elsewhere to determine
23254         which paints are pending (client vs. nc), that situation will
23255         always yield PAINT, not NCPAINT.  So, if we have a pending
23256         nc_expose and no pending expose, remove the hwnd from the paint
23257         queue, and also set nc_expose_pending to false, to keep us from
23258         blocking further expose's adding the hwnd to the paint queue.
23259
23260         phew.  like i said, a rather convoluted change.  Fixes the
23261         notifyicon repaint issues in bug #79645.
23262
23263 2006-10-18  Chris Toshok  <toshok@ximian.com>
23264
23265         * Form.cs: when getting the backcolor of the form, don't get
23266         base.BackColor, as this allows parents to influence the background
23267         color.  This breaks mdi forms.  Instead, if the background_color
23268         is empty, return the default.
23269
23270 2006-10-18  Chris Toshok  <toshok@ximian.com>
23271
23272         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
23273         to being private instead of internal static.
23274
23275         * Control.cs: remove all the stupid ParentWaitingOnRecreation
23276         crap, it wasn't working for more deeply nested controls anyway,
23277         and we already have the is_recreating flag - use that instead.
23278         Before calling DestroyHandle in RecreateHandle, recurse through
23279         the control tree setting it to true.  this returns the recreate
23280         code to much of its original simplicity, while now guaranteeing we
23281         actually recreate everything we're supposed to.  This change gets
23282         fyireporting actually showing mdi children.
23283
23284 2006-10-17  Chris Toshok  <toshok@ximian.com>
23285
23286         * Form.cs: remove some debug spew, and collapse some duplicate
23287         code at the end of SetClientSizeCore.
23288
23289         * XplatUIX11.cs: 
23290         - add some more debug spew here too wrt Destroy handling.
23291         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
23292         in Control's handling of WM_DESTROY.
23293         - Remove the handling of zombie window DestroyNotifies from the
23294         event loop - we don't need it.  Now the only DestroyNotifies we
23295         actually handle are ones generated by X.
23296         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
23297         match gtk's (functioning) handling of this. This keep metacity
23298         from leaving droppings in the form of wm borders with no window
23299         contents all over the place.
23300
23301         * Control.cs:
23302         - add a bunch of debug spew wrt control recreation.
23303         - fix a bug where we weren't tracking Visible properly on
23304         recreated hwnds.
23305         - fixed the WM_PAINT double buffer handling to support re-entrant
23306         calls (yes, i know it's gross, but it's happening to us).
23307
23308 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23309         * ThemeWin32Classic.cs: changed drawing of selected days
23310         to make them look better.
23311
23312 2006-10-16  Chris Toshok  <toshok@ximian.com>
23313
23314         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
23315         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
23316
23317         * XplatUIX11.cs: move away from using hwnd.client_dc and
23318         hwnd.non_client_dc and on to a stack of dc's (and in window's
23319         case, PAINTSTRUCT's), so we can deal with nested Paint calls
23320         without puking or not disposing of Graphics objects.
23321
23322         * XplatUIOSX.cs: same.
23323
23324         * XplatUIWin32.cs: same.
23325
23326 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
23327
23328         * FileDialog.cs: Don't call on_directory_changed inside
23329           OnSelectedIndexChanged (it changes the SelectedIndex too).
23330           Instead move it to OnSelectionChangeCommitted.
23331
23332 2006-10-13  Chris Toshok  <toshok@ximian.com>
23333
23334         * XplatUIX11.cs: more Destroy work.  the current code does the
23335         following things, in order:
23336
23337         1. Enumerates all handles of all controls at or below the one
23338         being destroyed, in pre-order.  As it is doing this, it marks the
23339         handles as zombie and clears all references to them.
23340         
23341         2. calls XDestroyWindow on the window passed in.
23342
23343         3. SendMessage's WM_DESTROY to all he handles in the accumulated
23344         list.
23345
23346 2006-10-13  Chris Toshok  <toshok@ximian.com>
23347
23348         * XplatUIX11.cs: set hwnd.zombie to true before calling
23349         SendMessage (WM_DESTROY).  this keeps us from marking the new
23350         window a zombie, and also keeps us from calling sendmessage at
23351         all.
23352
23353 2006-10-13  Jackson Harper  <jackson@ximian.com>
23354
23355         * TextControl.cs: Do not show the caret and selection at the same
23356         time.  Reduces ugliness by 35%.
23357
23358 2006-10-13  Chris Toshok  <toshok@ximian.com>
23359
23360         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
23361         zombie after we do the recursive call, so we actually do call
23362         SendMessage on the children controls.
23363         (GetMessage): if we find a pending paint event for a zombie hwnd,
23364         remove the hwnd from the paint queue, or else it will always be
23365         there (and we'll effectively loop infinitely)
23366
23367 2006-10-13  Mike Kestner  <mkestner@novell.com>
23368
23369         * MenuItem.cs : add Selected format under keynav too.
23370         Fixes #79528.
23371
23372 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
23373
23374         * PropertyGrid.cs: Fixed some NRE's and small difference between our
23375         implementation and that of MS.
23376
23377 2006-10-13  Chris Toshok  <toshok@ximian.com>
23378
23379         * Control.cs (OnInvalidated) only futz with the invalid_region if
23380         the control is double buffered.  this fixes the apparent hang in
23381         the ListView unit tests.  Someone needs to make the
23382         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
23383
23384 2006-10-13  Chris Toshok  <toshok@ximian.com>
23385
23386         * PropertyGridView.cs:
23387
23388         - do a little refactoring so that only one place calls
23389         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
23390         else call that.  Also make it Refresh, since there are redraw bugs
23391         otherwise (we should take a look at that...)
23392
23393         - do a little more refactoring work to share the body of code
23394         involved with the drop down.  it was duplicated in the code
23395         dealing with the listbox handling and in the code dealing with the
23396         UITypeEditors.
23397
23398         - add a Capture to the dropdown form's control once it's
23399         displayed, and add a MouseDown handler that checks to make sure
23400         the position is inside the control.  If it's not, close the
23401         dropdown.  This fixes #78190.
23402
23403         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
23404         if the value is different than the initial value.
23405         
23406 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
23407
23408         * Control.cs: see #78650
23409         - Fixed GetNextControl for several cases:
23410                 - Changed FindFlatForward to return 
23411                 correct sibling control when more than one
23412                 control has same TabIndex as the currently 
23413                 focused one.
23414                 - Changed FindFlatBackward to loop children
23415                 from last to first and apply same logic as in
23416                 FindFlatForward
23417                 - Changed FindControlForward to search for
23418                 children when control is not a container
23419                 but has children, or search for siblings if
23420                 control is a container...
23421                 - Changed FindControlBackward   to continue
23422                 searching for child controls when hitting 
23423                 Panel-like parents
23424                 
23425         - Fixed Focus method to update ActiveControl
23426         (FocusTest.FocusSetsActive failure)
23427         
23428         * TabControl.cs:
23429         - Focus rectangle now refreshes when gaining
23430         or losing focus
23431         - Removed grab for Tab key on IsInputKey that 
23432         was keeping tab navigation from working (#78650)
23433
23434 2006-10-13  Chris Toshok  <toshok@ximian.com>
23435
23436         * PropertyGridView.cs:
23437         - Rewrite SetPropertyValue to loop over SelectedGridItem's
23438         SelectedObjects.
23439
23440         - Deal with GridItem.Value == null a few places.
23441
23442         * PropertyGrid.cs: 
23443         - replace the PopulateGridItemCollection with a pair of methods
23444         which compute the intersection of all the properties in the
23445         SelectedObjects array.  Fixes #79615.
23446
23447         - Throw ArgumentException from set_SelectedObjects if there's a
23448         null in the array.
23449
23450         - Add GetTarget method which can be used to traverse up the
23451         GridItem.Parent chain.  It depends on the assumption that
23452         selected_objects for different GridEntries are always in the same
23453         order (a safe assumption).  Use this method and loop over all the
23454         selected objects in the entry when calling RemoveValueChanged and
23455         AddValueChanged.
23456         
23457         * GridEntry.cs: Make this handle multiple selected objects.
23458         .Value returns null if not all the selected objects share the same
23459         value.
23460
23461 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
23462         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
23463           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
23464           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
23465           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
23466           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
23467         add additional functionality.
23468
23469 2006-10-12  Mike Kestner  <mkestner@novell.com>
23470
23471         * ErrorProvider.cs : new ToolTipWindow ctor sig.
23472         * HelpProvider.cs : new ToolTipWindow ctor sig.
23473         * ToolTip.cs : remove ToolTip param from Window sig since it is
23474         not used.
23475         * ToolBar.cs : add tooltip support.  Fixes #79565.
23476
23477 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23478
23479         * ComboBox.cs: move the events in set_SelectedIndex to 
23480         after the call to HighlightIndex in order to avoid 
23481         possible recursion and subsequent problems with the call
23482         to HighlightIndex and include a range check in 
23483         set_HighlightIndex. Fixes #79588
23484         
23485 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23486
23487         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
23488         to ui thread's settings instead of sunday. 
23489         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
23490
23491 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
23492
23493         * DateTimePicker.cs
23494         * MonthCalendar.cs
23495         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
23496         and implement missing functionality (selecting different parts 
23497         of the date and edit them individually with the keyboard).
23498         
23499 2006-10-11  Chris Toshok  <toshok@ximian.com>
23500
23501         * Control.cs (OnInvalidated): fix NRE relating to last change.
23502
23503 2006-10-11  Chris Toshok  <toshok@ximian.com>
23504
23505         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
23506         atoms in _NET_WM_STATE here if the window is maximized.  We need
23507         to do this because we're *replacing* the existing _NET_WM_STATE
23508         property, so those atoms will be lost otherwise, and any further
23509         call to GetWindowState will return Normal for a window which is
23510         actually maximized.  Fixes #79338.
23511
23512 2006-10-11  Jackson Harper  <jackson@ximian.com>
23513
23514         * TextControl.cs: Special case for setting selection end to
23515         selection start, we basically kill the anchor.
23516         - some todo comments.
23517
23518 2006-10-11  Chris Toshok  <toshok@ximian.com>
23519
23520         * Control.cs: switch to using an "invalid_region" to track which
23521         parts of the image buffer need updating.  This is more code than
23522         the simple fix from r66532.  That version just attempted to always
23523         fill the entire buffer on redraw, which turns out to be
23524         inefficient when invalidating small rectangles.  This version
23525         simply adds the invalid rectangle to the invalid region.  When we
23526         get any WM_PAINT message we see if it can be filled using the
23527         image buffer, and if it can't (if the paint event's clip rectangle
23528         is visible in the invalid region) we first fill the image buffer.
23529         So, the image buffer is still a cache, we just fill it lazily.
23530
23531         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
23532         need it any longer.
23533
23534 2006-10-11  Chris Toshok  <toshok@ximian.com>
23535
23536         * XplatUIX11.cs (SetWindowPos): we need to update both position as
23537         well as size after calling XMoveResizeWindow.  This keeps us from
23538         ignoring future SetWindowPos calls.  Fixes the disappearing
23539         DateTimePicker in the ToolBarDockExample from bug #72499.
23540
23541 2006-10-11  Chris Toshok  <toshok@ximian.com>
23542
23543         * TextBoxBase.cs: reorder things a bit when it comes to
23544         resizing-causing-recalculation.  we were recalculating the
23545         document when our position was changed, which shouldn't happen.
23546         We only care about size changes.  Clear up some more redundant
23547         recalculation calls while I'm at it.  This makes the toolbar dock
23548         example snappy when you're just dragging toolbars around (since it
23549         causes a relayout whenever you move one.)
23550
23551 2006-10-11  Chris Toshok  <toshok@ximian.com>
23552
23553         * ToolBarButton.cs (get_Rectangle): this only returns
23554         Rectangle.Empty if Visible == false, or Parent == null.
23555         Parent.Visible doesn't matter.
23556
23557 2006-10-10  Chris Toshok  <toshok@ximian.com>
23558
23559         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
23560         by .net 1.1, so switch to an internal method instead.
23561
23562 2006-10-10  Chris Toshok  <toshok@ximian.com>
23563
23564         * Control.cs (WM_PAINT): when a control is double buffered we draw
23565         initially to the ImageBuffer and then copy from there.  But when a
23566         parent control which has child controls is double buffered, the
23567         initial drawing doesn't encompass the entire ClientRectangle of
23568         the parent control, so we end up with uninitialized bits (this is
23569         easily seen by dragging the top toolbar in
23570         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
23571         manually set the ClipRectangle of the paint_event (only the one we
23572         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
23573         of the nastiness in bug #72499.
23574
23575         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
23576         which we use in Control.cs's WM_PAINT handling.
23577
23578 2006-10-10  Jackson Harper  <jackson@ximian.com>
23579
23580         * TextBoxBase.cs: Finish off the autoscrolling stuff.
23581
23582 2006-10-10  Chris Toshok  <toshok@ximian.com>
23583
23584         * Cursor.cs: Apply a slightly different patch to the one suggested
23585         in #79609.
23586
23587 2006-10-10  Jackson Harper  <jackson@ximian.com>
23588
23589         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
23590         not the parent form.
23591         * TextControl.cs: use difference in old line count vs new count to
23592         calculate how many lines were added, this takes into account soft
23593         line breaks properly.
23594
23595 2006-10-10  Chris Toshok  <toshok@ximian.com>
23596
23597         * LinkLabel.cs: don't call MeasureCharacterRanges against a
23598         rectangle located at 0,0 and the size of the text.  Use
23599         ClientRectangle instead.  This fixes rendering of non-left aligned
23600         link labels.
23601
23602 2006-10-10  Jackson Harper  <jackson@ximian.com>
23603
23604         * TextBoxBase.cs: When we set the selection start position the
23605         caret.
23606         * TextControl.cs: Need to update the caret when we decrement it to
23607         zero.
23608         - Make sure that the selection_visible flag gets reset to false if
23609         the selection isn't visible.  Before this you could get it set to
23610         visible by changing the selection start, then changing the end to
23611         equal the start.
23612
23613 2006-10-09  Jackson Harper  <jackson@ximian.com>
23614
23615         * TreeView.cs: Don't update scrollbars when we aren't visible.
23616         * TreeNodeCollection.cs: Only need to update scrollbars if being
23617         added to an expanded visible node or the root node.
23618
23619 2006-10-09  Chris Toshok  <toshok@ximian.com>
23620
23621         * XplatUIX11.cs (SendMessage): fix NRE.
23622
23623 2006-10-09  Jackson Harper  <jackson@ximian.com>
23624
23625         * TextBoxBase.cs: Implement horizontal autoscrolling.
23626         * TextControl.cs: Add a movement types that allows moving forward
23627         and backwards without wrapping.
23628
23629 2006-10-09  Mike Kestner  <mkestner@novell.com>
23630
23631         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
23632         with focus "expansion" of labels.  Fixes #79532 and then some.
23633         * ThemeWin32Classic.cs : add LineLimit to ListView label format
23634         when wrapping.
23635
23636 2006-10-09  Jackson Harper  <jackson@ximian.com>
23637
23638         * TextBoxBase.cs: Set the default max values to MaxValue since
23639         we use the scrollbar for autoscrolling and the default value is
23640         100.  If we don't do this the caret won't keep up with typing
23641         after about 18 characters.
23642         * TextControl.cs: Make sure the selection is offset by the
23643         viewport x.  This fixes selection when using auto scrolling.
23644
23645 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
23646         
23647         * Form.cs: The active control should be selected after the 
23648         OnLoad so that any child control initialization that affects
23649         the selection is done. Fixes #79406
23650
23651 2006-10-06  Chris Toshok  <toshok@ximian.com>
23652
23653         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
23654         to have no evil effects.
23655
23656         - Stop selecting StructureNotifyMask on non-toplevel windows.
23657
23658           The only way children should be resized is by using the SWF api,
23659           and we already send WM_WINDOWPOSCHANGED messages in those cases.
23660           Toplevel windows can be interacted with via the window manager,
23661           and so we keep the input mask there.
23662
23663           The other event StructureNotifyMask gives us (that we care
23664           about) is DestroyNotify.  The code is already structured such
23665           that it assumes we won't be getting a DestroyNotify event for
23666           the window we pass to XDestroyWindow (which is what
23667           StructureNotifyMask is supposed to guarantee.)  So, that code
23668           shouldn't be affected by this either.
23669
23670         - Stop selecting VisibilityChangeMask altogether.
23671
23672           We weren't doing anything with the resulting events anyway.
23673         
23674         This vastly reduces the number of X requests and events we see
23675         when resizing/laying out a large ui.
23676
23677 2006-10-06  Chris Toshok  <toshok@ximian.com>
23678
23679         * ScrollableControl.cs (DisplayRectangle): we need to take into
23680         account the DockPadding regardless of whether or not auto_scroll
23681         == true.  rework this slightly to this effect, and fix bug #79606,
23682         and part of #72499 (you can now see the drag handles and drag
23683         toolbars around).
23684
23685 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
23686
23687         * ListViewItem.cs: Collections of selected and checked items are now
23688         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
23689         we mark the collection "dirty".
23690         * ListView.cs: Marked collections readonly. Modified UpdateSelection
23691         to only clear SelectedItems when a new item is selected and MultiSelect
23692         is enabled. CheckedItems and SelectedItems now subscribe to Changed
23693         event of ListViewItemCollection, and mark its list dirty whenever
23694         that event is fire. This allows us to return selected/checked items 
23695         in the same order as they are in the Items collection. This matches
23696         the MS behavior.
23697
23698 2006-10-06  Chris Toshok  <toshok@ximian.com>
23699
23700         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
23701         right mouse clicks.  Fixes bug #79593.
23702
23703 2006-10-06  Chris Toshok  <toshok@ximian.com>
23704
23705         * Splitter.cs: doh, fix splitters that don't want to cancel the
23706         movement when you drag them.  Also, impose the limits on the
23707         values we send to the SplitterMovingEvent.  Fixes #79598.
23708
23709 2006-10-06  Jackson Harper  <jackson@ximian.com>
23710
23711         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
23712         since we use this for auto scrolling also.
23713
23714 2006-10-05  Chris Toshok  <toshok@ximian.com>
23715
23716         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
23717         beginning to think that most datagrid column types don't need this
23718         method.  Fixes bug #79392.
23719
23720 2006-10-05  Chris Toshok  <toshok@ximian.com>
23721
23722         * DataGrid.cs: move back to a more lazy scheme for creating the
23723         CurrencyManager, so we aren't updating it every time you set
23724         either DataSource or DataMember.  Also, don't call
23725         RecreateDataGridRows if the currency manager hasn't changed.
23726
23727 2006-10-05  Chris Toshok  <toshok@ximian.com>
23728
23729         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
23730         emitted, SelectedIndex should already be updated.  Fixes bug
23731         #78929.
23732
23733 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
23734
23735         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
23736           ToolStripTextBox.cs: Initial commit.
23737         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
23738
23739 2006-10-05  Jackson Harper  <jackson@ximian.com>
23740
23741         * TabControl.cs: We need to invalidate the tab control area when
23742         new ones are added (duh).
23743
23744 2006-10-03  Chris Toshok  <toshok@ximian.com>
23745
23746         * Form.cs (ProcessDialogKey): if the focused control is in this
23747         form and is a button, call its PerformClick method here.  Fixes
23748         #79534.
23749
23750 2006-10-04  Jackson Harper  <jackson@ximian.com>
23751
23752         * TabPage.cs: Ignore setting of Visible, and add an internal
23753         method for setting the controls visibility.  TabPage's Visible
23754         property is a little strange on MS, this seems to make us
23755         compatible, and fixes cases where people set all the tab pages to
23756         visible.
23757         * TabControl.cs: Use the new internal setting on tab pages
23758         visibility.
23759
23760 2006-10-03  Mike Kestner  <mkestner@novell.com>
23761
23762         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
23763
23764 2006-10-03  Mike Kestner  <mkestner@novell.com>
23765
23766         * ListView.cs : use is_visible instead of Visible to check if 
23767         scrollbars should be placed/sized.  Also some max_wrap_width
23768         love for LargeIcon view.  [Fixes #79533]
23769
23770 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
23771
23772         * TextControl.cs :
23773           Make set_TextAlign() do actually update the align. Fixed #78403.
23774
23775 2006-10-03  Chris Toshok  <toshok@ximian.com>
23776
23777         * DataGrid.cs: fix a crash when switching datasources if the
23778         vertical scrollbar is at someplace other than Value = 0.  Also,
23779         reduce the number of recalculation passes we do in SetDataSource
23780         from 2 to 1.
23781
23782 2006-10-03  Jackson Harper  <jackson@ximian.com>
23783
23784         * TextBoxBase.cs: Move the if value the same bail check up, we
23785         don't want to empty the document if it is already empty, this
23786         seems to severly mess up the caret.  TODO: I should probably fix
23787         the empty statement to update teh caret somehow.
23788
23789 2006-10-03  Chris Toshok  <toshok@ximian.com>
23790
23791         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
23792         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
23793         reflection, an internal row type, properties on said type, etc.)
23794         will work with our datagrid.  Fixes #79531.
23795
23796 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
23797
23798         * FileDialog.cs: Don't crash if a path is not accessible
23799           (System.UnauthorizedAccessException). Fixes #79569.
23800         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
23801           a ':' too. Return unknown icon for those paths/files.
23802
23803 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
23804
23805         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
23806         GetContainerControl returns null.
23807
23808 2006-10-02  Chris Toshok  <toshok@ximian.com>
23809
23810         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
23811         call to XGetWindowAttributes instead of "handle".  fixes an X
23812         error using notifyicon after the NotifyIconWindow to Form base
23813         class switch.
23814
23815 2006-10-02  Chris Toshok  <toshok@ximian.com>
23816
23817         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
23818         server grab and looping we need to do to get down to the most
23819         deeply nested child window.
23820         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
23821         QueryPointer again after the WarpPointer so we can generate a
23822         proper (fake) MotionNotify event to be enqueued in the destination
23823         window's queue.
23824         (GetCursorPos): call QueryPointer.
23825
23826         Fixes #79556.
23827
23828 2006-10-02  Jackson Harper  <jackson@ximian.com>
23829
23830         * NotifyIcon.cs: Derive the notify icon from a form, so things
23831         like FindForm work on it.
23832         - Swallow the WM_CONTEXTMENU message, since that is generated on
23833         mouse down, and context menu is a mouse up kinda guy.  I believe
23834         the correct fix here is probably to make the notify icon entirely
23835         NC area, but this seems to work fine for anyone not manipulating
23836         WndProc.
23837
23838 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
23839
23840         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
23841           ToolStripItemCollection.cs, ToolStripLabel.cs,
23842           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
23843           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
23844           Initial implementation.
23845         * TextRenderer.cs: Provide padding to MeasureText.
23846
23847 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
23848
23849         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
23850         of ButtonBaseAccessibleObject. Fix bug #79552.
23851
23852 2006-10-02  Jackson Harper  <jackson@ximian.com>
23853
23854         * MdiWindowManager.cs: When maximizing use the containers client
23855         rect, not it's bounds, so nc area is accounted correctly.
23856         - Use the parent form's size for the menu position, since the
23857         client isn't always the full form size.
23858
23859 2006-10-01  Chris Toshok  <toshok@ximian.com>
23860
23861         * ScrollableControl.cs: make sure neither right_edge or
23862         bottom_edge are < 0, since they're used as LargeChange for the
23863         horiz/vert scrollbars respectively.  Fixes #79539.
23864
23865 2006-10-01  Chris Toshok  <toshok@ximian.com>
23866
23867         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
23868         the xplatuix11 code can cause us to destroy/recreate our handle.
23869
23870         * XplatUIX11.cs
23871         (SystrayAdd):
23872         - this code can be invoked many times for the same Hwnd.  Make
23873           sure we only destroy the client window once (the first time this
23874           method is called).  This fixes bug #79544.
23875         - Remove the call to the improperly bound XSync.  why we had two
23876           bindings to this, I will never know, but this call resulted in
23877           events being discarded from the queue(!).
23878         - correct a misunderstanding of _XEMBED_INFO - the second atom is
23879           not our current state but the state we wish to be in.  So, 0 if
23880           we don't want to be mapped.  Change it to 1.
23881         (SystrayRemove): The XEMBED spec makes mention of the fact that
23882         gtk doesn't support the reparent of client windows away from the
23883         embedder.  Looking at gtksocket-x11.c seems to agree with this.
23884         The only avenue we have for removing systray icons is to destroy
23885         them.  We don't want the handle to go away for good, though, so
23886         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
23887         #79545.
23888         
23889 2006-10-01  Chris Toshok  <toshok@ximian.com>
23890
23891         * Form.cs (WndProc): inline the native_enabled variable usage into
23892         the cases in which it's used.  Fixes #79536.
23893
23894 2006-09-29  Mike Kestner  <mkestner@novell.com>
23895
23896         * ListView.cs : toggle the selection state for ctrl clicks in 
23897         multiselect mode. [Fixes #79417]
23898
23899 2006-09-29  Mike Kestner  <mkestner@novell.com>
23900
23901         * ListView.cs : kill CanMultiSelect and refactor the selection
23902         code to support multiselection in the absence of mod keys. Steal
23903         arrow/home/end keys by overriding InternalPreProcessMessage to
23904         restore regressed keynav behavior.
23905         [Fixes #79416]
23906
23907 2006-09-29  Jackson Harper  <jackson@ximian.com>
23908
23909         * MdiClient.cs: Repaint the titlebars when the active window is
23910         changed.
23911
23912 2006-09-29  Chris Toshok  <toshok@ximian.com>
23913
23914         * Application.cs: when entering a runloop with a modal, make sure
23915         the hwnd is enabled.  Fixes #79480.
23916
23917 2006-09-29  Chris Toshok  <toshok@ximian.com>
23918
23919         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
23920         when ListManager.CanAddRows == false, bump us back one.
23921
23922         * DataGridColumnStyle.cs (ParentReadOnly): remove the
23923         listmanager.CanAddRows check.  This makes ArrayLists uneditable
23924         using a datagrid, which is not right.
23925         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
23926         is an IEditable, but call property_descriptor.SetValue regardless.
23927         fixes #79435.
23928
23929 2006-09-29  Chris Toshok  <toshok@ximian.com>
23930
23931         * DataGridBoolColumn.cs: we need to test equality in the face of
23932         possible null values (as is the case with the default NullValue).
23933         This patch keeps us from crashing in that case.
23934
23935 2006-09-29  Jackson Harper  <jackson@ximian.com>
23936
23937         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
23938         here, since it will get called for every node collection in the
23939         tree. This is now done in the treeview once the sorting is
23940         finished.
23941         * TreeView.cs: Recalculate the visible order, and update the
23942         scrollbars after sorting, set the top nope to the root so that the
23943         recalc actually works.
23944
23945 2006-09-29  Chris Toshok  <toshok@ximian.com>
23946
23947         * LinkLabel.cs: more handling of the default link collection in
23948         the face of LinkArea manipulation.  The default link collection
23949         contains 1 element (start=0,length=-1).  If the user sets LinkArea
23950         to anything and the links collection is the default, clear it.
23951         Then only add the link if its nonempty.  Fixes #79518.
23952
23953 2006-09-29  Chris Toshok  <toshok@ximian.com>
23954
23955         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
23956         piece correctly when we hit a '\n'.  Fixes #79517.
23957
23958 2006-09-29  Chris Toshok  <toshok@ximian.com>
23959
23960         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
23961         change the binding of gdk_init_check to take two IntPtr's, and
23962         pass IntPtr.Zero for both of them.  Fixes #79520.
23963
23964 2006-09-29  Mike Kestner  <mkestner@novell.com>
23965
23966         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
23967         [Fixes #78779]
23968
23969 2006-09-28  Jackson Harper  <jackson@ximian.com>
23970
23971         * XplatUIX11.cs: When translating NC messages make sure we go from
23972         whole window to screen, not client window to screen.
23973         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
23974         method doesn't exist
23975         - Skip over controls that aren't forms when arranging.
23976
23977 2006-09-28  Jackson Harper  <jackson@ximian.com>
23978
23979         * XplatUIWin32.cs: Clip the rect to the parent window.
23980         * XplatUIStructs.cs: Add clipping modes struct.
23981         * InternalWindowManager.cs: New private method that factors title
23982         bar heights in when calculating the pos of an NC mouse message.
23983         - Use SendMessage to force a paint when the form's size is changed
23984         instead of painting the decorations immediately.
23985         - Don't let the NC button click messages get to DefWndProc,
23986         because they will attempt to handle windowing themself, and this
23987         messes up z-order (it will put them in front of the scrollbars).
23988         * XplatUIX11.cs: Make sure that we don't reset window managers if
23989         we already have one (ie the window is an MDI window).
23990
23991 2006-09-28  Chris Toshok  <toshok@ximian.com>
23992
23993         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
23994         menu code really needs going over.
23995
23996 2006-09-27  Chris Toshok  <toshok@ximian.com>
23997
23998         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
23999         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
24000         window is maximizable.  So, we need to make sure that even if we
24001         clear the border/wm frame of those functions, they're still
24002         available (basically, we remove the decoration without removing
24003         the function).  Half the fix for #79338.
24004
24005 2006-09-27  Chris Toshok  <toshok@ximian.com>
24006
24007         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
24008         Fixes bug #79515.
24009
24010 2006-09-27  Chris Toshok  <toshok@ximian.com>
24011
24012         * Splitter.cs: reorder things a bit so that we don't actually
24013         draw/move the splitter until after calling OnSplitterMoving.  This
24014         lets users cancel/disallow the movement by explicitly setting
24015         event.SplitX/SplitY.  Fixes #79372.
24016
24017 2006-09-27  Jackson Harper  <jackson@ximian.com>
24018
24019         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
24020         because it is most likely on a window being destroyed, and that
24021         will give us an X11 error.
24022
24023 2006-09-27  Chris Toshok  <toshok@ximian.com>
24024
24025         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
24026         the dropdown button now toggles between showing and hiding the
24027         dropdown.  Also, get rid of dropdown_form_showing and just use
24028         dropdown_form.Visible.  We still don't do a grab, but I'll leave
24029         that part to someone who has handled Capture-fu before.
24030
24031 2006-09-27  Chris Toshok  <toshok@ximian.com>
24032
24033         * DataGrid.cs: return false if alt isn't pressed when '0' is
24034         pressed.  this keeps the '0' key from being swallowed, and fixes
24035         bug #79350.
24036
24037 2006-09-27  Chris Toshok  <toshok@ximian.com>
24038
24039         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
24040         Calling Refresh (in response to a scrollbar event) screws up the
24041         scrollbar painting.  Fixes bug #78923.
24042
24043 2006-09-27  Chris Toshok  <toshok@ximian.com>
24044
24045         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
24046         then insert into hashtable" blocks threadsafe.
24047
24048 2006-09-27  Chris Toshok  <toshok@ximian.com>
24049
24050         * MessageBox.cs (CreateParams): the styles should be |'ed with our
24051         baseclass's, since otherwise the
24052         ControlBox/MinimizeBox/MaximizeBox assignments above have no
24053         effect.  This gets the close button back in messageboxes.
24054
24055 2006-09-27  Chris Toshok  <toshok@ximian.com>
24056
24057         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
24058         flag, not just != 0.  this makes flags that are actually multiple
24059         bits (like WS_CAPTION) work.  fixes bug #79508.
24060
24061 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
24062
24063         * PageSetupDialog.cs: add support for getting and settings the 
24064         paper size, source and orientation.
24065
24066 2006-09-26  Chris Toshok  <toshok@ximian.com>
24067
24068         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
24069         and caption == "", we need to remove the resize handles as well as
24070         the title bar.
24071
24072         * Control.cs (set_Text): turns out that setting Text on a form
24073         should change the WM styles on the window, since if ControlBox ==
24074         false, the only way to get a window border is to have a non-""
24075         Text property.  check winforms/forms/text.cs for an example.  so,
24076         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
24077         update both window styles and title.  This fixes a lot of dialogs
24078         (including the preferences dialog in MonoCalendar.)
24079
24080 2006-09-26  Chris Toshok  <toshok@ximian.com>
24081
24082         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
24083         control isn't a Form), call Win32ShowWindow to hide the window,
24084         but don't update the control Visible property.  When we reparent
24085         back to a parent control, call SetVisible in order for the
24086         window's visibility to be reinstated.
24087
24088         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
24089         the FosterParent.
24090
24091         * Control.cs (ControlCollection.Remove): remove that value.Hide()
24092         call for good, since it breaks MonoCalendar (and other things I'm
24093         sure.) Also, set all_controls to null *after* the owner calls,
24094         which end up regenerating it.
24095         (ChangeParent): allow new_parent to be == null, passing
24096         IntPtr.Zero down to XplatUI.
24097
24098         this fixes #79294 the right way.
24099
24100 2006-09-26  Mike Kestner  <mkestner@novell.com>
24101
24102         * GridEntry.cs : internal SetParent method.
24103         * PropertyGrid.cs : attach to property changed on the proper
24104         target if we have a hierarchical grid with subobjects. Setup
24105         GridItem.Parent for hierarchical items.
24106         * PropertyGridView.cs : Set value on the correct target for
24107         hierarchical grids. [Fixes #78903]
24108
24109 2006-09-26  Chris Toshok  <toshok@ximian.com>
24110
24111         * Control.cs (ChildNeedsRecreating): this should return true if
24112         either we're being recreated and the child is in our list, or our
24113         parent is waiting for our recreation.
24114
24115 2006-09-26  Chris Toshok  <toshok@ximian.com>
24116
24117         * Control.cs (ControlCollection.Remove): reinstate the
24118         value.Hide() call as suggested in bug #79294.
24119
24120 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
24121
24122         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
24123         coordinates (versus a relative move).
24124
24125 2006-09-26  Chris Toshok  <toshok@ximian.com>
24126
24127         * Control.cs: rework child recreation a little bit.  It turns out
24128         that we race between the DestroyNotify the WM_DESTROY message.  If
24129         the parent gets its DestroyNotify before the child gets the
24130         WM_DESTROY message, the child ends up not recreating (since the
24131         parent finishes its recreation on DestroyNotify, and the child
24132         checks ParentIsRecreating.)
24133
24134         So, instead we store off a list of all the child controls which
24135         need to be recreated when the parent control starts to recreate
24136         itself.  Then, when child controls get their WM_DESTROY message we
24137         check to see if they're in the parent's pending recreation list,
24138         and if so, we recreate.  This removes all dependency on ordering
24139         from the code and fixes the initial MonoCalendar upgrade dialog.
24140         
24141 2006-09-26  Jackson Harper  <jackson@ximian.com>
24142
24143         * TextControl.cs: Use the Line to get the length of the line,
24144         since soft line breaks can change the end line.
24145
24146 2006-09-26  Chris Toshok  <toshok@ximian.com>
24147
24148         * Control.cs (ControlCollection.AddImplicit): don't add the
24149         control again if it's already in one of our lists.  This keeps us
24150         from adding controls over and over again for comboboxes when their
24151         handle gets recreated (as the combobox adds implicit controls in
24152         OnHandleCreated).  Fixes the X11 errors in bug #79480.
24153
24154 2006-09-26  Jackson Harper  <jackson@ximian.com>
24155
24156         * TextControl.cs: When deleting characters make sure that any
24157         orphaned zero lengthed tags get deleted.
24158         - Fix ToString for zero lengthed tags.
24159
24160 2006-09-25  Jackson Harper  <jackson@ximian.com>
24161
24162         * TextControl.cs: When getting a tag at the location there can be
24163         multiple tags at the same spot, these are 0-lengthed tags that
24164         appear when extra formatting has been stuck in a location.  We
24165         need to pull out the last of these 0 lengthed tags.
24166
24167 2006-09-25  Jackson Harper  <jackson@ximian.com>
24168
24169         * TextControl.cs: Fix print out in debug method.
24170         * TextBoxBase.cs: When text is set bail if we are setting to the
24171         previous value.
24172         
24173 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
24174
24175         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
24176           It is now possible to change the selected index in a FontXXXListBox
24177           with the up and down arrow keys from the FontXXXTextBoxes.
24178           Also, send the FontXXXTextBox mouse wheel event to the corresponding
24179           FontXXXListBoxes to match ms.
24180
24181 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
24182
24183         * SystemInformation.cs: Return a clone of the theme's MenuFont because
24184         anyone can dispose it, anytime. All other properties returns enums, 
24185         structs or basic types so they don't need such tricks.
24186
24187 2006-09-22  Jackson Harper  <jackson@ximian.com>
24188
24189         * XplatUI.cs:
24190         * XplatUIWin32.cs:
24191         * Clipboard.cs:
24192         * DataFormats.cs:
24193         * XplatUIOSX.cs:
24194         * XplatUIDriver.cs: Update interface to add a primary selection
24195         flag, so the driver can use the primary selection buffer if
24196         needed.
24197         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
24198
24199         * RichTextBox.cs: We need to supply the data object to paste now
24200         (so we can choose to supply CLIPBOARD or PRIMARY).
24201         * TextBoxBase.cs: Supply data object to paste (see above).
24202         - Middle click uses the primary selection data object.
24203         
24204 2006-09-21  Chris Toshok  <toshok@ximian.com>
24205
24206         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
24207         of SetWMStyles.  It's still a rat's nest and is largely
24208         order-dependent which I dislike immensely.  This also fixes the X
24209         button disappearing from toplevel forms.
24210
24211 2006-09-21  Mike Kestner <mkestner@novell.com>
24212
24213         * ListBox.cs: move Jordi's click/dblclick raising code to the
24214         mouse up handler.
24215
24216 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
24217
24218         * ListBox.cs: Fixes 79450
24219
24220 2006-09-21  Mike Kestner <mkestner@novell.com>
24221
24222         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
24223         to deal with people updating the TreeNodeCollection after the tree
24224         is disposed.  "Fixes" 79330.
24225
24226 2006-09-20  Jackson Harper <jackson@ximian.com>
24227
24228         * TextControl.cs: Push the cursor record onto the undo stack
24229         before the delete action. This fixes 78651.
24230
24231 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
24232
24233         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
24234         CreateParams. Fixes 79329.
24235
24236 2006-09-19  Chris Toshok  <toshok@ximian.com>
24237
24238         * XplatUIX11.cs: a couple of blanket code massage passes to clean
24239         things up a bit.  First, get rid of the NetAtoms array (and the NA
24240         enum), and just embed the atoms as static fields.  Also, add a
24241         couple of functions (StyleSet and ExStyleSet) to clean up all the
24242         bitmask testing of styles.
24243
24244         * X11Structs.cs: remove the NA enum, not needed anymore.
24245         
24246 2006-09-19  Chris Toshok  <toshok@ximian.com>
24247
24248         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
24249         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
24250         added cleanup to get MessageBox titles appearing again, which were
24251         broken by my earlier fix for caption-less/ControlBox-less windows.
24252
24253 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
24254
24255         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
24256           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
24257           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
24258           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
24259           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
24260           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
24261           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
24262           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
24263           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
24264           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
24265           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
24266             Inital import.
24267         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
24268           ToolStripButton.cs: Stubs needed for above.
24269         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
24270
24271 2006-09-15  Chris Toshok  <toshok@ximian.com>
24272
24273         * XplatUIX11.cs:
24274         - make the MessageQueues hashtable Synchronized.
24275         
24276         - SendMessage: if the Hwnd is owned by a different thread, use the
24277         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
24278         thread.  Fixes bug #79201.
24279
24280 2006-09-15  Chris Toshok  <toshok@ximian.com>
24281
24282         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
24283         ControlBox == false, we disallow maximize/minimize/close.  If the
24284         form Caption is "" we also disallow move (and get rid of the Title
24285         decoration).  Unfortunately, regardless of how things are set,
24286         we're stuck with the Title and WM menu.
24287
24288 2006-09-15  Chris Toshok  <toshok@ximian.com>
24289
24290         * Application.cs: add locking around the static message_filters
24291         ArrayList, part of #79196.
24292
24293 2006-09-15  Chris Toshok  <toshok@ximian.com>
24294
24295         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
24296         Form.ControlBox == false, the window has no titlebar nor resize
24297         handles.  fixes bug #79368.
24298
24299 2006-09-15  Chris Toshok  <toshok@ximian.com>
24300
24301         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
24302         >= 0.  Fixes bug #79370.
24303
24304 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
24305         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
24306         * Control.cs:
24307             Add properties: LayoutEngine, Margin, DefaultMargin.
24308             Add method: GetPreferredSize.
24309             Move layout logic from PerformLayout to layout engines. 
24310
24311 2006-09-13  Chris Toshok  <toshok@ximian.com>
24312
24313         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
24314         fix for #79326 broke #78718, so this change addresses that.
24315
24316         - in SendWMDestroyMessages remove the call to
24317         CleanupCachedWindows, since we might be recreating the control and
24318         need to maintain the references to right Hwnd handles.  Also, set
24319         the zombie flag to true for each of the children in the hierarchy
24320         instead of calling hwnd.Dispose.  This will cause GetMessage to
24321         ignore all events for the window except for DestroyNotify.
24322
24323         - In GetMessage, ignore messages except for DestroyNotify for
24324         zombie hwnds.
24325         
24326         * Control.cs: revert the is_recreating fix from the last
24327         ChangeLog.  It's definitely "right", but it breaks switching from
24328         an MDI form to a non-MDI form.  Will need to revisit that.
24329
24330         * Hwnd.cs: add a zombie flag, which means "the
24331         client_window/whole_window handles are invalid, but we're waiting
24332         for the DestroyNotify event to come in for them".  Set the flag to
24333         false explicitly if setting WholeWindow/ClientWindow, and also
24334         when Disposing.
24335         
24336 2006-09-13  Chris Toshok  <toshok@ximian.com>
24337
24338         * XplatUIX11.cs: rework window destruction slightly.
24339
24340         - when destroying the windows associated with a control, we don't
24341         need 2 separate XDestroyWindow calls.  Just the one for the
24342         whole_window (or for client_window if whole_window is somehow
24343         IntPtr.Zero -- can this happen?) is enough.
24344
24345         - reworked SendWMDestroyMessages slightly, so we always dispose
24346         the child control hwnd's after sending the messages.
24347         
24348         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
24349         the two places it was used (one was even using hwnd.Handle and the
24350         other hwnd.client_window.  ugh), adding another call in
24351         SendWMDestroyMessages.  We need this new call because now the
24352         DestroyNotify events in the queue will be ignored for the child
24353         controls (as their hwnd's were disposed, and the window id's
24354         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
24355
24356         - this fixes bug #79326.
24357
24358 2006-09-13  Chris Toshok  <toshok@ximian.com>
24359
24360         * Control.cs: don't always set is_recreating to false at the end
24361         of RecreateHandle, since sometimes we're not done (and won't be
24362         until WndProc handles the WM_DESTROY message).  Also, set
24363         is_recreating to false in the WM_DESTROY handling code.  Part of
24364         the fix for bug #79326.
24365
24366 2006-09-13  Miguel de Icaza  <miguel@novell.com>
24367
24368         * X11DesktopColors.cs: Start the droppage of debugging messages.
24369
24370         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
24371
24372 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
24373
24374         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
24375
24376 2006-09-12  Chris Toshok  <toshok@ximian.com>
24377
24378         * DataGrid.cs (get_ListManager): if the list_manager is null, try
24379         to create it using SetDataSource.  Fixes bug #79151.
24380
24381 2006-09-11  Chris Toshok  <toshok@ximian.com>
24382
24383         * XEventQueue.cs: add a DispatchIdle property.
24384
24385         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
24386         either the queue is null, or the queue has DispatchIdle set to
24387         true.
24388         (DoEvents): set queue.DispatchIdle to false around the
24389         peek/translate/dispatch message loop in this method.  This keeps
24390         Application.Doevents from emitting idle events.  Part of the fix
24391         for #78823.
24392
24393 2006-09-11  Chris Toshok  <toshok@ximian.com>
24394
24395         * DataGrid.cs (set_DataSource): make this work for both the
24396         winforms/datagrid test and ReportBuilder.  It seems as though when
24397         we've created a ListManager (or maybe it's if we have a
24398         BindingContext?), when we set the DataSource it clears the
24399         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
24400         #79333.
24401
24402 2006-09-11  Chris Toshok  <toshok@ximian.com>
24403
24404         * XplatUIX11.cs: deal with queue being null, which happens in all
24405         the Clipboard functions.  Fixes one of the two problems mentioned
24406         in #78612.
24407
24408 2006-09-11  Chris Toshok  <toshok@ximian.com>
24409
24410         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
24411         button on various spots (including outside the menu) works closer
24412         to MS, and doesn't crash.  Fixes #79343.
24413
24414 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
24415
24416         * ListView.cs: Do not initialize item_sorter in init. To match MS,
24417         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
24418         and the internal comparer is set. When a new ListViewItemSorter is set,
24419         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
24420         was specified. No further processing is necessary if SortOrder is set
24421         to it's current value. If Sorting is modified to None, and View is
24422         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
24423         (either custom or our internal ItemComparer) to null, on 1.0 profile
24424         only set item_sorter to null if its our internal IComparer. If Sorting
24425         is modified to Ascending or Descending, then use our internal IComparer
24426         if none is set, and if the current IComparer is our internal one then:
24427         on 2.0 profile always replace it with one for new Sorting, and on 1.0
24428         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
24429         Enum.IsDefined to verify whether a valid View value is specified in
24430         its setter. Automatically sort listview items when listview is
24431         created. In Sort, do nothing if ListView is not yet created, or if
24432         no item_sorter is set (no Sorting was set, Sorting was explicitly set
24433         to None or ListViewItemSorter was set to null). Added Sort overload
24434         taking a bool to indicate whether the ListView should be redrawn when
24435         items are sorted (we use this in ListViewItemCollection to avoid double
24436         redraws). Modified our internal IComparer to take the sort order into
24437         account. In Add and AddRange methods of ListViewItemCollection, also
24438         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
24439         view), but use overload with noredraw option to avoid double redraw.
24440         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
24441         true when View is Tile, and do the same when attempting to set View to
24442         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
24443         for selected/checked indices, as it involves overhead when sorting is
24444         done while these collections are not used all that often. Instead
24445         we'll build the indices on demand. Modified IList implementation of
24446         CheckedIndexCollection to use public methods if object is int.
24447         Modified CheckedListViewItemCollection to hide checked items if
24448         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
24449         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
24450         IList implementation in SelectedIndexCollection to use public methods
24451         if object is int. Modified SelectedListViewItemCollection to hide
24452         selected items if listview is not yet created.
24453         * ListViewItem.cs: CheckedIndices list no longer needs to be
24454         maintained separately (see ListView changes). Also clone font, fixes
24455         test failure.
24456
24457 2006-09-11  Mike Kestner  <mkestner@novell.com>
24458
24459         * ComboBox.cs: if we are updating the contents of the currently
24460         selected index, refresh the control or the textbox selection.
24461         [Fixes #79066]
24462
24463 2006-09-11  Mike Kestner  <mkestner@novell.com>
24464
24465         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
24466         the 'specified' logic has been moved there.  This seems like a bug 
24467         in Control.cs, since our current SetBoundsCore completely ignores 
24468         the specified parameter.  Peter's commit seems to indicate that is 
24469         the way the MS control implementation works.  [Fixes #79325]
24470
24471 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
24472
24473         * XplatUI.cs: Set default_class_name to be composed
24474         of current domain id. This allows MWF to be loaded in multiple
24475         domains on Win32.
24476
24477 2006-09-09  Miguel de Icaza  <miguel@novell.com>
24478
24479         * X11Keyboard.cs: If we are unable to obtain the input method, do
24480         not call CreateXic to create the input context.   Should fix
24481         #78944/79276.
24482
24483 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
24484
24485         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
24486           Simplified gnome support by adding more pinvokes to get the
24487           icon for a file or mime type.
24488
24489 2006-09-08  Jackson Harper  <jackson@ximian.com>
24490
24491         * MenuAPI.cs: Deslect popup context menu items before closing the
24492         window, so that you don't see the previously selected item
24493         selected when you reopen the menu.
24494         * TextControl.cs: Update the cursor position even if we don't have
24495         focus.  This fixes typing in things like the ComboBox.  I'm not
24496         totally sure we should always set the visibility if we don't have
24497         focus, but couldn't find any corner cases where the cursor showed
24498         up when it shouldn't.
24499
24500 2006-09-08  Chris Toshok  <toshok@ximian.com>
24501
24502         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
24503         our arrays are length 256.  & 0xff before indexing.  Fixes the
24504         crash in bug #78077.
24505         
24506 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24507
24508         * ThemeWin32Classic.cs: 
24509         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
24510         is true. Handle that check box too.
24511
24512 2006-09-07  Chris Toshok  <toshok@ximian.com>
24513
24514         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
24515         79244.
24516
24517 2006-09-07  Chris Toshok  <toshok@ximian.com>
24518
24519         * Control.cs: in set_BackColor only do the work if
24520         background_color != value.
24521
24522         * XplatUIX11.cs: move the clearing of invalid areas (both client
24523         and nc) to the same block of code where we set (nc_)expose_pending
24524         to false.  That is, move it from PaintEventEnd to PaintEventStart,
24525         so things that cause invalidates from within OnPaint will trigger
24526         another call to OnPaint.  Fixes bug #79262.
24527
24528 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
24529
24530         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
24531         * FileDialog.cs: Fix typo
24532
24533 2006-09-07  Jackson Harper  <jackson@ximian.com>
24534
24535         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
24536         for tab pages if they have any.
24537
24538 2006-09-06  Mike Kestner  <mkestner@novell.com>
24539
24540         * Splitter.cs: use the "current" rect when finishing drag handle
24541         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
24542
24543 2006-09-06  Mike Kestner  <mkestner@novell.com>
24544
24545         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
24546         support offset splitters. [Fixes #79298]
24547
24548 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
24549
24550         * Mime.cs: Fixed a bug that could override the global mime type
24551           result.
24552
24553 2006-09-05  Jackson Harper  <jackson@ximian.com>
24554
24555         * TabControl.cs: Better calculation method for setting the slider
24556         pos. Prevents crashes on really wide tabs.
24557         - Draw Image on tab pages if an image list is used.
24558
24559 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24560
24561         * MonthCalendar.cs: When Font changes, the Size should be
24562         updated to fit the new font's space requirements.
24563
24564 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
24565
24566         * ListBox.cs: If the items are cleared with Items.Clear set
24567           top_index to 0.
24568
24569 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24570
24571         * MonthCalendar.cs: Handle arrow keys as input keys. Also
24572         fire DateChanged event instead of DateSelected event when
24573         the date was changed by keyboard interaction.
24574
24575 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24576
24577         * DateTimePicker.cs: Handle DateChanged for the associated
24578         month_calendar control, and set month_calendar.Font from 
24579         OnFontChanged method, as well as resize the height of the
24580         control when needed. Make PreferredHeight proportional.
24581
24582 2006-09-01  Chris Toshok  <toshok@ximian.com>
24583
24584         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
24585         properties.
24586
24587         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
24588
24589 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
24590
24591         * FileDialog.cs: Set ClientSize instead of window size, to allow space
24592           for decorations (Fixes #79219)
24593
24594 2006-09-01  Mike Kestner  <mkestner@novell.com>
24595
24596         * ComboBox.cs: first stab at sorting plus some selection handling
24597         fixes to bring us more in line with MS behavior.  Also switches back
24598         to index based selection.  Alternative patches for index-based 
24599         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
24600         and latency@gmx.de on bug 78848.  I assume they were similar to this
24601         code I've had simmering in my tree forever.
24602         [Fixes #78848]
24603
24604 2006-09-01  Chris Toshok  <toshok@ximian.com>
24605
24606         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
24607         when setting list position guard against ending up with a -1 index
24608         (the other part of the fix for #78812).  Should probably make sure
24609         we don't need the analogous fix in the ItemDeleted case.
24610
24611         * DataGrid.cs:
24612         - in SetDataSource, work around the fact that the way
24613         OnBindingContextChanged is invoked will cause us to re-enter this
24614         method.  I'll remove the hack once I investigate
24615         OnBindingContextChanged.
24616
24617         - fix the logic in set_DataSource and set_DataMember (basically
24618         what to do if the other of the two is null.)
24619         
24620         - in OnListManagerItemChanged, we need to take into account the
24621         edit row when deciding whether or not to call RecreateDataGridRows
24622         (part of the fix for #78812).
24623
24624 2006-09-01  Jackson Harper  <jackson@ximian.com>
24625
24626         * Splitter.cs: Don't do anything if there is no control to affect
24627         (prevents us from crashing in weird tet cases).
24628         * TreeView.cs: Bounding box for the mouse movement reverting
24629         focus/selection back to previously selected node.  This matches
24630         MS, and makes the tree a lot more useable.
24631         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
24632         use clipping so they are not drawn.  This fixes when the control
24633         is set to have a transparent background, or if it was over an
24634         image.
24635
24636 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
24637
24638         * MimeIcon.cs: Improved handling for reading default icons when
24639           using gnome (2.16 made it necessary). Check and read svg icons
24640           first, then 48x48 and then 32x32 icons.
24641
24642 2006-08-31  Chris Toshok  <toshok@ximian.com>
24643
24644         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
24645         visible.
24646
24647         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
24648         ProcessKeyPreview.  Fixes part of #77806.
24649
24650         * DataGrid.cs: big patch.
24651
24652         - revert the queueing up of DataSource/DataMember if inside
24653         BeginInit/EndInit calls.  That's not the way the datagrid achieves
24654         its delayed databinding.  Instead, call SetDataSource in
24655         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
24656         #78811.
24657
24658         - Also, it wasn't mentioned in #78811, but the test case exhibits
24659         behavior that was lacking in our datagrid implementation - Columns
24660         that have mapping names that don't exist in the datasource's
24661         properties aren't shown.  Yuck.  To fix this I added the bound
24662         field to the column style, and basically any calculation to figure
24663         out anything about columns uses a loop to find the bound columns.
24664         still need to investigate if I can cache an array of the bound
24665         columns or if the indices must be the same.
24666
24667         - When setting CurrentCell, we no longer abort if the cell being
24668         edited was in the add row.  This fixes the other part of #77806.
24669
24670         - The new code also fixes #78807.
24671         
24672         * ThemeWin32Classic.cs: perpetrate the same disgusting
24673         column.bound field hack, and only render bound fields.
24674
24675 2006-08-31  Chris Toshok  <toshok@ximian.com>
24676
24677         * DataGridColumnStyle.cs: add bound field.  this field is true if
24678         the datasource has a property corresponding to the mapping name.
24679
24680         * DataGridTableStyle.cs: set the bound field on the column styles
24681         depending on whether or not we have a column for that property.
24682
24683 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
24684
24685         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
24686           splitter control (fixes #79228)
24687
24688 2006-08-31  Chris Toshok  <toshok@ximian.com>
24689
24690         * DataGridColumnStyle.cs: we need to delay the assignment of
24691         property descriptor until the last possible moment due to the lazy
24692         databinding stuff in the datagrid.  Also, fix the exceptions
24693         thrown by CheckValidDataSource to match MS.
24694
24695 2006-08-31  Jackson Harper  <jackson@ximian.com>
24696
24697         * Form.cs: When activated select the active control, if there is
24698         no active control, we select the first control.
24699         * XplatUIX11.cs: If there is no focus control when we get a
24700         FocusIn event, find the toplevel form and activate it.  This
24701         occurs when you popup a window, it becomes the focus window, then
24702         you close that window, giving focus back to the main window.
24703
24704 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24705
24706         * MonthCalendar.cs: 
24707         * ThemeWin32Classic.cs: Cache Font in bold style, as well
24708         as StringFormat with Center alignments in MonthCalendar,
24709         instead of creating new ones when drawing the control. 
24710         Also, draw the month name in bold style.
24711
24712 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
24713
24714         * Control.cs:
24715           - PerformLayout(): It would seem MS performs the fill even if the 
24716             control is not visible (part of #79218 fix)
24717           - ResetBackColor(): Use the setter to reset the color, to allow
24718             overriders to catch the change.
24719         * Form.cs:
24720           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
24721           - CreateHandle(): dito (part of $79218 fix)
24722           - Don't set an icon if we have a dialog
24723         * ScrollableControl.cs:
24724           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
24725           - ScrollIntoView(): No need to scroll if control is already visible
24726             (resolves fixme and fixes #79218)
24727
24728 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
24729
24730         * MonthCalendar.cs: Change proportions in SingleMonthSize
24731         to match the aspect of the original control.
24732
24733 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
24734
24735         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
24736           get updated when they get maximized.
24737
24738 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
24739
24740         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
24741
24742 2006-08-29  Chris Toshok  <toshok@ximian.com>
24743
24744         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
24745
24746 2006-08-29  Jackson Harper  <jackson@ximian.com>
24747
24748         * TreeView.cs: Need to track selected node and highlighted node,
24749         they aren't always the same thing, when the mouse is down on a
24750         node it is hilighted, but not selected yet.
24751         - Do the HideSelection stuff right
24752         - Need to focus on rbutton mouse down. And redraw selection when
24753         right click is mouse upped.
24754
24755 2006-08-29  Mike Kestner  <mkestner@novell.com>
24756
24757         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
24758         when SubItems.Count < Columns.Count.  [Fixes #79167]
24759
24760 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
24761
24762         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
24763
24764 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
24765
24766         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
24767           from X. Only send based on ConfigureNotify if we don't have the
24768           correct location in hwnd (if the window manager moved us)
24769
24770 2006-08-28  Mike Kestner  <mkestner@novell.com>
24771
24772         * ListView.cs: remove a TODO. 
24773         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
24774         [Fixes ListView part of #79166]
24775
24776 2006-08-28  Mike Kestner  <mkestner@novell.com>
24777
24778         * ListView.cs: move wheel handler to parent since it is focused
24779         instead of the item_control now.  [Fixes #79177]
24780
24781 2006-08-28  Mike Kestner  <mkestner@novell.com>
24782
24783         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
24784         when the control is focused. [Fixes #79171]
24785
24786 2006-08-28  Mike Kestner  <mkestner@novell.com>
24787
24788         * ListView.cs: size the item and header controls for empty and
24789         unscrollable views.
24790         * ThemeWin32Classic.cs: draw disabled backgrounds.
24791         [Fixes #79187]
24792
24793 2006-08-28  Chris Toshok  <toshok@ximian.com>
24794
24795         * Form.cs: remove unused "active_form" static field.
24796
24797         * Hwnd.cs: lock around accesses to static windows collection.
24798
24799         * Application.cs: lock threads in Exit ().
24800
24801 2006-08-28  Chris Toshok  <toshok@ximian.com>
24802
24803         * NativeWindow.cs: lock around accesses to window_collection.
24804         
24805 2006-08-28  Chris Toshok  <toshok@ximian.com>
24806
24807         * Control.cs: err, fix this the right way, by locking on controls
24808         when using it.  not by making it synchronized.
24809
24810 2006-08-28  Chris Toshok  <toshok@ximian.com>
24811
24812         * Control.cs: make the static "controls" field synchronized, as it
24813         gets updated from multiple threads.
24814
24815 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
24816
24817         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
24818           Prevent other threads from exiting when calling thread sets quit state.
24819         * XEventQueue.cs: Added PostQuitState property
24820
24821 2006-08-27  Chris Toshok  <toshok@ximian.com>
24822
24823         * AsyncMethodData.cs: add a slot for the window handle.
24824
24825         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
24826         window (the destination control's window, not the foster window).
24827
24828         * Control.cs (BeginInvokeInternal): store the window's handle in
24829         the AsyncMethodData.
24830         
24831
24832 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
24833
24834         * XplatUIX11.cs:
24835           - PostQuitMessage: Removed resetting S.D display handle, we might have
24836             another loop started after calling PostQuitMessage (Fixes #79119)
24837           - Created destructor to reset S.D handle
24838
24839 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
24840
24841         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
24842
24843 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24844
24845         * TextControl.cs (Insert): Update the caret position even if we don't
24846           have a handle yet, just don't call the driver in that case.
24847         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
24848           to the end of the new selection text (Fixes #79184)
24849
24850 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24851
24852         * Form.cs (Activate): Only activate if the handle is created)
24853         * Control.c:
24854           - Mark window as invisible when it's disposed
24855           - Check if window handle is created when setting window visible, 
24856             instead of relying just on the is_created variable
24857           - Check if object is disposed when creating the control (Fixes #79155)
24858
24859 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24860
24861         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
24862           when allowing layout again. Otherwise we re-generate the anchoring 
24863           distance to the border again and actually alter what the user wanted
24864           This is ugly, it'd be better if we used DisplayRectangle instead of
24865           ClientRectangle for Control.UpdateDistances, but that causes us to
24866           have other problems (initial anchoring positons would be wrong)
24867           (Fixes #78835)
24868
24869 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24870
24871         * Control.cs:
24872           - The size and location setters shouldn't go directly to 
24873             SetBoundsCore, but to SetBounds, which triggers layout on the
24874             parent, then calls SetBoundsCore. (Related to fix for #78835)
24875           - SetBounds: Moved actual location update code into this function
24876             from SetBoundsCore, to match MS. Added call to PerformLayout if
24877             we have a parent (to trigger resizing of anchored parents if the 
24878             child size has changed (see testcase for #78835) 
24879         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
24880           new control code
24881         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
24882
24883 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24884
24885         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
24886           System.Drawing when a toplevel window gets closed; there might
24887           be other toplevel windows belonging to the same app (Fixes #78052)
24888
24889 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
24890
24891         * FileDialog.cs: After reading FileDialog settings from mwf_config
24892           use Desktop prefix only if a real folder doesn't exist anymore.
24893         * FontDialog.cs: Added char sets.
24894           It is now possible to select the font, size or style with the
24895           textboxes.
24896
24897 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
24898
24899         * PrintPreviewDialog.cs: Use assembly name constants.
24900
24901 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24902
24903         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
24904           scrollbar from whacking it's buttons)
24905
24906 2006-08-24  Chris Toshok  <toshok@ximian.com>
24907
24908         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
24909         in this patch (aggregating setting Left/Top/Width/Height to
24910         setting Bounds on the scrollbars), but the crux of the fix is in
24911         Recalculate, where we scroll by the remaining scroll_position if
24912         we're hiding a scrollbar.  The 2*$5 reward in the comment is
24913         serious.
24914
24915 2006-08-24  Jackson Harper  <jackson@ximian.com>
24916
24917         * MdiClient.cs:
24918         * MdiWindowManager.cs: If the form is made a non-mdi window we
24919         need to remove the form closed event so that closing forms works
24920         correctly.
24921
24922 2006-08-24  Jackson Harper  <jackson@ximian.com>
24923
24924         * Control.cs: Make IsRecreating internal so that the driver can
24925         check it
24926         - Temporarily remove the Hide when controls are removed, its
24927         making a whole bunch of things not work because visibility isn't
24928         getting reset elsewhere correctly
24929         * Form.cs: Need to do a full handle recreation when the mdi parent
24930         is set.
24931         * XplatUIX11.cs: If we are recreating handles don't dispose the
24932         HWNDs.  What was happening is the handles were being recreated in
24933         SendWMDestroyMessages, but then flow continued on in that method
24934         and destroyed the new handles.
24935
24936 2006-08-23  Jackson Harper  <jackson@ximian.com>
24937
24938         * Form.cs: MdiClient is always at the back of the bus
24939         * Control.cs: When the order of items in the collection is changed
24940         we need to reset the all_controls array
24941         - do the same sorta setup thats done when adding a control when a
24942         control is set on the collection.
24943
24944 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
24945
24946         * TextBoxBase.cs (get_Text): Return an empty array if our document
24947           is empty (fixes #79052)
24948
24949 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24950
24951         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
24952           on WM_SYSCHAR messages (fixes #79053)
24953
24954 2006-08-23  Chris Toshok  <toshok@ximian.com>
24955
24956         * DataGrid.cs: fix flickering when scrolling vertically.
24957
24958 2006-08-23  Chris Toshok  <toshok@ximian.com>
24959
24960         * DataGrid.cs (EndEdit): only invalidate the row header when we
24961         need to.
24962
24963 2006-08-23  Chris Toshok  <toshok@ximian.com>
24964
24965         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
24966         methods.  fixes the flicker when scrolling around.
24967
24968 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24969
24970         * FileDialog.cs: Making sure the control is created before we get a 
24971           chance to use it with BeginInvoke (Fixes #79096)
24972
24973 2006-08-23  Chris Toshok  <toshok@ximian.com>
24974
24975         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
24976         width to use when painting the rows.
24977
24978 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
24979
24980         * TextBoxBase.cs:
24981           - Throw ArgumentException if a negative value is passed to SelectionLength
24982           - Update the selection end if start is moved. end needs to be always
24983             after start. (Fixes #79095)
24984           - Track selection length; MS keeps the selection length even if start
24985             is changed; reset on all other operations affection selection
24986
24987 2006-08-22  Jackson Harper  <jackson@ximian.com>
24988
24989         * TreeView.cs: Make sure both scrollbars get displayed and sized
24990         correctly when the other bar is visible.
24991         - Use the original clip rectangle for checking if the area between
24992         the two scrollbars is visible, not the viewport adjusted clipping
24993         rectangle.
24994
24995 2006-08-22  Jackson Harper  <jackson@ximian.com>
24996
24997         * Binding.cs: We don't use IsBinding because it requires the
24998         control to be created, which really shouldn't be necessary just to
24999         set a property on the control.
25000
25001 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25002
25003         * ComboBox.cs: Some CB.ObjectCollection methods must throw
25004         ArgumentNullReferenceException when the argument is null.
25005
25006 2006-08-21  Jackson Harper  <jackson@ximian.com>
25007
25008         * Timer.cs: Track the thread that the timer is started in (NOT
25009         CREATED), this way messages for it will only be triggered on its
25010         queue.
25011         * XEventQueue.cs: Track the timers here, this makes timers per
25012         thread, like MS.
25013         * XplatUIX11.cs: The timers are moved to the XEventQueue.
25014
25015 2006-08-19  Chris Toshok  <toshok@ximian.com>
25016
25017         * XplatUIX11.cs: after further communication with pdb, we get the
25018         best of both worlds.  SetZOrder working for un-Mapped windows, and
25019         no X errors for un-mapped windows.
25020
25021 2006-08-19  Chris Toshok  <toshok@ximian.com>
25022
25023         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
25024         as it was causing pdn toolbars to not have the correct stacking.
25025
25026 2006-08-18  Mike Kestner  <mkestner@novell.com> 
25027
25028         * ListView.cs : guard against negative ClientArea.Width in scrollbar
25029         calculation.  Not sure why control should ever be setting a negative
25030         width though.  Fixes #78931.
25031
25032 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25033
25034         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
25035         null items in ObjectCollection class.
25036         * ListBox.cs.: Likewise.
25037
25038 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
25039
25040         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
25041           as the base method in ThemeWin32Classic should work fine.
25042           Fixed bug #78607.
25043
25044 2006-08-18  Jackson Harper  <jackson@ximian.com>
25045
25046         * Binding.cs: When validating if the value entered doesn't convert
25047         properly reset to the old value.
25048         * RadioButton.cs: Don't fire click when we get focus.
25049
25050 2006-08-18  Jackson Harper  <jackson@ximian.com>
25051
25052         * FileDialog.cs: Paint the selection on the directory combobox the
25053         same way as on MS. 
25054
25055 2006-08-17  Jackson Harper  <jackson@ximian.com>
25056
25057         * ErrorProvider.cs: Don't allow the error control to be selected.
25058         * Control.cs: Don't send the SetFocus messages, the control
25059         activation will do this, and if we do it blindly here validation
25060         does not work.
25061
25062 2006-08-17  Jackson Harper  <jackson@ximian.com>
25063
25064         * Control.cs:
25065         * ContainerControl.cs: Make validation events fire in the correct
25066         order.  TODO: For some reason the first validation event is not
25067         getting fired.
25068
25069 2006-08-17  Mike Kestner  <mkestner@novell.com> 
25070
25071         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
25072
25073 2006-08-17  Mike Kestner  <mkestner@novell.com> 
25074
25075         * ComboBox.cs : implement scroll wheel support for popped-down
25076         state. Fixes #78945. 
25077
25078 2006-08-17  Jackson Harper  <jackson@ximian.com>
25079
25080         * TreeView.cs: Specify treeview actions (old patch that didn't get
25081         committed for some reason).
25082         - Don't let the mouse wheel scroll us too far.  Just want to make
25083         the bottom node visible, not scroll it all the ways to the top.
25084
25085 2006-08-17  Jackson Harper  <jackson@ximian.com>
25086
25087         * XplatUIX11.cs: Mouse wheel events go to the focused window.
25088
25089 2006-08-17  Mike Kestner  <mkestner@novell.com> 
25090
25091         * ComboBox.cs : don't do mouseover selection in simple mode.
25092
25093 2006-08-16  Jackson Harper  <jackson@ximian.com>
25094
25095         * Form.cs: Fire the closing events for all the mdi child windows
25096         when a window is closed.  If the cancel args are set to true, the
25097         main window still gets the event fired, but it doesn't not close.
25098         * MdiWindowManager.cs: Do this closing cleanup in a Closed
25099         handler, instead of when the button is clicked, so cancelling the
25100         close works correctly.
25101         * ComboBox.cs: Send the mouse down to the scrollbar.
25102
25103 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25104
25105         * ListBox.cs: When passing 'null' to SelectedItem,
25106         set SelectedIndex to -1, to unselect items. This is the
25107         observed behaviour in .Net.
25108
25109 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
25110
25111         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
25112           MS flags saying there won't be any. (fixes #78800)
25113         * Control.cs (HandleClick): Made virtual
25114
25115 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
25116
25117         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
25118           cultures. Fixed bug #78399.
25119
25120 2006-08-16  Jackson Harper  <jackson@ximian.com>
25121
25122         * Form.cs: Use the MdiClients MdiChildren property to access
25123         MdiChildren instead of creating the array from the child controls.
25124         * MdiClient.cs: Maintain a separate array of the mdi children, so
25125         that insertion order is maintained when the Z-order is changed.
25126
25127 2006-08-16  Mike Kestner  <mkestner@novell.com> 
25128
25129         * ListView.cs : add an ItemComparer and default to it for sorting.
25130         Fixes #79076, but sorting needs a complete overhaul to be compat with
25131         MS.
25132
25133 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
25134
25135         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
25136
25137 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
25138
25139         * Hwnd.cs (Mapped): Properly traverse the tree
25140
25141 2006-08-15  Chris Toshok  <toshok@ximian.com>
25142
25143         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
25144         pass manager.Current.GetType() to ParseData.  It has to be the
25145         property type.  So, hold off doing the ParseData until we're in
25146         SetPropertyValue where we know the type.  This fixes the crash in
25147         #78821 but the textbox is still empty.
25148
25149 2006-08-15  Chris Toshok  <toshok@ximian.com>
25150
25151         * DataGrid.cs:
25152         - when we're scrolling, only call Edit() again if the
25153         current cell is still unobscured. Fixes bug #78927.
25154         - when handling mousedown on a cell, ensure the cell is visible
25155         before calling Edit.
25156         - remove the properties from DataGridRow, and remove the
25157         DataGridParentRow class altogether.
25158         
25159
25160 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
25161
25162         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
25163           fire OnTextChanged by ourselves. There's no point calling base,
25164           we don't set the base value anywhere else. Fixes #78773.
25165
25166 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25167
25168         * ListBox.cs: Call CollectionChanged when modifying
25169         an item from Items indexer, to update the actual items
25170         in the list box.
25171
25172 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25173
25174         * PrintDialog.cs: Small fixes for focus and a pair of checks,
25175         to match .Net behaviour.
25176
25177 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
25178
25179         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
25180
25181 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
25182
25183         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
25184
25185 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
25186
25187         * MessageBox.cs: Prevent potential NRE exception.
25188         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
25189
25190 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
25191
25192         * MessageBox.cs: Calculate the owner of a messagebox, also make
25193           it topmost. Fixes #78753
25194
25195 2006-08-14  Chris Toshok  <toshok@ximian.com>
25196
25197         * XplatUIX11.cs: A couple of fixes so that metacity will let us
25198         programmatically move windows.  first, set the PPosition hint as
25199         well as the USPosition hint.  Second include some code from pdb
25200         that sets the window type to NORMAL when we set the transient for
25201         hint.  This is because, in the absence of a window type, metacity
25202         thinks any window with TransientFor set is a dialog, and refuses
25203         to let us move it programmatically.  fascists.
25204
25205 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
25206
25207         * XplatUIX11.cs: When setting normal hints, take into consideration
25208           an different hints previously set so we don't delete them (fixes #78866)
25209
25210 2006-08-12  Chris Toshok  <toshok@ximian.com>
25211
25212         * ToolBarButton.cs: make Layout return a boolean, if something to
25213         do with the button's layout changed.
25214
25215         * ToolBar.cs:
25216         - add another parameter to Redraw, @force, which all existing
25217           calls set to true.
25218         - make the Layout function return a boolean which is true if the
25219           layout has actually changed.  Redraw now uses this (and @force)
25220           to determine when to invalidate.  At present the only place
25221           where @force can be false is the call from OnResize, when
25222           background_image == null.  So, resizing a toolbar when the
25223           layout doesn't change results in no drawing.
25224
25225 2006-08-12  Chris Toshok  <toshok@ximian.com>
25226
25227         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
25228         the VScrollBar and HScrollbar reversed.  oops.
25229
25230         * DataGrid.cs: fix the logic that assigns sizes to the implicit
25231         scrollbars.  we were assigning them twice (once in
25232         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
25233         therefore causing two scrollbar resizes (and redraws?) to happen
25234         per grid resize.
25235
25236 2006-08-12  Chris Toshok  <toshok@ximian.com>
25237
25238         * ToolBarButton.cs: redraw the entire button if the theme tells us
25239         to.
25240
25241         * Theme.cs: add ToolBarInvalidateEntireButton.
25242
25243         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
25244         buttons, just the border.
25245
25246         * ThemeNice.cs: redraw the entire toolbar button since we need to
25247         draw the highlight image.
25248
25249         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
25250         we need to redraw the entire button (not just the border).
25251
25252 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
25253
25254         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
25255           for vertical bars. Fixes the mismatches shown by #78513
25256
25257 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
25258
25259         * FileDialog.cs: If a saved/remembered path doesn't exist
25260           anymore, fall back to "Desktop".
25261
25262 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
25263
25264         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
25265           parent. It's apparently legal to not have one
25266         * XplatUIX11.cs:
25267           - SetZOrder: Don't try to set Z-Order on an unmapped window
25268           - CreateWindow: 0,0 are legal coordinates for a window. don't move
25269             it unless the coordinates are negative
25270
25271 2006-08-10  Mike Kestner  <mkestner@novell.com>
25272
25273         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
25274         when setting to null per msdn docs.  Fixes #78854.
25275
25276 2006-08-10  Chris Toshok  <toshok@ximian.com>
25277
25278         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
25279         flickering by setting a clip rectangle on the Graphics when we
25280         need to redraw just a particular menuitem.  Also, rename "OnClick"
25281         to "OnMouseDown" to reflect what it actually is.
25282         
25283         * Form.cs: track the OnMouseDown change.
25284
25285 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
25286
25287         * CommonDialog.cs: Properly inherit the CreateParams from the form
25288           and only change what we need. Fixes #78865
25289
25290 2006-08-10  Chris Toshok  <toshok@ximian.com>
25291
25292         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
25293         flickering in flat mode (and most of the flickering in general) by
25294         only invalidating the button border (and not the entire rectangle)
25295         when the state changes.  A couple of cases still flicker:
25296         ToggleButtons, and the dropdown arrow case when the user mouse
25297         ups.
25298
25299 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
25300
25301         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
25302           for german keyboards. Numlock state shouldn't affect the behaviour
25303           of the Del key. Fixes bug #78291.
25304
25305 2006-08-10  Chris Toshok  <toshok@ximian.com>
25306
25307         * ListControl.cs: remove the items.Clear line from BindDataItems,
25308         as this is the first thing done by both subclasses in their
25309         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
25310         passed -1, refresh the list.  This gets databinding working when
25311         the datasource is set on the list before the datasource is
25312         populated (as in wf-apps/ReportBuilder.)
25313
25314         * ComboBox.cs: remove the argument to BindDataItems.  This call
25315         should really go away, and be initiated by the ListControl code.
25316
25317         * ListBox.cs: same.
25318
25319 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
25320
25321         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
25322           if no data is in the document when the control is displayed
25323
25324 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
25325
25326         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
25327           yes (fixes #78806)
25328         * TextControl.cs: 
25329           - PositionCaret: Allow positioning of caret but don't call methods 
25330             requiring a handle if the window isn't created yet
25331           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
25332           - owner_HandleCreated: Don't position the caret, just update it's 
25333             location. User might have already set a different position
25334
25335 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
25336
25337         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
25338           windows. Screws up the returned coordinates for child windows. 
25339           Fixes #78825. I'm hoping this doesn't break something, since the
25340           code was explicitly put in 8 months ago, but no bug was attached.
25341           Menus still seem to work properly.
25342
25343 2006-08-08  Chris Toshok  <toshok@ximian.com>
25344
25345         * DataGrid.cs: make BeginInit/EndInit actually do what they're
25346         supposed to do - delay data binding until the EndInit call.  Also,
25347         make the table style collection's CollectionChangeAction.Refresh
25348         work properly.
25349
25350         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
25351         (with action = Refresh) when a consituent table's MappingName is
25352         changed.
25353
25354 2006-08-08  Chris Toshok  <toshok@ximian.com>
25355
25356         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
25357         Invalidate, since changing the text can change the size of the all
25358         toolbar buttons.
25359
25360 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
25361
25362         * Form.cs (AddOwnedForm): Still need to add the form to our listif
25363           we don't have it yet
25364
25365 2006-08-08  Chris Toshok  <toshok@ximian.com>
25366
25367         * PrintControllerWithStatusDialog.cs: don't .Close() the status
25368         dialog, as this causes X errors later on, since we actually
25369         destroy the window.  Instead, .Hide() it.
25370
25371 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
25372
25373         * ComboBox.cs: Added focus reflection for popup window
25374         * XplatUIX11.cs: 
25375           - Removed transient setting for non-app windows for now, not sure it
25376             was needed
25377           - Fixed logic checking if we have captions when deciding 
25378             override_redirect, WS_CAPTION is two bits and a 0 check was not
25379             sufficient
25380           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
25381             complicated
25382         * Form.cs: 
25383           - AddOwnedForm: Don't just add the form to the list, call the property
25384             to ensure the driver is informed about the ownership as well
25385           - CreateHandle: Set the TopMost status in the driver if we have an owner
25386         * XplatUI.cs: Fixed debug statement
25387
25388 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
25389         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
25390           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
25391           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
25392           TrackBarRenderer.cs: Make constructor private.
25393         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
25394         * ProfessionalColorTable.cs: Make properties virtual.
25395
25396 2006-08-06  Duncan Mak  <duncan@novell.com>
25397
25398         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
25399         is not changing.
25400
25401 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25402         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
25403           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
25404           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
25405           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
25406           Initial import of new 2.0 classes.
25407
25408 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25409         * Application.cs: Add 2.0 VisualStyles properties.
25410
25411 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
25412         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
25413           XplatUIX11.cs: Create property to allow access to existing private
25414           variable "themes_enabled"
25415
25416 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25417
25418         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
25419         file size, as otherwise our class libraries fail using windows. Fixes
25420         bug #78759.
25421
25422 2006-08-04  Jackson Harper  <jackson@ximian.com>
25423
25424         * Form.cs:
25425         * XplatUIX11.cs: Move the toolwindow window manager creation into
25426         the X11 driver, this way on win32 we can let windows create/handle
25427         the toolwindows.
25428
25429 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25430
25431         * PrintDialog.cs: Remove some redundant checks, add some others,
25432         clean some code, and move the focus to the text boxes when the
25433         values are incorrect.
25434
25435 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
25436
25437         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
25438
25439 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
25440
25441         * NumericUpDown.cs: Setting the Minimum and Maximum is now
25442           handled correctly. Fixes bug #79001.
25443
25444 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25445
25446         * PrintDialog.cs: The "Copies" numeric up down must have
25447         set the Minimum property to 1; only if the value is bigger
25448         than 1, activate "Collate" check box. This is the behaviour of .Net.
25449         Also modify the Document elements only if it is not null.
25450
25451 2006-08-03  Jackson Harper  <jackson@ximian.com>
25452
25453         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
25454         length. (We have a larger array then actual node count).
25455                 
25456 2006-08-03  Jackson Harper  <jackson@ximian.com>
25457
25458         * ComboBox.cs: Don't show selection by default.
25459         - The SelectAll isn't needed here, since the focus code should do
25460         that
25461         - DDL style lists to manual selection drawing, so when they
25462         get/lose focus they have to invalidate.
25463
25464 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
25465
25466         * TextBoxBase.cs: Don't always show all selections by default.
25467
25468 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
25469         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
25470           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
25471           Fixed various typos.
25472
25473 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
25474
25475         * Control.cs: Removing the controls in a ControlCollection with
25476           Clear now hides the controls as expected. Fixes bug #78804. 
25477
25478 2006-08-03  Jackson Harper  <jackson@ximian.com>
25479
25480         * Control.cs: Revert previous focus patch, it breaks reflector.
25481
25482 2006-08-03  Jackson Harper  <jackson@ximian.com>
25483
25484         * ComboBox.cs: Cleanup selection and focus with the combobox.
25485         This also eliminates some duplicated keyboard code, since now
25486         everything is handled by the main class.
25487         - Make list selection work on mouse up instead of down, to match
25488         MS.
25489
25490 2006-08-02  Jackson Harper  <jackson@ximian.com>
25491
25492         * Control.cs: Setting focus needs to go through the whole
25493         selection mechanism.
25494
25495 2006-08-02  Chris Toshok  <toshok@ximian.com>
25496
25497         * PrintPreviewDialog.cs: change MinimumSize to use
25498         base.MinimumSize so it works.
25499
25500 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
25501
25502         * TextControl.cs:
25503           - UpdateCaret: Added sanity check in case caret isn't defined yet
25504           - Line.Delete: Now updating selection and caret markers if we're
25505             transfering a node (Properly fixes #78323)
25506           - SetSelectionEnd: Added sanity check
25507         * TextBoxBase.cs: Removed broken attempt to fix #78323
25508
25509 2006-08-01  Chris Toshok  <toshok@ximian.com>
25510
25511         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
25512         Close() call is handled in Form, not here.
25513
25514 2006-08-01  Chris Toshok  <toshok@ximian.com>
25515
25516         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
25517         layout/rendering.
25518
25519         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
25520         for sizes < 100% zoom.  The code now aggressively attempts to keep
25521         from calling document.Print (), and tries not to use the scaling
25522         g.DrawImage whenever possible (it still does if you scale to >
25523         100%, since usually that involves huge images).
25524
25525         * PrintPreviewControl.cs: hook up the close button.
25526
25527 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
25528         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
25529           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
25530           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
25531           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
25532           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
25533           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
25534           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
25535           Removed [Serializable] for 2.0 Event Handlers.
25536
25537 2006-07-31  Jackson Harper  <jackson@ximian.com>
25538
25539         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
25540         * TextControl.cs: Uncomment out the body of this method.
25541
25542 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
25543
25544         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
25545           standard cursors.
25546
25547 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25548
25549         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
25550           that embed TextBox and need selections visible even if textbox is not
25551           focused to enforce that behaviour.
25552         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
25553           selection drawing
25554
25555 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25556
25557         * TextControl.cs:
25558           - Added new SetSelectionStart/SetSelectionEnd overloads
25559           - Fixed viewport width assignment to be accurate
25560           - Adjusted alignment line shift calculations to allow cursor on right
25561             aligned lines to be always visible at the right border (like MS)
25562         * TextBoxBase.cs:
25563           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
25564           - TextBoxBase_SizeChanged: recalculating canvas on size changes
25565           - CalculateScrollBars: Use ViewPort size instead of window size, to
25566             properly consider space occupied by the border and scrollbars 
25567             (Fixes #78661)
25568           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
25569             calculations; no longer leaves artifacts
25570           - CaretMoved: Adjusted window scrolling to match MS and fixed several
25571             calculation bugs (Still missing right/center align calculations)
25572
25573 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
25574
25575         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
25576           use of both scroll rect and clip rect, as they do the same.
25577
25578 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
25579
25580         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
25581           in the event handler (fixes #78912)
25582
25583 2006-07-31  Chris Toshok  <toshok@ximian.com>
25584
25585         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
25586         grid.ListManager.Count, since grid.ListManager might be null.
25587         This of course begs the question "why are we drawing rows for a
25588         grid with no list manager (and therefor no rows)?"  Fixes the
25589         crash in bug #78929.
25590
25591 2006-07-31  Chris Toshok  <toshok@ximian.com>
25592
25593         * RelatedPropertyManager.cs: Don't always chain up to the parent
25594         ctor.  instead, call SetDataSource if the parent's position is !=
25595         -1.  Fixes the crash in #78822.
25596
25597 2006-07-31  Chris Toshok  <toshok@ximian.com>
25598
25599         * DataGrid.cs (get_ListManager): use field instead of property
25600         accessors for datasource and datamember.
25601         (RowsCount): make internal again.
25602         (OnMouseDown): end edits before resizing columns/rows.
25603         (OnMouseUp): restart edits after resizing columns/rows.
25604
25605 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
25606
25607         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
25608           This fixes the situation where the last set cursor is displayed
25609           whenever the mouse is over scrollbars.
25610
25611 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25612
25613         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
25614         Document properties, as well as initial values.
25615
25616 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
25617
25618         * XplatUIWin32.cs (SetBorderStyle): Setting both border
25619           and ClientEdge results in a 3-pixel border, which is
25620           wrong.
25621
25622 2006-07-28  Jackson Harper  <jackson@ximian.com>
25623
25624         * TreeNodeCollection.cs: Fix the clear method.
25625         - Fix the Shrink also
25626
25627 2006-07-27  Jackson Harper  <jackson@ximian.com>
25628
25629         * TreeView.cs: Make sure the visible order is computed when we
25630         attempt to size the scrollbars (for trees that mess with the
25631         scrolling when they shouldn't.
25632         - Make sure to give the scrollbars valid values.
25633
25634 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
25635
25636         * XplatUIX11.cs: Move motion compression code to where it
25637           has less performance impact
25638
25639 2006-07-26  Jackson Harper  <jackson@ximian.com>
25640
25641         * UpDownBase.cs: When the control is selected make the child
25642         controls non selectable, so that a click on them won't do a
25643         focus/unfocus cycle.
25644         - Don't give focus to the text box when the spinner is selected.
25645         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
25646
25647 2006-07-26  Chris Toshok  <toshok@ximian.com>
25648
25649         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
25650         satisfied with this solution.  If the bitmaps are small, we should
25651         just cache them in the PrintPreviewDialog and draw them here.
25652         Also, the layout is broken for the 2-up and 3-up cases.
25653
25654         * Theme.cs: add PrintPReviewControlPaint.
25655
25656         * PrintPreviewDialog.cs: first pass implementation.
25657
25658         * PrintPreviewControl.cs: first pass implementation.  No
25659         scrollbars yet.
25660
25661         * PrintDialog.cs: only validate fields if that particular portion
25662         of the UI is enabled.  Also, set the document's controller to a
25663         PrintControllerWithStatusDialog wrapping the document's print
25664         controller.
25665
25666         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
25667         bring up a SaveFileDialog (i hope we don't want to match the
25668         behavior of the crappy windows file entry) and set the
25669         PrinterSettings.PrintFileName accordingly.
25670
25671 2006-07-26  Jackson Harper  <jackson@ximian.com>
25672
25673         * ContainerControl.cs: Add a field that disables auto selecting
25674         the next control in a container when the container is activated.
25675         * UpDownBase.cs: Don't select the text box when the up down is
25676         selected.
25677
25678 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
25679
25680         * XEventQueue.cs: Added methods for peeking (used for compression
25681           of successive events)
25682         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
25683           mouse move events (fixes #78732)
25684
25685 2006-07-25  Jackson Harper  <jackson@ximian.com>
25686
25687         * UpDownBase.cs: Use an internal class for the textbox so that we
25688         can control focus.  the updown control should always have focus,
25689         if either the text area or the buttons are clicked.
25690         - Send the key messages to the textbox, since it never actually
25691         has focus
25692         - Activate and decativate the textbox caret.
25693
25694 2006-07-24  Jackson Harper  <jackson@ximian.com>
25695
25696         * Control.cs: Use the directed select when selecting a control,
25697         this way the container controls override will get called and the
25698         whole ActiveControl chain will get triggered.  TODO: probably need
25699         to make sure this gets done everywhere instead of the old
25700         Select(Control).
25701         * ContainerControl.cs: Implement the directed Select method to
25702         find and activate the correct child control.    
25703         
25704 2006-07-22  Mike Kestner  <mkestner@novell.com>
25705
25706         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
25707         menu handling code so that clicks without a grab work too.
25708         [Fixes #78914]
25709
25710 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
25711
25712         * FileDialog.cs: Enable the BackButton when dirstack has one element.
25713           Added some small optimizations.
25714
25715 2006-07-21  Matt Hargett  <matt@use.net>
25716
25717         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
25718
25719 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
25720
25721         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
25722           tests pass and match MS in some strange border cases.
25723
25724 2006-07-21  Chris Toshok  <toshok@ximian.com>
25725
25726         * ThemeWin32Classic.cs: handle drawing of the relation links and
25727         parent row buttons.
25728
25729         * Theme.cs: change args to DataGridPaintParentRow.
25730
25731         * DataGrid.cs: Don't use controls for the relation links and
25732         parent buttons, so we have to handle all their interactions in
25733         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
25734         when we're navigating through child tables, so we can reinstate
25735         selection, expanded state, current cell, etc.
25736
25737 2006-07-20  Chris Toshok  <toshok@ximian.com>
25738
25739         * ToolBar.cs: When we redraw a button, for whatever reason,
25740         there's no reason to redraw the entire toolbar.  Also, don't call
25741         Control.Refresh from within Redraw, as it's much heavier than
25742         Invalidate (which is really what we want).
25743
25744 2006-07-20  Chris Toshok  <toshok@ximian.com>
25745
25746         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
25747         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
25748         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
25749         traces from within a debug IBindingList datasource
25750         (in mono/winforms/datagrid) for *days*, I've finally gotten things
25751         to work in a similar fashion.
25752
25753 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25754
25755         * ListBox.cs: Don't call Sort () when setting 
25756         the Sorted property to false (avoid an unnecessary sort).
25757
25758 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25759
25760         * ListControl.cs: DataSource should throw an ArgumentException
25761         instead of a normal exception when the argument is not of the 
25762         correct type.
25763
25764 2006-07-20  Mike Kestner  <mkestner@novell.com>
25765
25766         * Control.cs: add InternalPreProcessMessage to allow us to steal
25767         key events before MWF gets its paws on them.  Adapted from a
25768         suggestion by eno.
25769         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
25770         up/down/left/right navigation. Override the new internal control
25771         method to steal the events since they never make it to WndProc.
25772         * ToolBarButton.cs: don't worry about pushed when setting hilight
25773         since the drawing code prefers pushed to hilight. Invalidate on 
25774         Hilight changes. Fixes #78547 and #78525.
25775
25776 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
25777
25778         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
25779           the canvas size. Fixes #78868
25780
25781 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
25782
25783         * Splitter.cs: Track requested split position until first layout
25784           is performed. Fixes #78871
25785
25786 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
25787
25788         * Application.cs: Removed code that forces 1.x for the version
25789           number if the version started with 0. Not sure why that code was
25790           there and I couldn't find any bugs that indicated we needed it.
25791           Fixes #78869
25792
25793 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
25794
25795         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
25796           ResetDefaults(), just write some output to the console until it's
25797           implemented. Fixes bug #78907 for now. Eliminated two warnings.
25798
25799 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
25800
25801         * PropertyGridView.cs: set StartPosition of drop down forms
25802         so they appear in correct initial spot.  Fixes #78190.
25803
25804 2006-07-19  Mike Kestner  <mkestner@novell.com>
25805
25806         * ThemeWin32Classic.cs: use parent background color when drawing
25807         flat toolbars.  Restructure the conditionals to make sure non-flat
25808         non-Divider toolbars are filled too.  Fixes #78837.
25809
25810 2006-07-19  Mike Kestner  <mkestner@novell.com>
25811
25812         * ListBox.cs: Sort on collection changes even if the handle
25813         isn't created yet.  Fixes #78813.
25814
25815 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
25816
25817         * ListControl.cs: DisplayMember should never be null,
25818         and now we assign String.Empty when null is passed to it (this
25819         is the .Net way).
25820
25821 2006-07-17  Mike Kestner  <mkestner@novell.com>
25822
25823         * ListViewItem.cs: restructure Font and subitem Font handling 
25824         to hold a specific font and refer back to owner on null.
25825         Fixes #78761.
25826
25827 2006-07-17  Mike Kestner  <mkestner@novell.com>
25828
25829         * ToolBar.cs: bandaid for side-effect of previous patch which was
25830         discarding explicit heights for non-AutoSize toolbars.  Need to
25831         extend my format tester to deal with AutoSize=false. Fixes #78864.
25832
25833 2006-07-15  Jackson Harper  <jackson@ximian.com>
25834
25835         * LabelEditTextBox.cs:
25836         * TreeView.cs: Use a new LabelEdit class for node editing, this
25837         class automatically 'closes' itself when it gets the enter key or
25838         loses focus.
25839         - Use the client rectangle when setting the trees scrollbars, so
25840         border style is taken into account.
25841         
25842 2006-07-14  Jackson Harper  <jackson@ximian.com>
25843
25844         * TreeNode.cs:
25845         * TreeView.cs: Make the editing work similar to MSs, firing the
25846         events correctly and ending edits correctly.
25847
25848 2006-07-14  Mike Kestner  <mkestner@novell.com>
25849
25850         * ToolBarButton.cs:
25851         * ToolBar.cs: layout restructuring and redraw enhancements to support
25852         formatting changes gracefully, like setting TextAlign, ImageList, 
25853         ButtonSize, and Appearance.  Handles explicit button sizing quirks
25854         of the MS controls.  Things like flat toolbars ignoring button size
25855         but becoming constant sized at the largest button's size.  Normal
25856         toolbars with an image set cannot be shrunk smaller than the image,
25857         but text can be clipped/ignored.
25858         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
25859         is zero.  Seems like DrawString should be smart enough to not put
25860         anything on screen though. Also trim labels and ellipsize at the char
25861         boundary, not word.
25862         Fixes #78711 and #78483.
25863
25864 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25865
25866         * FolderBrowserDialog.cs: Disable "New Folder" button and
25867           "New Folder" contextmenu menuitem if a folder like "My Computer"
25868           is selected.
25869
25870 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25871
25872         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
25873         * FolderBrowserDialog.cs:
25874           - Use MWFConfig to store and read size and position settings
25875           - Added code to create a new folder (button or context menu).
25876             Use TreeView labeledit to change the name of the new folder.
25877
25878 2006-07-14  Jackson Harper  <jackson@ximian.com>
25879
25880         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
25881         when the tree is scrolled we end editing.
25882
25883 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
25884
25885         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
25886           Down arrows
25887
25888 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
25889
25890         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
25891         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
25892         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
25893         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
25894         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
25895         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
25896         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
25897         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
25898         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
25899         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
25900         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
25901         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
25902         ListViewItemSelectionChangedEventHandler.cs,
25903         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
25904         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
25905         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
25906         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
25907         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
25908         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
25909         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
25910         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
25911         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
25912         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
25913         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
25914         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
25915         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
25916         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
25917         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
25918         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
25919         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
25920         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
25921         WebBrowserNavigatingEventHandler.cs, 
25922         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
25923
25924 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
25925
25926         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
25927         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
25928         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
25929         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
25930         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
25931         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
25932         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
25933         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
25934         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
25935         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
25936         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
25937         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
25938         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
25939         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
25940         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
25941         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
25942         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
25943         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
25944         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
25945         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
25946         ListViewItemStates.cs, MaskFormat.cs: Added
25947
25948 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
25949
25950         * PropertyGridView.cs: Fix keyboard navigation of drop down.
25951         Patch from eno for bug 78558.
25952         
25953 2006-07-13  Jackson Harper  <jackson@ximian.com>
25954
25955         * TreeView.cs: When an edit is finished make sure that the
25956         selected node is visible.
25957         - When setting the top/bottom use the scrollbars is_visible, so
25958         everything will be set correctly even if the tree isn't visible
25959         yet.
25960
25961 2006-07-13  Jackson Harper  <jackson@ximian.com>
25962
25963         * ComboBox.cs: Revert the item->index part of my previous patch.
25964         * TreeView.cs: Use LostFocus instead of Leave for detecting when
25965         the edit box has lost focus (duh).
25966         - Just make the edit box not visible when we get return, that will
25967         take the focus, which will call EndEdit
25968         * TreeNode.cs When we start editing, notify the treeview.
25969
25970 2006-07-12  Jackson Harper  <jackson@ximian.com>
25971
25972         * ComboBox.cs: Clear out old items before setting the item list.
25973         This prevents databound controls from having their items added
25974         twice.
25975         - Switch the combobox to use indices whereever possible instead of
25976         using Item's.  This allows usto navigate through lists that have
25977         more then one item with the same string value (ie a, b, b, a).
25978         - Scroll the listboxes scrollbar when a non visible item is
25979         highlighted
25980         - Allow keypress to cycle through all the possible values. For
25981         example if you have b1, b2, b3 and hold down the B key all the
25982         values will be cycled through.
25983         
25984 2006-07-12  Jackson Harper  <jackson@ximian.com>
25985
25986         * TextBoxBase.cs:
25987         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
25988         this using the internal methods.
25989         * Control.cs: Add OnGotFocusInternal.  A new method that allows
25990         controls to "override" OnGotFocus and change focus behavior if
25991         needed.
25992         - Same thing for LostFocus
25993         * ComboBox.cs: Pass off focus to the text control properly.
25994
25995 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
25996
25997         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
25998         * FolderBrowserDialog.cs: Almost a complete rewrite.
25999           - Better support for Environment.Specialfolders
26000           - Added support for MWFVFS
26001           - Made setting SelectedPath work
26002
26003 2006-07-12  Jackson Harper  <jackson@ximian.com>
26004
26005         * Control.cs: Optimze getting all the controls.
26006
26007 2006-07-11  Jackson Harper  <jackson@ximian.com>
26008
26009         * ContainerControl.cs: Override SETFOCUS in the container control,
26010         so that it is not selected on mouse click.
26011
26012 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
26013
26014         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
26015           Hopefully we will have a better way once all of focus is complete.
26016
26017 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
26018
26019         * ThemeWin32Classic.cs: Commented out some debug code and fixed
26020           a compile error with csc.
26021
26022 2006-07-11  Jackson Harper  <jackson@ximian.com>
26023
26024         * Control.cs: When hiding a control only select the next control
26025         if the current control was focused.
26026         - Don't handle enter/leave when setting/killing focus, this is
26027         done by the container control.
26028         - Remove is_selected, it's not needed anymore.
26029         - Add utility methods for selecting a child control, and for
26030         firing the Enter/Leave events.
26031         * ContainerControl.cs: When a control is activated fire the
26032         enter/leave events.
26033         - Don't wrap when processing the tab key, so that focus can be
26034         moved outside of the container.
26035         - Use the correct active control
26036
26037 2006-07-11  Jackson Harper  <jackson@ximian.com>
26038
26039         * ComboBox.cs: Remove some debug code that was blinding me.
26040         * UpDownBase.cs: These controls actually aren't implicit, they are
26041         visible to the user.
26042
26043 2006-07-10  Chris Toshok  <toshok@ximian.com>
26044
26045         * DataGrid.cs: move back to the is_adding boolean field.  god i
26046         hate this is_editing/is_adding/is_changing stuff.
26047
26048 2006-07-10  Chris Toshok  <toshok@ximian.com>
26049
26050         * DataGridTableStyle.cs: just check if the property type is bool.
26051         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
26052         Don't use CanRenderType.
26053
26054         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
26055         if our text == NullText.  Remove CanRenderType.
26056
26057         * DataGridBoolColumn.cs: nuke CanRenderType.
26058
26059         * DataGrid.cs: reenable some code to end the current edit inside
26060         of set_CurrentCell.  This fixes the other 1.1.16 regression.
26061         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
26062         Also, remove the visible_row_count arg from CalcRowHeaders, since
26063         we don't need to worry about the actual height of the area.
26064
26065 2006-07-10  Chris Toshok  <toshok@ximian.com>
26066
26067         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
26068         mode, just return.
26069
26070         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
26071         the real sense of the IsInEditOrNavigateMode property (true =
26072         navigate, false = edit).  Also, update OnKeyPress to reflect this.
26073
26074         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
26075         column style exists, we still need to set its property descriptor
26076         to match up with our list manager.
26077
26078 2006-07-10  Chris Toshok  <toshok@ximian.com>
26079
26080         * ThemeWin32Classic.cs: implement the new row/header painting
26081         approach.  The parent row painting will likely go away and
26082         replaced with label controls, but the rest seems to work ok (and
26083         efficiently).
26084
26085         * Theme.cs: change the way we draw datagrid rows.  we don't draw
26086         the row headers as a block now.  Instead we draw them in the
26087         normal draw-row loop.  Add some calls for drawing parent rows and
26088         relation rows.
26089
26090         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
26091         a default table style.  Set the defaults from ThemeEngine.Current,
26092         not SystemColors.  Fix lots of misc issues with property setters.
26093
26094         * DataGrid.cs: move loads of style information out of this class
26095         as it's being duplicated with DataGridTableStyle.  keep track of a
26096         special DataGridTableStyle for the properties we used to mirror
26097         here.  Switch all the style properties to access this table style
26098         instead of instance fields of this class.  Also add a internal
26099         class to represent parent rows (more needs to be stored here, like
26100         the selection state from the parent table, as well as the
26101         expansion state.)  Also, for datasources with relations, do the
26102         right thing for collapse/expand, and add support for the
26103         navigation/parent row buttons.
26104
26105         Lastly, fix the crash in the 1.1.16 build.
26106
26107         * GridTableStylesCollection.cs: make the explicit interface
26108         implementations call the class's methods as opposed to duplicating
26109         them.
26110
26111         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
26112         0 so the text doesn't jump around when we move the cursor.
26113
26114 2006-07-10  Jackson Harper  <jackson@ximian.com>
26115
26116         * TextBoxBase.cs:
26117         * ListBox.cs: Match MS's ToString (this makes debugging focus
26118         stuff infinitely easier).
26119
26120 2006-07-10  Jackson Harper  <jackson@ximian.com>
26121
26122         * Control.cs (SelectNextControl): When checking the control's
26123         parent use this instead of ctrl.parent so that null can be passed
26124         to SelectNextControl. (I have unit tests for this).
26125         - Remove unused var.
26126
26127 2006-07-10  Chris Toshok  <toshok@ximian.com>
26128
26129         * CurrencyManager.cs: correct one regression, the removal of the
26130         finalType field.  Also, add a MonoTODO on CanAddRows, implement
26131         Refresh() correctly, and fix some event emission in
26132         ListChangedHandler.
26133
26134 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
26135
26136         * FileDialog.cs: Don't use brackets for new folders if they exist
26137           under *nix. Instead use -(number of existing folders +1).
26138
26139 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
26140
26141         * FileDialog.cs:
26142           - Fixed really nasty bug #78771
26143           - Don't block the whole GUI when reading directories with a lot of
26144             entries. Use an other thread instead and call BeginInvoke to
26145             update the ListView in MWFFileView
26146
26147 2006-07-07  Chris Toshok  <toshok@ximian.com>
26148
26149         * Control.cs (Dispose): release any Capture when disposing.
26150
26151 2006-07-07  Chris Toshok  <toshok@ximian.com>
26152
26153         * LinkLabel.cs (Select): if we chain up to the parent, set
26154         focused_index to -1 so we'll search for the first available link
26155         the next time the user tabs into us.  Also, if the direction is
26156         backward and focused_index == -1, start the search from the last
26157         element.
26158
26159 2006-07-07  Chris Toshok  <toshok@ximian.com>
26160
26161         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
26162         is beyond the end of the text, don't do anything.
26163         (CreateLinkPieces): set our ControlStyles.Selectable based on
26164         whether or not we have any links.
26165         (Link.Invalidate): use a loop instead of foreach.
26166         (Link.set_Start): null out owner.sorted_links so it'll be
26167         recreated by CreateLinkPieces.
26168
26169 2006-07-06  Chris Toshok  <toshok@ximian.com>
26170
26171         * LinkLabel.cs: revert the SetStyle change.
26172
26173 2006-07-06  Chris Toshok  <toshok@ximian.com>
26174
26175         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
26176         (OnEnableChanged): s/Refresh/Invalidate
26177         (OnGotFocus): if we have a focused index already, refocus it (so
26178         if we mouse out/in to the window it'll focus the right link).
26179         (OnKeyDown): move the tab handling out of here.
26180         (OnLostFocus): don't set focused_index to -1, so we can refocus it
26181         when we lose focus.
26182         (OnMouseDown): don't Capture here - Control handles it.  Also,
26183         focus the active link.
26184         (OnMouseUp): don't deal with Capture.
26185         (OnPaintBackgroundInternal): remove.
26186         (OnTextAlignChanged): CreateLinkPieces before calling the
26187         superclass's method.
26188         (OnTextChanged): call CreateLinkPieces before calling superclass's
26189         method.
26190         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
26191         move around.
26192         (Select): implement this, moving the selection between different
26193         links, and call parent.SelectNextControl if we don't have another
26194         link to focus in the given direction.
26195         (CreateLinkPieces): call Invalidate instead of Refresh.
26196         
26197 2006-07-06  Chris Toshok  <toshok@ximian.com>
26198
26199         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
26200         new LinkLabel internals.
26201
26202         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
26203         over pieces looking for active/focused/etc links.  also, deal with
26204         runs of text (and links) with embedded \n's in them, and use
26205         MeasureCharacterRanges instead of MeasureString to figure out the
26206         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
26207         two-step.
26208
26209 2006-07-04  Jackson Harper  <jackson@ximian.com>
26210
26211         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
26212         XKB or key auto repeat, do it manually.  Without key auto repeat,
26213         when a key is held down we get key press, key release, key press,
26214         key release, ... with auto repeat we get key press, key press, key
26215         press ..., and then a release when the key is actually released.
26216
26217 2006-07-03  Jackson Harper  <jackson@ximian.com>
26218
26219         * TabControl.cs:
26220         * ThemeWin32Classic.cs: Tabs do not obey normal background color
26221         rules, they are always control color regardless of the background
26222         color.
26223
26224 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
26225
26226         * FileDialog.cs: Added internal class MWFConfig.
26227           Removed Registry support and replaced it with support for the new
26228           MWFConfig class. See MWFConfig comments for more information.
26229
26230 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
26231
26232         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
26233           rectangle. Added some patches from eno from bug #78490 and fixed
26234           the arrow position for small up and down CPDrawScrollButtons.
26235
26236 2006-06-30  Jackson Harper  <jackson@ximian.com>
26237
26238         * InternalWindowManager.cs: Remove some debug code.
26239         * Form.cs: When an MdiParent is set to null, the window is
26240         "detatched" and becomes a normal window.
26241         * MdiClient.cs: Don't bring the new child form to the front until
26242         it is activated (setting it as active does this), this makes the
26243         previously active forms titlebar get redrawn as inactive.
26244
26245 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
26246
26247         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
26248           with later controls
26249
26250 2006-06-29  Mike Kestner  <mkestner@novell.com>
26251
26252         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
26253         arrow in keynav state.  Fixes #78682.
26254
26255 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
26256
26257         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
26258           order (fixes #78393)
26259
26260 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
26261
26262         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
26263           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
26264           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
26265           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
26266           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
26267           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
26268           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
26269           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
26270           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
26271           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
26272           enumerations (FlagsAttribute, SerializableAttribute, added/removed
26273           values)
26274
26275 2006-06-28  Mike Kestner  <mkestner@novell.com>
26276
26277         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
26278
26279 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
26280
26281         * PropertyGrid.cs,
26282           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
26283           item lines from other area (It also makes BackColor consistent and
26284           compatible with .NET). Fixed bug #78564.
26285
26286 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
26287
26288         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
26289         Patch from Eno for #78555.
26290
26291 2006-06-27  Chris Toshok  <toshok@ximian.com>
26292
26293         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
26294
26295         * DataGridColumnStyle.cs: same.
26296
26297         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
26298         
26299         * DataGridDrawingLogic.cs: nuke.
26300
26301 2006-06-27  Chris Toshok  <toshok@ximian.com>
26302
26303         * DataGridTableStyle.cs: clean up the constructors, and build the
26304         list of child relations for this table.  I have no idea if this is
26305         where we should be doing it (it probably isn't), but since we're
26306         already iterating over the properties..
26307
26308         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
26309         struct and array for keeping track of row information, similar to
26310         what's shown in a hack on
26311         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
26312
26313         * Theme.cs: be consistent about the naming of DataGrid methods,
26314         prefering ColumnWidths and RowHeights over columnsWidths and
26315         RowsHeights.
26316
26317         * ThemeWin32Classic.cs: same, and also add support for variable
26318         sized rows (and the +/- expansion icons for related rows).
26319
26320 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
26321
26322         * TextBoxBase.cs: Applied Eno's patch from #78660
26323
26324 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
26325
26326         * Form.cs (ScaleCore): We don't want to scale our form if it's
26327           state is minimized or maximized, but we still need to scale our
26328           child windows. Also, added try/finally block to ensure layout
26329           gets reset (Fixes #78697)
26330
26331 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
26332
26333         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
26334
26335 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
26336
26337         * Form.cs: Fixed c+p error and added check to resize form if minimum
26338           size is bigger than current size (Fixes #78709)
26339
26340 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
26341
26342         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
26343
26344 2006-06-26  Mike Kestner  <mkestner@novell.com>
26345
26346         * ComboBox.cs: only do Keypress handling in the combo when there  
26347         are items in the collection. Fixes #78710.
26348
26349 2006-06-26  Chris Toshok  <toshok@ximian.com>
26350
26351         * Binding.cs: make this work bi-directionally.  also, clear up
26352         other mixups between Push/Pull Data (e.g. we're supposed to pull
26353         data when validating).
26354
26355         * BindingManagerBase.cs: trim some fully qualified collection
26356         types.
26357
26358         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
26359
26360 2006-06-23  Chris Toshok  <toshok@ximian.com>
26361
26362         * PropertyManager.cs: It appears (according to the unit tests)
26363         that PropertyManager doesn't use
26364         PropertyDescriptor.AddValueChanged to track propery value changes
26365         in its datasource, but uses the same scheme as Binding, where it
26366         looks for a <Property>Changed event and binds to it.
26367
26368         Also, according to the docs, IsSuspended always returns false for
26369         a property manager with a non-null datasource.
26370
26371 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
26372
26373         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
26374           need to update the actual DialogResult. (Fixes #78613)
26375
26376 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
26377
26378         * Form.cs (ShowDialog): Release any captures before running the
26379           new message pump (fixes #78680)
26380
26381 2006-06-22  Mike Kestner  <mkestner@novell.com>
26382
26383         * ListView.cs: Layout column widths properly in details mode even 
26384         if HeaderStyle.None is set.  Fixes #78691.
26385
26386 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
26387
26388         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
26389
26390 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
26391
26392         * Control.cs (ContainsFocus): Using new driver method to get focused
26393           window, instead of trying to use internal tracking var, which can
26394           recursion issues (Fixes #78685)
26395         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
26396           XplatUIWin32.cs: Added GetFocus method to return focused window
26397
26398 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26399
26400         * ColorDialog.cs: when the mouse button is pressed inside the color
26401         matrix, don't let the cursor move out of it until the button is
26402         released, which is the behavior on windows. Changed 'colours' by
26403         'colors' to use the same word consistently.
26404
26405 2006-06-21  Chris Toshok  <toshok@ximian.com>
26406
26407         * DataGrid.cs: add in some basic navigation stuff (navigating to a
26408         child relation and back, using a stack).  Also, remove
26409         GetDataSource and the code that calls it - it's not needed.  Also,
26410         track CurrencyManager.ListName's removal.
26411
26412 2006-06-21  Chris Toshok  <toshok@ximian.com>
26413
26414         * CurrencyManager.cs: push some of the original type checking from
26415         BindingContext.CreateBindingManager to here, and remove some of
26416         the finalType stuff.  Need more tests to make sure I've got the
26417         ListName part right, and we might need more in SetDataSource.
26418
26419         * PropertyManager.cs: add a ctor that takes just the datasource,
26420         and no property name.  Make SetDataSource work with a null
26421         property_name, and make Current return the data_source if the
26422         property descriptor is null.  this makes 'string foo = "hi";
26423         BindingContext[foo].Current' return "hi" as it should.
26424
26425         * RelatedCurrencyManager.cs: make this code more generic - there's
26426         no reason the parent manager has to be CurrencyManager, and
26427         there's no reason to pass the DataRelation.  It suffices to use a
26428         BindingManagerBase and PropetyDescriptor.
26429
26430         * RelatedPropertyManager.cs: make a similar change here.
26431         
26432         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
26433         flower I knew it could be.
26434
26435 2006-06-20  Chris Toshok  <toshok@ximian.com>
26436
26437         * PropertyManager.cs: the PropertyChangedHandler is invoked when
26438         data in the source has changed and we need to update the control,
26439         so s/PullData/PushData.
26440
26441         * CurrencyManager.cs: Refresh is meant to update the control from
26442         data in the datasource.  So, s/PullData/PushData.
26443
26444         * BindingContext.cs: add more ugliness (we weren't handling the
26445         case where data_source = DataTable and data_member = column_name).
26446
26447         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
26448         from the perspective of the datasource.  PullData pulls from the
26449         control, PushData pushes to the control.
26450
26451 2006-06-20  Chris Toshok  <toshok@ximian.com>
26452
26453         * BindingContext.cs: rewrite the CreateBindingManager code to
26454         handle navigation paths more or less properly.  This could
26455         definitely stand some more work, in particular to push the
26456         recursion up to the toplevel.  But that relies on fixes in other
26457         places (System.Data comes to mind).
26458
26459         Also, move to a flat hashtable (and encode the twolevel nature of
26460         the dictionary into the hash key).  This lets us implement the
26461         IEnumerable.GetEnumerator method.
26462
26463         * RelatedCurrencyManager.cs: new class.  Update our view based on
26464         our relation and our parent CurrencyManager's position.
26465
26466         * CurrencyManager.cs: split out some logic from the ctor into
26467         SetView, so it can be called from the new RelatedCurrencyManager
26468         subclass.
26469
26470         * RelatedPropertyManager.cs: new class.  Update our datasource
26471         based on the position of our parent CurrencyManager.
26472
26473         * PropertyManager.cs: split out some logic from the ctor into
26474         SetDataSource, so it can be called from the new RelatedDataSource
26475         subclass.  Also, make the Current getter return the value
26476         of the PropertyDescriptor, not the data_source.
26477
26478         * Binding.cs: no need to duplicate the string splitting code here.
26479
26480 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
26481
26482         * Control.cs:
26483           - set_Enabled: OnEnabledChanged is not called if the inherited state 
26484             of the control is not altered, even though  we might be changing the
26485             internal state of the control (#78458)
26486           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
26487             OnEnabledChanged, to allow easy altering of any child window state
26488           - OnEnabledChanged: Added code to enable/disable driver window state
26489           - OnParentEnabledChanged: Instead of firing the event, call 
26490             OnEnabledChanged, which will fire the event and also a) set driver
26491             window state and pass the enabled state to any grandchildren (#78458)
26492
26493 2006-06-19  Jackson Harper  <jackson@ximian.com>
26494
26495         * InternalWindowManager.cs: We don't set the cursor explicitly
26496         thats done via the response to NCHITTESTs.
26497         - Don't need to adjust for titlebar heights anymore, the
26498         coordinates are coming in the correct coordinates now (see peters
26499         last patch).
26500
26501
26502 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
26503
26504         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
26505           being translated relative to whole window, instead of client window.
26506           That caused broken offsets on mouseclick (and caused gas for our
26507           InternalWindowManager)
26508
26509 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
26510
26511         * TextControl.cs:
26512           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
26513           - Undo(): Added replay of cursor move on DeleteChars action; added
26514             calling Undo() again if a recorded cursor move is invalid (to
26515             ensure that some action is performed on Undo)
26516         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
26517
26518 2006-06-16  Jackson Harper  <jackson@ximian.com>
26519
26520         * MdiClient.cs: Instead of just sizing maximized windows when
26521         there is a resize we also have to adjust the Y of minimized
26522         windows, so they stay pinned to the bottom of the mdi container.
26523         - Eliminate separate tracking of the active control, we can just
26524         get this from the controls collection.
26525         - Paint the decorations for the newly activated titlebar so we get
26526         a pretty blue bar.
26527         * InternalWindowManager.cs:
26528         * ThemeWin32Classic.cs: Minimized windows get all three buttons
26529         even if they are a tool window.
26530         
26531 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
26532
26533         * TextControl.cs (Undo): Handle non-existent cursor locations in the
26534           undo buffer, these can happen when text was deleted and the cursor
26535           was recorded first. Since we will also have a recorded cursor
26536           after the delete this is not an issue. (Fixes #78651)
26537
26538 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
26539
26540         * AccessibleObject.cs: Remove dependence on Control.is_selected;
26541           instead properly track control states internally (allows us to
26542           remove is_selected from Control)
26543
26544 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26545
26546         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
26547         whose width is not a multiple of 8.
26548
26549 2006-06-13  Jackson Harper  <jackson@ximian.com>
26550
26551         * MdiClient.cs:  Only maximize the next child if the current one
26552         is maximized.
26553
26554 2006-06-13  Chris Toshok  <toshok@ximian.com>
26555
26556         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
26557         modified.  Also, guard against grid or grid_drawing being null in
26558         Invalidate.
26559
26560         * DataGrid.cs: Reformat tons of getters/setters.  In the
26561         DataMember setter, just call SetNewDataSource instead of
26562         duplicating some of its functionality.  In SetNewDataSource, don't
26563         check ListManager for null, since the property getter creates the
26564         object if needed.
26565
26566         * DataGridTableStyle.cs: don't set TableStyle or call
26567         SetDataGridInternal on the column here, it's done in
26568         GridColumnStylesCollection.Add.
26569
26570         * GridColumnStylesCollection.cs: fix all the explicit interface
26571         implementations to just call our methods.  Nuke AddInternal() and
26572         move the body of it to Add().  Also, add a call to
26573         column.SetDataGridInternal to Add().
26574
26575         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
26576         base()+duplicate code.  Also, use the Format property instead of
26577         format to generate an Invalidate ala MS.  Lastly, create the
26578         textbox here, unconditionally.
26579         (set_Format): call Invalidate.
26580         (get_TextBox): no need to call EnsureTextBox.
26581         (Commit): remove the message box.
26582         (Edit) remove the call to EnsureTextBox.
26583         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
26584         (EnterNullValue): no need to check textbox for null.
26585         (HideEditBox): no need to check textbox for null.
26586         (SetDataGridInColumn): add the textbox to the grid's controls.
26587         (EnsureTextBox): nuke.
26588         
26589 2006-06-13  Jackson Harper  <jackson@ximian.com>
26590
26591         * MdiWindowManager.cs: Hook up to the maximized menus paint event
26592         and redraw the buttons when needed. Unhook when the window is
26593         unmaximized.
26594         * MainMenu.cs: Add an internal Paint event, the mdi window manager
26595         needs this so that it can redraw its buttons when the menu is
26596         repainted.
26597         * InternalWindowManager.cs:
26598         * Form.cs: The method order has changed for DrawMaximizedButtons,
26599         so that it can be a PaintEventHandler.
26600         
26601 2006-06-13  Jackson Harper  <jackson@ximian.com>
26602
26603         * MdiClient.cs: When we close a maximized mdi window, the next mdi
26604         window is activated and maximized, even if it wasn't before.
26605         - When  a new window is activated repaint the decorations of the
26606         old one, so that it no longer has the Active "look" (the blue
26607         titlebar).
26608         * InternalWindowManager.cs: Open up CreateButtons to base classes
26609         so they can recreate the buttons on state changes.
26610         - If a window is maximized give it all three buttons
26611         * MdiWindowManager.cs: Create the titlebar buttons when the state
26612         is changed, this is needed because a toolwindow will not have all
26613         three buttons until it is maximized.
26614
26615 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
26616
26617         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
26618           Fixed bug #78609.
26619
26620 2006-06-12  Jackson Harper  <jackson@ximian.com>
26621
26622         * KeysConverter.cs: Make sure we handle the Ctrl special case
26623         if its the only key.
26624         
26625 2006-06-12  Jackson Harper  <jackson@ximian.com>
26626
26627         * Theme.cs: Add a method to get the size of a managed window
26628         toolbar button.
26629         * InternalWindowManager.cs: Remove the ButtonSize property, this
26630         should be retrieved from the theme.
26631         * MdiWindowManager.cs: Get the button size from the theme
26632         * ThemeWin32Classic.cs: Make the method to get the managed window
26633         titlebar button size public.
26634         - Handle the different button sizes of maximized toolwindows
26635         (should match any maximized window).
26636         - Get the titlebar height from the theme, not the WM (which gets
26637         it from the theme).
26638
26639 2006-06-12  Jackson Harper  <jackson@ximian.com>
26640
26641         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
26642         event down to the mdi window manager.
26643         - Expose some extra stuff to base classes
26644         - Make sure to end the Capture on an NC Mouse up, so that we can
26645         get double clicks properly, and the sizing doens't stick.
26646         - When doing PointToClient contain it in the workable desktop
26647         area, this prevents windows from changing size when the cursor is
26648         pulled outside of the working area while sizing.
26649         * MdiWindowManager.cs: When we get a double click maximize the
26650         window.
26651         - Reset the cursor after handling mode changes.
26652
26653 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
26654
26655         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
26656           current desktop, instead of just assuming a 0, 0 origin. This
26657           is needed for our internal window manager, to know the top
26658           margin of the desktop
26659
26660 2006-06-12  Chris Toshok  <toshok@ximian.com>
26661
26662         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
26663         we need this to get rid of the selected background in the bool
26664         column.
26665         (CancelEditing): move the ConcedeFocus call to above the Abort
26666         call.  Also, set is_changing to false and invalidate the row
26667         header if we were changing before.
26668         (ProcessKeyPreviewInternal): remove, since noone outside this
26669         class calls it anymore.  Roll the code into ProcessKeyPreview.
26670         (EndEdit): remove the internal version.
26671         (InvalidateCurrentRowHeader): make private.
26672
26673         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
26674         Keys.Escape handling (and with it the last call to
26675         DataGrid.EndEdit from outside the class.)
26676
26677
26678 2006-06-12  Chris Toshok  <toshok@ximian.com>
26679
26680         * DataGridTextBox.cs (.ctor): isedit defaults to false.
26681         (OnKeyPress): set isedit to true.
26682         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
26683         already handled by the grid.
26684
26685         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
26686         right.  ugh.
26687         (set_DataSource): SetDataSource always returns true, so stop
26688         putting it in an if statement.
26689         (EndEdit): get rid of some {}'s
26690         (ProcessGridKey): return true in case Keys.Escape.
26691         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
26692         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
26693         PositionChanged, stopped connecting to CurrentChanged.
26694         (GetDataSource): simplify this a bunch.
26695         (SetDataSource): change return type from bool to void.
26696         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
26697         to this, and make sure we don't set ListManager.Position inside
26698         set_CurrentCell.
26699         (OnListManagerItemChanged): if we're passed an actual index,
26700         redraw that row.
26701
26702         * CurrencyManager.cs (set_Position): don't call PullData here.
26703
26704 2006-06-09  Jackson Harper  <jackson@ximian.com>
26705
26706         * TreeNode.cs:  Recalculate the visible order before doing the
26707         Expand/Collapse Below calls, because those calls generate an
26708         expose.
26709         - Reduce calls to the TreeView property, which is mildly expensive
26710         by using a local var.
26711         * Form.cs: Layout the MDI child windows when creating the parent
26712         form.
26713         - Don't use the internal constructor anymore
26714         * MdiClient.cs: use the parent form width/height (if available)
26715         when laying out the child windows, we do this because the
26716         mdiclient isn't docked yet when the initial layout is done.
26717         - Don't need an internal constructor anymore.
26718
26719 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26720
26721         * FileDialog.cs: handle access errors when trying to create a folder
26722         or changing to a directory. No need to initialize out parameters.
26723
26724 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26725
26726         * FileDialog.cs: Append a number when creating a new folder if the
26727           folder already exists (use parenthesis instead of square brackets)
26728
26729 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26730
26731         * FileDialog.cs:
26732           - Disabled registry support for windows and added better registry
26733             error checking for other systems (need to investigate why it
26734             works perfectly on my system)
26735           - If a folder already exist show an error MessageBox instead of
26736             trying to create an indexed name.
26737           - Fixed a non intentional typo.
26738
26739 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26740
26741         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
26742
26743 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26744
26745         * FileDialog.cs: When creating a new folder don't crash if the
26746           folder already exists.
26747
26748 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26749
26750         * FileDialog.cs: Allmost a complete rewrite.
26751           - added a "virtual" file system that handles the differences
26752             between unix and windows file systems (especially the directory
26753             structure). Moved most of the directory and file handling code
26754             into the vfs.
26755             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
26756             UnixFileSystem and FSEntry.
26757           - Recently used folder/directory, size, location and used file names
26758             (file name ComboBox) are now stored in the registry and get read
26759             before the dialog shows up (fixes part 6 of bug #78446).
26760           - Creation of new folders/directories is now possible (context menu
26761             or ToolBar). Added TextEntryDialog for this that fills in the gap
26762             until ListView.LabelEdit works.
26763           - Fixed cursor handling (bug #78527) and focus handling for
26764             PopupButtonPanel
26765           - Various "Search in" ComboBox enhancements. The content of the
26766             dropdown listbox now almost matches ms.
26767           - Changed the behaviour when the user switches to SpecialFolder
26768             Recent to show the ListView in View.Details.
26769           - Beside using the ToolBar to change the View property of the
26770             file ListView it is now possible to use the context menu too.
26771
26772 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
26773
26774         * ComboBox.cs: Don't create a new ObjectCollection when an item
26775           gets inserted. Just insert the item in the existing object_items
26776           ArrayList.
26777
26778 2006-06-08  Jackson Harper  <jackson@ximian.com>
26779
26780         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
26781         that the treeview and root node checks are done also, this fixes a
26782         regression i caused in the unit tests.
26783
26784 2006-06-07  Wade Berrier <wberrier@novell.com> 
26785
26786         * RichTextBox.cs: More ISO8859-1 -> unicode
26787
26788 2006-06-07  Mike Kestner  <mkestner@novell.com>
26789
26790         * ComboBox.cs : use items to hold highlight/selection so that
26791         collection insertions don't require synchronization.
26792
26793 2006-06-07  Jackson Harper  <jackson@ximian.com>
26794
26795         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
26796         routine.  We now always keep the sized edge at the cursor instead
26797         of computing movement and adjusting rects.  There is one buglet
26798         with this method though when the cursor is moved over area that
26799         the window can not expand too (such as the toolbars on the desktop).
26800
26801 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26802
26803         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
26804         here. Fixes crash on startup in AlbumSurfer.
26805
26806 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
26807
26808         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
26809           values
26810
26811 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26812
26813         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
26814         statement to avoid calling XNextEvent which will block if another thread
26815         took the event that we were expecting. Fixes bug #78605.
26816
26817 2006-06-07  Mike Kestner  <mkestner@novell.com>
26818
26819         * ListView.cs : isolated checkbox clicking from the selection logic.
26820         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
26821
26822 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
26823
26824         * Form.cs: Check that the value passed to Form.DialogResult
26825         is a valid enum value.
26826
26827 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26828
26829         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
26830         Computer'. Clicking it in the network view goes to 'My Computer'.
26831         Added CIFS filesystem type. Display the mount point of filesystems.
26832         Avoid duplicate mount points (happens for me with CIFS);
26833
26834 2006-06-06  Jackson Harper  <jackson@ximian.com>
26835
26836         * InternalWindowManager.cs: Draw the maximized windows buttons
26837         when resizing.
26838
26839 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26840
26841         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
26842         all other dialogs. Fixes bug #78585.
26843
26844 2006-06-06  Mike Kestner  <mkestner@novell.com>
26845
26846         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
26847         Only invalidate checkbox on checkstate changes to avoid flicker.
26848         * ListBox.cs : avoid unselect/select when clicking selected item.
26849         avoid reselection flicker for already multiselected items.
26850         Fixes #78382.
26851
26852 2006-06-06  Jackson Harper  <jackson@ximian.com>
26853
26854         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
26855         the parent form so that the menu is removed if needed.
26856
26857 2006-06-06  Mike Kestner  <mkestner@novell.com>
26858
26859         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
26860         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
26861
26862 2006-06-06  Mike Kestner  <mkestner@novell.com>
26863
26864         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
26865
26866
26867 2006-06-06  Jackson Harper  <jackson@ximian.com>
26868
26869         * Control.cs: Use the property (instead of the field) to get the
26870         default cursor so it is instantiated correctly.
26871         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
26872         resizes so we need to manually repaint the window decorations here.
26873         - Set the titlebar button locations as soon as they are created,
26874         otherwise they are not set correctly on win32.
26875         
26876 2006-06-06  Chris Toshok  <toshok@ximian.com>
26877
26878         * CurrencyManager.cs (set_Position): call PullData before
26879         OnCurrentChanged.
26880         (AddNew): after calling IBindingList.AddNew, update our
26881         listposition, and call OnCurrentChanged/OnPositionChanged (without
26882         calling PullData).
26883         (OnCurrentChanged): remove the call to PullData from here.
26884         (OnItemChanged): remove the call to PushData from here.
26885         (OnPositionChanged): change the test from == null to != null to
26886         match the other methods.
26887         (ListChangedHandler): the grossest part of the patch.  Implement
26888         this such that it passes the unit tests in CurrencyManagerTest and
26889         the output more or less matches that of MS's implementation.
26890  
26891 2006-06-06  Mike Kestner  <mkestner@novell.com>
26892
26893         * ListView.cs : only update check state on single click.
26894         * ThemeWin32Classic.cs : fix focus drawing for details view without
26895         fullrowselect.  Fixes #78454.
26896         * XplatUIX11.cs : fix for double click emission.
26897
26898 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
26899
26900         * PropertyGridView.cs : Applied Atsushi's patch to fix
26901         font dialog bug  (#78197).
26902
26903 2006-06-05  Jackson Harper  <jackson@ximian.com>
26904
26905         * TreeNode.cs: Compute the next node for expanding/collapsing
26906         correctly. We now factor in nodes without a NextNode
26907         correctly. (Fixes somes cases in nunit-gui).
26908         * InternalWindowManager.cs: Set the bounds when updating the
26909         virtual position of a tool window.
26910         
26911 2006-06-05  Chris Toshok  <toshok@ximian.com>
26912
26913         * DataGrid.cs: rename cached_currencymgr to list_manager.
26914         (set_CurrentCell): move SetCurrentCell code here, and clean it up
26915         some.
26916         (CurrentRow, CurrentColumn): single accessors so we can make the
26917         cursor movement code a lot easier to understand.
26918         (CurrentRowIndex): implement this in terms of CurrentRow.
26919         (BeginEdit): clean this up a bit.
26920         (CancelEditing): sort out the is_editing/is_changing/is_adding
26921         stuff a little.
26922         (EndEdit): minor changes.
26923         (OnKeyDown): add a comment about a (most likely) unnecessary
26924         check.
26925         (OnMouseDown): cancel editing when we click on a row header.  And
26926         use the CurrentRow setter, not CurrentCell.
26927         (ProcessDialogKey): directly call ProcessGridKey.
26928         (UpdateSelectionAfterCursorMove): factor out this common block of
26929         code (it's used everywhere that we move the cursor by updating row
26930         or column).
26931         (ProcessGridKey): pretty substantial overhaul.  Use the
26932         CurrentRow/CurrentColumn properties to make the code a lot more
26933         readable.  Only use the CurrentCell property when we have to
26934         modify both row and column at once.  Tab behavior is still broken,
26935         and Delete is untested.
26936         (Select): if we have no selected rows, set selection_start to
26937         @row.
26938         (EditCurrentCell): rename EditCell this.  It was only ever invoked
26939         with CurrentCell as the arg, so drop the arg and rename it.
26940
26941         * DataGridColumnStyle.cs: clean up the constructors a little, and
26942         drop CommonConstructor().
26943
26944         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
26945         actually get notified when the user hits it.
26946         (ProcessKeyMessage): *substantially* simplify this method.
26947         There's no reason (that I can see) for the textbox to be making
26948         calls into the datagrid at all.  Remove all of them but the ones
26949         for Enter handling.  those will take some more work.
26950
26951         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
26952         calling HideEditBox.
26953         (HideEditBox): if we have an active textbox, render it invisible
26954         without causing a re-layout of the datagrid.
26955
26956 2006-06-05  Mike Kestner  <mkestner@novell.com>
26957
26958         * ListView.cs : fix NRE crasher when focuseditem is cleared by
26959         collection changes by resetting it to Items[0].  Fixes #78587.
26960
26961 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26962
26963         * MessageBox.cs: if the height of the text is larger than the icon_size,
26964         use that. Fixes bug #78575.
26965
26966 2006-06-05  Jackson Harper  <jackson@ximian.com>
26967
26968         * TreeView.cs: Fix line drawing when scrolling.  To do this each
26969         node is basically responsible for drawing its entire horizontal
26970         area.  When drawing a node it draws its parent node lines if
26971         needed.
26972         - Adjust the clip area to the viewport rectangle
26973         - Fix Left/Right key handling to match MS. (It expand/collapses
26974         and moves to parents/first child but does not move selection to
26975         sibling nodes).
26976         - Fix SetTop to work with new bound calculation code
26977         - When scrollbars are no longer needed we need to reset scrolling
26978         vars and recalculate the visible order so the redraw is correct
26979         * TreeNode.cs: We can't expand/collapse nodes with no children.
26980
26981 2006-06-03  John Luke  <john.luke@gmail.com> 
26982
26983         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
26984         so the colors work without dev packages
26985         
26986 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
26987
26988         * Control.cs 
26989           - Select: Implemented to just use activate. Seems to match MS 
26990             behaviour closest. Documented to only do actual control walking 
26991             based on it's parameters if in a container control so I moved 
26992             the code there.
26993           - Removed selection check logic from our internal Select() method
26994         * ContainerControl.cs:
26995           - Select: Moved selection logic from Control here, since MS documents
26996             that containers obey the bool arguments. No longer calling base
26997
26998 2006-06-02  Jackson Harper  <jackson@ximian.com>
26999
27000         * TreeView.cs: If the selected node isn't changed when we get
27001         focus update the previously selected node so that we see the
27002         selection box.
27003
27004 2006-06-02  Mike Kestner  <mkestner@novell.com>
27005
27006         * ComboBox.cs: restructure grab and general mouse event handling.
27007         Make the composite control raise mouse events like it was a single
27008         control for leaves/enters/motion/up/down events.  fix dropdown list
27009         coordinate mangling and refactor it into the scrollbar subclass to
27010         reduce code duplication.  Fixes #78282 #78361 and #78457.
27011
27012 2006-06-02  Mike Kestner  <mkestner@novell.com>
27013
27014         * ScrollBar.cs: remove Capture setting/clearing, as it happens
27015         automatically in the Control.WndProc.
27016
27017 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27018
27019         * FileDialog.cs: fix crash when running SharpChess, which sets the
27020         FilterIndex to 2 with only one Filter.
27021
27022 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27023
27024         * ToolBar.cs: add SizeSpecified property.
27025         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
27026         try to figure out our real size, otherwise fallback to what the
27027         container says.
27028
27029 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
27030
27031         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
27032         * Control.cs (WndProc): MS always calls the DefWndProc to pass
27033           up the event
27034
27035 2006-06-01  Mike Kestner  <mkestner@novell.com>
27036
27037         * ListView.cs: revamp the focus management in ListView.  It still
27038         causes churn of LostFocus/GotFocus emissions on clicks, but it's
27039         better than not handling focus at all.  Will revisit when pdb feels
27040         the general focus handling is solid.  Fixes #78526.
27041
27042 2006-06-01  Jackson Harper  <jackson@ximian.com>
27043
27044         * TreeView.cs: Set the default border style in the constructor.
27045         - Move painting to use OnPaintInternal instead of capturing
27046         WM_PAINT, this is the correct way of doing things
27047         - UpdateBelow shouldn't invalidate the scrollbar area
27048         - Cap the top on update below in case the node was above the top
27049         of the viewport rectangle.
27050         - ExpandBelow and Collapse below need to obey Begin/End Update.
27051         * TreeNode.cs: Make is_expanded internal so the treenode
27052         collection can change it without firing the whole event chain.
27053         * TreeNodeCollection.cs: When clearing all the child nodes make
27054         sure to recalc the visible order.
27055         - Improve algo for remove the top node
27056
27057 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
27058
27059         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
27060           SendMessage directly calling window procedures, which in turn might
27061           call SetFocus()
27062
27063 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
27064
27065         * Control.cs: Don't handle WM_SETFOCUS if the same window already
27066           has focus (works around X11 sending a FocusIn after our SetFocus)
27067         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
27068
27069 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
27070
27071         * Mime.cs: Fix for the NET_2_0 build.
27072           NameValueCollection needs StringComparer now.
27073
27074 2006-05-31  Chris Toshok  <toshok@ximian.com>
27075
27076         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
27077         return (via an out parameter) the starting X of the column.
27078         (UpdateVisibleColumn): track change to FromPixelToColumn.
27079         (HitTest): add a ColumnResize case here.
27080         (DrawResizeLine): new function, probably poorly named.
27081
27082         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
27083         only need to keep one reference.
27084         (set_ListManager): same.
27085         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
27086         Also, add support for HitTestType.ColumnResize.
27087         (OnMouseMove): add column resize behavior here, and change the
27088         cursor to the correct one as we move around the datagrid.
27089         (OnMouseUp): terminate the column resize if we're resizing.
27090         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
27091         for the current cell.
27092         (ConnectListManagerEvents): use cached_currencymgr.
27093         (DisconnectListManagerEvents): fill this in, using
27094         cached_currencymgr.
27095         (SetCurrentCell): remove cached_currencymgr_events handling.
27096         (SetDataMember): only call DisconnectListManagerEvents if
27097         cached_currencymgr is != null.
27098         (SetDataSource): same.
27099         (OnListManagerCurrentChanged): cached_currencymgr_events ->
27100         cached_currencymgr.
27101
27102 2006-05-31  Jackson Harper  <jackson@ximian.com>
27103
27104         * BindingManagerBase.cs: Remove somedebug code that creeped into
27105         SVN.
27106         * TreeNode.cs: We get the indent level dynamically right now, so
27107         don't track it as a member.
27108         * TreeNodeCollection.cs: Make sure all nodes added to the list
27109         have parents, treeviews/topnodes setup properly.
27110         - Don't attempt to track indent level.
27111
27112 2006-05-30  Jackson Harper  <jackson@ximian.com>
27113
27114         * BindingContext.cs: Create the currency manager tables here.
27115         This allows us to more easily create null tables (when bad data
27116         members are used), and more easily create related currency
27117         managers.
27118         * CurrencyManager.cs: All the table creation stuff is done by the
27119         binding context now.
27120         - Current should throw an exception if listposition is -1.
27121         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
27122         been bound yet.
27123
27124 2006-05-30  Mike Kestner  <mkestner@novell.com>
27125
27126         * ListView.cs: allow reexpansion of zero-width column headers.
27127         Fixes #78528.
27128
27129 2006-05-28  Chris Toshok  <toshok@ximian.com>
27130
27131         * CurrencyManager.cs (get_Current): after the late binding
27132         listposition = -1 fix, we need to guard against it here and return
27133         null, otherwise we raise an exception (which is swallowed
27134         elsewhere, and breaks datagrid databinding.)
27135
27136 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
27137
27138         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
27139           than WM_SYSKEY, don't throw if get something unexpected (#78507)
27140
27141 2006-05-26  Jackson Harper  <jackson@ximian.com>
27142
27143         * ControlPaint.cs:
27144         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
27145         values, it's faster and it's all we care about (we don't care if
27146         the names aren't equal).
27147         * KeyboardLayouts.cs: Eliminate some dead code.
27148         - Lazy init things
27149         * X11Keyboard.cs: Lazy init keyboard detection.
27150         - Cleanup access modifiers a little.
27151
27152 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
27153
27154         * XplatUIX11.cs: Once again, attempting to get layout just right.
27155
27156 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
27157
27158         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
27159           the sizes of each link section, that will result in sizes that
27160           match DrawString's layout (Fixes #78391)
27161
27162 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
27163
27164         * FileDialog.cs: If AddExtension property is true autocomplete the
27165           extensions in SaveFileDialog correctly. Fixes bug #78453.
27166           Set MyNetwork and MyComputer to "C:\" for windows. This should
27167           fix part 8 of bug #78446 for now.
27168
27169 2006-05-26  Chris Toshok  <toshok@ximian.com>
27170
27171         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
27172         invalidate the current row header if we need to, but presumably
27173         we'll invalidate the row corrsponding to the bounds or
27174         editingControl.
27175         (GridHScrolled): switch back to this method, as it's part of the
27176         public api.  *sigh*.
27177         (GridVScrolled): same.
27178         (OnMouseWheel): hack up something that more or less works.  Call
27179         GridHScrolled/GridVScrolled directly, instead of duplicating much
27180         of their code here.
27181         (EnsureCellVisibility): reinstate a bunch of this code, since we
27182         can't just set the scrollbar Value and expect to do all the work
27183         in the ValueChanged handler.  Also, Call Update() after scrolling
27184         in one direction so the other XplatX11.ScrollWindow call has the
27185         proper stuff in the proper places.
27186         (EditCell): set is_editing to true before calling .Edit.
27187
27188         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
27189         don't bother comparing first.
27190         (OnKeyPress): call grid.ColumnStartedEditing before calling
27191         base.OnKeyPress.  this will set is_changing and invalidate the row
27192         header if necessary.
27193         (ProcessKeyMessage): for WM_CHAR messages, call
27194         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
27195         and WM_KEYDOWN.
27196         
27197         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
27198         it's done in the DataGrid.
27199         (NextState): call grid.ColumnStartedEditing, which takes care of
27200         invalidating the row header (and setting is_changing).
27201
27202         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
27203         here.  it's done in the DataGrid.
27204
27205 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27206
27207         * Control.cs: allow changing the cursor when the mouse position is
27208         out of bounds but Capture is set.
27209         * LinkLabel.cs: handle the case when the mouse button is pressed on the
27210         linklabel but released somewhere else.
27211
27212 2006-05-25  Jackson Harper  <jackson@ximian.com>
27213
27214         * TreeView.cs: When we get focus if there is no selected node make
27215         it the top node
27216         - Remove some uneeded setup code from Draw.
27217         * TreeNodeCollection.cs: If the tree doesn't have a top node when
27218         a new node is inserted make the new node the top.
27219         * XplatUIX11.cs:
27220         * Timer.cs: Use Utc time so that no local time zone stuff needs to
27221         be used (should be faster).
27222         
27223 2006-05-25  Chris Toshok  <toshok@ximian.com>
27224
27225         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
27226         problem with the last commit.
27227
27228 2006-05-25  Chris Toshok  <toshok@ximian.com>
27229
27230         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
27231         need the invalidate call here, while scrolling right-to-left via
27232         the left arrow key (i.e. moving the editing cell while scrolling).
27233
27234         * DataGrid.cs (.ctor): remove the initialization of
27235         ctrl_pressed/shift_pressed.  We no longer track them using key
27236         up/down handlers, but by using Control.ModifierKeys.  Also, switch
27237         to using ValueChanged handlers on the scrollbars instead of
27238         Scrolled event handlers.  This simplifies a bunch of the scrolling
27239         code.
27240         (GridHValueChanged): rename from GridHScrolled, and change it to
27241         work with the new event args.
27242         (GridVValueChanged): same.
27243         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
27244         (OnMouseWheel): actually scroll the datagrid.  Don't change the
27245         selected cell.
27246         (ProcessGridKey): correct all the keyboard navigation stuff I
27247         could find.  Ctrl up/down/left/right/home/end work now.
27248         (EnsureCellVisibility): correct method name spelling.  Also,
27249         simplify this a touch by not explicitly calling the
27250         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
27251         scrollbar value.
27252         (OnKeyUpDG): no need for this method now.
27253         
27254 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27255
27256         * LinkLabel.cs: display the OverrideCursor when hovering the label.
27257         Fixes bug #78392.
27258
27259 2006-05-25  Chris Toshok  <toshok@ximian.com>
27260
27261         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
27262         r61019.
27263
27264 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
27265
27266         * Application.cs: Moved setting of is_modal and closing to before
27267           we create the control, to allow the event handlers called as a
27268           result of creation affect closing. Also removed Gonzalo's previous
27269           change to setting DialogResult, the behaviour has been moved to 
27270           Form.ShowDialog()
27271         * Form.cs: 
27272           - ShowDialog(): Removed explicit creation of the form, let RunLoop
27273             handle it instead
27274           - ShowDialog(): If no dialog result is set, we need to return Cancel
27275           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
27276             the close is cancelled
27277
27278 2006-05-25  Jackson Harper  <jackson@ximian.com>
27279
27280         * StatusBar.cs: We only need to update the sizes of the other
27281         panels when we have auto size contents.  Also we are only updating
27282         the contents of the panel, not the borders, so compensate for the
27283         border width (TODO: get this width from the theme somehow).
27284         * TreeView.cs: Scrollable is true by default
27285         - Use invalidate instead of refresh where needed
27286         - Factor the scrollable value into scrollbar updating
27287         - Update the scrollbars if the Scrollable property is altered
27288         - Update the selected node if its ImageIndex is changed
27289         - Handle null nodes in UpdateNode (mainly so we don't have to
27290         check if selected is null when updating it
27291         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
27292         are factored into the visible count
27293         - Use VisibleCount for clarity in the code
27294         - When the font is changed we need to recurse through all the
27295         nodes and invalidate their sizes
27296         
27297 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27298
27299         * Application.cs: set the DialogResult to fixed when the main form is
27300         hidden or destroyed while being modal.
27301
27302 2006-05-25  Miguel de Icaza  <miguel@novell.com>
27303
27304         * Theme.cs: Use Tangoified messagebox icons. 
27305
27306         (GetSizedResourceImage): Also cope with width = 0 and do not
27307         trigger a warning in that case (0 means "give me your icon from
27308         the resouce, no special size needed).
27309
27310 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
27311
27312         * Application.cs: Leave runloop if the the main modal form is 
27313           hidden (fixes #78484)
27314
27315 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
27316
27317         * BindingContext.cs : reject null datasource in Contains() and
27318           Item[].
27319         * CurrencyManager.cs : check data_member validity when data_source
27320           is dataset. When it is late binding, the initial position is -1.
27321
27322 2006-05-24  Jackson Harper  <jackson@ximian.com>
27323
27324         * TreeNodeCollection.cs: Dont't recalculate the visible order on
27325         inserted nodes that aren't visible.  This changes the
27326         max_visible_order which confuses scrollbar settings.
27327         - Use the enumerator to get the prev node instead of duplicating
27328         code.
27329         * TreeView.cs: Use new method for setting scrollbar values
27330         - Don't set the bounds every time the scrollbar is updated
27331         - When updating below the root node use an invalidate instead of a
27332         refresh to prevent the child controls (scrollbars) from being
27333         refreshed. (UpdateBelow still needs to be reworked anyways).
27334         - Reenable SetBottom now that visible orders are set correctly,
27335         added some debug code incase we ever get bad values there again.
27336         - Set the scrollbar max to 2 less then the max value, this
27337         compensates for the max value being one above the node count, and
27338         for scrollbars adding one extra "notch".
27339         - When drawing image nodes if there is an imagelist we draw the
27340         first image in the list if the supplied image index is out of the
27341         image list's bounds.
27342         
27343 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
27344
27345         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
27346           we receive a size change from the WM (Fixes #78503)
27347
27348 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
27349
27350         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
27351           rectangle (Fixes #78501)
27352
27353 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
27354
27355         * ButtonBase.cs: 
27356           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
27357             as a bitfield.
27358           - Fixed MouseMove to no longer switch pressed state unless the left
27359             mouse button is pressed. Atsushi provided the original patch (#78485)
27360           
27361 2006-05-24  Jackson Harper  <jackson@ximian.com>
27362
27363         * ScrollBar.cs: New internal methods that allow us to change a
27364         couple values on the scrollbar (the most common case is maximum
27365         and large change) without getting multiple invalidates.
27366
27367 2006-05-24  Chris Toshok  <toshok@ximian.com>
27368
27369         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
27370         (Edit): save off the original state in oldState, and set
27371         grid.is_editing to true.
27372         (OnKeyDown): abort editing if escape is pressed.  also, call
27373         NextState if space is pressed.
27374         (OnMouseDown): call NextState.
27375         (NextState): factor out shared code from OnKeyDown and OnMouseDown
27376         here.  Also, only invalidate the row header once (on the initial
27377         is_changing switch) to save on redraws.
27378
27379 2006-05-24  Chris Toshok  <toshok@ximian.com>
27380
27381         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
27382         if the value in the cell is different than it was before.  This
27383         keeps us from triggering a layout when we move around a datarid
27384         with a highlighted cell.
27385         (Edit): suspend layout when creating/positining the text box, and
27386         resume passing false so we don't ever actually re-layout.
27387         (ReleaseHostedControl): same.
27388         (EnsureTextBox): reformat slightly, and set WordWrap to false.
27389
27390         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
27391         control-key sequences should go to the datagrid - remove that
27392         lock.  Also, modify the conditions under which we move between
27393         cells when moving the cursor within a cell, and remove the "this"
27394         and "base" from field accesses.  We weren't even consistent, given
27395         they all were in the base class.
27396
27397 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
27398
27399         * Binding.cs : (.ctor)
27400           An obvious NRE fix for BindingTest.CtorNullTest().
27401
27402 2006-05-23  Chris Toshok  <toshok@ximian.com>
27403
27404         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
27405         them between lines.  This fixes some quirks editing cells in the
27406         datagrid.
27407
27408 2006-05-23  Jackson Harper  <jackson@ximian.com>
27409
27410         * TreeView.cs: Use begin/end update when doing expand/collapse all
27411         so that we don't get flicker on the scrollbar.
27412
27413 2006-05-23  Jackson Harper  <jackson@ximian.com>
27414
27415         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
27416         treenode calculations to be independant of the painting code. To
27417         do this nodes track a visible order which is calculated by the
27418         treeview.
27419         - Call new methods for expanding/collapsing nodes.  These methods
27420         use scrollwindow so we don't have to update everything below the
27421         node.
27422         * TreeView.cs: Refactored drawing and scrolling code.  We don't
27423         need to update nodes when drawing anymore or calculate scrollbar
27424         stuff.
27425         - Added new methods for expanding/collapsing nodes. These methods
27426         use ScrollWindow so as to not have to redraw all the nodes below.
27427         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
27428         we add/remove nodes or sort.
27429         - Handle removing the selected and the top node properly.
27430
27431 2006-05-23  Chris Toshok  <toshok@ximian.com>
27432
27433         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
27434         maybe this should actually happen in the datagrid code?
27435         (EndEdit): no need to invalidate anything, given that
27436         ReleaseHostedControl causes the datagrid to relayout, which
27437         invalidates everything anyway.
27438
27439         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
27440         in SetCurrentCell).
27441         (set_SelectionBackColor): call InvalidateSelection instead of
27442         Refresh.
27443         (set_SelectionForeColor): same.
27444         (BeginEdit): Flesh this out a bit.
27445         (CancelEditing): only do any of this if we're editing/adding.
27446         (EndEdit): same.
27447         (OnMouseDown): there's no need to cancel editing here, it's done
27448         in SetCurrentCell.
27449         (SetCurrentCell): only invalidate the current row header if it's a
27450         different row than the new one.
27451         (ShiftSelection): fix this to work like MS does.
27452         (ResetSelection): factor out the invalidation of selected_rows to
27453         InvalidateSelection.
27454         (SetDataSource): cancel any editing that's going on.
27455
27456         * DataGridColumnStyle.cs
27457         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
27458         call the non-interface version.
27459
27460         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
27461         header rectangle with the clip rectangle so we don't redraw the
27462         entire header for just a small area.  Gets rid of the last flicker
27463         when horizontally scrolling.
27464         (DataGridPaintRow): same.
27465
27466 2006-05-23  Mike Kestner  <mkestner@novell.com>
27467
27468         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
27469         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
27470         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
27471         Critical bug report.
27472
27473 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
27474
27475         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
27476           and this fixes #78493
27477
27478 2006-05-23  Miguel de Icaza  <miguel@novell.com>
27479
27480         * Theme.cs (GetSizedResourceImage): Scale images if the proper
27481         size is not found.  
27482         
27483         * FileDialog.cs: Do not change the background for the side bar as
27484         it wont work nicely with the theme, and also reduces the artifacts
27485         in rendering the icons (which I want to fix too).
27486
27487         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
27488         resources, not resgen resources. 
27489
27490         (PlatformDefaultHandler): Pull images using the new API.
27491
27492 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
27493
27494         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
27495           a reference to the hwnd and will not remove it unless there are
27496           no pending exposures (fixes #78341)
27497         * XplatUI.cs: Improved debug
27498
27499 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
27500
27501         * MenuAPI.cs : don't handle OnClick event when it was not the left
27502           button. Fixed bug #78487.
27503
27504 2006-05-23  Mike Kestner  <mkestner@novell.com>
27505
27506         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
27507         prefer submenus to the top menu for item lookup, to avoid popping down
27508         top-row items.
27509
27510 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
27511
27512         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
27513           Graphics.FillRectangle as the visual results are really bad (even
27514           on win). We now draw perfect arrows (and perfect shadows when the
27515           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
27516           Pen.DashPattern to draw the dots of each line.
27517
27518 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
27519
27520         * FileDialog.cs: Update the filename combobox when navigating through
27521           the ListView with the cursor keys. Fixes part 7 of bug #78446.
27522
27523 2006-05-22  Mike Kestner  <mkestner@novell.com>
27524
27525         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
27526         Fixes #78463.
27527
27528 2006-05-22  Mike Kestner  <mkestner@novell.com>
27529
27530         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
27531         requests. Fix a misspelled parameter and a copy paste exception error
27532         in Select.
27533
27534 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
27535
27536         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
27537           to get the same width/height (5/13) on X11 as the default font has on
27538           win32. This means that our DefaultFont emSize is smaller than the 
27539           the MS SWF equivalent (even thought the width/height stays the same)
27540
27541 2006-05-20  Jackson Harper  <jackson@ximian.com>
27542
27543         * MdiClient.cs:
27544         * MdiWindowManager.cs:
27545         * InternalWindowManager.cs: Make sure to use the border width from
27546         the theme.
27547
27548 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
27549
27550         * PrintDialog.cs: Implements printer details
27551
27552 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
27553
27554         * FileDialog.cs: Added focus handling for PopupButtonPanel.
27555           Fixes part 1 and 2 of bug #78446
27556
27557 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
27558
27559         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
27560           instead of sticking to the first ever calculated value
27561
27562 2006-05-19  Mike Kestner  <mkestner@novell.com>
27563
27564         * ComboBox.cs: fix mouse motion selection to use MousePosition and
27565         PointToClient, since Capture is set. Fixes #78344.
27566
27567 2006-05-19  Mike Kestner  <mkestner@novell.com>
27568
27569         * ListView.cs: match MS behavior in Details view where items are not
27570         drawn if Columns.Count == 0. 
27571         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
27572         Use a separate pen to draw the check, since changing the width affects
27573         the box as well.  Fixes #78454.
27574
27575 2006-05-18  Miguel de Icaza  <miguel@novell.com>
27576
27577         * ListView.cs: ArgumentOutOfRangeException, single versions of the
27578         exception should throw the name of the invalid argument.
27579
27580         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
27581         there are no files listed. 
27582
27583 2006-05-18  Jackson Harper  <jackson@ximian.com>
27584
27585         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
27586         up.
27587
27588 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
27589
27590         * Control.cs: Brought back our old UpdateZOrder method as a private
27591           function and switched our calls from UpdateZOrder to the new one.
27592           This fixes the Paint.Net canvas disappearing bug.
27593
27594 2006-05-18  Jackson Harper  <jackson@ximian.com>
27595
27596         * Theme.cs:
27597         * ThemeWin32Classic.cs:
27598         * InternalWindowManager.cs: Move the drawing into the theme,
27599         expose everything the theme should need from the window manager.
27600
27601 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
27602
27603         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
27604           from the call to NativeWindow to avoid walking up the parent chain
27605           further than needed (speeds up setting cursors and avoids setting
27606           the wrong cursor if a parent has another cursor defined)
27607         * Cursor.cs: When loading an icon as cursor, MS uses the center of
27608           the icon as hotspot, not what's contained as hotspot in the icon
27609           file. This fixes the perceived drawing offset seen with Paint.Net
27610         
27611 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
27612
27613         * XplatUIX11.cs: 
27614           - Store the calculated rectangle in Hwnd object and use it when 
27615             setting the client size
27616           - Force Toolwindows to always be type Dock, to ensure they're on top
27617
27618 2006-05-18  Mike Kestner  <mkestner@novell.com>
27619
27620         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
27621         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
27622         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
27623         Substantial refactoring to remove confusing nested classes. Coding
27624         standard and Get+Set->property refactorings.  Shift to index based
27625         highlighting in ComboListBox instead of constantly using IndexOf and
27626         Items[]. Add invalidations on resize for DropDownList to fix ugliness
27627         in FileDialog growth.  Draw borders manually since Simple mode needs
27628         to look like two independent controls.  Make listbox border
27629         conditional to DropDownStyle.  Improved OwnerDraw support.
27630
27631 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
27632
27633         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
27634         Don't set the disposed graphics to null, so we can throw the "right"
27635         exception if the graphics is reused later (added a flag to avoid 
27636         double disposing). Some behaviours are different under 2.0 and are
27637         filled under bug #78448.
27638
27639 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
27640
27641         * Control.cs: When double-buffering is enabled, we need to reset
27642           our graphics context between paint calls. Otherwise, any 
27643           transformations and other alterations on the context will 
27644           become cumulative (#77734)
27645
27646 2006-05-18  Mike Kestner  <mkestner@novell.com>
27647
27648         * ListView.cs: do focused item selection like MS on clicks. 
27649         Rework focus handling for ItemControl so LostFocus invalidates as
27650         well.
27651         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
27652         the ListView ItemControl has focus.
27653
27654 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
27655
27656         * XplatUIX11.cs: If client_window ends up being width or height zero
27657           due to border settings, move it off window inside whole_window (#78433)
27658
27659 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
27660
27661         * Mime.cs: Shrink the mime file cache correctly.
27662
27663 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
27664
27665         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
27666
27667 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27668
27669         * XplatUIX11.cs (AddExpose): More sanity checks
27670
27671 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27672
27673         * XplatUIX11.cs:
27674           - AddExpose: Don't add expose ranges outside the size of our
27675             window
27676           - Cast opacity values to Int32 to avoid crashes with certain
27677             values
27678           - Added disabled code paths that protect against illegal cross-
27679             thread painting (Developers.exe)
27680
27681 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27682
27683         * ProgressBar.cs: Invalidate the control when it's resized
27684           since block size is based on control size. (#78388)
27685
27686 2006-05-16  Miguel de Icaza  <miguel@novell.com>
27687
27688         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
27689         of setting the incoming argument to the "reset" value, we set the
27690         this.datamember to string.empty (before we were invalidating the
27691         incoming data).   
27692
27693         Fixes 78420
27694
27695 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27696
27697         * Form.cs: Only apply transparency settings after the form
27698           is created. (Fixes #77800)
27699
27700 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
27701
27702         * ApplicationContext.cs: Grab the HandleDestroyed event so
27703           we know when to fire OnMainFormClosed 
27704
27705 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27706
27707         * Application.cs: Introduced sub-class to allow tracking of
27708           threads and centralized triggering of the event mess for
27709           ThreadExit, AppExit, etc..  (#76156)
27710
27711 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
27712
27713         * MimeIcon.cs:
27714           - Do not return a null icon index value for a mime subclass.
27715             Instead try the main mime type class too.
27716           - Seems that some newer distributions don't have a link to some
27717             gnome default icons anymore. So check the default gnome dir too.
27718           
27719
27720 2006-05-16  Jackson Harper  <jackson@ximian.com>
27721
27722         * MdiClient.cs: Don't paint the parent background image if we have
27723         our own background image.
27724
27725 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
27726
27727         * Control.cs:
27728           - PerformLayout: Do not shrink space filled by DockStyle.Fill
27729             controls, all filled controls are supposed to overlap (#78080)
27730           - UpdateZOrder is supposed to update the control's z-order in the
27731             parent's z-order chain. Fixed to behave like that
27732           - BringToFront: Removed obsolete code
27733           - SendToBack: Simplyfied
27734           - SetChildIndex: Trigger layout calculations when Z-order changes
27735             since layout is done by z-order
27736
27737 2006-05-16  Chris Toshok  <toshok@ximian.com>
27738
27739         [ fixes bug #78410 ]
27740         * DataGrid.cs (set_AlternatingBackColor): use
27741         grid_drawing.InvalidateCells instead of Refresh().
27742         (set_BackColor): call grid_drawing.InvalidateCells.
27743         (set_BackgroundColor): use Invalidate instead of Refresh.
27744
27745         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
27746         invalidate the cell area.
27747
27748 2006-05-15  Chris Toshok  <toshok@ximian.com>
27749
27750         [ fixes bug #78011 ]
27751         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
27752         on to DataGridPaintRow.
27753         (DataGridPaintRow): take a clip argument, and only draw the cells
27754         which intersect it.  same with the not_usedarea.
27755
27756         * Theme.cs (DataGridPaintRow) add @clip parameter.
27757
27758         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
27759         XplatUI.ScrollWindow.
27760         (ScrollToRow): same.
27761
27762         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
27763         with last column which was causing a gray swath to appear with the
27764         XplatUI.ScrollWindow code.
27765
27766 2006-05-15  Chris Toshok  <toshok@ximian.com>
27767
27768         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
27769         use XplatUI.ScrollWindow.
27770         (VerticalScrollEvent): use XplatUI.ScrollWindow.
27771
27772 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
27773
27774         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
27775
27776 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
27777
27778         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
27779           file since there are no equivalent X11 cursors
27780
27781 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
27782
27783         * MonthCalendar.cs : DateTimePicker should reflect selected date
27784           on mouse*up*, not mouse*down*. Fixed originally reported part of
27785           bug #76474.
27786
27787 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
27788
27789         * TabControl.cs : When argument index is equal or more than tab
27790           count, just ignore. Fixed bug #78395.
27791
27792 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
27793
27794         * Control.cs: Dispose all child controls when control is diposed (#78394)
27795
27796 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27797
27798         * ColorDialog.cs: Finally it is possible to select the color with
27799           the text boxes
27800
27801 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27802
27803         * PrintDialog.cs: Fix typo
27804
27805 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
27806
27807         * PrintDialog.cs: PrintDialog is not resizable
27808         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
27809           color. Made some ToolBar drawing methods protected virtual.
27810
27811 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
27812
27813         * PrintDialog.cs: Implementation of the PrintDialog
27814
27815 2006-05-12  Chris Toshok  <toshok@ximian.com>
27816
27817         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
27818         thumb, instead use MoveThumb.  This has the side effect of making
27819         most of the other thumb moving machinery use MoveThumb as well.
27820         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
27821         need to actually invalidate the rectangle where the new thumb will
27822         go.
27823         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
27824         We force an Update() after, so it's not as fast as it could be,
27825         but at least there's zero flicker and no droppings.
27826         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
27827         (UpdateThumbPos): add another argument (dirty), which says whether
27828         or not to calculate/add dirty regions which we later invalidate.
27829         For cases where we know we're going to use MoveThumb, we pass
27830         false for this.  Otherwise, pass true.
27831
27832 2006-05-12  Jackson Harper  <jackson@ximian.com>
27833
27834         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
27835         the status bar.
27836         
27837 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
27838
27839         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
27840           and GetClipRegion methods and UserClipWontExposeParent property.
27841         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
27842           overriding UserClipWontExposeParent property, setting to false, since
27843           Win32 handles the required expose messages to draw our clipped parent
27844           areas internally
27845         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
27846           PaintEventStart to set the user clip region if set.
27847         * Control.cs: 
27848           - Now internally tracking the Region for the control since we need to
27849             store it if the handle is not yet created and only set it when it
27850             becomes created. Before setting the region forced handle creation
27851           - Added code to draw the parents underneath a user-clipped region
27852         * Hwnd.cs: Added UserClip property
27853
27854 2006-05-12  Chris Toshok  <toshok@ximian.com>
27855
27856         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
27857         (set_Maximum): same.
27858         (set_Minimum): same.
27859         (set_SmallChange): same.
27860         (OnMouseUpSB): remove the call to refresh when releasing the
27861         thumb.  We shouldn't need it.
27862         
27863 2006-05-12  Miguel de Icaza  <miguel@novell.com>
27864
27865         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
27866         AutoSize set to None, we do not need to relayout everything, we
27867         just need to invalidate the current region.
27868
27869         (Draw): Do not draw the entire ClientArea, just redraw the
27870         clip area being passed.
27871
27872         * MdiClient.cs: Make MdiClient constructor with the Form argument
27873         internal. 
27874
27875 2006-05-12  Jackson Harper  <jackson@ximian.com>
27876
27877         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
27878         parents background image,  but strangely not their own.
27879         - (DrawStatusBarPanel): Take into account horizontal alignment
27880         when drawing the strings and icons.
27881
27882 2006-05-12  Mike Kestner  <mkestner@novell.com>
27883
27884         * ListBox.cs: avoid invalidations for focus when the collection is
27885         empty. 
27886
27887 2006-05-12  Chris Toshok  <toshok@ximian.com>
27888
27889         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
27890         invalidate the entire thumb area.  Call InvalidateDirty which
27891         limits the redraw to the thumb itself and surrounding pixels.
27892
27893         * XplatUIX11.cs (ScrollWindow): optimize copying.
27894         
27895 2006-05-12  Chris Toshok  <toshok@ximian.com>
27896
27897         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
27898         Figure out the positioning/layout in a single pass instead of
27899         multiple recursive invocations.  Speeds up the initial display of
27900         the data grid.  Also, make many things private that were
27901         originally public but unused outside this class.
27902
27903 2006-05-11  Jackson Harper  <jackson@ximian.com>
27904
27905         * MdiClient.cs: Improved layout code.
27906
27907 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
27908
27909         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
27910           not SelectedObject.
27911
27912 2006-05-11  Chris Toshok  <toshok@ximian.com>
27913
27914         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
27915         union of that will always be {0,0,width,height}.
27916
27917 2006-05-11  Jackson Harper  <jackson@ximian.com>
27918
27919         * Form.cs: Match MS's DefaultSize for forms (they must have
27920         changed the size in sp2).
27921
27922 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
27923
27924         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
27925
27926 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
27927
27928         * TextControl.cs : Fixed bug #78109. This incorrect position
27929           comparison caused crash on automatic line split.
27930         * TextBoxBase.cs : reduce duplicate code.
27931
27932 2006-05-10  Jackson Harper  <jackson@ximian.com>
27933
27934         * MdiClient.cs: Active form is only sent to the back when using
27935         the Next form functionality, when a form is clicked the current
27936         active shouldn't be sent to the back.
27937         - Layout the mdi windows when the container is first made visible.
27938         * Form.cs: Give the MdiClient a ref to the containing form when we
27939         create it.
27940         
27941 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
27942
27943         * LinkLabel.cs : link_font could be uninitialized, so populate one
27944           before actual use. Fixed bug #78340.
27945
27946 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
27947
27948         * XplatUIX11.cs : clipboard format native value is IntPtr.
27949           Fixed bug #78283.
27950
27951 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27952
27953         * Control.cs: 
27954           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
27955             which is passed up the parent chain by DefWndProc
27956           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
27957             to DefWndProc (#77956)
27958         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
27959
27960 2006-05-10  Jackson Harper  <jackson@ximian.com>
27961
27962         * MdiClient.cs: We need to remove the controls from the mdi
27963         collection, when we close the window.
27964         * MdiWindowManager.cs: Special handling of closing mdi windows.
27965         * InternalWindowManager.cs: Make the close method virtual so the
27966         mdi window manager can handle it specially.
27967
27968 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
27969
27970         * DataGrid.cs:
27971           - Recalculate grid when the data source has changed
27972           - Matches styles provided by user from all data sources types
27973         * DataGridTableStyle.cs: For columns that provided by the user set the
27974         with the preferred value is there was unassigned.
27975         * CurrencyManager.cs: throw OnItemChanged event
27976
27977 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
27978
27979         * PictureBox.cs: Don't animate until handle is created. Start animation
27980           when handle is created.
27981
27982 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27983
27984         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
27985           current codebase.
27986         * XEventQueue.cs: We don't need to provide the extra info
27987
27988 2006-05-10  Jackson Harper  <jackson@ximian.com>
27989
27990         * MdiClient.cs: If the mdi clients parent form has a background
27991         image set, we draw that background image for the mdi area's
27992         background.
27993
27994 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
27995
27996         * TextBoxBase.cs: Set IBeam cursor (#78347)
27997
27998 2006-05-10  Mike Kestner  <mkestner@novell.com>
27999
28000         * ToolBar.cs: fix some text padding issues with ButtonSize
28001         calculation. Update the default size to match MS documentation.
28002         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
28003         button size. Fixes #78296.
28004
28005 2006-05-10  Mike Kestner  <mkestner@novell.com>
28006
28007         * ListBox.cs: use is_visible for scrollbar positioning in case the
28008         control isn't on screen yet.  Fix off by one with Right vs Width
28009         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
28010         
28011 2006-05-10  Jackson Harper  <jackson@ximian.com>
28012
28013         * X11Dnd.cs: Drop to a control with another control on top of it.
28014         * ToolBar.cs: Work on a copy of the buttons list, so that it can
28015         be modified in click handlers. TODO: Look for similar problems in
28016         other controls.
28017
28018 2006-05-09  Jackson Harper  <jackson@ximian.com>
28019
28020         * Form.cs: Window managers need the old window state when setting
28021         window state now.
28022         * InternalWindowManager.cs: Allow the base mdi window manager to
28023         handle more of the MDI only stuff (like maximize buttons).
28024         * MdiWindowManager.cs: Fix some snafus in changing the window
28025         state.  Add all the menu functionality, for both popup and
28026         maximized menus.
28027         * MdiClient.cs: When a new form is selected the currently
28028         activated form is sent to the back, this matches MS.
28029         - Implement a new method to activate the next mdi child window.
28030
28031 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
28032
28033         * Control.cs: 
28034           - Added new InternalCapture method to allow controls to prevent
28035             the capture behaviour on the click handlers
28036           - Switched to use InternalCapture
28037         * ComboBox.cs:
28038           - Using InternalCapture to prevent mouse captures from being released
28039             on mouse button release (Fixes #78100)
28040         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
28041           returns Form borders if a caption is present. (Fixes #78310)
28042
28043 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
28044
28045         * TreeNode.cs: Changed serialization .ctor to not require every field
28046           to be present. (#78265)
28047         * OwnerDrawPropertyBag.cs: Added serialization .ctor
28048
28049 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
28050
28051         * MimeIcon.cs: for is faster than foreach for strings.
28052
28053 2006-05-05  Mike Kestner  <mkestner@novell.com>
28054
28055         * CheckedListBox.cs: update check handling code to not use selected.
28056         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
28057         behavior for visual feedback, motion response, shift/ctrl handling,
28058         and properly deal with all 4 selection modes. Updates to bounds
28059         handling logic.  Add scroll wheel support. [Fixes #77842]
28060
28061 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
28062
28063         * ListView.cs:
28064           - Moved adding of Implicit controls into .ctor. That way, subsequent
28065             creation of the controls will not cause them to think they are 
28066             toplevel windows (fixes #78200 header problem)
28067           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
28068           - Switched visibility setting of header control to use internal field
28069             to avoid triggering handle creation
28070           - Now checking if handle is created before causing a refresh when items
28071             are added (This makes us now match handle creation time with MS)
28072         * Splitter.cs: Removed loading of private splitter cursor, switched to
28073           Cursors version now that that is loading the right ones
28074         * Cursors.cs: Load proper splitter cursors from resources
28075         * Cursor.cs: Added second method of loading resource cursors for the 
28076           VS.Net users amongst us
28077
28078 2006-05-05  Mike Kestner  <mkestner@novell.com>
28079
28080         * ListView.cs: give header_control a minimum size based on the
28081         ListView size.
28082
28083 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
28084
28085         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
28086           window seems to do that with metacity, so set that type. (#78120)
28087
28088 2006-05-05  Mike Kestner  <mkestner@novell.com>
28089
28090         * ListViewItem.cs: fix Details mode checkbox layout bug.
28091         * ThemeWin32Classic.cs: draw a ListView column header for unused space
28092         at the end of the header, if it exists. [Fixes for #78200]
28093
28094 2006-05-04  Jackson Harper  <jackson@ximian.com>
28095
28096         * MdiClient.cs: Add a helper property to get the container form.
28097         * MdiWindowManager.cs: We have to make sure to use the menu origin
28098         when drawing the icons and buttons, this fixes maximized window
28099         icons/buttons on win32.
28100         * InternalWindowManager.cs: Reset the restore captions when a
28101         window goes from Maximized to Minimized and vice versa. Move the
28102         DrawMaximizedButtons into the MdiWindowManager source, tool
28103         windows can't be maximized. NOTE: This could use a little
28104         refactoring if time ever permits.
28105         
28106 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
28107
28108         * TextBox.cs: Add MWFCategoryAttributes
28109         * TextBoxBase.cs: Add MWFCategoryAttributes
28110         * Form.cs: Add MWFCategoryAttributes
28111
28112 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
28113
28114         * Control.cs: Add MWFCategoryAttributes
28115         * ScrollableControl.cs: Add MWFCategoryAttributes
28116
28117 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
28118
28119         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
28120           Divider is true. Fix a little glitch in PropertyToolBar
28121           drawing code
28122
28123 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
28124
28125         * Control.cs:
28126           - Dispose: Call base.Dispose, this causes the disposed event
28127             to be fired (and probably other, more important stuff)
28128           - SetVisibleCore: Set is_visible to true after creating the
28129             window so that the window still gets created invisible (if
28130             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
28131             to generate a WM_ACTIVE message
28132         * Form.cs: Call Dispose when we want to destroy the window, instead of
28133           just destroying the handle (Dispose will do that for us)
28134         * XplatUIX11.cs:
28135           - RootWindow also needs a queue, so we can properly process the
28136             property change events from RootWindow (like Activate)
28137           - Generatic synthetic WM_ACTIVE message when the active window is
28138             being destroyed
28139
28140 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
28141
28142         * LinkLabel.cs: Trigger a recalc of our label dimensions when
28143           bounds are changed
28144
28145 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
28146
28147         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
28148           for determining width and height (image might not be assigned if
28149           we're drawing an imagelist)
28150
28151 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
28152
28153         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
28154         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
28155           height from system
28156         * Theme.cs: No longer returns hardcoded menu height, instead calls
28157           new driver method
28158         * Form.cs (OnLoad): Scaling happens before triggering Load events 
28159           on MS (# 78257)
28160
28161 2006-05-01  Mike Kestner  <mkestner@novell.com>
28162
28163         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
28164
28165 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
28166
28167         * TextBoxBase.cs: Removed Fixme
28168         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
28169
28170 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
28171
28172         * XplatUIX11.cs:
28173           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
28174             the rectangle relative to the parent, considering borders. We
28175             don't really want that.
28176           - ScrollWindow: Fixed warning to be more understandable
28177         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
28178           scrollbars and scroll only the visible area
28179         * RichTextBox.cs: Removed debug output
28180
28181 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
28182
28183         * NumericUpDown.cs (Text): Just use base
28184         * UpDownBase.cs: Ensure txtView is created before using it
28185
28186 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
28187
28188         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
28189           casting to IntPtr to avoid 64bit overflow errors
28190
28191 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
28192
28193         * Control.cs:
28194           - AllowDrop: Don't force handle creation.
28195           - CreateHandle: Added call to tell driver if we're allowed to drop
28196
28197 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
28198
28199         * FileDialog.cs: Remember the last directory not only for the
28200           current instance but also for new FileDialog instances.
28201
28202 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
28203         
28204         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
28205           broke sending async messages
28206
28207 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
28208
28209         * XplatUIX11.cs:
28210           - ScrollWindow: Fixed method. We finally generate expose events again
28211             for scrolled areas. This was causing 'garbage' when scrolling
28212             textbox and other controls that used ScrollWindow
28213           - Switched from using the regular queue for paint events to the MS 
28214             model of 'generating' paint events when the queue is empty.
28215             We use the new XQueueEvent.Paint subclass to store which windows
28216             need painting.
28217           - AddExpose now takes the x/y/width/height of the exposed area
28218             and inserts the window into the paint queue if not already there
28219           - InvalidateWholeWindow: Switched to use new AddExpose method
28220           - UpdateMessageQueue: Added which queue to monitor for paint events
28221           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
28222             the unlikely case nothing above handles it. We reset the expose
28223             pending states to get them off the queue.
28224           - GetMessage: Now pulls a paint event if no other events are in the
28225             queue
28226           - Invalidate: Switched to new AddExpose method
28227           - PeekMessage: Updated to understand pending paint events
28228           - UpdateWindow: Fixed logic bug. We were only updating if the window
28229             didn't need updating. Also switched to sending WM_PAINT directly,
28230             like MS does.
28231         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
28232           and random access Remove(). The random access is needed to handle
28233           UpdateWindow() where a WM_PAINT is sent directly without accessing
28234           the queue.
28235         * ScrollBar.cs: Added Update() calls to cause immediate updates to
28236           allow for better feedback when scrolling. Scrollbars are small and
28237           the immediate update should make it 'feel' more responsive without
28238           slowing things down. ScrollBar still needs it's invaliate logic
28239           updated to not always invalidate the whole bar on certain changes.
28240
28241 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28242
28243         * Control.cs:
28244         (BackColor): if the control does not support a transparent background,
28245         return the default backcolor when the parent backcolor is transparent.
28246
28247 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
28248
28249         * Application.cs: Updated to new StartLoop/GetMessage API
28250         * RichTextBox.cs: Provide some output on RTF parsing errors
28251         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
28252           new queue_id argument to GetMessage and PeekMessage to allow faster
28253           handling of per-thread queues in drivers.
28254         * Hwnd.cs: Added Queue tracking and property
28255         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
28256         * XEventQueue.cs: Added thread trackingA
28257         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
28258         * XplatUIX11.cs:
28259           - Implemented new per-thread queue
28260           - GetMessage: Fixed return/break behaviour on several cases. We were
28261             returning stale messages in some cases, instead of just processing
28262             the next message
28263
28264 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
28265
28266         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
28267
28268 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
28269
28270         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
28271           fixed off-by-one comparisons between Width/Height and Right/Bottom.
28272
28273 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
28274
28275         * PropertyGridView.cs: Fix drop down width.
28276
28277 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
28278
28279         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
28280           a mess in DrawToolBar, so I removed one of them.
28281
28282 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
28283
28284         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
28285           needed (clip). Otherwise we get artifacts.
28286
28287 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
28288
28289         * FixedSizeTextBox.cs: Added constructor to allow specifying which
28290           dimension is fixed
28291         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
28292           and switched FixedSizeTextBox to only be fixed vertical (#78116)
28293         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
28294           if it matches the scale base font (avoids unneeded scaling)
28295
28296 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
28297
28298         * X11DesktopColors.cs: One gtk_init_check should be enough
28299
28300 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
28301
28302         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
28303           match MS behaviour
28304
28305 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
28306
28307         * TextBoxBase.cs: 
28308           - Generate OnTextChanged for Backspace even if we're only deleting
28309             the current selection
28310           - When setting the Text property, only select all text if the
28311             control does not have focus when it is being set. Otherwise
28312             just place the cursor at the beginning of the control
28313
28314 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
28315
28316         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
28317           Added a little helper to draw PropertyGrid ToolBar with a different
28318           border and a different BackColor.
28319         * PropertyGrid.cs: Some background parts didn't get painted with the
28320           correct background color. Added a class that helps us to draw the
28321           correct border for PropertyGridView and a class that helps us to
28322           draw ToolBars with a different backcolor
28323         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
28324
28325 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
28326
28327         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
28328         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
28329
28330 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
28331
28332         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
28333           into the palette entries. Also, since we're working on a copy
28334           we needed to copy the palette back onto the bitmap.
28335         * Cursor.cs: Same fix as XplatUIWin32.cs.
28336
28337 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
28338
28339         * ImageListStreamer.cs: Need to read the var (or we're off)
28340
28341 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
28342
28343         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
28344           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
28345           TextBoxBase.cs: Unused var fixes
28346         * AxHost.cs: Small 2.0 fix
28347         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
28348           as it seems that is what at least Metacity expects. This will make
28349           icons show up on 64bit platforms. We still have some 64bit size
28350           issues, though, since the startup app window size still won't match.
28351
28352 2006-04-25  Mike Kestner  <mkestner@novell.com>
28353
28354         * *.cs: cleanup newly reported exception var unused warnings.
28355
28356 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28357
28358         * ThemeWin32Classic.cs: Button image alignment now matches exactly
28359           ms
28360
28361 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28362
28363         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
28364           image. The image position is always the same, no matter if the
28365           button is pressed or not.
28366
28367 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
28368
28369         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
28370           selection and set the correct filename for SaveFileDialog.
28371           Patch by Emery Conrad.
28372
28373 2006-04-24  Mike Kestner  <mkestner@novell.com>
28374
28375         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
28376         check for item.X outside the ClientRect instead of item.Y. Fixes
28377         #78151.
28378
28379 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28380
28381         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
28382         trust that value blindly and do some sanity check. Fixes bug #77814.
28383
28384 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28385
28386         * ImageListStreamer.cs: save the mask as a 1bpp image.
28387
28388 2006-04-21  Mike Kestner  <mkestner@novell.com>
28389
28390         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
28391         pass Checked and Indeterminate to the Theme Engine. Improve
28392         encapsulation with ListBox.
28393         * ListBox.cs: Keep a StringFormat instead of calculating it every item
28394         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
28395         nested types.  Move all CheckState functionality to CheckedListBox.
28396         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
28397         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
28398         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
28399         single base list. Fix scrollbar sizing and placement to mirror MS.
28400         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
28401         used.
28402         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
28403         for CheckedListBox by using new DrawItemState info.  Center the
28404         checkboxes on the items. Use new StringFormat property.
28405
28406 2006-04-18  Jackson Harper  <jackson@ximian.com>
28407
28408         * Form.cs: MdiChildren don't do default locations the same way as
28409         regular forms.  This prevents a crash when trying to position the
28410         mdi windows.
28411
28412 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
28413
28414         * PropertyGridTextBox.cs: Formatting, copyright
28415         * PropertiesTab.cs: Formatting
28416         * PropertyGrid.cs: Formatting
28417         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
28418           click toggling of values
28419           
28420 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
28421
28422         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
28423         * Control.cs (.ctor): verify_thread_handle is static, don't reset
28424           every time a control is created
28425         * Application.cs: Removed obsolete EnableRTLMirroring method
28426
28427 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
28428
28429         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
28430         SelectedIndex to -1. Fixes bug #78121.
28431
28432 2006-04-17  Jackson Harper  <jackson@ximian.com>
28433
28434         * Binding.cs: Handle null values for Current and BindingContext.
28435         This occurs when binding is a little delayed.
28436         * CurrencyManager.cs: return null for Current when there are no
28437         items in the list.
28438         - Hookup to the listchanged event on the DataView and update
28439         bindings when the list is changed.  This fixes late binding of
28440         controls.
28441
28442 2006-04-17  Jackson Harper  <jackson@ximian.com>
28443
28444         * X11Dnd.cs:
28445         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
28446         Ringenbach.
28447
28448 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
28449
28450         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
28451           place
28452         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
28453           with the correct ButtonState
28454
28455 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
28456
28457         * XplatUIX11.cs: Improved distinguishing between window types to
28458           tell the WM a type closer to what the app wants (Fixes #78107)
28459
28460 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
28461
28462         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
28463           GrabHandle
28464
28465 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
28466
28467         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
28468           drawing code to reflect the size grip changes
28469
28470 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28471
28472         * ImageListStreamer.cs: fix handling of the mask that follows the main
28473         bitmap when deserializing and serialize it properly. The generated mask
28474         should better be a 1bpp image, but I'll do that later.
28475
28476 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
28477
28478         * FileDialog.cs: Show something in the DirComboBox on *nix if the
28479           path doesn't fit into some of our Current.Places
28480
28481 2006-04-13  Jackson Harper  <jackson@ximian.com>
28482
28483         * ComboBox.cs: Use borders instead of drawing our own decorations,
28484         try to obey correct rules for heights.
28485         * Theme.cs:
28486         * ThemeNice.cs:
28487         * ThemeClearLooks.cs:
28488         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
28489         this is now handled by borders.
28490         - Remove unused DrawListBoxDecorationSize method.
28491         
28492 2006-04-13  Mike Kestner  <mkestner@novell.com>
28493
28494         * MenuAPI.cs: null guarding for the disbled click check fixes crash
28495         reported by Alex.
28496
28497 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
28498
28499         * ThemeWin32Classic.cs: 
28500           - Fixed CPDrawStringDisabled
28501           - Corrected drawing of disabled menu items
28502           - Fixed drawing of disabled radio buttons (bug #78095)
28503           - Draw check in a disabled CheckBox with color ControlDark 
28504
28505 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28506
28507         * Form.cs: Use the provided width when calculating the menu size;
28508           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
28509           and ClientSize.Width won't be updated yet
28510         * Application.cs: Use Visible instead of Show() to make form visible,
28511           this way we create the handle later and menusize is considered
28512
28513 2006-04-12  Mike Kestner  <mkestner@novell.com>
28514
28515         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
28516         reporting.
28517
28518 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28519
28520         * TextBox.cs: Implemented context menu
28521
28522 2006-04-12  Mike Kestner  <mkestner@novell.com>
28523
28524         * ListView.cs: implement box selection. fixes #77838.
28525         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
28526
28527 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
28528
28529         * XplatUIX11.cs: Added setting of window type when transient window
28530           is created (metacity would move it otherwise)
28531         * X11Structs.cs: Added WINDOW_TYPE atoms
28532         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
28533           background (the control is Opaque but still wants transparent
28534           backgrounds)
28535
28536 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28537
28538         * Control.cs: Added OnPaintBackgroundInternal to allow controls
28539           that set Opaque but don't mean it (like all ButtonBase-derived
28540           controls) to still draw their background
28541         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
28542           the background
28543
28544 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
28545
28546         * Control.cs (PaintControlBackground): Set the graphics object
28547           on our PaintEvent to null to prevent it from being disposed
28548           when the PaintEvent gets disposed
28549
28550 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
28551
28552         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
28553         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
28554
28555 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
28556
28557         * Control.cs: 
28558           - Added transparency check to BackColor property. Transparent
28559             backgrounds are only allowed if the control styles permit it
28560           - Added recursive painting of parent control background and
28561             foreground if a control with a transparent backcolor is drawn
28562             (Thanks to Tim Ringenback for providing his 'hack' as a base
28563              for this patch) Fixes #77985 and #78026.
28564           - Added Opaque style check before calling OnPaintBackground, no
28565             need to draw the background if the control is opaque
28566           - Removed ControlAccessibleObject owner variable (inherited from
28567             base, no need to define again)
28568           - Added some documentation links explaining the drawing events
28569             and styles
28570
28571 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
28572
28573         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
28574           that the affected control is the located at the left border of our
28575           parent (Fixes #77936)
28576
28577 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28578
28579         * TextBoxBase.cs: When rendering disabled or readonly controls,
28580           draw the background with 'Control' instead of 'Window' color as
28581           long as the user hasn't specifically set a color
28582
28583 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
28584
28585         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
28586           since that won't be updated if the user types text (only if it's
28587           programatically set)
28588
28589 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28590
28591         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
28592           layout changes do to app-triggered resizes will have the proper
28593           display rectangle for layout
28594
28595 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
28596
28597         * ThemeWin32Classic.cs:
28598           - Make use of the SystemBrushes and SystemPens wherever possible
28599           - Corrected some highlight colors
28600           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
28601             drawing
28602         * Theme.cs: Added Empty field to CPColor struct
28603
28604 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
28605
28606         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
28607           is displayed when calculating the display rectangle. Thanks to Mike
28608           for teaching me the err of my ways.
28609
28610 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
28611
28612         * ScrollableControl.cs:
28613           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
28614             (instead of 0,0) and we now return the real width/height instead of
28615             just the clientrectangle, adjusted for padding. The rectangle is
28616             now cached and created by the new CalculateDisplayRectangle method.
28617           - Created new CalculateDisplayRectange method, which basically does
28618             what get_DisplayRectangle() did originally, but now using the 
28619             right edge instead of DisplayRectangle to determine the size of
28620             our scrollbars
28621           - get_Canvas(): Fixed it to properly calculate canvas for 
28622             right/bottom controls which seem to be placed to the right/bottom
28623             of any controls that have a fixed location
28624           - Removed TODO that's taken care of
28625           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
28626             and SetDisplayRectLocation according to new MSDN2 docs
28627           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
28628             event when that is called, this is added for compatibility
28629           - ScrollControlIntoView(): Implemented.
28630           - Switched scrollbars to be implicit, they shouldn't be selectable
28631         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
28632           call it when the active control is set/changed
28633         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
28634         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
28635           implicit_control variable (used for native Win32 message generation)
28636         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
28637           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
28638         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
28639         * XplatUIStructs.cs: Added ScrollBarCommands enum
28640
28641 2006-04-10  Jackson Harper  <jackson@ximian.com>
28642
28643         * ButtonBase.cs:
28644         * CheckedListBox.cs:
28645         * ComboBox.cs:
28646         * DataGrid.cs:
28647         * DataGridView.cs:
28648         * Form.cs:
28649         * GroupBox.cs:
28650         * ListBox.cs:
28651         * PrintPreviewControl.cs:
28652         * ProgressBar.cs:
28653         * PropertyGrid.cs:
28654         * Splitter.cs:
28655         * StatusBar.cs:
28656         * TrackBar.cs:
28657         * UpDownBase.cs: Fixup base event overrides.
28658         
28659 2006-04-06  Mike Kestner  <mkestner@novell.com>
28660
28661         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
28662         all user-initiated value changes to min <= value <= max-thumbsz+1.
28663         (set_Value): check for vert/horiz when calculating new thumb position.
28664         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
28665         like MS does.
28666         (OnMouseMoveSB): refactor the thumb dragging code and refine
28667         invalidation logic to reduce flicker.
28668         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
28669         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
28670         (UpdateThumbPosition): small code readability cleanup
28671
28672 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
28673
28674         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
28675           different
28676
28677 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
28678
28679         * ThemeNice.cs: Use a better graphics effect when a button is pressed
28680
28681 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
28682
28683         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
28684         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
28685           This dramatically reduces the number of Pen.Dispose calls. 
28686           Where possible call ResPool methods only once instead of calling it
28687           over and over again (for example for the same color).
28688
28689 2006-04-06  Mike Kestner  <mkestner@novell.com>
28690
28691         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
28692         Also remove an unused private field on the collection. Fixes #77972.
28693
28694 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
28695
28696         * ThemeNice.cs: Added ToolBar drawing code
28697
28698 2006-04-06  Mike Kestner  <mkestner@novell.com>
28699
28700         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
28701         I'm assuming that means we need to look up the toplevel for the
28702         provided control. Fixes the crash trace in #77911 but exposes another
28703         crash in some strange reflection usage in NDocGui.
28704
28705 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
28706
28707         * ThemeNice.cs: Gave it a little silver touch and added Images
28708           method
28709         * FontDialog.cs: FontDialog is not resizable
28710         * FileDialg.cs: Added SizeGripStyle.Show
28711
28712 2006-04-05  Jackson Harper  <jackson@ximian.com>
28713
28714         * KeyboardLayouts.cs: Remove warning.
28715
28716 2006-04-05  Jackson Harper  <jackson@ximian.com>
28717
28718         * Control.cs: Enable OnPaintInternal so we can use it for drawing
28719         all of our controls instead of Paint +=.
28720         * ListBox.cs:
28721         * ListView.cs:
28722         * MenuAPI.cs:
28723         * MessageBox.cs:
28724         * NotifyIcon.cs:
28725         * ProgressBar.cs:
28726         * ScrollBar.cs:
28727         * Splitter.cs:
28728         * StatusBar.cs:
28729         * TabControl.cs:
28730         * TextBoxBase.cs:
28731         * ToolBar.cs:
28732         * TrackBar.cs:
28733         * UpDownBase.cs:
28734         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
28735         use OnPaintInternal. Remove Width/Height and Visible checks in
28736         paint handler, this is done at a higher level now.
28737         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
28738         * PaintEventArgs.cs: Add a handled flag so controls that don't
28739         want anymore painting after OnPaintInternal can make sure OnPaint
28740         isn't called.
28741
28742 2006-04-05  Mike Kestner  <mkestner@novell.com>
28743
28744         * Form.cs: fix the menu WndProc hacks to respect the native enabled
28745         state of the form, so that we don't process events when Modal dialogs
28746         are up. Fixes #77922.
28747
28748 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
28749
28750         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
28751           checking is done.
28752
28753 2006-04-05  Mike Kestner  <mkestner@novell.com>
28754
28755         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
28756
28757 2006-04-05  Mike Kestner  <mkestner@novell.com>
28758
28759         * ListView.cs (HeaderMouseMove): null guarding for the over column
28760         when setting up the drag_to_index.  Fixes #78015.
28761
28762 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
28763
28764         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
28765           in the taskbar. Transient windows seem to accomplish that.
28766
28767 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
28768
28769         * Form.cs:
28770           - Re-enabled CreateParams.X/Y code for FormStartPosition
28771           - Added code for manual placement when creating the Control
28772           - Incomplete patch to treat MDI forms differently when
28773             setting the ClientSizeCore. (Still need to figure out handling
28774             x/y coords there)
28775         * XplatUIX11.cs:
28776           - When we're explicitly setting the X/Y position of a non-Child
28777             window, let the WM know. Metacity really wants this.
28778
28779 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28780
28781         * ThemeNice.cs: Added CPDrawButton
28782
28783 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28784
28785         * ThemeNice.cs: Changed the color for focused buttons and activated
28786           the arrows for small scroll buttons.
28787
28788 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
28789
28790         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
28791           anymore. Changed some method modifiers to protected (virtual)
28792         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
28793           changes
28794         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
28795           Updated drawing of menus, buttons and progressbars; added
28796           CPDrawBorder3D 
28797
28798 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28799
28800         * ImageListStreamer.cs: implemented serialization/deserialization
28801         of the images.
28802
28803 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
28804
28805         * ThemeWin32Classic.cs:
28806           - Removed all the DrawFrameControl stuff; CPDrawButton,
28807             CPDrawCheckBox and CPDrawRadioButton are now handled directly
28808             inside the methods
28809           - Updated and corrected the drawing code of CPDrawButton,
28810             CPDrawCheckBox and CPDrawRadioButton to better match ms
28811           - Updated theme checkbox and radiobutton code to use the CP*
28812             methods
28813
28814 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
28815
28816         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
28817           bug is fixed
28818
28819 2006-03-31  Jackson Harper  <jackson@ximian.com>
28820
28821         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
28822         sometimes.
28823         * UpDownBase.cs: Don't CreateGraphics manually, use a
28824         Refresh. Ideally we would invalidate the correct areas here.
28825
28826 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
28827
28828         * XplatUIX11.cs: 
28829           - We now track the mapping state of windows. If a window (or 
28830             one of it's parents) is not mapped we no longer permit
28831             WM_PAINT messages to be generated since we'd otherwise get 
28832             lots of BadMatch X errors. Jackson did all the work figuring
28833             out the problem.
28834           - Destroying the caret if the window it's contained in is 
28835             destroyed. Can't use regular DestroyCaret method since it
28836             might fall into a drawing function (trying to remove the
28837             caret) and with that generate new BadMatch errors. Again,
28838             Jackson tracked this down.
28839           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
28840             make sure we send the messages to all windows. (The old code
28841             would send the WM_DESTROY to the window, and then all child
28842             windows would be 'gone' because the WM_DESTROY handle lookup
28843             would no longer find the destroyed window)
28844         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
28845         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
28846
28847 2006-03-31  Jackson Harper  <jackson@ximian.com>
28848
28849         * ScrollableControl.cs: Dont recalc if we are not visible.
28850
28851 2006-03-31  Mike Kestner  <mkestner@novell.com>
28852
28853         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
28854         the visibility branch.
28855
28856 2006-03-31  Jackson Harper  <jackson@ximian.com>
28857
28858         * ScrollBar.cs: Cap values when incrementing/decrementing.
28859
28860 2006-03-31  Mike Kestner  <mkestner@novell.com>
28861
28862         * MenuAPI.cs: setup menu.tracker for popup/context menus.
28863         * ToolTip.cs: guard against timer expirations with no active control.
28864         Not sure why it happened.
28865
28866 2006-03-31  Mike Kestner  <mkestner@novell.com>
28867
28868         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
28869         text.
28870         * ToolTip.cs: Position the tooltip based on where the cursor is at
28871         popup time, not at MouseEnter time.  Add a Down state so that we don't
28872         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
28873         positioning offset. Lookup DisplaySize at positioning time, since it
28874         can theoretically change during invocation.
28875         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
28876         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
28877
28878 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28879
28880         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
28881           Fixes behaviour when the Text property of the box is String.Empty
28882
28883 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
28884
28885         * XplatUIX11.cs: Only send mouseleave for our client windows, not
28886           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
28887           a window)
28888
28889 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28890
28891         * FileDialog.cs: Visual enhancement for the popup buttons in 
28892           PopupButtonPanel
28893
28894 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
28895
28896         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
28897           code
28898
28899 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
28900
28901         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
28902           highlighted menu items to match ms
28903
28904 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
28905
28906         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
28907
28908 2006-03-30  Mike Kestner  <mkestner@novell.com>
28909
28910         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
28911         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
28912         go active to account for HotLight to Selected transition.
28913         * MenuItem.cs: add internal Selected prop. Fill out the Status
28914         property by calculating it from item info. Add HotLight,
28915         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
28916
28917 2006-03-30  Mike Kestner  <mkestner@novell.com>
28918
28919         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
28920
28921 2006-03-29  Jackson Harper  <jackson@ximian.com>
28922
28923         * Form.cs: Implement TODO.
28924
28925 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
28926
28927         * PrintPreviewDialog.cs: Implemented missing methods and events; still
28928           missing proper dialog setup in the constructor
28929
28930 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
28931
28932         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
28933         * Control.cs:
28934           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
28935           - Fixed ResetBindings and removed TODO
28936           - Added check for cross-thread calls to get_Handle()
28937           - Added Marshaller attribute for set_Font to satisfy class status
28938         * FontDialog.cs: Removed TODOs that seemed implemented
28939         * UpDownBase.cs: Removed unneeded TODO and Fixme
28940         * MessageBox.cs: Implemented support for Default button and removed TODO
28941         * FileDialog.cs: Removed obsolete TODO
28942         * DomainUpDown.cs: Removed obsolete TODO
28943         * ButtonBase.cs: Removed obsolete TODO
28944         * XplatUIWin32.cs: Removed obsolete TODO
28945         * Form.cs:
28946           - Removed obsolete TODO
28947           - Calling CheckAcceptButton when the acceptbutton is changed to allow
28948             internal status updates
28949           - Making sure the active control is selected when the control is created
28950         * CurrencyManager.cs: Removed obsolete TODO
28951
28952 2006-03-29  Mike Kestner  <mkestner@novell.com>
28953
28954         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
28955         of PrintPreviewDialog and RichTextBox.
28956
28957 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
28958
28959         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
28960           DarkDark, Light and LightLight colors for a specific color
28961         * ThemeWin32Classic.cs:
28962           - Use Button drawing code to draw RadioButtons and CheckBoxes with
28963             Appearance = Button 
28964           - Make use of the new ResPool helper CPColor
28965           - Draw ProgressBar and StatusBar with correct 3D borders
28966
28967 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
28968
28969         * ColorDialog.cs: Return selected color. Fixes bug #77940.
28970
28971 2006-03-28  Mike Kestner  <mkestner@novell.com>
28972
28973         * ListView.cs: fix Icon layout to plan for scrollbar widths when
28974         calculating col/row counts.
28975
28976 2006-03-28  Mike Kestner  <mkestner@novell.com>
28977
28978         * ColumnHeader.cs:
28979         * ListView.cs:
28980         * ListViewItem.cs:
28981         * Menu.cs: 
28982         switch to explicit interface method implementation for some methods
28983         corcompare identifies as inconsistent with MS.
28984
28985 2006-03-28  Mike Kestner  <mkestner@novell.com>
28986
28987         * MainMenu.cs: 
28988         * Menu.cs:
28989         add a few missing methods from the class status output.
28990
28991 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
28992
28993         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
28994           correct.
28995
28996 2006-03-28  Mike Kestner  <mkestner@novell.com>
28997
28998         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
28999
29000 2006-03-27  Mike Kestner  <mkestner@novell.com>
29001
29002         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
29003         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
29004
29005 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
29006
29007         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
29008
29009 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
29010
29011         * ThemeWin32Classic.cs:
29012           - GroupBox: Inserted a little gap between the text and the lines
29013             on the right side
29014           - Made the code in CPDrawBorder3D more readable
29015           - Corrected the drawing location of the up and down arrows in 
29016             CPDrawScrollButton
29017
29018 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
29019
29020         * ControlPaint.cs: Corrected line widths in DrawBorder for
29021           ButtonBorderStyle Inset and Outset
29022
29023 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
29024
29025         * ThemeWin32Classic.cs:
29026           - Rewrote the totally broken CPDrawBorder3D method. That was
29027             one of the main problems for the terrific ThemeWin32Classic
29028             look
29029           - Updated and corrected Button drawing
29030           - Correct the dimensions of the SizeGrip to match ms ones
29031           - Removed a small drawing glitch in DrawComboBoxEditDecorations
29032         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
29033           Border3DStyle.Sunken to match ms.
29034
29035 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
29036
29037         * ThemeWin32Classic.cs: First small part of the "de-uglify
29038           ThemeWin32Classic" effort, SizeGrip
29039
29040 2006-03-24  Jackson Harper  <jackson@ximian.com>
29041
29042         * XplatUIX11.cs: Give a max idle time of one second, this matches
29043         MS and forces an Idle event every second when there are no other
29044         events in the queue.
29045
29046 2006-03-24  Mike Kestner  <mkestner@novell.com>
29047
29048         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
29049         * ListView.Item.cs: fix layout issues with null image lists and images
29050         smaller than checkbox size.
29051         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
29052         mode like MS does.  It's weird, but consistent.  ;-)
29053         Fixes #77890.
29054
29055 2006-03-24  Mike Kestner  <mkestner@novell.com>
29056
29057         * ListView.cs: Scroll wheel support for the item control.  Fixes
29058         #77839.
29059
29060 2006-03-23  Jackson Harper  <jackson@ximian.com>
29061
29062         * ScrollableControl.cs: Special case negative sized areas, not
29063         zero.
29064         * MonthCalendar.cs: Save the rect of the clicked date so we can
29065         use it for invalidation.
29066         - Try to cut down on the number of invalidates
29067         - Invalidate the rect the mouse is over and was over when moving
29068         the mouse, so we get the focus box following the cursor.
29069
29070 2006-03-23  Mike Kestner  <mkestner@novell.com>
29071
29072         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
29073         focus rectangle drawing. Fixes #77835.
29074
29075 2006-03-23  Mike Kestner  <mkestner@novell.com>
29076
29077         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
29078         the if and else if and reverting back to the original == check on the
29079         None conditional.
29080
29081 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
29082
29083         * FontDialog.cs: Update the example panel if the selected index of
29084           the fontListBox changes.
29085
29086 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
29087
29088         * FileDialog.cs: Make FileDialog remember which directory it was in
29089           last in the same execution.
29090
29091 2006-03-22  Mike Kestner  <mkestner@novell.com>
29092
29093         * FileDialog.cs: make the DropDownMenu on the toolbar display
29094         RadioChecks since they are mutually exclusive and that's what MS does.
29095
29096 2006-03-22  Mike Kestner  <mkestner@novell.com>
29097
29098         * Theme.cs: add Color param to CPDrawMenuGlyph.
29099         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
29100         checks and radio marks and arrows are visible on highlighted items.
29101         * ControlPaint.cs: update to use new Theme signature.
29102
29103 2006-03-22  Mike Kestner  <mkestner@novell.com>
29104
29105         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
29106         is active. Fixes #77870.
29107
29108 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
29109
29110         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
29111           to be focused/selected after startup
29112
29113 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
29114
29115         * ColorDialog.cs: 
29116           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
29117             CustomColors and ShowHelp properties
29118           - Some internal rewrites to get better results when using the
29119             ColorMatrix
29120
29121 2006-03-22  Mike Kestner  <mkestner@novell.com>
29122
29123         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
29124         HoverSelection.  Fixes #77836.
29125
29126 2006-03-22  Mike Kestner  <mkestner@novell.com>
29127
29128         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
29129         ToggleButtons.  (De)Sensitize the Back button around a stack count of
29130         1, not 0.  Update ButtonSize based on a pixel count of the win32
29131         control.  Adjust the toolbar size/location for new button size.
29132
29133 2006-03-22  Jackson Harper  <jackson@ximian.com>
29134
29135         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
29136         true.
29137         * ScrollBar.cs: When doing increments and decrements we need to
29138         set the Value property so that ValueChanged gets raised. A
29139         possible optimization here would be to make an internal SetValue
29140         that doesn't invalidate immediately.
29141         * ToolTip.cs: Tooltips get added to their container (when
29142         supplied) so they get disposed when the container is disposed.
29143         - Don't create tooltips for String.Empty. This prevents all these
29144         little 2-3 pixel windows from showing up when running nunit-gui
29145         and driving me mad.
29146         * Form.cs: Don't set topmost when setting the owner if the handles
29147         haven't been created yet.  The topmost set will happen when the
29148         handles are created.
29149
29150 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
29151
29152         * XplatUIX11.cs:
29153           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
29154           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
29155             visible (to allow them to recalculate their sizes)
29156
29157 2006-03-21  Mike Kestner  <mkestner@novell.com>
29158
29159         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
29160         methods. Removed a ton of redundant code.  Still not really happy with
29161         the border rendering, but I think that's mainly because of the
29162         ControlDarkDark being black instead of a dark grey. Depending on how 
29163         close we want to be, we might want to revisit those color choices.
29164         Among the new features added during the refactor were DropDownArrow
29165         pressed rendering, Disabled image rendering.  Proper flat appearance
29166         boundary rendering.  Removed the Divider and Wrapping dividers since I
29167         can't figure out any combination of themes and conditions to make the
29168         MS control draw a horizontal line on a toolbar despite what the
29169         Divider property docs indicate.
29170         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
29171         conditions and incorrect layout.  Updated to coding standard.
29172         * ToolBarButton.cs: refactored layout and positioning code from
29173         ToolBar to here.  Invalidate wherever possible instead of forcing
29174         redraws of the whole toolbar. 
29175         (Known remaining issues: explicit ButtonSize smaller than provided
29176         images.)
29177
29178 2006-03-21  Mike Kestner  <mkestner@novell.com>
29179
29180         * ContextMenu.cs (Show): use the position parameter instead of just
29181         showing at the MousePosition.
29182
29183 2006-03-21  Jackson Harper  <jackson@ximian.com>
29184
29185         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
29186         control handle this.
29187         * TreeNodeCollection.cs: If we are clearing the root node we need
29188         to reset top_node so calcs can still happen.
29189         * ThemeWin32Classic.cs: This is a Flags so we need to check
29190         properly.
29191         
29192 2006-03-21  Jackson Harper  <jackson@ximian.com>
29193
29194         * DataGrid.cs: Create columns when the binding context has been
29195         changed.
29196         * X11Structs.cs: Keysyms are uints.
29197         - Add size to fix build.
29198
29199 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
29200
29201         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
29202           XplatUIOSX.cs: 
29203           - Added ResetMouseHover method to allow controls to retrigger
29204             hovering if they need it more than once
29205           - Implemented MouseHoverTime and MouseHoverSize properties
29206         * Timer.cs: Start() must reset the interval
29207         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
29208           properties
29209
29210 2006-03-21  Jackson Harper  <jackson@ximian.com>
29211
29212         * X11Keyboard.cs: improved layout detection. Move the nonchar
29213         tables into this file.
29214         * KeyboardLayouts.cs: Move the tables into resource files.
29215
29216 2006-03-21  Mike Kestner  <mkestner@novell.com>
29217
29218         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
29219
29220 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
29221
29222         * Mime.cs: Various speed optimizations. Looking up mime types
29223           is now 2 times faster than before
29224
29225 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
29226
29227         * CreateParams.cs: Added internal menu field
29228         * Control.cs: 
29229           - Switched call order for UpdateBounds; now we always call
29230             the one that also takes ClientSize, and we're calculating the 
29231             client size via driver method in the others. The previous
29232             method of tracking client size by difference wasn't working
29233             for forms where even the starting client size wouldn't match
29234             the overall form size (due to borders) (Part of fix for #77729)
29235           - CreateParams(): Do not use parent.Handle unless the handle is
29236             already created. Causes havoc with Nexxia and throws off our
29237             creation of controls
29238         * XplatUIX11.cs:
29239           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
29240           - Switched handling of ConfigureNotify over to new PerformNCCalc 
29241             method (consolidates code)
29242           - Changed RequestNCRecalc to use new PerformNCCalc method
29243           - Added calls to RequestNCRecalc when menus and borders are changed
29244             to allow app to set NC size. (Part of fix for #77729) This matches
29245             when MS send a WM_NCRECALC on Win32 windows.
29246           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
29247             (Part of fix for #77729). This matches what MS does, they also
29248             send that message when the form is made visible.
29249           - XException.GetMessage: Improved usability of X errors by including
29250             a translation of the window into Hwnd and Control class
29251           - Improved debug info for window creation, reparenting and destruction
29252           - Created helper method WindowIsMapped() [Currently not used]
29253         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
29254         * Form.cs:
29255           - CreateParams: Now setting our menu on the new internal menu field
29256           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
29257             avoid calculating the same property twice
29258         * Hwnd.cs:
29259           - Improved usability of ToString() for debugging purposes
29260           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
29261             determine the height of the menu, instead of just the font. This
29262             required to also create a graphics context and to keep a bmp 
29263             around (for performance reasons)
29264
29265 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
29266
29267         * MenuAPI.cs: Added OnMouseUp method
29268         * Form.cs:
29269           - Now remembering the requested client size, avoids size errors
29270           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
29271             instead of base if the menu is active. This is required due to
29272             control now capturing and releasing on down/up and it would
29273             prematurely release our menu capture
29274
29275 2006-03-17  Jackson Harper  <jackson@ximian.com>
29276
29277         * KeyboardLayouts.cs: Add the czech layouts.
29278
29279 2006-03-16  Jackson Harper  <jackson@ximian.com>
29280
29281         * Control.cs: Use the viewport space when sizing not the controls
29282         client size, so things like ScrollableControl that effect the
29283         viewport size (when scrollbars are added) are computed correctly.
29284         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
29285         of ManagerEntrys.
29286         - Handle creating BindingManagers for null data sources.
29287         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
29288         source, otherwise when rows are added they are added to the 'fake'
29289         datasource and we will crash when trying to set the position in
29290         those rows.
29291         - Use Implicit scrollbars on the datagrid so they arent
29292         selectable.
29293         
29294 2006-03-16  Jackson Harper  <jackson@ximian.com>
29295
29296         * Binding.cs:
29297         * InternalWindowManager.cs:
29298         * MdiWindowManager.cs:
29299         * X11Keyboard.cs: I really want Mike to love me again (fix
29300         compiler warnings).
29301
29302 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
29303
29304         * DataGrid.cs:
29305           - OnMouseDown: Switch to editing mode when clicking on the cell
29306                          even if we're clicking on the cell that's currently 
29307                          selected
29308           - ProcessGridKey: Left/Right now wrap like MS.Net does
29309           - ProcessGridKey: Tab now knows to add a new row when tab is
29310                             pressed in the cell of the last column of the 
29311                             last row
29312           - ProcessGridKey: Enter now adds another row  if pressed in the last
29313                             row and selectes the new row, same column cell
29314           - ProcessGridKey: Home/End navigate columns, not rows, like 
29315                             originally implemented
29316           - Broke ProcessKeyPreview code out into an extra Internal method
29317             so it can be called from the edit code
29318         * DataGridTextBox.cs (ProcessKeyMessage):
29319           - Switched to accept Tab keypresses
29320           - Added F2 handling to allow jumping to the end of the edited cell
29321           - Added logic to allow moving caret left/right inside edited cell
29322             and making the edited cell jump when the caret hits cell borders
29323           - Tab and Enter are now passed to the datagrid after being handled
29324         * TextBoxBase.cs:
29325           - Removed capture code now that Control handles it
29326           - set_SelectionStart now ensures caret is visible
29327
29328 2006-03-16  Jackson Harper  <jackson@ximian.com>
29329
29330         * TrackBar.cs: Debackwards the increment/decrement for handling
29331         mouse clicks on the bar with vertical trackbars.
29332         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
29333         bottom to match MS.
29334
29335 2006-03-16  Mike Kestner  <mkestner@novell.com>
29336
29337         * ListView.cs: make shift/ctrl keyboard and mouse selection 
29338         consistent with the MS control. Fix a bug in
29339         SelectedListViewItemCollection.Clear that was pissing me off for the
29340         better part of a day because the collection was being altered
29341         underneath us as we walked the list.
29342
29343 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
29344
29345         * Control.cs: Not sure how we could miss this so long, but it seems
29346           that MS.Net has Capture set all the way from before calling 
29347           OnMouseDown through sending the mouse events until after
29348           OnMouseUp. This will fix DataGrid's selection being set to end
29349           at the location of the MouseUp.
29350
29351 2006-03-15  Jackson Harper  <jackson@ximian.com>
29352
29353         * BindingContext.cs: Check the binding after its added so that it
29354           can initialize the binding managers and hookup to events.
29355         * Binding.cs: Data members seem to sometimes include rows/cols in
29356           the format Row.Column we now take this into account.
29357           - Hookup to the position changed event so we can update the
29358           control when the position has changed in the data set.
29359         * CurrencyManager.cs: Take into account the row/col naming
29360           convention when creating dataset tables.
29361         * BindingContext.cs: Using a newer better way of storing
29362           datasource/datamember pairs.  Hopefully this better matches MS for
29363           looking up binding managers.
29364
29365
29366 2006-03-15  Jackson Harper  <jackson@ximian.com>
29367
29368         * BindingContext.cs: The currency manager needs the data member
29369         name, if the member is a data set we use the name to find the
29370         correct table.
29371         * CurrencyManager.cs: When creating the list prefer an IList over
29372         an IListSource.
29373         - Attempt to create a DataTable from a DataSet (TODO: might need
29374         some better error checking here, although MS doesn't seem to have much)
29375         - If we have a DataTable create a view and use it as our list.
29376
29377 2006-03-15  Mike Kestner  <mkestner@novell.com>
29378
29379         * ListView.cs: keep a matrix of the icon mode layout to facilitate
29380         keyboard navigation. Support Up/Down/Left/Right selection correctly
29381         for all 4 View modes.
29382         * ListViewItem.cs: add internal row/col fields for icon layouts.
29383
29384 2006-03-15  Jackson Harper  <jackson@ximian.com>
29385
29386         * TabControl.cs: Redraw the tabs when we resize so their newly
29387         calculated sizes are drawn on screen.
29388         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
29389         composite characters.
29390         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
29391         - filter events so that composite characters can be created
29392         patches by peter
29393         * X11Structs.cs: Add XIMProperties enum.
29394
29395 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
29396
29397         * Control.cs (BringToFront, SendToBack): Don't use window or handle
29398           unless it's created
29399
29400 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
29401
29402         * Control.cs (PerformLayout): We don't need to consider visiblity
29403           for anchoring, only for docking. This fixes 'whacky' alignment
29404           in listbox and other controls that use implicit scrollbars after
29405           the previous PerformLayout patch
29406         * ListBox.cs: Switched to use implicit scrollbars
29407           
29408 2006-03-14  Mike Kestner  <mkestner@novell.com>
29409
29410         * ToolBar.cs: 
29411         * VScrollBar.cs:
29412         - chain up the "new event" overrides to base and use
29413         OnEvent to raise them.  Part of fix for bug #76509.
29414
29415 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
29416
29417         * FileDialog.cs: Do not select an item in the parent directory
29418           on backspace
29419
29420 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
29421
29422         * Control.cs (PerformLayout): It would seem that we considered
29423           invisible windows for our layout. Not quite the right thing
29424           to do. Now we don't any longer, thereby fixing bug #76889.
29425
29426 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
29427
29428         * Control.cs (CanFocus): I goofed. A control can have focus 
29429           even though it's not selectable. Made it match MS docs.
29430
29431 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29432
29433         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
29434           center by default (fixes #76895)
29435         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
29436           all uses of Border3DSides.All with the explicit ORd together
29437           Left|Right|Top|Bottom because I assume that nobody was aware 
29438           that All also implies a center fill. Most places I checked had
29439           a fill right above.
29440         * ProgressBarStyle.cs: Added
29441
29442 2006-03-13  Mike Kestner  <mkestner@novell.com>
29443
29444         * ListView.cs: fix breakage in drag shadow header positioning 
29445         from Peter's csc compilation fix.
29446
29447 2006-03-13  Mike Kestner  <mkestner@novell.com>
29448
29449         * ListView.cs: fix NRE produced by backspacing twice in a focused
29450         FileDialog.
29451
29452 2006-03-13  Mike Kestner  <mkestner@novell.com>
29453
29454         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
29455
29456 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29457
29458         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
29459           be changed
29460         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
29461           the allowed size before making programmatic size changes
29462
29463 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
29464
29465         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
29466           set, metacity is broken and will still use the emty sizes in 
29467           the struct. (Fix for #77089)
29468
29469 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
29470
29471         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
29472           WindowExStyles and marked both enums as Flags
29473         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
29474           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
29475           to match WindowStyles split
29476         * XplatUIX11.cs:
29477           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
29478           - Updated to match WindowStyles split
29479         * XplatUIWin32.cs:
29480           - Fixed FosterParent creation, was using ExStyle on the Style field
29481             (This should help with Popup focus issues)
29482           - Updated to match WindowStyles split
29483
29484 2006-03-13  Jackson Harper  <jackson@ximian.com>
29485
29486         * MdiWindowManager.cs: Use the system menu height. Fixes some
29487         strange sizing issues.
29488
29489 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
29490
29491         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
29492         * TextBoxBase.cs:
29493           - Scroll to caret after inserting text (#77672)
29494           - Make scroll range one pixel higher, fixes off-by-one error (and
29495             makes underlines visible on the last line)
29496
29497 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
29498
29499         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
29500           the keyboard state from being stuck with keys in 'pressed' state when
29501           focus is switched away via keyboard
29502         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
29503           reset the keyboard if no X11 KeyUp events are expected to come
29504         * X11Structs.cs: Switched type of Visible to bool to match driver
29505
29506 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
29507
29508         * TextControl.cs:
29509           - Switched caret to be just 1 pixel wide, matches MS and looks less
29510             clunky
29511           - Moved caret display 1 pixel down from the top of the control
29512             to improve view
29513           - InsertCharAtCharet: Update the selection start if moving the caret
29514             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
29515           - No longer always creating the caret when the caret methods are
29516             called. Only the actual ShowCaret/HideCaret will do that now
29517           - Only setting caret visible if the owner control has focus
29518           - UpdateView: Added invalidation-shortcut logic for center and right 
29519             aligned text. Previously we'd update all according to the left
29520             logic which caused drawing errors. Also fixed height of invalidated
29521             areas, now properly invalidating the whole area (was off-by-one)
29522           - owner_HandleCreated: Always generate the document when the
29523             handle is created; this ensures that 
29524         * TextBoxBase.cs:
29525           - Fixed situation where caret would disappear under the right
29526             window border, also improved scrolling behaviour on left-
29527             aligned textboxes
29528           - Fixed right-aligned textboxes to have a border to the
29529             right instead of the caret being under the right border
29530         * XplatUIX11.cs:
29531           - Switched from 'nested' to simple visible/not visible tracking 
29532             for caret (part of fix for #77671)
29533           - No longer passing through translated FocusIn/FocusOut messages
29534             since we were notifying too often and the wrong windows. Instead
29535             we just notify our focussed window of receiving or loosing focus
29536         * XplatUIWin32.cs: Switched from 'nested' show/hide 
29537           counting for caret to simple visible yes/no behaviour (part of 
29538           fix for #77671)
29539
29540 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
29541
29542         * Mime.cs: Remove debug code...
29543
29544 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
29545
29546         * MimeGenerated.cs: Removed
29547         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
29548           and subclasses) from /usr/(local/)share/mime and
29549           $HOME/.local/share/mime.
29550
29551 2006-03-10  Jackson Harper  <jackson@ximian.com>
29552
29553         * MdiWindowManager.cs: Recalc the NC area when a window is
29554         maximized/restored so that the menu area is drawn on forms that
29555         don't have a menu.
29556
29557 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29558
29559         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
29560           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
29561           us to force a WM_NCCALCRESIZE message being sent. This is needed
29562           for MDI maximizing.
29563
29564 2006-03-10  Jackson Harper  <jackson@ximian.com>
29565
29566         * Form.cs: We need to use the ActiveMenu when calculating menu
29567         height.
29568         - Fix nullref when the window manager hasn't been created yet.
29569         * Control.cs: Fix nullref when we try to bring a control to the
29570         front that has no parent.
29571         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
29572         height.
29573         - Add a dummy item to the maximized menu so it always has the
29574         correct height. Otherwise when there are no menus we don't get our
29575         icon and buttons.
29576         
29577
29578 2006-03-10  Jackson Harper  <jackson@ximian.com>
29579
29580         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
29581         stuff.
29582         * Form.cs: Make the window_state internal so the window managers
29583         can track it.
29584         - When an MDI child is maximized let its window manager create the
29585         main menu (so it can add its icon).
29586         - Notify the window managers of state changes
29587         - Let the window manager paint its buttons and handle button
29588         clicks on the menu when it is maximized.
29589         * InternalWindowManager.cs: Move the prev_bounds into the mdi
29590         window manager, since tool windows don't use it, only mdi windows.
29591         - Tell the main form that we don't want it to handle NCPAINT
29592         itself to avoid extra painting.
29593         - Handle clicks on a maximized windows menu.
29594         - Handle window state changes
29595         - Handle minimize/maximize clicks correctly by setting the window state.
29596         * MdiWindowManager.cs: Add an icon menu that (the menu you get
29597         when clicking on the forms icon).
29598         - New method to create a forms maximized menu. This is its normal
29599         menu + an icon.
29600         - Handle window state changes.
29601         - Handle sizing of maximized windows.  Maximized windows are just
29602         drawn bigger then the parent visible area. All controls are still
29603         there, they are just outside the visible area (this matches windows).
29604         * MdiClient.cs: No scrollbars when a child window is maximized.
29605         - Let the children windows figure out how big they should be when
29606         sizing maximized windows.
29607         - Implement a version of ArrangeIconicWindows somewhat similar to
29608         Windows version.  There are some little differences, but I don't
29609         think any app will rely on the layout of minimized mdi windows.
29610
29611 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29612
29613         * Padding.cs: Several fixes to allow compiling with csc 2.0
29614
29615 2006-03-09  Jackson Harper  <jackson@ximian.com>
29616
29617         * Menu.cs:
29618         * MenuItem.cs: Cheap hack so we can add items to the list without
29619         the events being raised.  This allows adding mdi items during
29620         drawing. TODO: Should probably find a better time to add the items.
29621
29622 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29623
29624         * ThemeWin32Classic.cs:
29625           - CheckBox_DrawText: Added logic to not wrap if not enough space
29626             is available (Fix for bug #77727)
29627           - RadioButton_DrawText: Added logic not to wrap if not enough
29628             space is available (Fix for bug #77727). Also removed some
29629             duplicate code, DrawString always drawing the regular text
29630             before hitting the if statement.
29631
29632 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
29633
29634         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
29635
29636 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
29637
29638         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
29639         * ContainerControl.cs: Partial implementation of some 2.0 scaling
29640           methods. Moved the new 2.0 properties into alphabetical order with
29641           other properties and added MonoTODO tags
29642
29643 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29644
29645         * AutoScaleMode.cs: Added. Fix build.
29646
29647 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29648
29649         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
29650           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
29651           and was requiring premature handle creation for calls from above
29652         * Form.cs, Control.cs: Removed handle arguments from calls to
29653           CalculateClientRect()
29654
29655 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29656
29657         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
29658           drag_column.column_rect is MarshalByRef and can't be used that way
29659
29660 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29661
29662         * AxHost.cs: Added deserialization constructor for 
29663           AxHost+State (fixes 77743)
29664
29665 2006-03-09  Mike Kestner  <mkestner@novell.com>
29666
29667         * ListView.cs: 
29668         - Added column drag reordering for details view.
29669         - fixed behavior when mouse is dragged off column and
29670         AllowColumnReorder is false.
29671         * ColumnHeader.cs: clone the format too in Clone.
29672         * Theme.cs: add DrawListViewHeaderDragDetails method.
29673         * ThemeWin32Classic.cs:
29674         - impl new method for drawing drag column shadows and targets.
29675         - support column offset for details mode in DrawListViewItem.
29676
29677 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29678
29679         * TextControl.cs: Reset the char_count when the document is cleared
29680           (Fixes bug reported on mono-winforms mailing list)
29681
29682 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
29683
29684         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
29685           of calling base we simply process the key ourselves, since both
29686           DefWindowProc and the handled method would set m.Result. 
29687           (Fixes #77732)
29688
29689 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
29690
29691         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
29692           method also moves the window; instead implemented a copy of
29693           Control.ScaleCore (Part of fix for #77456)
29694         * TextBoxBase.cs: 
29695           - Created new CreateGraphicsInternal method to allow providing
29696             a graphics context when no handle is created without triggering
29697             handle creation. (Part of fix for #77456)
29698           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
29699         * TextControl.cs: 
29700           - Switched Constructor to require TextBoxBase instead of Control (to
29701             allow uncast access to CreateGraphicsInternal)
29702           - Safeguarded use of owner.Handle property. No longer accessing it
29703             unless the handle is already created.
29704           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
29705           - Now triggering a recalc when owning control becomes visible
29706         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
29707           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
29708           premature handle creation (Part of fix for #77456)
29709         * Control.cs:
29710           - We now only destroy our double-buffering buffers when the
29711             control is resized or disposed, but not when visibility
29712             changes. (The code even re-created them twice every time)
29713           - Now requiring a redraw of the buffer on visibility changes
29714             (fixes bug 77654 part 2)
29715           - Not passing OnParentVisibleChanged up unless the control
29716             is visible
29717           - CanFocus: Fixed to match MS documentation
29718           - Focus: Fixed to return actual focus state and to check if
29719             setting focus is legal before setting it
29720
29721 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
29722
29723         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
29724           when to draw focus rectangle by looking at parent focus and
29725           selected state instead. This fixes TabPages on Linux sometimes
29726           having none or multiple focus rectangles.
29727         * XplatUIX11.cs (SetFocus): 
29728           - Don't set the focus if the same window already has focus
29729           - Use SendMessage instead of PostMessage (like it's Win32
29730             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
29731             to match MS behaviour
29732         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
29733           are not selectable.
29734
29735 2006-03-07  Jackson Harper  <jackson@ximian.com>
29736
29737         * PictureBox.cs: Revert line I accidently committed last week.
29738
29739 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
29740
29741         * Control.cs: 
29742           - Added new IsRecreating and ParentIsRecreating properties to
29743             allow testing if RecreateHandle has been called on ourselves
29744             or one of our parents
29745           - WndProc(WM_DESTROY): If our control handle is being recreated
29746             we immediately need to create the handle when receiving the
29747             destroy, that way our child windows find a valid parent handle
29748             when they themselves are being recreated upon WM_DESTROY receipt
29749             (fix for bug #77654 part 1)
29750         * XplatUIX11.cs:
29751           - DestroyWindow: WM_DESTROY must be sent to our own window before
29752             notifying any child windows. MS documents that child windows
29753             are still valid when WM_DESTROY is received. (Control now relies on
29754             this behaviour)
29755           - Added some fine-grain debug options
29756
29757 2006-03-06  Jackson Harper  <jackson@ximian.com>
29758
29759         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
29760         box and base calculations off this.
29761         * MdiChildContext.cs:
29762         * MdiWindowManager.cs: Don't need to ensure scrollbars here
29763         anymore.
29764         
29765 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
29766
29767         * Splitter.cs: In situations where the affected control is added
29768           to the parent's control list after the splitter, we would not
29769           populate affected. Now we try populating it on mousedown, if
29770           it's not already set, and force it to be re-set whenever our
29771           parent changes.
29772
29773 2006-03-03  Matt Hargett  <matt@use.net>
29774
29775         * Control.cs: implement Control.Padding
29776         * Padding.cs: -Padding.All returns -1 when constructing with the
29777         implicit default ctor
29778         -Padding.ToString() matches MS.NET
29779         * ContainerControl.cs: implement
29780         ContainerControl.AutoScaleDimensions
29781         * ListControl.cs: implement ListControl.FormattingEnabled
29782         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
29783         * ButtonBase.cs:
29784         * TabPage.cs: Implement UseVisualStyleBackColor.
29785         * PictureBox.cs: Implement PictureBox.InitialImage.
29786
29787 2006-03-03  Mike Kestner  <mkestner@novell.com>
29788
29789         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
29790         event declarations to proxy to base event.
29791         * ListViewItem.cs: update to use ItemControl.
29792         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
29793         * ThemeWin32Classic.cs: update to new ListView theme API and fix
29794         column header label rendering for 0 width columns.
29795
29796 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
29797
29798         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
29799           that causes the control to be created. Fixes #77476.
29800
29801 2006-03-02  Jackson Harper  <jackson@ximian.com>
29802
29803         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
29804         expose_pending.
29805
29806 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
29807
29808         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
29809           passed in for the EventArgs (fixes #77690)
29810
29811 2006-03-01  Jackson Harper  <jackson@ximian.com>
29812
29813         * ScrollBar.cs: Refresh afterbeing resized.
29814
29815 2006-02-28  Mike Kestner  <mkestner@novell.com>
29816
29817         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
29818         Clean up a tracker compile warning.
29819         * MenuItem.cs: add internal PerformPopup method.
29820         [Fixes #77457]
29821
29822 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
29823
29824         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
29825           implicit expose) when the text is set to null
29826
29827 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
29828
29829         * RichTextBox.cs (FlushText): When newline is true, we always
29830           need to split the line, even if no text is on it and we may
29831           never eat newlines. (Fixes #77669)
29832
29833 2006-02-28  Mike Kestner  <mkestner@novell.com>
29834
29835         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
29836         and set Selected instead.
29837         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
29838         collections.
29839
29840 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
29841
29842         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
29843
29844 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
29845
29846         * FontDialog.cs:
29847           - Got rid of the panel. All controls are now directly added to
29848             the dialog form
29849           - It is now possible to set a font with the Font property
29850           - MinSize and MaxSize property do now what they should
29851           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
29852           - Searching and selecting a font with the font textbox works now,
29853             the same applies to the style and size textbox
29854           - Draw the correct 3D border in the example panel
29855           - Fixed a little mem leak (unused fonts didn't get disposed)
29856           - Many other internal updates/rewrites...
29857           - Fix typo
29858
29859 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
29860
29861         * TextControl.cs: 
29862           - InsertRTFFromStream: Added 'number of characters inserted' argument
29863           - set_SelectedRTF: Now using the number of characters to calculate
29864             the new location for the selection and cursor (x/y cannot be used
29865             due to potentially already wrapped text)
29866
29867 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
29868
29869         * TextControl.cs: Added property and implemented means to allow 
29870           disabling recalculation of a document (can be used to speed up
29871           multiple inserts and is needed to make RTF inserts predictable, see
29872           bug #77659)
29873         * RichTextBox.cs: Using the new NoRecalc property of Document to
29874           keep x/y insert locations predictable. Also makes it faster inserting
29875           large chunks of RTF
29876
29877 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
29878
29879         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
29880           it's easier for a child control to handle the other messages without
29881           having to duplicate the special functionality
29882         * TextBoxBase.cs
29883           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
29884             code to handle processing the key ourselves, in order to get 
29885             access to the result of KeyEventArgs.Handled. We now only call 
29886             ProcessKey if they key hasn't been handled already. Fixes #77526.
29887           - set_Text: If null or empty string is given, just clear the 
29888             document. Fixes part of #77526
29889
29890 2006-02-27  Jackson Harper  <jackson@ximian.com>
29891
29892         * SizeGrip.cs: Paint the background color before painting the grip
29893         so things look right.
29894         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
29895
29896 2006-02-27  Mike Kestner  <mkestner@novell.com>
29897
29898         * ListView.cs:
29899           - Restructure layout and invalidation model to remove a ton of
29900           flicker from the control and speed up performance in general.
29901           - Add manual column resize, flickers like crazy, but I already have
29902           some ideas on how I'll fix that. (#76822)
29903           - Merge the three Icon-based views into a single layout method.
29904           - Move item selection interaction logic from the item since 
29905           interaction with the collections is more appropriate to the view.
29906           - Deselection on non-item clicks.
29907         * ListViewItem.cs:
29908           - Encapsulate most of the layout. Add some internal props to trigger
29909           layout.  Move to a model where Items invalidate themselves instead
29910           of just invalidating the whole control every time something changes.
29911           - Invalidate on Text/Caption changes.
29912           - switch to an offset based layout model to avoid having to absolute
29913           position every element on item moves.
29914           - correct checkbox layout to conform to MS layout.
29915         * ThemeWin32Classic.cs:
29916           - refactor some column header drawing code.
29917           - fix string justification for column headers (#76821)
29918           - make SmallIcon labels top justified for compat with MS impl.
29919         * ThemeClearlooks.cs:
29920           - adjust to new ListViewItem internal checkbox bounds api.
29921
29922 2006-02-27  Jackson Harper  <jackson@ximian.com>
29923
29924         * Control.cs:  Change where implicit controls fall in the zorder.
29925         They are now on top of all children.
29926         - Synced AddImplicit code with Add
29927         - Removed unused enumerator.
29928         * SizeGrip.cs: Remove the TODO as its been TODONE.
29929
29930 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
29931
29932         * TextControl.cs(Insert): Combine the last lines unless the insertion
29933           string ends with \n\n, otherwise we leave one line too many (Fixes
29934           something I noticed with the testapp for #77526; the bug itself was
29935           already fixed in the previous checkin)
29936
29937 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
29938
29939         * RichTextBox.cs:
29940           - SelectionColor and SelectionFont methods no longer set absolute
29941             styles. Instead, the keep font or color respectively (This 
29942             resolves a long-standing FIXME in the code)
29943           - When flushing RTF text, the insert code now considers text trailing
29944             behind the insertion point (Fixes the bug where when replacing
29945             the selected text via SelectedRTF the remainder of the line behind 
29946             the selection would stay on the first insertion line)
29947         * TextBoxBase.cs:
29948           - AppendText now updates the selection points after inserting text
29949           - AppendText now ensures that the last tag (sometimes 0-length) of
29950             the document is used for the style information (Fixes part of 
29951             bug #77220)
29952         * TextControl.cs:
29953           - Created new FontDefiniton class to allow describing partial style
29954             changes
29955           - StreamLine() now takes a lines argument, to allow it to decide
29956             whether an encountered zero-length tag is the last in the document
29957             (which must be kept to not loose the font/color contained in it,
29958             for later appends)
29959           - Created Combine() and Split() methods for Marker structs, to 
29960             support marker updates due to reformatted documents (soft line
29961             wraps)
29962           - Implemented Document.CaretTag setter
29963           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
29964             of the last line (Not the cause, but also exposed by bug #77220)
29965           - Added LineTag argument to InsertString method, to allow callers
29966             to force a certain tag to be used (required to force use of the
29967             trailing zero-length tag of a document)
29968           - Now updating markers in Combine(), to avoid stale tag markers
29969           - Added some method descriptions to aid maintenance
29970           - Implemented new FormatText concept, allowing additive/subtractive
29971             formatting by only specifying the components that are to be 
29972             changed. This was needed for resolving the RTB.SelectedColor/
29973             RTB.SelectedFont fixmes
29974           - Added Break() support method to allow breaking up linetags (used
29975             for partial formatting)
29976           - Added GenerateTextFormat() method. It is used for partial 
29977             formatting and allows to generate a full font/color from given
29978             attributes and an existing tag.
29979
29980 2006-02-26  Jackson Harper  <jackson@ximian.com>
29981
29982         * XplatUIX11.cs:  Use the correct caption height.
29983         - Translate hittest coordinates to screen coords to match MS.
29984         * XplatUIWin32.cs: When we create MDI windows we need to reset
29985         some of the style flags, so we get a nice blank window, and can
29986         draw all the decorations ourselves.
29987         - Set a clipping rectangle on the non client paint event, the
29988         window manager drawing code needs one.
29989         * Form.cs: The window manager needs to know when the window state
29990         has been updated.
29991         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
29992         don't need to factor in border and title sizes in these
29993         methods. TODO: Remove the args and fix the call points.
29994         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
29995         properly.
29996         - Let the driver set the cursors.
29997         - Improve active window handling
29998         - Correct sizes for title bars and buttons.
29999         - Match MS drawing better
30000         * MdiWindowManager.cs: We don't need to handle border style
30001         updates specially anymore.
30002         - Check for scrollbars when windows are done moving
30003         - Handle Active properly.
30004         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
30005         correctly. I am spewing the exception though, so we don't hide the
30006         bugs.
30007         
30008 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
30009
30010         * DataGridViewRowPostPaintEventArgs.cs,
30011           DataGridViewCellPaintingEventArgs.cs,
30012           DataGridViewRowCollection.cs,
30013           DataGridViewRowPrePaintEventArgs.cs,
30014           DataGridViewCell.cs: Clear a few warnings and implement a few
30015           exceptions that should be thrown.
30016
30017 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
30018
30019         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
30020           'inheriting' our parent's (non-default) cursor. (Part of
30021            the fix for #77479)
30022
30023 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
30024
30025         * XplatUIX11.cs: Fixed cast to make csc happy
30026
30027 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
30028
30029         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
30030           it's for the client area (part of fix for #77479 and needed
30031           for MDI window cursor handling)
30032         * XplatUIX11.cs
30033           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
30034             the appropriate default cursors and also passing the message
30035             up the parent chain 
30036           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
30037             for non-client areas
30038
30039 2006-02-15  Jackson Harper  <jackson@ximian.com>
30040
30041         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
30042         is a real MDI window
30043
30044 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
30045
30046         * X11DesktopColors.cs: Instead of checking the desktop session
30047           string for "KDE" check if it starts with "KDE"
30048
30049 2006-02-10  Jackson Harper  <jackson@ximian.com>
30050
30051         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
30052         systems).
30053
30054 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
30055
30056         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
30057           errors
30058         * ColorDialog.cs:
30059           - Got rid of the panel. All controls are now directly added to
30060             the dialog form
30061           - Changed to mono coding style
30062
30063 2006-02-10  Jackson Harper  <jackson@ximian.com>
30064
30065         * InternalWindowManager.cs: We don't need the set visibility to
30066         false hack anymore now that peter has written beautiful shutdown
30067         code.
30068
30069 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
30070
30071         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
30072           where already explicitly destroyed
30073
30074 2006-02-10  Jackson Harper  <jackson@ximian.com>
30075
30076         * MdiClient.cs: Handle the case where windows are too high or to
30077         the left and we need scrollbars.
30078
30079 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
30080
30081         * MimeIcon.cs: Added some icons
30082         * FileDialog.cs:
30083           - Fixed bug #77477
30084           - Got rid of the panel. All controls are now directly added to
30085             the dialog form
30086           - Changed to mono coding style
30087           - On Linux "My Computer" and "My Network" will now show some
30088             more usefull information. A new class, MasterMount, gathers
30089             this information from /proc/mount. Updated MWFFileView to make
30090             use of this information
30091           - Fixed a bug that caused FileDialog to crash when
30092             ".recently_used" file had a zero size
30093           - FilterIndex does now what it should
30094           - Some Refactoring
30095         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
30096             FileDialog changes
30097
30098 2006-02-09  Jackson Harper  <jackson@ximian.com>
30099
30100         * ComboBox.cs: Don't touch if null.
30101
30102 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
30103
30104         * Cursor.cs: 64bit safeness fix
30105         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
30106
30107 2006-02-09  Jackson Harper  <jackson@ximian.com>
30108
30109         * Form.cs: If a form is made into an MDI form update the styles so
30110         all the props can get set correctly.
30111         - Kill the mdi_container when we dont need it anymore.
30112         * InternalWindowManager.cs: Add missing NOT
30113
30114 2006-02-08  Jackson Harper  <jackson@ximian.com>
30115
30116         * InternalWindowManager.cs: Respek clipping when drawing MDi
30117         decorations.
30118
30119 2006-02-08  Jackson Harper  <jackson@ximian.com>
30120
30121         * Hwnd.cs: Add bits to track non client expose events.
30122         * XplatUIX11.cs: Track non client expose events on the hwnd. This
30123         gives us a proper invalid rect and will allow for some nice
30124         optimizations with NC client drawing
30125         - MDI windows are children windows, so move their style handling
30126         into the child window block.
30127         * InternalWindowManager.cs: Remove a state reset that was
30128         getting invoked at the wrong time. Fixes managed windows getting
30129         into a 'stuck' captured state.
30130
30131 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
30132
30133         * TextControl.cs (Document.ctor): Now initializing 
30134           selection_anchor. Fixes #77493
30135
30136 2006-02-07  Jackson Harper  <jackson@ximian.com>
30137
30138         * TrackBar.cs: The increment/decrements were backwards.
30139
30140 2006-02-07  Mike Kestner  <mkestner@novell.com>
30141
30142         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
30143         to the instance itself.
30144
30145 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
30146
30147         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
30148           on ulongs and pointers, the size differs between 32bit and 64bit
30149           systems. 
30150
30151 2006-02-07  Mike Kestner  <mkestner@novell.com>
30152
30153         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
30154         for 64 bit platforms to work around a metacity bug. 
30155
30156 2006-02-07  Jackson Harper  <jackson@ximian.com>
30157
30158         * TrackBar.cs: Process the input keys we need, and hookup to
30159         KeyDown instead of using WndProc, so we get key messages.
30160
30161 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
30162
30163         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
30164           machine we're on. 
30165         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
30166           we need to translate the XdndVersion atoms array before sending it
30167
30168 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
30169
30170         * XplatUIX11.cs: 
30171           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
30172             number of bits for the property, not the number of bytes. The
30173             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
30174             but would not crash since it specified 8 bits instead of 4 bits)
30175           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
30176             defined as XID -> long in the C headers)
30177           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
30178             references since those are now IntPtr to begin with
30179           - Switched all Atom.XXX 'int' casts to IntPtr casts
30180           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
30181           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
30182           - Added XChangeActivePointerGrab DllImport (for X11DnD)
30183         * X11Structs.cs:
30184           - Changed 'int' type for Atoms in XEvent structures to IntPtr
30185           - Changed atom in HoverStruct to be IntPtr
30186         * X11DnD.cs:
30187           - Removed local DllImports, switched code to use those from XplatUIX11
30188           - Removed/fixed casts related to the switch of Atom to be a IntPtr
30189
30190 2006-02-06  Mike Kestner  <mkestner@novell.com>
30191
30192         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
30193         method signatures in the import region.  There may still be some
30194         lingering struct marshaling issues, as I didn't drill down into those.
30195         Yet.
30196
30197 2006-02-06  Jackson Harper  <jackson@ximian.com>
30198
30199         * ComboBox.cs: Dont manually set the top_item, this is computed
30200         when the scrollbar position is set.
30201
30202 2006-02-06  Mike Kestner  <mkestner@novell.com>
30203
30204         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
30205         startup crashes on amd64.  There's other fixes needed.  All pinvoke
30206         usage of Atom needs to be mapped to IntPtr for example.  And there are
30207         likely other int/long issues to be addressed.
30208
30209 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
30210
30211         * FileDialog.cs: One more...
30212
30213 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
30214
30215         * FileDialog.cs: Next try
30216
30217 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
30218
30219         * FileDialog.cs: First part of fix for #77464
30220
30221 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
30222
30223         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
30224           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
30225           AcceptButton border drawing.
30226
30227 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
30228
30229         * Form.cs: Moved positioning of form after auto scaling is applied,
30230           otherwise it would possibly use wrong form size.
30231
30232 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
30233
30234         * Control.cs (RecreateHandle): No need to re-create any child
30235           controls, the child windows will get destroyed automatically by
30236           the windowing system or driver, and re-created when the handle
30237           is being accessed the first time. Fixes #77456
30238         * Form.cs: No longer setting the form to closing if the handle is 
30239           being recreated. This seems like the right thing to do, don't
30240           have a bug or testcase for this, though.
30241
30242 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
30243
30244         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
30245           controls to avoid unwanted side effects
30246
30247 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
30248
30249         * Control.cs: 
30250           - ScaleCore needs to scale the bounds, not the ClientSize of the 
30251             control. Fixes #77416.
30252           - DefaultSize is 0,0 for control
30253         * TextBoxBase.cs: 
30254           - DefaultSize is 100, 20
30255           - SetBoundsCore: Now enforcing the height, no matter if the provided
30256             height is more or less than the preferred one, as long as AutoSize
30257             is on
30258         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
30259
30260 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
30261
30262         * Control.cs:
30263           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
30264             call unless both performLayout is true *and* we have a pending
30265             layout change
30266           - ResumeLayout: MS does not completely nest Suspend and Resume,
30267             they bottom out at 0, fixed our code to match that.
30268           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
30269             SetBoundsCore, we were updating even when we shouldn't. This fixes
30270             swf-anchors mis-anchoring when resizing the app fast and lots.
30271           - UpdateDistances: Now only setting the left and top distance if 
30272             we have a parent and are not suspended, this is based on
30273             a suggestion by Don Edvaldson in bug #77355.
30274           - OnVisibleChanged: Fixed logic when to create the control. We may
30275             not create the control if we have no parent or if it's not visible;
30276             switched to using Visible property instead of is_visible field 
30277             since the property also considers parent states. This fixes a bug
30278             when starting Paint.Net
30279
30280 2006-02-02  Jackson Harper  <jackson@ximian.com>
30281
30282         * Form.cs: If the forms handle hasn't been created yet don't call
30283         into xplatui to make it top most, just set the topmost flag on the
30284         form in CreateParams
30285         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
30286
30287 2006-02-01  Jackson Harper  <jackson@ximian.com>
30288
30289         * ScrollableControl.cs: Refactored the Recalculate method a
30290         little, this wasn't handling all the variants of bottom and right
30291         bars needed to be added and added/removed based on their
30292         counterparts being added/removed (which changes the drawable
30293         size). Also we special case client widths and heights of 0 and
30294         don't add the scrollbar for those.
30295
30296 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
30297
30298         * XplatUIX11.cs: 
30299           - Added method to get AbsoluteGeometry(); currently unused, but might
30300             be used in the future, if we try again to figure out toplevel
30301             coordinates with some more crappy window managers
30302           - Added FrameExtents() method to retrieve the WM set decoration size
30303           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
30304             to deal with at least KDE, FVWM and metacity (Fixes #77092)
30305         * Hwnd.cs: 
30306           - Added whacky_wm tracking var for metacity
30307           - Added logic to have default menu height if the actual menu height
30308             has not yet been calculated (part of fix for #77426)
30309         * Form.cs: Keep track whether client size has been set and re-set 
30310           it if a menu is added/removed afterwards (Fixes #77426)
30311
30312 2006-01-31  Jackson Harper  <jackson@ximian.com>
30313
30314         * Control.cs: When a new Site is set on the component attempt to
30315         pull the AmbientProperties from it.
30316
30317 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
30318
30319         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
30320           in the background of the owning form. Fixes #77332
30321
30322 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
30323
30324         * MimeIcon.cs: Fix for #77409
30325
30326 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
30327
30328         * XplatUIX11GTK.cs: Initial import
30329
30330 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
30331
30332         * FixedSizeTextBox: fixes class signature
30333
30334 2006-01-30  Jackson Harper  <jackson@ximian.com>
30335
30336         * FixedSizeTextBox.cs: New internal class that represents a
30337         textBox that will not be scaled.
30338         * TreeView.cs:
30339         * ComboBox.cs:
30340         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
30341         standard TextBox.
30342                 
30343 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
30344
30345         * XplatUIX11.cs: Retrieve default screen number instead of
30346           assuming 0. Attempted fix for #77318
30347
30348 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
30349
30350         * XplatUIWin32.cs: 
30351           - GetWindowPos: When a window is parented by FosterParent, use 
30352             the desktop instead of FosterParent as the base to get coordinates
30353           - CreateWindow: Don't make FosterParent the parent window for Popups
30354             if we don't want a taskbar entry, Popups automatically don't get one
30355         * Hwnd.cs: Need to call remove to actually remove the key from the
30356           hash table
30357
30358 2006-01-30  Mike Kestner  <mkestner@novell.com>
30359
30360         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
30361
30362 2006-01-30  Jackson Harper  <jackson@ximian.com>
30363
30364         * TreeView.cs:
30365         * TreeNode.cs: Raise events no matter how the treenode is
30366         checked. Patch by Don Edvalson.
30367
30368 2006-01-30  Jackson Harper  <jackson@ximian.com>
30369
30370         * TreeNode.cs: Signature fix.
30371
30372 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
30373
30374         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
30375
30376 2006-01-20  Mike Kestner  <mkestner@novell.com>
30377
30378         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
30379         event forwarding when menus are active.
30380         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
30381         Most of the patch is pdb's with a little rework.
30382
30383 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
30384
30385         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
30386           Removed GetMenuDC and ReleaseMenuDC methods; replaced
30387           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
30388         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
30389         * InternalWindowManager.cs: Added use of PaintEventStart/End to
30390           handling of WM_NCPAINT message, now passing the PaintEventArgs to
30391           the PaintWindowDecorations method
30392         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
30393         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
30394         * MenuAPI.cs: Made tracker window invisible
30395         * XplatUIWin32.cs:
30396           - Removed GetMenuDC and ReleaseMenuDC methods
30397           - Implemented the client=false path for PaintEventStart and
30398             PaintEventEnd
30399
30400 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
30401
30402         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
30403         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
30404           styles
30405         * Form.cs: 
30406           - MaximizeBox, MinimizeBox: Recreate the handle when setting
30407             the style
30408           - CreateParams: Reworked the styles to match MS look'n'feel,
30409             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
30410             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
30411
30412 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
30413
30414         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
30415           window is not mapped, since otherwise every form that's being 
30416           created is considered minimized, which is wrong.
30417         * Form.cs: Catching the exception and returning our internal value
30418           instead
30419
30420 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
30421
30422         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
30423           SetWindowMinMax() to have means to tell the driver about the minimum,
30424           maximum and maximized state window sizes. (Part of the fix for #76485)
30425         * Form.cs:
30426           - Implemented tracking of minimum and maximum window size, now calling
30427             new SetWindowMinMax() driver method to tell the driver (Part of the
30428             fix for #76485)
30429           - Finished handling of WM_GETMINMAXINFO method, now setting all values
30430             (Completes fix for #76485)
30431           - Calling new SetWindowMinMax driver method when the handle for a 
30432             form is created, to make sure the driver knows about it even if
30433             the values have been set before the window was created
30434           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
30435             to avoid messing up our anchoring calculations (partial fix
30436             for #77355)
30437         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
30438         * XplatUIX11.cs:
30439           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
30440           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
30441             (and presumably other freedesktop.org compliant WMs). Left the
30442             assumption unmapped=minimized, needed for SetVisible to work.
30443           - Now setting the window state when creating windows
30444           - Fixed SetVisible to consider/set the window state when mapping
30445             a Form. We cannot set the state before it's mapped, and we cannot
30446             use Form.WindowState once it's mapped (since it would ask the
30447             driver and get 'normal'. Therefore, we grab the state before
30448             mapping, map, and then set state.
30449           - Implmemented SetWindowMinMax method; Metacity does not seem to
30450             honor the ZoomHints, though.
30451         * XplatUIWin32.cs:
30452           - Removed MINMAXINFO (moved to XplatUIStructs)
30453           - Added SetWindowMinMax stub (on Win32 the only way to set that
30454             information is in response to the WM_GETMINMAXINFO message, which
30455             is handled in Form.cs)
30456           - Added logic to SetVisible to set the proper window state when a 
30457             form is made visible (fixes #75720)
30458
30459 2006-01-26  Jackson Harper  <jackson@ximian.com>
30460
30461         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
30462         same way we handle them with Invoke.
30463
30464 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
30465
30466         * Form.cs:
30467           - Added tracking of window state so CreateParams can return
30468             the appropriate style
30469           - Moved setting of WS_CAPTION style in CreateParams to allow
30470             styles without caption
30471         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
30472           control if the TextBox property is accessed. Fixes #77345
30473         * Control.cs:
30474           - get_Created: now uses is_disposed and is_created to determine
30475             return value (suggested by Jackson)
30476           - CreateHandle: No longer exits if the handle is being recreated
30477           - RecreateHandle: If the handle is not yet created call the 
30478             appropriate method to create either control or handle. If the
30479             control is already created CreateHandle will simply exit instead
30480             of just creating the handle
30481         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
30482           now SendMessage WM_DESTROY directly to the control when DestroyWindow
30483           is called.
30484         * XplatUIX11.cs: 
30485           - When DestroyWindow is called, instead of waiting for the 
30486             DestroyNotification from X11, we directly post it to the WndProc
30487             and immediately dispose the hwnd object.
30488             Same applies to DestroyChildWindows, and this obsoletes the
30489             expose_pending tracking. Contrary to Win32 behaviour we destroy our
30490             child windows before our own, to avoid X11 errors.
30491           - Removed the direct sending of WM_PAINT on UpdateWindow
30492         * XplatUIWin32.cs:
30493           - Reworked DoEvents and GetMessage to allow access to internal queue
30494             even when trying non-blocking access to the queue.  Fixes #77335. 
30495             Based on a patch suggestion by Don Edvalson. The new private
30496             GetMessage can now also be used as a backend for a PeekMessage
30497             frontend version.
30498         * XplatUI.cs: Improved debug output for CreateWindow
30499
30500 2006-01-25  Jackson Harper  <jackson@ximian.com>
30501
30502         * Help.cs: Allow param to be null. Patch by Don Edvalson.
30503
30504 2006-01-24  Jackson Harper  <jackson@ximian.com>
30505
30506         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
30507         when we have a MaxDropItems lower then the selected index.
30508
30509 2006-01-24  Jackson Harper  <jackson@ximian.com>
30510
30511         * Control.cs: Don't allow selection of non visible controls, allow
30512         selection of controls without parents.
30513
30514 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
30515
30516         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
30517         * DataGridDrawingLogic.cs: Add editing row only when is necessary
30518
30519 2006-01-23  Jackson Harper  <jackson@ximian.com>
30520
30521         * UpDownBase.cs: Make the textbox handle all the selection and
30522         tabbing. This fixes tabing to updown controls.
30523
30524 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
30525
30526         * TextBoxBase.cs: fixes exception thown the object was null
30527
30528 2006-01-23  Jackson Harper  <jackson@ximian.com>
30529
30530         * ButtonBase.cs: Just use the base CreateParams. They set
30531         visibility and enabled correctly.
30532         * ComboBox.cs:
30533         * TrackBar.cs:
30534         * MonthCalendar.cs: Lets let the base set as much of the
30535         createparams as possible so we don't have duplicate code all over
30536         the place.
30537
30538 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
30539
30540         * ThemeGtk.cs: Added TrackBar and some experimental code to
30541           get double buffering back
30542
30543 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
30544
30545         * DataGrid.cs: Allows row number set internally higher than the last
30546         when creating a new row. Restores the editing functionality.
30547
30548 2006-01-20  Mike Kestner  <mkestner@novell.com>
30549
30550         * MimeIcon.cs: delay Image creation until the icons are accessed
30551         instead of creating 190 scaled images on GnomeHandler startup.
30552
30553 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
30554
30555         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
30556           first call base before processing the event. Fixes #77279
30557
30558 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
30559
30560         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
30561           that the stride for the GDI bitmap would match the stride of
30562           a DIB or a Cursor.
30563
30564 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
30565
30566         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
30567
30568 2006-01-19  Jackson Harper  <jackson@ximian.com>
30569
30570         * ComboBox.cs: Hookup the text controls keydown event so we get
30571         those when the text control has the focus.
30572
30573 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
30574
30575         * Label.cs: Now using the base events instead of defining new ones;
30576           this allows us to just call the base properties without having to
30577           duplicate all base property logic 
30578
30579 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
30580
30581         * Label.cs: A label by default is not a tabstop (Fixes one of our
30582           failing nunit tests)
30583
30584 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
30585
30586         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
30587         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
30588
30589 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
30590
30591         * Cursor.cs: Reimplemented creating cursor bitmaps without using
30592           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
30593           This fixes #77218
30594         * XplatUIWin32.cs: 
30595           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
30596             constructor creates images that can't be saved. Part of the fix
30597             for #76103
30598           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
30599           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
30600             bug fix for handling window state in forms properly)
30601
30602 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30603
30604         * ThemeGtk.cs: Simplify ScrollBar drawing
30605
30606 2006-01-18  Jackson Harper  <jackson@ximian.com>
30607
30608         * Splitter.cs: Set the default dock style for the splitter control
30609         in the constructor.
30610
30611 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30612
30613         * ThemeGtk.cs: Corrected StateType and ShadowType for
30614           gtk_paint_box
30615
30616 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30617
30618         * Control.cs: Make use of Theme.DoubleBufferingSupported
30619         * ThemeGtk.cs:
30620           - Added drawing for flat style buttons
30621           - Added ScrollBar drawing
30622
30623 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
30624
30625         * ThemeClearlooks.cs: Removed some unneeded code.
30626         * ThemeGtk.cs: First part of ThemeGtk enhancements.
30627
30628 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
30629
30630         * LinkLabel.cs: We need to update the hover drawing when
30631           leaving the control as well.
30632
30633 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
30634
30635         * DataGrid.cs: Clicking on non empty areas in the columns
30636            area was giving an exception
30637
30638 2006-01-17  Jackson Harper  <jackson@ximian.com>
30639
30640         * ThemeWin32Classic.cs:
30641         * ListView.cs: Do not draw/clip the headers when the header style
30642         is None.
30643
30644 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
30645
30646         * DataGrid.cs: Fixes 77260
30647         
30648 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
30649
30650         * DataGrid.cs: Clicking on a column on a empty grid was giving
30651           an exception
30652
30653 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
30654
30655         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
30656           or any keypress will crash the grid.
30657
30658 2006-01-17  Mike Kestner  <mkestner@novell.com>
30659
30660         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
30661         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
30662         invisible/previously-visible items.
30663         [Fixes #76909]
30664
30665 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
30666
30667         * ThemeClearlooks.cs:
30668         - Added CL_Draw_Button method; now other theme controls that are 
30669           not derived from button or do not have a button can draw buttons
30670           too
30671         - Updated ComboBox drawing
30672         - Beautified RadioButton drawing
30673         - Corrected drawing of bottom and left tabs
30674         - Beautified DateTimePicker and MonthCalendar
30675         - Added CPDrawButton and CPDrawRadioButton
30676
30677 2006-01-16  Jackson Harper  <jackson@ximian.com>
30678
30679         * ComboBox.cs: Set the initial value of the scrollbar to the
30680         current index. Reduce the numbers of refreshs and IndexOfs called.
30681
30682 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
30683
30684         * FileDialog.cs: When the file listview is focused hitting the
30685           backspace key moves the fileview to the parent directory
30686
30687 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
30688
30689         * Form.cs: 
30690           - Added RecreateHandle call when changing taskbar visibility to 
30691             trigger reparenting in Win32 driver (Fixes #75719)
30692           - If a window has minimize or maximize buttons, it cannot have
30693             a help button
30694         * XplatUIWin32.cs:
30695           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
30696             the toplevel form with FosterParent (A toolwindow not on the
30697             taskbar) (Fixes #75719)
30698           - Made FosterParent a toolwindow
30699
30700 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30701
30702         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
30703
30704 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30705
30706         * ToolTip.cs: If SetToolTip is called from a control and the mouse
30707           is currently over that control, make sure that tooltip_window.Text
30708           gets updated
30709
30710 2006-01-13  Mike Kestner  <mkestner@novell.com>
30711
30712         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
30713
30714 2006-01-13  Jackson Harper  <jackson@ximian.com>
30715
30716         * TreeView.cs: On MS GetNodeAt never actually factors in the X
30717         value passed.  Also redraw the selected node when we recieve
30718         focus, so tabbing between trees works correctly.
30719
30720 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
30721
30722         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
30723           ~/.gconf/%gconf-tree.xml, so use
30724           .gconf/desktop/gnome/interface/%gconf.xml
30725
30726 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
30727
30728         * TextControl.cs: Draw text in gray if control is disabled
30729
30730 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
30731
30732         * TreeView.cs: Draw the focus rectangle outside the highlight, to
30733           make sure it's always visible. Fixes #76680.
30734
30735 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
30736
30737         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
30738
30739 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
30740
30741         * PageSetupDialog.cs: Added.
30742         * PrintDialog.cs: Attributes.
30743         * PrintPreviewControl.cs: Updates.
30744         * PrintPreviewDialog.cs: Updates.
30745         
30746 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30747
30748         * Control.cs: Undid my selection check fix, since it's not needed
30749         * TextBoxBase.cs:
30750           - Now considering the presence of hscroll/vscroll when sizing
30751             vscroll/hscroll respectively. Fixed bug #77077
30752           - Added Left/Up/Down/Right to IsInputKey list to prevent
30753             ContainerControl from stealing them. This fixes what I broke
30754             with my last checkin.
30755
30756 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
30757
30758         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
30759           I finally understand how the property can be set without a setter :-)
30760
30761 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30762
30763         * Application.cs:
30764           - Switched RunLoop to use static Message.Create to create a 
30765             Message object
30766           - Added PreProcessMessage call in runloop for keyboard events; this
30767             is part of the fix for #77219, I overlooked this originally in the
30768             MSDN doc for PreProcessMessage
30769         * Control.cs:
30770           - Removed call to PreProcessMessage from handling of keyboard 
30771             messages; it's supposed to be done in the message pump
30772           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
30773             per MSDN documentation.
30774           - IsInputChar: All chars are input chars by default; removed the 
30775             parent calling chain, MS does not document that
30776           - PreProcessMessage: If IsInputChar is true, we want to return false
30777             to allow dispatching of the message
30778           - When selecting the next control, now also check that we're not
30779             selecting ourselves again and therefore return a false positive.
30780         * TextBoxBase.cs:
30781           - Tried to match return values for IsInputKey and ProcessDialogKey
30782             to what MS returns; moved processing of our special keys outside
30783             ProcessDialogKey since MS does not seem to return true on those.
30784           - Moved code that previously was in ProcessDialogKey into new private
30785             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
30786           - Reworked handling of WM_CHAR to not have to duplicate code from
30787             Control.cs anymore, instead we simply call down to base.
30788            
30789 2006-01-12  Jackson Harper  <jackson@ximian.com>
30790
30791         * ComboBox.cs: We always need to refresh the text area when
30792         EndUpdate is called. Fixes the combobox in the file dialog.
30793         * Control.cs: Don't create the creator_thread until the controls
30794         handle is created.  Also in InvokeRequired we check if the
30795         creator_thread is null. This gives the effect of InvokeRequired
30796         returning true if the controls handle is not created yet, and
30797         matches MS.
30798
30799 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30800
30801         * XplatUI.cs:
30802           - Added StartLoop() driver method. This is used to allow drivers to
30803             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
30804             loop for a particular thread
30805           - Added EndLoop() driver method. This is called once the message
30806             pump for the thread is shut down
30807           - Added SupportsTransparency method to allow the driver to indicate
30808             opacity support for windows
30809         * Form.cs:
30810           - Removed TODO attribute, completed AllowTransparency property
30811           - Added documented logic to Opacity
30812         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
30813           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
30814           versions of CompatibleTextRendering
30815         * X11Structs.cs: Added opacity atom to our atom enumeration
30816         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
30817           of a form might be set before it's reparented by the WM, and we need
30818           the opacity value without calling up to Form)
30819         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
30820           SupportsTransparency() driver methods
30821         * Application.cs: Now calling StartLoop and EndLoop driver methods
30822         * XplatUIX11.cs:
30823           - Added opacity atom registration
30824           - Added StartLoop()/EndLoop() methods. They're empty right now but
30825             will need to get implemented when we switch to a per-thread queue
30826           - Implemented SupportsTransparency() method
30827           - Implemented SetWindowTransparency() method
30828           - Added support for setting the opacity value when a window is
30829             reparented (since the opacity needs to be set on the WM frame)
30830         * XplatUIOSX.cs, XplatUIWin32.cs:
30831           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
30832
30833 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
30834
30835         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
30836
30837 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
30838
30839         * FileDialog.cs: Added ToolTip for MWFFileView
30840         * MimeIcon.cs: Rewrote GnomeHandler.
30841           - Get currently used gnome icon theme from
30842             ($HOME)/.gconf/%gconf-tree.xml
30843           - Make use of inherited icon themes
30844           - Support SVG icon themes like Tango via librsvg
30845
30846 2006-01-12  Miguel de Icaza  <miguel@novell.com>
30847
30848         Revert's Jackson's revert which broke 2.0 builds.   Fix both
30849         builds. 
30850         
30851         * Application.cs: Move the use_compatible_text_rendering outside
30852         the NET_2_0 define.  If we ever need to use the
30853         use_compatible_text_rendering on the individual controls they will
30854         access the variable from the common shared code paths.
30855
30856 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
30857
30858         * XplatUI.cs:
30859           - Added more granular debug options
30860           - Added method to print both window text and id
30861           - Switched debug output to use new Window() debug method
30862           - Added IsEnabled() driver method
30863           - Added EnableWindow() driver method
30864         * Form.cs:
30865           - Removed end_modal; no longer needed, new loop handles termination
30866             via 'closing' variable
30867           - If form is modal, setting DialogResult will now initiate loop
30868             termination via 'closing' variable
30869           - Added support for is_enabled/WS_DISABLED to CreateParams
30870           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
30871             does all the work
30872           - Removed code that's now in RunLoop from ShowDialog()
30873           - Added various documented sanity checks to ShowDialog()
30874           - Added handling of WM_DESTROY message; we set 'closing' on getting
30875             the message to indicate the message pump to terminate
30876           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
30877             send by the Application.ExitThread method. (We send the message
30878             to destroy the window after all other events have been
30879             processed through the queue, instead of destroying the handle 
30880             directly)
30881           - Moved code from Close() method to WM_CLOSE handler; added logic
30882             to only send close-related events if the form is not displayed
30883             modal
30884         * Splitter.cs (..ctor): Fixed typo in resource name
30885         * Control.cs:
30886           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
30887             brush now
30888           - set_Cursor: Now only setting calling into XplatUI if the handle for
30889             the control is already created; this avoids implict handle creation
30890             or crashes if it's not created
30891           - set_Enabled: Now setting the enabled state via the new driver method
30892             instead of just tracking it
30893           - CreateParams: Added logic to set WS_DISABLED based on enabled state
30894           - CreateControl: Reordered event firing and method calls to more
30895             closely fire events in the order MS does. Now setting the
30896             enabled state in the driver when creating the control.
30897           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
30898             match MS order
30899         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
30900           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
30901         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
30902         * Hwnd.cs:
30903           - Added tracking of window enabled state (get_Enabled/set_Enabled)
30904           - Added EnabledHwnd property to easily allow a driver to find the
30905             handle of the first enabled window in the parent chain (this is
30906             used by drivers to pass up input events of disabled windows)
30907         * XplatUIDriver.cs: Added IsEnabled() method
30908         * Application.cs:
30909           - Removed crude and obsolete exiting tracking variable
30910           - Removed internal ModalRun(); replaced by RunLoop()
30911           - Implemented private CloseForms() method to allow closing all 
30912             windows owned by a particular (or all) threads
30913           - Exit() now properly closes all windows without forcing the message
30914             pump to quit
30915           - Removed obsolete InternalExit() method
30916           - Changed Run() methods to use new RunLoop() message pump
30917           - Implemented new RunLoop() method for both modal and non-modal forms
30918         * CommonDialog.cs:
30919           - get_CreateParams: Added setting of WS_DISABLED
30920           - Simplified ShowDialog(); now all the work is done in RunLoop(),
30921             invoked via Form.ShowDialog()
30922         * NativeWindow.cs: We don't remove the window from the collection when
30923           the handle is destroyed; there might still be messages for it in the
30924           queue (mainly the resulting WM_DESTROY); instead it will be removed
30925           when Control calls InvalidateHandle in the WM_DESTROY handler
30926         * XplatUIX11.cs:
30927           - CreateWindow: Added logic to handle the WS_DISABLED window style
30928           - EnableWindow: Implemented based on Hwnd.Enabled
30929           - GetMessage: Reset PostQuitState so the method can be called again
30930           - Implemented support for disabled windows (passing messages to the
30931             first enabled parent) in handling all input messages
30932           - Added optimizations for handling Expose events
30933           - Implemeted new driver method IsEnabled()
30934           - Now always resetting paint pending tracking vars when we start paint
30935           - Re-implemented UpdateWindow via just sending a WM_PAINT message
30936         * XplatUIOSX.cs: Added IsEnabled method stub
30937         * XplatUIWin32.cs: Implemented new IsEnabled() method
30938
30939 2006-01-11  Jackson Harper  <jackson@ximian.com>
30940
30941         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
30942         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
30943         variables a little.
30944         * ColorDialog.cs: Clear out the old form before adding the new
30945         panel.  
30946
30947 2006-01-11  Jackson Harper  <jackson@ximian.com>
30948
30949         * X11Dnd.cs: Make sure to add all the text formats when adding
30950         strings to the data object.
30951         * TreeNodeCollection.cs: When adding to a sorted tree we need to
30952         do some redrawing too.  Also change the UpdateNode to an
30953         UpdateBelow so the newly added node gets painted.
30954         
30955 2006-01-11  Miguel de Icaza  <miguel@novell.com>
30956
30957         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
30958         LinkLabel.cs, PropertyGrid.cs: Implement the
30959         UseCompatibleTextRendering property for 2.x
30960
30961         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
30962
30963 2006-01-11  Jackson Harper  <jackson@ximian.com>
30964
30965         * TreeView.cs: Use the property for setting the selected node so
30966         the correct events get raised.
30967         * TreeNode.cs: Update the tree when the fore/back colours of a
30968         node are set.
30969
30970 2006-01-10  Jackson Harper  <jackson@ximian.com>
30971
30972         * TreeView.cs: Allow setting SelectedNode to null.
30973
30974 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30975
30976         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
30977
30978 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30979
30980         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
30981
30982 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30983
30984         * PrintDialog.cs: Added attributes and set default property values.
30985
30986 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30987
30988         * PrintControllerWithStatusDialog.cs: 
30989         Added PrintControllerWithStatusDialog.
30990
30991 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30992
30993         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
30994         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
30995
30996 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
30997
30998         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
30999
31000 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
31001
31002         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
31003         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
31004
31005 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
31006
31007         * MimeIcon.cs: Added internal class SVGUtil.
31008
31009 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
31010
31011         * FileDialog.cs: Don't crash if there are two files with the
31012           same name but different locations.
31013
31014 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
31015
31016         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
31017         dates across multiple month grids. Used to not highlight entire 
31018         month, but does now.
31019         
31020 2006-01-06  Jackson Harper  <jackson@ximian.com>
31021
31022         * MonthCalendar.cs: Removed DoEvents call to prevent a running
31023         message loop. Change timer intervals to numbers that seem more
31024         natural.
31025
31026 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
31027
31028         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
31029           object for location info since screen object is now implemented.
31030
31031 2006-01-05  Jackson Harper  <jackson@ximian.com>
31032
31033         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
31034         * AsyncMethodResult.cs: We no longer use a WeakReference for the
31035         AsyncMethodResult, this is because we ALWAYS want the
31036         ManualResetEvent to get set.
31037         * Control.cs: When disposing use an async invoke to call shutdown
31038         code, so that thigns don't block on the finalizer thread.  Also
31039         check if we even have a message loop before trying to send
31040         messages, if we don't then don't bother sending messages.
31041         - No more weak references for async methods
31042         * XplatUIDriver.cs: No more weak references for async methods.
31043
31044 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
31045
31046         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
31047           returns two FontFamily with the same name
31048
31049 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
31050
31051         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
31052           drawing disabled text. Instead using the ColorGrayText color
31053
31054 2006-01-04  Jackson Harper  <jackson@ximian.com>
31055
31056         * TreeNode.cs: redraw the node when its image index is changed.
31057
31058 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
31059
31060         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
31061           time I checked there are no others like it.
31062
31063 2006-01-04  Jackson Harper  <jackson@ximian.com>
31064
31065         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
31066         this gives the behavoir I was looking for.
31067         * Control.cs: Special case Invoking EventHandlers, this matches MS
31068         and fixes part of bug #76326.
31069
31070 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
31071
31072         * ThemeClearlooks.cs, FileDialog.cs:
31073           - Reflect the latest Theme class changes
31074           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
31075             with DateTime
31076             
31077 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
31078
31079         * Theme.cs: Cache UI resource images and resize them if needed
31080
31081 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
31082
31083         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
31084           is called. This fixes the crash in Nexxia when setting the font
31085           attributes in the chat. [However, RTF needs a look-over to make sure
31086           that all SelectionXXX methods handle the special case that selection
31087           is empty and therefore the change must be applied to all text starting
31088           at the cursor/selection start]
31089
31090 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
31091
31092         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
31093           XplatUIOSX.cs: Added SendMessage and PostMessage methods
31094         * X11Keyboard.cs: Switched to new way of calling PostMessage
31095
31096 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
31097
31098         * Theme.cs: Added theme interface for images to allow the theme to
31099           control what images are used for things like FileDialog, MessageBox
31100           icons, etc.
31101         * MessageBox.cs: Now uses the new Theme icon/image interfaces
31102
31103 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
31104
31105         * FileDialog.cs:
31106           - Removed some dead code
31107           - Opening a recently used file does work now
31108           - Small UI enhancements
31109           - Refactoring
31110
31111 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
31112
31113         * FileDialog.cs: Forgot too add __MonoCS__
31114
31115 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
31116
31117         * FileDialog.cs: We are able to read recently used files now let's
31118           go on and write them.
31119
31120 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
31121
31122         * FileDialog.cs: Breathe some life into "last open"/"recently used"
31123           button
31124         * MimeIcon.cs: Do a check for the top level media type also
31125
31126 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
31127
31128         * ThemeClearlooks.cs:
31129           - Added CPDrawStringDisabled
31130           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
31131             some chars if the text doesn't fit into text_rect
31132           - DrawListViewItem: If View = View.LargeIcon center the image;
31133             rewrote the drawing of ListViewItem.Text if View = 
31134             View.LargeIcon
31135
31136 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
31137
31138         * MimeIcon.cs: Use default KDE icon theme if there is no
31139           "48x48" directory for the current icon theme, fixes #77114
31140         * Mime.cs: Disable not working and actually not used code. 
31141         * ThemeWin32Classic.cs:
31142           - Replace "new SolidBrush" in GetControlBackBrush and
31143             GetControlForeBrush with ResPool.GetSolidBrush
31144           - Changed DrawListViewItem from private to protected virtual
31145         * FileDialog.cs:
31146           - Added form.MaximizeBox = true
31147           - Don't throw an exception if there is a broken symbolic link
31148
31149 2005-12-23  Jackson Harper  <jackson@ximian.com>
31150
31151         * TabControl.cs: Give the panels focus, keyboard navigation is
31152         fixed so this works correctly now.
31153         - We need these key events also.
31154         * ToolBar.cs: Remove some of the poor mans double buffering.
31155         
31156 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
31157
31158         * ComboBox.cs: The internal TextBox now returns the focus.
31159
31160 2005-12-23  Jackson Harper  <jackson@ximian.com>
31161
31162         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
31163
31164 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
31165
31166         * Control.cs: Removed debug code
31167         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
31168           implicit children
31169
31170 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
31171
31172         * Control.cs: When creating the control, update the Z-order after
31173           all it's children are created, too. (Fixes nexxia not showing
31174           picturebox bug)
31175
31176 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
31177
31178         * Control.cs: Do not update the anchoring distances if layout is
31179           suspended, instead do it once layout is resumed
31180
31181 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
31182
31183         * Control.cs: 
31184           - After many hours of debugging, for both Jackson and
31185             myself, it turns out that it helps to set the parent of a control
31186             if you want to actually see it onscreen. In the spirit of that
31187             discovery, we're now setting the parent of the control and
31188             it's children when the control's handle is created. This fix
31189             will make Lutz Roeder's Reflector run happily. 
31190           - now just creating the handle instead of the whole control when
31191             getting a graphics context for the control.
31192
31193 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
31194
31195         * ScrollableControl.cs: When calculating the canvas, don't consider
31196           the scrollbar widths. Instead, predict if horizontal scrollbar
31197           will affect canvas when deciding on vertical display and vice versa.
31198
31199 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
31200
31201         * RichTextBox.cs: Set default RTF font for documents that don't
31202           have a font table (Fixes #77076)
31203
31204 2005-12-22  Jackson Harper  <jackson@ximian.com>
31205
31206         * TextBoxBase.cs: It's difficult to do, but you can have an empty
31207         clipboard. This prevents a NullRef in that case.
31208         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
31209         clipboard. PRIMARY is for the currently selected text only. (We
31210         should implement PRIMARY at some point.
31211
31212 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
31213
31214         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
31215           a Unicode function with a structure that was defined in Ansi way.
31216           This fixes #76942.
31217
31218 2005-12-21  Jackson Harper  <jackson@ximian.com>
31219
31220         * StatusBar.cs: Statusbar handles its fore/back colours on it's
31221         on. Because thats how it rolls. (and this avoids it using ambient
31222         colours).
31223         * ThemeWin32Classic.cs: Use the proper back color for filling.
31224         * Menu.cs: Use the system menu bar color for drawing menu
31225         bars. Using the window back color will bring ambient colours into
31226         the picture.
31227
31228 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
31229
31230         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
31231           Bitmaps were created and not disposed.
31232
31233 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
31234
31235         * Control.cs (CreateControl): Don't do anything if the control is
31236           already created, otherwise we'd fire the OnCreated event more than
31237           once
31238
31239 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
31240
31241         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
31242           will always match. Instead return -1. Fixes #76464.
31243
31244 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
31245
31246         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
31247           neither the beginning nor the end of the line (Fixes bug #76479)
31248
31249 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
31250
31251         * Control.cs:
31252           - ControlNativeWindow.ControlFromHandle(): Now handling situation
31253             where handle is invalid
31254           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
31255             instead of slower linear search
31256         * NativeWindow.cs: Don't remove the window from the hashtable until
31257           after the driver has destroyed it (since the driver might use
31258           Control.FromHandle to lookup the control object
31259         * Hwnd.cs: Added DestroyPending property to track if a window is 
31260           already destroyed as far as the driver is concerned and only hasn't
31261           yet notified the control
31262         * XplatUIX11.cs:
31263           - Activate(): Check if the window is still valid before using the 
31264             handle
31265           - Implemented DestroyChildWindow() method to mark child windows as
31266             destroyed when a window is destroyed. This prevents situations 
31267             where we might call an X method based on queued events for a
31268             window that already has been destroyed but we haven't yet pulled
31269             the destroy method from the queue.
31270           - Added a call to the new DestroyChildWindow() method to the drivers
31271             DestroyWindow code. Also now marking the destroyed window itself
31272             as pending
31273
31274 2005-12-20  Jackson Harper  <jackson@ximian.com>
31275
31276         * StatusBar.cs:
31277         * StatusBarPanel.cs: Don't calculate panel sizes on draw
31278         anymore. Just do them when needed, also track the rects of panels
31279         so that we can optimize refreshing more in the future.
31280
31281 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
31282
31283         * ColorDialog.cs: Fixed focus drawing in small color controls
31284
31285 2005-12-19  Jackson Harper  <jackson@ximian.com>
31286
31287         * InternalWindowManager.cs:
31288         * MdiWindowManager.cs: Cleanup some coordinate system changes so
31289         moving windows works properly.
31290
31291 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
31292
31293         * Control.cs: 
31294           - Removed call to InitLayout() from SetBoundsCore(); doc says
31295             it's only called when a control is added to a container
31296           - Split InitLayout logic, moved to separate UpdateDistances() method
31297             since we need to perform those calculations more often than just
31298             when adding the control to a container. (Needed to fix #77022)
31299           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
31300           - Reduced the OnBindingContextChanged events count, don't send them
31301             unless the control is created, we still aren't totally matching
31302             MS, but I can't quite figure out some of their rules
31303
31304 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31305
31306         * ThemeClearlooks.cs: Corrected distance between ProgressBar
31307           stripes
31308
31309 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31310
31311         * ThemeClearlooks.cs:
31312           - Updated ProgressBar drawing
31313           - Corrected drawing of ScrollBars and scroll buttons
31314           - Some temporary fixes for minor pixel artefacts
31315
31316 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
31317
31318         * Control.cs:
31319           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
31320             cause events to be sent in the same order as MS does.
31321           - Added ChangeParent() method to trigger various OnXXXChanged events
31322             that need to be fired when a parent changes (This is a reworking
31323             of the patch from r54254, with the X11 errors fixed)
31324           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
31325             since on MS we get OnLayoutChanged events when calling Clear()
31326           - Changed Enabled property to consider parent state as well, if a
31327             parent is not enabled, the control will not be either
31328           - Changed Parent property to simply call Controls.Add() since that
31329             now does all the work required, this way we avoid code duplication
31330           - Threw in a few OnBindingsContextChanged calls to try and match
31331             when MS sends them. We seem to send a few too many, though.
31332           - Added call to CreateControl when adding the control to a parent.
31333             We were never calling CreateControl. Still needs some work, in
31334             some places we treat HandleCreated and ControlCreated as equal, 
31335             which is wrong
31336           - Removed obsolete commented out code from UpdateZOrder()
31337
31338 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
31339
31340         * ThemeClearlooks.cs: Updated TrackBar drawing.
31341
31342 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
31343
31344         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
31345
31346 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
31347
31348         * FileDialog.cs: Add the Help button and the open readonly
31349           checkbox only if needed
31350
31351 2005-12-16  Jackson Harper  <jackson@ximian.com>
31352
31353         * Control.cs: Make sure we have an active menu before trying to
31354         process commands on it. Prevents menu-less forms from crashing
31355         when Alt is pressed.
31356         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
31357         Dieter Bremes.
31358         * RichTextBox.cs: Expand statement to help out gmcs and fix the
31359         2.0 build.
31360
31361 2005-12-16  Jackson Harper  <jackson@ximian.com>
31362
31363         * InternalWindowManager.cs: Don't translate tool windows screen
31364         coordinates. This fixes windows 'bouncing' around when being moved.
31365
31366 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
31367
31368         * TextBoxBase.cs:
31369           - MaxLength now treats 2^31-1 equal to unlimited length (this is
31370             not quite MS compatible, MS uses that number only for single line
31371             and 2^32-1 for multi-line, but I figure it won't hurt keeping
31372             the limit at 2GB)
31373           - Now enforcing the MaxLength limit when entering characters
31374           - Added argument to internal Paste() method to track if it's called
31375             from programatically or via keyboard, since keyboard driven pastes
31376             need to enforce max-length
31377           - Added logic to Paste to only paste as many chars as MaxLength 
31378             allows
31379         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
31380         * TextControl.cs:
31381           - Added Length property to return number of characters in document
31382           - Added private CharCount property which only tracks actual chars
31383             in the document (no linefeeds) and fires event when CharCount
31384             changes
31385           - Added tracking of character count to all methods that alter it
31386           - Added LengthChanged event to allow applications to subscribe
31387             to any changes to the document
31388
31389 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
31390
31391         * TextBox.cs: 
31392           - Removed local password_char field (moved to TextBoxBase)
31393           - Now setting the document's password var when password is
31394             set
31395         * TextBoxBase.cs:
31396           - Added password_char field (needed here so MultiLine can
31397             access it)
31398           - Added logic to MultiLine property setter to set the document's
31399             variable when password display is allowed
31400           - Removed debug code and made some debug code conditional
31401         * TextControl.cs:
31402           - Added RecalculatePasswordLine() method to handle special password
31403             char only lines
31404           - Added PasswordChar property, also added related tracking vars
31405           - Draw() method now uses local text var for grabbing text to draw,
31406             this var is set to line.text unless we're doing password display,
31407             then it is set to the pre-generated all-password-chars line
31408           - Added calling RecalculatePasswordLine() method for password lines
31409
31410 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
31411
31412         * Hwnd.cs: 
31413           - Added Reparented property to allow tracking of Window Manager
31414             reparenting actions (which affect X/Y calculations of toplevel 
31415             windows)
31416           - Made ToString() print window handles in hex
31417         * XplatUIX11.cs:
31418           - AddConfigureNotify(): Now uses reparented state off Hwnd to
31419             determine if X/Y needs offsetting
31420           - AddConfigureNotify(): Fixed offset calculations
31421           - Now adds ReparentNotify messages into the queue
31422           - Now processes ReparentNotify messages and causes a 
31423             WM_WINDOWPOSCHANGED message to be sent upstream if a window
31424             is reparented (as most likely it's X/Y coordinates are changed
31425             due to that)
31426
31427 2005-12-14  Jackson Harper  <jackson@ximian.com>
31428
31429         * XplatUIX11.cs: Tool windows still need to respek focus.
31430
31431 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
31432
31433         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
31434           have a working release
31435
31436 2005-12-13  Jackson Harper  <jackson@ximian.com>
31437
31438         * Form.cs: Update styles after setting the border style regardless
31439         of whether or not the window is using a window manager.
31440
31441 2005-12-13  Jackson Harper  <jackson@ximian.com>
31442
31443         * Form.cs: We now hook into an internal window manager instead of just an
31444         MDI subsystem, this is so we can have properly behaving tool windows.
31445         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
31446         * InternalWindowManager.cs: New internal class that acts as a
31447         window manager for tool windows and as a base for mdi windows.
31448         * MdiWindowManager.cs: New class that acts as a window manager for
31449         mdi windows.
31450
31451 2005-12-12  Jackson Harper  <jackson@ximian.com>
31452
31453         * Control.cs: Updates so we match behavoir for for implicit
31454         controls. Fixes explosions in MDI.
31455
31456 2005-12-12  Jackson Harper  <jackson@ximian.com>
31457
31458         * Control.cs: Implement Invalidate (Region).
31459
31460 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
31461
31462         * Control.cs: 
31463           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
31464             the same events as MS does. MS fires events for each property 
31465             except, for unknown reasons, Cursor, when the control is reparented. 
31466             I can't seem to totally match add/remove since MS also fires some 
31467             VisibleChanged events, which makes no sense. Consolidated the
31468             parenting code into a separate method so it can be called from
31469             both Add and Remove. set_Parent no longer needs any special logic
31470             as it calls the parent's add method which implicitly fires
31471             all events
31472           - Removed some obsolete code and debug output
31473           - Enabled state is inherited from parents, if this is enabled
31474
31475 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
31476
31477         * Form.cs: Removed commented out code
31478
31479 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
31480
31481         * Control.cs:
31482           - Added internal version of Invoke, with additional argument 
31483             indicating if we're calling it from a Dispose() handler. That
31484             way we can avoid BeginInvoke throwing an exception if we're
31485             calling for an already destroyed window.
31486           - Added a dispose argument to BeginInvokeInternal, and made the
31487             check if a valid window handle chain exists conditional on
31488             it not being a dispose call
31489           - Removed code in DestroyHandle to destroy our children. Since we
31490             now handle the WM_DESTROY message we will catch all our children
31491             being destroyed.
31492           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
31493         * Form.cs:
31494           - Added a field to track the application context of the form.
31495           - No need to set closing variable as response to WM_CLOSE, instead
31496             we destroy the window. We also call PostQuitMessage if the form
31497             has an application context (which makes it the main app form,
31498             which, when closed terminates the app)
31499         * XplatUI.cs:
31500           - Dropped Exit() method, it's naming was confusing
31501           - Added PostQuitMessage() which causes GetMessage to return false
31502             once the message queue is empty
31503         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
31504           PostQuitMessage()
31505         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
31506           no longer a valid XplatUI method, but left it in since it's used
31507           internally. Added empty PostQuitMessage() method.
31508         * MenuAPI.cs: Replaced call to Exit() with call to
31509           PostQuitMessage, even though this is probably no longer needed.
31510         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
31511         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
31512         * Application.cs:
31513           - Replaced call to XplatUI.Exit() with PostQuitMessage()
31514           - Removed old debug code that would call XplatUI for exception
31515             display, enabled standard exception handling (Still not enabled
31516             though, until NativeWindow's ExternalExceptionHandler define
31517             is removed
31518         * NativeWindow.cs:
31519           - Added internal method to allow control to update NativeWindow
31520             after a window has been destroyed
31521           - Added handling of already destroyed windows when calling i
31522             DestroyWindow
31523           - Added removal of handle from list on ReleaseHandle
31524         * XplatUIX11.cs:
31525           - Dropped GetMessageResult var and related code
31526           - Added PostQuitState to field to track if PostQuitMessage has been
31527             called
31528           - Dropped Exit() method
31529           - Added PostQuitMessage() method
31530           - GetMessage now will return false if PostQuitState is set and no
31531             more messages are in the queue.
31532           - Expose handler will no longer generate WM_PAINT messages if we are
31533             in PostQuitState since it's very likely any windows have already
31534             been destroyed, and since Hwnd won't get updated until we have
31535             processed the DestroyNotify we'd be causing X errors.
31536         
31537 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31538
31539         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
31540           Thanks to Mike for pointing out the err of my ways.
31541
31542 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31543
31544         * Control.cs(PreProcessMessage): Moved menu handling back, but
31545           after all other key handling, to match MS (who handles Menu in
31546           DefWndProc)
31547         * Menu.cs (WndProc): Removed my brainfart
31548
31549 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31550
31551         * Control.cs(PreProcessMessage): Removed special menu handling 
31552         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
31553
31554 2005-12-07  Mike Kestner  <mkestner@novell.com>
31555
31556         * Control.cs : special case SYSKEYUP so that we can adjust keynav
31557         state according in tracker.
31558         * Menu.cs : promote tracker field to base class and provide a tracker
31559         lookup capability.  Add/Remove shortcuts dynamically if the top menu
31560         has a tracker. Unparent items that are removed from the collection.
31561         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
31562         * Theme*.cs: add always_show_hotkeys field to support configurability
31563         of mnemonic display.  win32 doesn't show mnemonics until Alt is
31564         pressed.
31565
31566 2005-12-07  Jackson Harper  <jackson@ximian.com>
31567
31568         * MdiChildContext.cs: Use Control.ResetCursor.
31569         * Control.cs: ResetCursor needs to set the property so that the
31570         correct XplatUI call gets made.
31571
31572 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31573
31574         * Control.cs: More fixes to make our key events match MS. We
31575           were not setting the modifier state on KeyData, and we were
31576           not generating any events when Alt was pressed with a key
31577           since handling of WM_SYSxxx was missing for the OnKey methods.
31578
31579 2005-12-07  Jackson Harper  <jackson@ximian.com>
31580
31581         * MdiChildContext.cs: reenable the sizing code.
31582         - When the mouse leaves a window reset its cursor.
31583
31584 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
31585
31586         * ThemeClearlooks.cs: Reflect latest Hwnd changes
31587
31588 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
31589
31590         * Hwnd.cs: Now using the theme 3d bordersize to calculate
31591           widths of Fixed3D borders
31592
31593 2005-12-07  Jackson Harper  <jackson@ximian.com>
31594
31595         * MdiClient.cs: Fix warnings. Earn Mike's love.
31596
31597 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
31598
31599         * ThemeClearlooks.cs:
31600           - Adjusted mouse over button color
31601           - Added first parts of CheckBox drawing
31602           - Added correct color for selected text background
31603           - Fixed ComboBox drawing
31604           - Added CPDrawBorder3D and CPDrawBorder
31605
31606 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
31607
31608         * XplatUIX11.cs: Added call to XBell for AudibleAlert
31609
31610 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
31611
31612         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
31613           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
31614           alert users via sound. We could add an enum arg with different
31615           types of alerts in the future
31616
31617 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
31618
31619         * Control.cs: Fix behaviour problems pointed out by Mike
31620
31621 2005-12-05  Mike Kestner  <mkestner@novell.com>
31622
31623         * StatusBarPanel.cs: add Invalidate method and hook it into all the
31624         prop setters.  Calls parent.Refresh for now, but could be maybe be
31625         optimized with an internal method on StatusBar at some point.
31626         [Fixes #76513]
31627
31628 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
31629
31630         * RichTextBox.cs: Implemented get_SelectionColor
31631
31632 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
31633
31634         * ThemeClearlooks.cs:
31635           - Removed dead code
31636           - Draw black button border only if button is Form.AcceptButton
31637           - Draw correct button color for pressed RadioButton if the mouse 
31638             has entered the button
31639           - Updated ProgressBar drawing!
31640           - Updated CPDrawSizeGrip drawing
31641           - Updated StatusBarPanel drawing
31642
31643 2005-12-05  Mike Kestner  <mkestner@novell.com>
31644
31645         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
31646         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
31647
31648 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
31649
31650         * ThemeClearlooks.cs: Initial check-in, activate with
31651           export MONO_THEME=clearlooks
31652         * ThemeEngine.cs: Added ThemeClearlooks
31653
31654 2005-12-03  Mike Kestner  <mkestner@novell.com>
31655
31656         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
31657         [Fixes #76897]
31658
31659 2005-12-02  Jackson Harper  <jackson@ximian.com>
31660
31661         * Form.cs: If the child form has no menu the default main menu is
31662         used as the active menu.
31663
31664 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
31665
31666         * ListBox.cs: Check if any items exist before trying to resolve 
31667           coordinates into items
31668
31669 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
31670
31671         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
31672           as the second color for the background hatch
31673
31674 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
31675
31676         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
31677         * RichTextBox.cs: FormatText position arguments are 1-based, now making
31678           sure that what we pass to FormatText is always 1-based. Fixes #76885
31679
31680 2005-11-29  Miguel de Icaza  <miguel@novell.com>
31681
31682         * NumericUpDown.cs (EndInit): When we are done initializing,
31683         reflect any updates on the UI.
31684
31685 2005-12-02  Jackson Harper  <jackson@ximian.com>
31686
31687         * ImplicitHScrollBar.cs:
31688         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
31689         their container controls.
31690         * TreeView.cs: Use the new implicit scrollbars.
31691
31692 2005-12-02  Jackson Harper  <jackson@ximian.com>
31693
31694         * TreeView.cs: Make top_node internal so the TreeNodeCollections
31695         can play with it.
31696         * TreeNodeCollection.cs: If we remove the topnode we need to
31697         update topnode to the next node in line.
31698         - When clearing nodes go through the same process as removing
31699         them, so they get depareneted and checked if they are top node.
31700
31701 2005-12-01  Jackson Harper  <jackson@ximian.com>
31702
31703         * TreeView.cs: When imagelists are used the image area is
31704         selectable as well as the text.
31705         - If there are no selected nodes select the first one.
31706         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
31707         so don't do it more then we need to.
31708
31709 2005-12-01  Jackson Harper  <jackson@ximian.com>
31710
31711         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
31712         that arrows can be scaled.
31713
31714 2005-12-01  Jackson Harper  <jackson@ximian.com>
31715
31716         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
31717         fail. Patch by Dieter Bremes
31718
31719 2005-11-30  Jackson Harper  <jackson@ximian.com>
31720
31721         * Form.cs: Property is 2.0 only
31722         * PrintDialog.cs: Signature fix.
31723
31724 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
31725
31726         * TextControl.cs: 
31727           - No longer artificially moves text 2 pixels down (now that we have
31728             borders this is no longer needed)
31729           - Added calcs for left, hanging and right indent
31730
31731 2005-11-23  Mike Kestner  <mkestner@novell.com>
31732
31733         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
31734
31735 2005-11-30  Jackson Harper  <jackson@ximian.com>
31736
31737         * MdiChildContext.cs: Set the cloned menus forms, as these don't
31738         get cloned as part of CloneMenu ().
31739         * Menu.cs: Make sure the parent of the items get set correctly
31740         when they are added.  And the owners are notified of the changes.
31741         * Form.cs: Create an ActiveMenu property, so that when MDI is used
31742         we can change the menu being displayed/handled by the form without
31743         changing the menu assosciated with the form.
31744         - Don't let Mdi children draw/handle menus.
31745         
31746 2005-11-30  Jackson Harper  <jackson@ximian.com>
31747
31748         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
31749         a MenuChanged event. Just to make the API a little more
31750         consistent.
31751         * MainMenu.cs:
31752         * MenuItem.cs: Use the new OnMenuChanged
31753         * MdiChildContext.cs: Handle menu merging.
31754         * Form.cs: Implement MergedMenu.
31755         
31756 2005-11-30  Jackson Harper  <jackson@ximian.com>
31757
31758         * Menu.cs: We were misusing Add. Add goes behind the specified
31759         index according to the docs, and does not replace the specified
31760         index. So I added an Insert method.
31761
31762 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
31763
31764         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
31765           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
31766           is for Jackson
31767         * RichTextBox.cs: Added calls to base for DnD events
31768
31769 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
31770
31771         * TextControl.cs:
31772           - Fixed drag-selection related crash; style fixes
31773           - Implemented undo class
31774             o Implemented method to capture document state for specified
31775               range in document tree
31776             o Implemented method to restore captured document state
31777             o Implemented cursor tracking
31778             o Implemented basic undo stack
31779           - Added undo cursor tracking to methods altering cursor location
31780           - Added undo tracking to selection deletion (still missing
31781             other text-altering hookups)
31782         * RichTextBox.cs:
31783           - Added SelectionLength property
31784           - Implemented CanPaste()
31785           - Implemented Paste()
31786           - Added missing protected methods
31787           - Fixed RTF->Document conversion; now uses font index 0 and color 
31788             index 0 as the default font for the parsed text
31789           - Fixed RTF<->Document font size translation
31790           - Fixed RTF generation, now properly handles cross-tag boundaries
31791             for single line selection
31792           - No longer always appends blank line to generated RTF
31793           - Removed TODOs
31794           - Added missing attributes
31795           - Hooked up undo-related methods
31796         * TextBoxBase.cs:
31797           - Implemented Copy()
31798           - Implemented Paste()
31799           - Implemented Cut()
31800           - Fixed caret mis-behaviour on backspace across line-boundaries
31801
31802 2005-11-29  Jackson Harper  <jackson@ximian.com>
31803
31804         * MdiClient.cs: Add a method for activating mdi children. Very
31805         basic right now. I imagine someday it might need more girth.
31806         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
31807         children windows names are added to the menu item.
31808         * ThemeWin32Classic.cs: Draw the arrow if the item is an
31809         mdilist. This happens regardless of whether or not there are any
31810         mdi windows to see in the list, and according to my tests happens
31811         before the items are even added. Also happens if there isn't even
31812         an mdi client to get windows from.
31813
31814 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
31815
31816         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
31817         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
31818
31819 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
31820
31821         * DataGridTableStyle.cs:
31822           - Create always the styles for the missing columns even if they are
31823             provided by the user (not default table style)
31824         * DataGrid.cs:
31825           - Fixes bug 76770
31826           - Fixes SetDataBinding (always re-attach source)
31827           - Fixes SetNewDataSource (only clear styles if they are not for 
31828             this source)
31829          -  Expands OnTableStylesCollectionChanged to handle style refresh 
31830             and remove properly
31831
31832 2005-11-29  Jackson Harper  <jackson@ximian.com>
31833
31834         * FileDialog.cs: Implement missing bits, remove some dead
31835         code.
31836         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
31837         creation of the panel so that the options set on the dialog are
31838         seen when the panel is created.
31839         * TreeView.cs: raise a click when items are clicked.
31840         
31841 2005-11-29  Jackson Harper  <jackson@ximian.com>
31842
31843         * MdiClient.cs: Pass some signature methods through to base.
31844
31845 2005-11-28  Jackson Harper  <jackson@ximian.com>
31846
31847         * ListView.cs: Raise the click event when items are clicked.
31848
31849 2005-11-28  Jackson Harper  <jackson@ximian.com>
31850
31851         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
31852         a nullref.
31853
31854 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
31855
31856         * ThemeNice.cs: - Removed 1 pixel bitmaps
31857           - Use SmoothingMode.AntiAlias where it makes sense
31858             (ScrollButton arrow for example)
31859           - Enhanced Button focus drawing
31860           - Fixed ComboBox drawing (no artefacts anymore, focus
31861             rectangle is back again, reduced size of ComboButton, etc.)
31862           - Fixed RadioButton focus drawing for Appearence.Button
31863           - Slight ScrollButton redesign
31864           - Some LinearGradientBrush size fixes
31865           - GroupBoxes have now rounded edges
31866           - Fixed StatusBar drawing
31867
31868 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
31869
31870         * ThemeNice.cs: - Remove dead code
31871           - use correct background colors for menus, etc.
31872           - Fake pixel drawing with 1 pixel bitmaps
31873
31874 2005-11-24  Jackson Harper  <jackson@ximian.com>
31875
31876         * MdiClient.cs: Size the scrollbars when resizing the window.
31877         - Resize the maximized windows when the client is resized
31878         * Form.cs: Make the child context available
31879         
31880 2005-11-23  Jackson Harper  <jackson@ximian.com>
31881
31882         * MdiChildContext.cs: Don't size windows if they are maximized.
31883
31884 2005-11-23  Mike Kestner  <mkestner@novell.com>
31885
31886         * ContextMenu.cs: use MenuTracker.
31887         * Control.cs: remove menu handle usage.
31888         * Form.cs: remove menu handle usage.
31889         * Hwnd.cs: remove menu handle usage.
31890         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
31891         motion and clicks to the new Tracker handlers.
31892         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
31893         and handle usage.
31894         * MenuAPI.cs: refactored to combine popup and menubar event handling.
31895         Killed the MENU and MENUITEM data types and associated collections
31896         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
31897         MenuTracker class that exposes the leftovers from the old MenuAPI
31898         static methods. Restructured Capture handling so that only one grab is
31899         done for the entire menu hierarchy instead of handing off grabs to
31900         submenus. Tracker now has an invisible control to Capture when active.
31901         * MenuItem.cs: add sizing accessors, kill Create
31902         and handle usage.
31903         * Theme.cs: remove menu handle and MENU(ITEM) usage.
31904         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
31905         MENU(ITEM). remove menu handle usage, use Menu directly.
31906         * XplatUIDriver.cs: remove menu handle usage.
31907         * XplatUIOSX.cs: remove menu handle usage.
31908         * XplatUIWin32.cs: remove menu handle usage.
31909         * XplatUIX11.cs: remove menu handle usage.
31910
31911 2005-11-22  Jackson Harper  <jackson@ximian.com>
31912
31913         * Hwnd.cs: Don't compute the menu size for
31914         DefaultClientRectangle.
31915         - Reenable menu sizes being computed for GetClienRectangle.
31916         * Form.cs: Remove comment of trechery
31917         
31918 2005-11-22  Jackson Harper  <jackson@ximian.com>
31919
31920         * Hwnd.cs: The adjustments for the menu bar are made when it is
31921         attached to the form.
31922
31923 2005-11-19  Jackson Harper  <jackson@ximian.com>
31924
31925         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
31926         (just like on windows).
31927
31928 2005-11-19  Jackson Harper  <jackson@ximian.com>
31929
31930         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
31931         use real buttons anymore because they are in non client area. The
31932         one TODO here is that I need to somehow invalidate a section of
31933         the non client area.
31934
31935 2005-11-18  Jackson Harper  <jackson@ximian.com>
31936
31937         * Control.cs: Put the enum check back in now that MDI doesnt have
31938         to use this to set border styles.
31939         * Form.cs: Only set mdi child windows borders if the handle has
31940         been created.
31941         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
31942         this directly on to the driver.
31943         - Get the move start position before adjusting for the titlebar
31944         height, this fixes the windows "skipping" when they are first
31945         moved.
31946
31947 2005-11-18  Jackson Harper  <jackson@ximian.com>
31948
31949         * XplatUIX11.cs: Just compute the mdi borders separately as they
31950         don't totally match up with normal form borders.
31951
31952 2005-11-18  Jackson Harper  <jackson@ximian.com>
31953
31954         * Control.cs: Set WS_ styles for borders, so that the driver does
31955         not have to retrieve the control instance to figure out what kind
31956         of borders it should have.
31957         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
31958         driver can know its an mdi child easily.
31959         * XplatUIX11.cs: Get the border styles and whether the window is
31960         MDI from the Styles and ExStyles params instead of having to get a
31961         control. This prevents a chicken and egg problem.       
31962
31963 2005-11-18  Jackson Harper  <jackson@ximian.com>
31964
31965         * MdiClient.cs: Fix typo so scrollbars show up correctly.
31966
31967 2005-11-18  Jackson Harper  <jackson@ximian.com>
31968
31969         * MdiClient.cs: Calculate when to add and remove scrollbars
31970         correctly.
31971         * MdiChildContext.cs: Adjust the y position to take the titlebar
31972         into account.
31973         - No height for FormBorderStyle.None
31974
31975 2005-11-18  Jackson Harper  <jackson@ximian.com>
31976
31977         * Control.cs: Allow non enum values to be used for
31978         InternalBorderStyle.  MDI does this to set a special border style.
31979         - New utility methods for converting points to/from client coords
31980         - Add the newly created control to the Controls collection before
31981         updating its style. This way UpdateStyle can walk the control
31982         heirarchy to find the control if needed.
31983         so I don't need to create a new Point object all the time.
31984         * Form.cs: Let MDI windows handle their border styles.
31985         - Set styles on MDI windows so the correct title style is derived.
31986         * MdiChildContext.cs: Move all the painting and window handling
31987         into the non client area.
31988         - Use correct sizing and put correct buttons on frames based on
31989         the FormBorderStyle.
31990         - Notify the mdi client about scrolling
31991         - Need to handle the buttons ourselves now, because they are all
31992         in non client areas and we can't add controls there.
31993         * MdiClient.cs: Halfway to scrolling, this implementation is
31994         somewhat broken though, we need to check to make sure other
31995         windows aren't causing scrolling before removing the bars. Also
31996         the bars need to be drawn on top, maybe I can switch implicit
31997         controls to be on top.
31998         * Hwnd.cs: caption_height and tool_caption_height are now
31999         properties of an hwnd, this way they can be set by the driver
32000         based on the type of window they are.  In X11 the window manager
32001         handles the decorations so caption_height is zero unless its an
32002         MDI window.
32003         - Add 3 pixel borders for MDI windows (0xFFFF).
32004         - Get rid of some code duplication, have DefaultClientRectanle
32005         just call GetClientRectangle.
32006         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
32007         Hwnd now.
32008         - Set border styles differently for mdi windows.
32009         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
32010         Hwnd now.
32011         
32012 2005-11-15  Mike Kestner  <mkestner@novell.com>
32013
32014         * Menu.cs: when adding an item to the collection, if item is already 
32015         parented, remove it from the parent.
32016
32017 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
32018
32019         * X11DesktopColors.cs: Added KDE support
32020
32021 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
32022
32023         * XplatUIWin32.cs: 
32024           - Clipboard methods now can translate Rtf format
32025           - No longer removes clipboard contents whenever a new format is added
32026             to allow placing multiple formats on the clipboard
32027         * Clipboard.cs: Clipboard now supports getting a IDataObject and
32028           will place all formats contained in it onto the clipboard. Also
32029           now cleans the clipboard before placing a new object onto it
32030         * RichTextBox.cs:
32031           - Implemented set_Rtf
32032           - Implemented set_SelectedRtf
32033           - Created InsertRTFFromStream() method to allow single code base
32034             for all properties and methods that insert RTF into document
32035           - Removed debug output
32036         * TextControl.cs:
32037           - Fixed Delete(int) to fix up line numbers
32038           - Fixed ReplaceSelection to combine start and end line
32039           - Fixed serious DeleteChars bug that would leave the document tree
32040             broken
32041           - Improved DumpTree with several logic checks to detect broken
32042             document trees
32043           - Removed debug lines
32044           - Fixed Caret.WordForward/WordBack moving code, now always also 
32045             updates caret.tag (fixes crash when word-selecting across tag
32046             boundaries via keyboard)
32047           - Added Insert() method for inserting multiline text into documents
32048           - Fixed DeleteChars() calculation errors that would cause a broken
32049             tag chain with multiple tag lines
32050           - DeleteChars() no longer crashes on multi-tag lines if not all tags
32051           - Split() no longer moves caret if split is at caret location
32052           - ReplaceSelection() now updates the cursor and re-displays it
32053           - ReplaceSelection() now uses new Insert() method to avoid code
32054             duplication
32055           - FormatText() can now handle formatting partial lines
32056         * TextBoxBase.cs:
32057           - Append now uses new TextControl.Insert() method (this avoids 
32058             duplicate code)
32059           - Implemented Ctrl-X (Cut) (
32060           - Implemented Ctrl-C (Copy)
32061           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
32062             regeneration when pasting text; roundtripping Copy&Paste within
32063             edit control still fails due to some calculation bugs in GenerateRTF)
32064           - The Delete key will now remove the current selection if it is visible
32065         * TextBox.cs: Removed debug lines
32066         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
32067           driver to be initialized and can't therefore be done via a static ctor)
32068
32069 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
32070
32071         * TextControl.cs: Added backend code for finding char arrays and strings
32072         * TextBoxBase.cs:
32073           - Added mouse wheel scroll support
32074           - Added support for VScroll and HScroll events
32075         * RichTextBox.cs:
32076           - Implemented all seven Find() variants
32077           - Implemented GetCharFromPosition()
32078           - Implemented GetCharIndexFromPosition()
32079           - Implemented GetLineFromIndex()
32080           - Implemented GetPositionFromCharIndex();
32081           - Implemented SaveFile for PlainText and UnicodeText
32082           - Fixed set_Font, now setting a new font applies that font to
32083             the whole document
32084           - Implemented generic Document to RTF converter
32085           - Implemented SaveFile for RichText format (still missing unicode
32086             conversion for non-ansi chars)
32087           - Implemented get_Rtf
32088           - Implemented get_SelectedRtf
32089
32090 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
32091
32092         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
32093           to allow any captures to be released before triggering OnClick. This
32094           way a click handler may capture the mouse without interference.
32095         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
32096           This way we send them even though X may not allow a grab (if the window
32097           isn't visible, for example)
32098
32099 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
32100
32101         * DataGridViewRowEventArgs.cs: DataGridView implementation
32102         * DataGridViewElement.cs: DataGridView implementation
32103         * DataGridViewComboBoxCell.cs: DataGridView implementation
32104         * DataGridViewDataErrorContexts.cs: DataGridView implementation
32105         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
32106         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
32107         * ImageLayout.cs: DataGridView implementation
32108         * DataGridViewComboBoxColumn.cs: DataGridView implementation
32109         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
32110         * DataGridViewSelectionMode.cs: DataGridView implementation
32111         * IDataGridViewEditingControl.cs: DataGridView implementation
32112         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
32113         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
32114         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
32115         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
32116         * DataGridViewColumnSortMode.cs: DataGridView implementation
32117         * DataGridView.cs: DataGridView implementation
32118         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
32119         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
32120         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
32121         * Padding.cs: DataGridView implementation
32122         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
32123         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
32124         * DataGridViewRowEventHandler.cs: DataGridView implementation
32125         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
32126         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
32127         * DataGridViewButtonCell.cs: DataGridView implementation
32128         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
32129         * DataGridViewEditMode.cs: DataGridView implementation
32130         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
32131         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
32132         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
32133         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
32134         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
32135         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
32136         * DataGridViewCellEventHandler.cs: DataGridView implementation
32137         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
32138         * DataGridViewCellStyleConverter.cs: DataGridView implementation
32139         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
32140         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
32141         * DataGridViewColumnEventArgs.cs: DataGridView implementation
32142         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
32143         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
32144         * QuestionEventArgs.cs: DataGridView implementation
32145         * IDataGridViewEditingCell.cs: DataGridView implementation
32146         * DataGridViewTriState.cs: DataGridView implementation
32147         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
32148         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
32149         * DataGridViewColumnCollection.cs: DataGridView implementation
32150         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
32151         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
32152         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
32153         * DataGridViewColumn.cs: DataGridView implementation
32154         * DataGridViewCellBorderStyle.cs: DataGridView implementation
32155         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
32156         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
32157         * DataGridViewRow.cs: DataGridView implementation
32158         * DataGridViewImageCellLayout.cs: DataGridView implementation
32159         * DataGridViewImageCell.cs: DataGridView implementation
32160         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
32161         * DataGridViewCheckBoxCell.cs: DataGridView implementation
32162         * DataGridViewHeaderCell.cs: DataGridView implementation
32163         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
32164         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
32165         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
32166         * DataGridViewTextBoxColumn.cs: DataGridView implementation
32167         * QuestionEventHandler.cs: DataGridView implementation
32168         * DataGridViewCellStyleScopes.cs: DataGridView implementation
32169         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
32170         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
32171         * DataGridViewCell.cs: DataGridView implementation
32172         * DataGridViewCellEventArgs.cs: DataGridView implementation
32173         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
32174         * DataGridViewCellStyle.cs: DataGridView implementation
32175         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
32176         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
32177         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
32178         * TextFormatFlags.cs: DataGridView implementation
32179         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
32180         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
32181         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
32182         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
32183         * DataGridViewButtonColumn.cs: DataGridView implementation
32184         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
32185         * HandledMouseEventArgs.cs: DataGridView implementation
32186         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
32187         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
32188         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
32189         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
32190         * DataGridViewRowCollection.cs: DataGridView implementation
32191         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
32192         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
32193         * DataGridViewHitTestType.cs: DataGridView implementation
32194         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
32195         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
32196         * DataGridViewColumnEventHandler.cs: DataGridView implementation
32197         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
32198         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
32199         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
32200         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
32201         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
32202         * DataGridViewContentAlignment.cs: DataGridView implementation
32203         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
32204         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
32205         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
32206         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
32207         * DataGridViewPaintParts.cs: DataGridView implementation
32208         * DataGridViewCellCollection.cs: DataGridView implementation
32209         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
32210         * DataGridViewImageColumn.cs: DataGridView implementation
32211         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
32212         * DataGridViewElementStates.cs: DataGridView implementation
32213         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
32214         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
32215         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
32216         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
32217         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
32218         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
32219         * DataGridViewRowHeaderCell.cs: DataGridView implementation
32220         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
32221         * DataGridViewTextBoxCell.cs: DataGridView implementation
32222         * DataGridViewBand.cs: DataGridView implementation
32223         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
32224         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
32225         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
32226         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
32227         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
32228         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
32229         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
32230         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
32231         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
32232         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
32233         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
32234
32235 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
32236
32237         * ThemeWin32Classic.cs: 
32238           - Draw the outside focus rectangle around buttons
32239           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
32240             doesn't use end caps for every dash of a line anymore. This
32241             workaround ignores the forecolor.
32242
32243 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
32244
32245         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
32246           endian safe.
32247
32248 2005-11-07  Jackson Harper  <jackson@ximian.com>
32249
32250         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
32251
32252 2005-11-07  Jackson Harper  <jackson@ximian.com>
32253
32254         * ScrollableControl.cs: Calculate the maximum and change vars
32255         (more) correctly so that scrollbars appear as a sensible size.
32256
32257 2005-11-04  Jackson Harper  <jackson@ximian.com>
32258
32259         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
32260         collection.
32261         * TreeView.cs: When the tree is sorted null out the top_node so
32262         that it is recalculated.
32263         - Use dotted lines instead of dashed lines to match MS better.
32264
32265 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
32266
32267         * ListView.cs: 
32268           - Implements key search for items. Useful when browsing files with FileDialog
32269           - When changing view mode or when clear the items reset scrollbar positions
32270
32271 2005-11-04  Jackson Harper  <jackson@ximian.com>
32272
32273         * CurrencyManager.cs: Implement the MetaDataChanged event, the
32274         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
32275         as to what the method may do as there is no real way of creating a
32276         derived CurrencyManager and calling the method. 
32277
32278 2005-11-03  Jackson Harper  <jackson@ximian.com>
32279
32280         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
32281         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
32282         method which seems to just be used internally to refresh the tabs.
32283
32284 2005-11-03  Jackson Harper  <jackson@ximian.com>
32285
32286         * TabControl.cs: Implement the remove method. Fix some broken
32287         comments.
32288
32289 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
32290
32291         * DateTimePicker.cs:
32292           - Added missing DateTimePickerAccessibleObject class
32293           - Added missing events
32294           - Added OnFontChanged method
32295         * Form.cs: Added missing attributes
32296         * TreeView.cs: Added missing attributes
32297
32298 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
32299
32300         * GridItemCollection.cs: Fix signatures
32301
32302 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
32303
32304         * XplatUI.cs: Updated build rev/date
32305         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
32306           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
32307         * Application.cs: Trigger context-specific ExitThread events
32308
32309 2005-11-03  Jackson Harper  <jackson@ximian.com>
32310
32311         * Menu.cs:
32312         * MainMenu.cs:
32313         * GridTableStylesCollection.cs:
32314         * Timer.cs:
32315         * TabPage.cs:
32316         * HelpProvider.cs:
32317         * StatusBar.cs:
32318         * MonthCalendar.cs: Signature fixes
32319
32320 2005-11-03  Jackson Harper  <jackson@ximian.com>
32321
32322         * TreeNodeCollection.cs: Remove should not be virtual.
32323         * TreeView.cs: Implement the last of the missing methods.
32324
32325 2005-11-03  Jackson Harper  <jackson@ximian.com>
32326
32327         * TreeNodeConverter.cs: Implement to get off my class-status back.
32328
32329 2005-11-03  Jackson Harper  <jackson@ximian.com>
32330
32331         * TreeView.cs: Hookup the bits for drag and drop.
32332         * TreeNode.cs: Don't cache the tree_view or index anymore, now
32333         that nodes can be moved from tree to tree easily this just causes
32334         all sorts of problems.
32335         * TreeNodeCollection: Don't need to give treenodes an index and
32336         treeview anymore when they are added, these are computed on the
32337         fly. Also make sure to remove a node before its added.
32338
32339 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
32340
32341         * TextControl.cs:
32342           - Added CaretSelection enum
32343           - Added comparison methods to Marker struct, makes selection code
32344             more readable
32345           - Added SelectionStart and SelectionEnd as 'moveable' location for
32346             the CaretDirection enum and handler
32347           - Added selection_prev variable to track optimized invalidation for
32348             word and line selection
32349           - Added SelectionVisible property (returns true if there is a valid 
32350             selection)
32351           - Switched CaretHasFocus to only display the caret if there is no
32352             visible selection
32353           - Avoiding StringBuilder.ToString to retrieve a single char, instead
32354             using the direct character index; should be much faster
32355           - Added various conditional debug statements
32356           - Fixed invalidation calculation for selection ranges
32357           - Added ExpandSelection() method to support word and line selection
32358           - Switched SetSelectionToCaret to use new Marker compare overloads
32359           - Added central IsWordSeparator() method to determine word 
32360             separators/whitespace and FindWordSeparator() to streamline common
32361             usage of IsWordSeparator()
32362         * TextBoxBase.cs:
32363           - Removed unneeded grabbed variable, it was just mirroring
32364             Control.Capture
32365           - No longer firing OnTextChanged event when Text setter is called,
32366             since the base will fire the event for us
32367           - Added handling of Ctrl-Up/Down selection
32368           - Added handling of Shift-Cursorkey selection
32369           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
32370             words
32371           - Added handling of Shift and Ctrl-Shift-Home/End selection
32372           - Removed some debug output
32373           - Added handling for single/double/tripple-click to place caret/
32374             select word/select line respectively (Fixes bug #76031)
32375           - Added support for drag expansion of word/line selection
32376         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
32377           current selection
32378
32379 2005-11-02  Jackson Harper  <jackson@ximian.com>
32380
32381         * X11Dnd.cs: If the drag is going to and from a MWF window just
32382         copy the data instead of sending it out through the X Selection
32383         mechanism.
32384
32385 2005-11-02  Jackson Harper  <jackson@ximian.com>
32386
32387         * X11Dnd.cs:
32388         * XplatUIX11.cs: When in a drag we don't want motion notify
32389         messages to get passed on to the other controls. This prevents
32390         mouse move messages from showing up in the drag source.
32391
32392 2005-11-02  Jackson Harper  <jackson@ximian.com>
32393
32394         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
32395         the correct button is release to end a drag.
32396         * XplatUIX11.cs: Make the button state internal so the drag system
32397         can access it.  Dragging needs to know about all button releases,
32398         not just left button.
32399
32400 2005-11-02  Miguel de Icaza  <miguel@novell.com>
32401
32402         * Form.cs (Icon): If the icon is null, reset the icon to the
32403         default value. 
32404
32405         * Cursor.cs: When writing the AND-mask bitmap do not include the
32406         number of colors, but hardcode those to two (black and white),
32407         fixes the loading of color cursors (Paint Dot Net).
32408
32409         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
32410         turn off autoscaling.
32411
32412         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
32413
32414 2005-11-02  Jackson Harper  <jackson@ximian.com>
32415
32416         * X11Dnd.cs: Make sure to send a status message if the pointer
32417         enters a control that can not accept a drop, otherwise the cursor
32418         isn't updated correctly. Also tried to compress the lines of code
32419         a bit.
32420
32421 2005-11-02  Jackson Harper  <jackson@ximian.com>
32422
32423         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
32424         set actions correctly.  This isn't perfect as XDND and win32 have
32425         some differences on how you allow actions. I'll clear this up by
32426         adding a path for drag from MWF to MWF windows.
32427         * XplatUIX11.cs: Hook into the dnd system.
32428
32429 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
32430
32431         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
32432         previously shown but they are no longer need it. Very obvious when 
32433         browsing files with FileDialog.
32434
32435 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
32436
32437         * Control.cs: We always need to call OnPaintBackground. We pretty much
32438           ignore AllPaintingInWmPaint and always do the painting there, whether 
32439           it's set or not, since we always ignore the WM_ERASEBKGND message 
32440           (which we don't generate on X11). This fixes #76616.
32441         * Panel.cs: Removed unneeded background painting. This happens properly
32442           in Control.cs already
32443
32444 2005-10-31  Mike Kestner  <mkestner@novell.com>
32445
32446         * Menu.cs: Add items to collection before setting their index.
32447         * MenuItem.cs : add range checking with ArgumentException like MS.
32448         [Fixes #76510]
32449
32450 2005-10-31  Jackson Harper  <jackson@ximian.com>
32451
32452         * ListBox.cs: Invalidate if the area is visible at all not just
32453         contained in the visible rect. Fixes unselection of semi visible
32454         items.
32455
32456 2005-10-31  Jackson Harper  <jackson@ximian.com>
32457
32458         * Control.cs: Consistently name the dnd methods. Make them
32459         internal so we can override them to match some MS behavoir
32460         internally.
32461         * Win32DnD.cs: Use the new consistent names.
32462
32463 2005-10-31  Jackson Harper  <jackson@ximian.com>
32464
32465         * TreeView.cs: Don't draw the selected node when we lose focus.
32466
32467 2005-10-31  Jackson Harper  <jackson@ximian.com>
32468
32469         * X11Dnd.cs: We still need to reset the state even though a full
32470         reset isn't being done, otherwise status's still get sent all over
32471         the place.
32472
32473 2005-10-31  Jackson Harper  <jackson@ximian.com>
32474
32475         * Control.cs: Make the dnd_aware flag internal so the dnd
32476         subsystem can check it. Catch exceptions thrown in dnd handlers to
32477         match MS behavoir.
32478         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
32479         * X11Dnd.cs: Handle null data in the converters. Set the XDND
32480         version when sending a XdndEnter. Use the control/hwnd dnd_aware
32481         flags to reduce the number of dnd enters/status's sent.
32482
32483 2005-10-31  Jackson Harper  <jackson@ximian.com>
32484
32485         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
32486
32487 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
32488
32489         * PictureBox.cs: Fixes 76512
32490
32491 2005-10-28  Jackson Harper  <jackson@ximian.com>
32492
32493         * X11Dnd.cs: Early implementation to support winforms being a drag
32494         source for data on X11. Also restructured the converters so they
32495         can go both ways now.
32496         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
32497         
32498 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
32499
32500         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
32501           clipboard requests
32502
32503 2005-10-27  Jackson Harper  <jackson@ximian.com>
32504
32505         * TreeNode.cs: Implement serialization so my DnD examples will work.
32506
32507 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
32508
32509         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
32510           TreeView.cs: Don't dispose objects that are not owned.
32511           
32512 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
32513
32514         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
32515           should retrieve the current cursor and report that, but XplatUI
32516           doesn't (yet) have an interface for that (and I'm not sure I even
32517           can, on X11)
32518         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
32519           until any message loop processing is done (and the WM_SETCURSOR
32520           replaces the cursor to the proper one)
32521         * XplatUIX11.cs: 
32522           - Fixed override behaviour, we can't set the cursor globally on X11, 
32523             just for our windows.
32524           - Invalidating the System.Drawing X11 display handle when we are
32525             shutting down
32526         * Control.cs: Fix to make csc happy
32527
32528 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
32529
32530         * TextBoxBase.cs: 
32531           - get_Text: Add last line (without trailing newline) to returned
32532             value (Fixes 76212)
32533           - get_TextLength: Count last line in returned length
32534           - ToString: Call Text property instead of duplicating code
32535
32536 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
32537
32538         * ImageList.cs: Dispose ImageAttributes objects.
32539
32540 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
32541
32542         * ImageList.cs: Use attribute constructors with less arguments where
32543           possible.
32544
32545 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
32546
32547         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
32548           Use typeof instead of strings when assembly is referenced. Added
32549           some more comments.
32550
32551 2005-10-21  Jackson Harper  <jackson@ximian.com>
32552
32553         * ListView.cs: Raise a double click event. Also tried to somewhat
32554         fix when the selectedindexchanged event is raised. Its still
32555         broken though.
32556
32557 2005-10-21  Jackson Harper  <jackson@ximian.com>
32558
32559         * TreeView.cs: New method to invalidate the plus minus area of a
32560         node without invalidating the whole node (maybe this can be used
32561         in some more places).
32562         * TreeNodeCollection.cs: When adding to an empty node we need to
32563         invalidate its plus minus area so the little block shows up.
32564         
32565 2005-10-21  Jackson Harper  <jackson@ximian.com>
32566
32567         * TreeView.cs: Make sure that when we invalidate a node the bounds
32568         are big enough to cover the selected box and the focus
32569         rectangle. Use a different colour for the lines connecting nodes
32570         so they show up with all themes.
32571
32572 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
32573
32574         * NativeWindow.cs: Don't call anything that could call into the driver,
32575           we might be on a different thread.
32576
32577 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
32578
32579         * Control.cs(Dispose): Since Dispose might run on a different thread,
32580           make sure that we call methods that could call into the driver via
32581           invoke, to avoid thread issues
32582
32583 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
32584
32585         * XplatUI.cs: Removed finalizer
32586         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
32587           not allowing to be called on the finalizer thread.
32588
32589 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
32590
32591         * ImageList.cs:
32592           - Reverted r51889 and r51891.
32593           - Added ImageListItem class that stores unmodified image items and image
32594             properties required to create list images until handle is created.
32595           - Added AddItem and moved image creation logic to AddItemInternal.
32596           - Added CreateHandle method that creates images based on unmodified items.
32597           - Added DestroyHandle that changes state to store unmodified items.
32598           - Add and AddStrip methods no more create handle.
32599           - ReduceColorDepth has no return value.
32600           - Dispose destroys handle.
32601           - Modified other methods to reflect the above changes.
32602           - Implemented key support.
32603           - Added profile 2.0 members and attributes.
32604           - Added private Reset and ShouldSerialize methods that provide the same
32605             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
32606             them as they are private.
32607           - Added some more comments about implementation details.
32608
32609 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32610
32611         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
32612
32613 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32614
32615         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
32616
32617 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
32618
32619         * DataGridDrawingLogic.cs: Fixes column hit calcultation
32620         * DataGridColumnStyle.cs: Remove debug message
32621
32622 2005-10-20  Jackson Harper  <jackson@ximian.com>
32623
32624         * TreeView.cs: We can always get input keys regardless of whether
32625         or not editing is enabled. They are used for navigation.
32626
32627 2005-10-20  Jackson Harper  <jackson@ximian.com>
32628
32629         * TreeNode.cs: Use the viewport rect for determining if a node
32630         needs to be moved for visibility. Don't use Begin/End edit. This
32631         calls a full refresh when its done.
32632         * TreeView.cs: New SetBottom works correctly.  Make the viewport
32633         rect property internal so the treenodes can see it. When clicking
32634         on a node we need to ensure that its visible because it might just
32635         be partly visible when clicked.
32636
32637 2005-10-20  Jackson Harper  <jackson@ximian.com>
32638
32639         * TreeNodeCollection.cs: Remove debug code.
32640
32641 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
32642
32643         * Datagrid.cs: Implements column sorting in Datagrid
32644         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
32645
32646 2005-10-20  Jackson Harper  <jackson@ximian.com>
32647
32648         * TreeNodeCollection.cs: Remove items properly. Update the correct
32649         area after removing them.
32650
32651 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
32652
32653         * Datagrid.cs: Should not call base.OnPaintBackground
32654
32655 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
32656
32657         * XplatUIX11.cs (GetMessage):
32658           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
32659             window instead of client window
32660           - Now properly calculates NC_xBUTTONUP message coordinates
32661           - ScreenToMenu now properly calculates it's coordinates of whole 
32662             window, since menus are in the whole window, not in the client
32663             window
32664           - Added WholeToScreen coordinate translation method
32665
32666 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
32667
32668         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
32669           want to return a message, loop back to the beginning of the function
32670           and grab the next real message to process instead.
32671
32672 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
32673
32674         * Splitter.cs: Properly set limits if no filler control is used
32675
32676 2005-10-19  Jackson Harper  <jackson@ximian.com>
32677
32678         * ColorDialog.cs: Don't show the help button if it is not enabled
32679         instead of disabling it (this is what MS does). Don't create the
32680         panel until the dialog is run, otherwise the vars (such as
32681         ShowHelp) are not set yet.
32682
32683 2005-10-19  Jackson Harper  <jackson@ximian.com>
32684
32685         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
32686         are reduced when adding nodes.
32687         * TreeNode.cs:
32688         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
32689         tree.
32690         
32691 2005-10-19  Jackson Harper  <jackson@ximian.com>
32692
32693         * FolderBrowserDialog.cs: End editing our treeview so the window
32694         actually gets refreshed.
32695
32696 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
32697
32698         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
32699           Obsoleted handling of WM_ERASEBKGND, now always draws our background
32700           inside of WM_PAINT
32701
32702 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32703
32704         * MenuAPI.cs: Returns after Hidding window
32705         * XplatUIX11.cs: Added TODO found while debugging menu issues
32706
32707 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
32708
32709         * XplatUIX11.cs: Do not re-map the whole window when it's size
32710           becomes non-zero unless it's supposed to be actually visible
32711
32712 2005-10-18  Jackson Harper  <jackson@ximian.com>
32713
32714         * TreeView.cs: We don't need to keep a count anymore.
32715         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
32716         use the Grow method.
32717
32718 2005-10-18  Jackson Harper  <jackson@ximian.com>
32719
32720         * TreeNodeCollection.cs: Insert is not supported on arrays, so
32721         implement it manually here.
32722
32723 2005-10-18  Jackson Harper  <jackson@ximian.com>
32724
32725         * ImageList.cs: Dont kill the list when the colour depth is
32726         changed, just change the colour depth of all the images.
32727         - Same goes for setting the image size. Just resize them all
32728         instead of killing the list softly.
32729
32730 2005-10-18  Jackson Harper  <jackson@ximian.com>
32731
32732         * Control.cs: Don't invalidate empty rectangles.
32733
32734 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32735
32736         * ListViewItem.cs:
32737           - Adds checked item to the Checked/Item lists (where empty before)
32738           - Do not add items to the Selected lists if they are already present
32739         * ListView.cs:
32740           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
32741           - When deleting items make sure that we delete them for the Selected
32742           and Checked list also.
32743
32744 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
32745
32746         * Label.cs: Dispose objects no longer used
32747         * ThemeWin32Classic.cs: Dispose objects no longer used
32748
32749 2005-10-18  Jackson Harper  <jackson@ximian.com>
32750
32751         * TabControl.cs: Don't refresh the whole control when the tabs are
32752         scrolled, we just need to refresh the tab area.
32753
32754 2005-10-17  Jackson Harper  <jackson@ximian.com>
32755
32756         * XplatUIX11.cs: Compress code a little bit. Only calculate the
32757         after handle when we need it.
32758
32759 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
32760
32761         * Control.cs: When the parent size changes, recalculate anchor 
32762           positions. Partial fix for #76462
32763
32764 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
32765
32766         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
32767           drawn. Fixes #76462
32768
32769 2005-10-17  Jackson Harper  <jackson@ximian.com>
32770
32771         * MonthCalendar.cs: Don't create the numeric up down until our
32772         handle is created. Otherwise our handle is created in the
32773         constructor and we don't know if we are a WS_CHILD or WS_POPUP
32774         yet.
32775
32776 2005-10-17  Jackson Harper  <jackson@ximian.com>
32777
32778         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
32779         correctly.
32780
32781 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
32782         * TreeNode.cs : small logical fix (was using local var instead of field)
32783         
32784 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
32785
32786         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
32787
32788 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
32789
32790         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
32791
32792 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
32793
32794         * Control.cs: 
32795           - Re-implemented anchoring code. My first version was really broken.
32796             This fixes bug #76033. Unlike the previous implementation we will
32797             no longer have round errors since all numbers are calculated from
32798             scratch every time. Removed various anchor-related obsolete vars.
32799           - InitLayout no longer causes layout event firing and layout to be 
32800             performed
32801
32802 2005-10-16  Jackson Harper  <jackson@ximian.com>
32803
32804         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
32805         which was broken).
32806
32807 2005-10-16  Jackson Harper  <jackson@ximian.com>
32808
32809         * TabControl.cs: Remove debug code.
32810
32811 2005-10-16  Jackson Harper  <jackson@ximian.com>
32812
32813         * XEventQueue.cs: Increase the default queue size (very simple
32814         apps needed to grow the queue).
32815         * Hwnd.cs: No finalizer so we don't need to suppress
32816         finalization. Compute the invalid area manually so a new rectangle
32817         does not newto be created.
32818         * ScrollableControl.cs: Don't set any params (otherwise visibility
32819         isn't set correctly).
32820         * MdiChildContext.cs: New constructor takes the mdi parent so it
32821         doesn't have to be computed and avoids a crash on windows. Draw
32822         the window icon properly, and allow the text to be seen.
32823         * Form.cs: Use new MdiChildContext constructor. Make sure the
32824         child context isn't null in wndproc.
32825         * TabControl.cs: Don't set focus, this is muddling keyboard
32826         behavoir. Expand the tab rows when a window size increase will
32827         allow extra tabs to be seen. Don't allow tabs smaller than the
32828         width of a window to be scrolled out of view.
32829         * TreeNode.cs:
32830         * TreeView.cs: Use measure string to calculate a nodes width, the
32831         width is cached and only updated when the text or the font is
32832         changed. Don't check for expand/collapse clicks on the first level
32833         nodes if root lines are disabled.
32834         
32835 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
32836
32837         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
32838
32839 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
32840
32841         * DataGridBoolColumn.cs: fixes warning
32842
32843 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
32844
32845         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
32846         to match more to match more precisely the MS Net behavior
32847
32848 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
32849
32850         * Hwnd.cs: Added field to track if window is mapped
32851         * XplatUIX11.cs: 
32852           - Unmap windows if they become 0-size, re-map when 
32853             they are >0 again; fixes #76035
32854           - Re-set our error handler after initializing X11Desktop
32855             to override any error handlers Gtk or whatever was called
32856             may have set.
32857
32858 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
32859
32860         * CheckedListBox.cs: Removed unused vars
32861         * ListView.cs: Fixed signatures
32862         * RichTextBox.cs: Removed unused vars
32863         * TextBoxBase.cs: Removed unused vars
32864         * XplatUIWin32.cs: Removed unused vars
32865         * XplatUIX11.cs: Removed unused vars
32866         * XplatUI.cs: Updated version and date to latest published
32867
32868 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
32869
32870         * Cursor.cs: Added private .ctor to work around a bug in
32871           resourceset (Thanks to Geoff Norton for the help on this)
32872         * SplitterEventArgs.cs: Made fields accessible so we don't
32873           waste boatloads of objects and can reuse the same one
32874           in Splitter
32875         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
32876           any captions and borders when generating screen coordinates
32877         * Splitter.cs: Reimplemented control, now fully complete, uses
32878           rubberband drawing, supports and obeys all properties, has
32879           proper cursors
32880
32881 2005-10-13  Miguel de Icaza  <miguel@novell.com>
32882
32883         * Form.cs (Form): Setup default values for autoscale and
32884         autoscale_base_size;  Make these instance variables, not static
32885         variables. 
32886
32887         (OnLoad): on the first load, adjust the size of the form.
32888
32889 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
32890
32891         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
32892           width argument to DrawReversibleRectangle()
32893         * XplatUIWin32.cs, XplatUIX11.cs: 
32894           - Implemented width for DrawReversibleRectangle()
32895           - Added logic to DrawReversibleRectangle that recognizes a zero
32896             width or height and only draws a line in that situation
32897         
32898 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
32899
32900         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
32901         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
32902         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
32903           method (it uses our FosterParent window to get a graphics context)
32904
32905 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
32906
32907         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
32908           and SetWindowBackground methods
32909         * Control.cs:
32910           - Setting proper ControlStyles
32911           - We no longer call XplatUI.SetWindowBackground and XplatUI.
32912             EraseWindowBackground, instead we draw the window background
32913             ourselves in PaintControlBackground. This behaviour is
32914             required to match MS, where, when OnPaintBackground is not
32915             called, the background is not drawn.
32916           - Removed unneeded Refresh() in set_Text
32917         * Hwnd.cs: Dropped the ErasePending support. No longer needed
32918         * XplatUIX11.cs:
32919           - Created DeriveStyles method to translate from CreateParams to
32920             FormBorderStyle and TitleStyle, also handles BorderStyle (which
32921             matches FormBorderStyle enum values)
32922           - Consolidated SetHwndStyles and CalculateWindowRect border/title
32923             style calculations into single DeriveStyles method
32924           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
32925             from redrawing the whole window on any resize or expose.
32926           - Fixed CreateWindow usage of SetWindowValuemask. Before not
32927             all styles were applied to our whole/client window appropriately
32928           - Removed EraseWindowBackground() and SetWindowBackground() methods
32929           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
32930             no longer clear/redraw the background through X
32931           - Removed handling of erase_pending bit, we have no use for it (or
32932             so it seems)
32933         * XplatUIOSX.cs:
32934           - Removed generation and handling of WM_ERASEBKGND message
32935           - Removed EraseWindowBackground() and SetWindowBackground() methods
32936           - Removed handling of hwnd.ErasePending flag
32937         * XplatUIWin32.cs:
32938           - Removed EraseWindowBackground() and SetWindowBackground() methods
32939           - We no longer call EraseWindowBackground on PaintEventStart, we 
32940             ignore the fErase flag, erasing is handled in Control in the
32941             background handler
32942         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
32943           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
32944           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
32945           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
32946           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
32947           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
32948           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
32949
32950 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
32951
32952         * PropertyGrids.cs: Get sub properties
32953         * PropertyGridView.cs: Fix drawing code
32954
32955 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32956
32957         * ListBox.cs: Fixes 76383
32958
32959 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32960
32961         * DataGridTextBoxColumn.cs: Sets location and size before attachment
32962         * ThemeWin32Classic.cs: Fixes border drawing and calculations
32963         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
32964
32965
32966 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32967
32968         * ComboBox.cs: Fixes border drawing
32969
32970 2005-10-10  Miguel de Icaza  <miguel@novell.com>
32971
32972         * MimeIcon.cs: Ignore errors if the file can not be read.
32973
32974 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
32975
32976         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
32977          - Fixed border calculations
32978          - Fixed horizontal scrolling in single column listboxes
32979          - Fixed drawing issues
32980
32981 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
32982
32983         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
32984           FormBorderStyle enum
32985         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
32986           code to determine FormBorderStyles from CreateParams
32987         * Form.cs:
32988           - Fixed bug where we'd set the wrong window styles if we were
32989             not creating an MDI window
32990           - Added call to XplatUI.SetBorderStyle when form borders are set
32991         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
32992         * Hwnd.cs:
32993           - Removed obsolete edge style
32994           - Switched from BorderStyle to FormBorderStyle
32995         
32996 2005-10-10  Jackson Harper  <jackson@ximian.com>
32997
32998         * Form.cs: Use the property to get the window handle instead of
32999         accessing it directly. Prevents a null reference exception.
33000
33001 2005-10-10  Jackson Harper  <jackson@ximian.com>
33002
33003         * TreeView.cs: Don't adjust the rect given to DrawString now that
33004         our libgdiplus draws correctly.
33005
33006 2005-10-08  Jackson Harper  <jackson@ximian.com>
33007
33008         * TreeView.cs: Don't try to find the clicked on node if there are
33009         no nodes in the tree.
33010
33011 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
33012
33013         * RichTextBox.cs:
33014
33015           restore
33016
33017 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
33018
33019         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
33020           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
33021           ErrorProvider.cs:
33022           Use ResPool for brushes and dispose System.Drawing objects that
33023           are not used anymore.
33024
33025 2005-10-07  Jackson Harper  <jackson@ximian.com>
33026
33027         * MdiChildContext.cs: Use the new borders instead of drawing them
33028         ourselves.
33029
33030 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
33031
33032         * Calling UpdateBounds after changing the window's BorderStyle 
33033         since the style can change the ClientSize
33034
33035 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
33036
33037         * Control.cs: Made PaintControlBackground virtual
33038         * Panel.cs: Overriding PaintControlBackground instead of using paint
33039           event; paint event method was interfering with 'real' users of the
33040           event.
33041
33042 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
33043
33044         * ThemeWin32Classic.cs: remove border drawing since it is handled
33045         by the base control class now and was causing double border drawing.
33046
33047 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
33048
33049         * Panel.cs: Redraw our background on paint. Not a pretty solution,
33050           but it does seem to match MS behaviour. This fixes bug #75324
33051
33052 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
33053
33054         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
33055           somewhat hackish looking
33056
33057 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
33058
33059         * TextBoxBase.cs:
33060           - We now accept Enter even if AcceptEnter is false, if the containing
33061             form does not have an AcceptButton configured (fixes bug #76355)
33062           - Calculations are now fixed to no longer use Width/Height, but
33063             ClientSize.Width/Height, since we now support borders (this was
33064             a result of fixing borders and therefore bug #76166)
33065           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
33066             true (fixes bug #76354)
33067         
33068 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
33069
33070         * Control.cs: 
33071           - Defaulting BorderStyle and setting it in XplatUI when our window 
33072             is created
33073           - Added enum check to InternalBorderStyle setter
33074         * XplatUIX11.cs: 
33075           - Added drawing of window borders
33076           - Now properly calculates WM decorations offset for toplevel 
33077             windows (fixes bug #74763)
33078         * XplatUIWin32.cs: 
33079           - Implemented BorderStyles for windows (we're letting win32 draw 
33080             the border for us)
33081           - Fixed the signature for SetWindowLong
33082         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
33083           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
33084           setting borders
33085         * UpDownBase.cs: Remove drawing of borders, this is handled by
33086           the driver, outside the client area
33087         * ListView.cs: Removed bogus border calculations. The control should
33088           be oblivious to borders, since those are not part of the client
33089           area. 
33090         * X11DesktopColors.cs: Commented out (currently) unneeded variables
33091         * ThemeWin32Classic.cs: Removed border calculations from ListView 
33092           drawing code
33093
33094 2005-10-06  Jackson Harper  <jackson@ximian.com>
33095
33096         * MdiChildContext.cs: Clear out the old virtual position remove
33097         all the unneeded calls to CreateGraphics.
33098
33099 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
33100
33101         * TextControl.cs: Use proper color for highlighted text; fixes #76350
33102
33103 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
33104
33105         * Form.cs: 
33106           - Added loading and setting of our new default icon
33107           - Only set icon if window is already created
33108
33109 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
33110
33111         * Label.cs:
33112           - Do not explicitly set the foreground and background colors, to
33113             allow inheriting from parents (fixes #76302)
33114           - Use Control's InternalBorderStyle property to deal with borders
33115
33116 2005-10-06  Jackson Harper  <jackson@ximian.com>
33117
33118         * MdiChildContext.cs: Use the new xplatui function to draw a
33119         reversible rect.
33120
33121 2005-10-06  Jackson Harper  <jackson@ximian.com>
33122
33123         * Form.cs: Add the parent before creating the child context cause
33124         we need the parent when setting up the child.
33125
33126 2005-10-06  Jackson Harper  <jackson@ximian.com>
33127
33128         * FolderBrowserDialog.cs: redo the tree population code so a
33129         second thread isn't used. Should be a lot faster and more stable
33130         now.
33131
33132 2005-10-05  Jackson Harper  <jackson@ximian.com>
33133
33134         * TreeView.cs: There are no expand/collapse boxes if the node has
33135         no children.
33136
33137 2005-10-05  Jackson Harper  <jackson@ximian.com>
33138
33139         * X11DesktopColors.cs: Get menu colours for the gtk theme.
33140
33141 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
33142
33143         * FileDialog.cs: Fix InitialDirectory
33144
33145 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
33146
33147         * ComboBox.cs:
33148                 - Fixes changing between styles
33149                 - Fixes simple mode
33150                 - Fixes last item crashing when navigating with keyboard
33151
33152 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
33153
33154         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
33155
33156 2005-10-05  Jackson Harper  <jackson@ximian.com>
33157
33158         * TreeView.cs: If updating the root node do a full refresh.
33159         * TreeNode.cs: The root node should be expanded by default. Also
33160         added a utility prop to tell if we are the root node.
33161         * TreeNodeCollection.cs: Only refresh if the node we are being
33162         added to is expanded. Also added a comment on a potential
33163         optimization.
33164         
33165 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
33166
33167         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
33168           in dispose method. Fixes #76330
33169
33170 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
33171
33172         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
33173
33174                 - Implements vertical and horizontal scrolling using XplatUI
33175                 - Fixes keyboard navagation
33176                 - Fixes EnsureVisible
33177                 - Drawing fixes
33178                 - Handles and draws focus properly
33179
33180
33181 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
33182
33183         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
33184           Create handle. NET_2_0: Destroy handle when value is null.
33185
33186 2005-10-03  Jackson Harper  <jackson@ximian.com>
33187
33188         * ScrollBar.cs: My last scrollbar patch was broken. This is a
33189         revert and a new patch to prevent the thumb from refreshing so
33190         much.
33191
33192 2005-10-02  Jackson Harper  <jackson@ximian.com>
33193
33194         * ScrollBar.cs: Don't update position if it hasn't actually
33195         changed. This occurs when you hold down the increment/decrement
33196         buttons and the thumb gets to the max/min.
33197
33198 2005-10-01  Jackson Harper  <jackson@ximian.com>
33199
33200         * Form.cs:
33201         * MdiChildContext.cs:
33202         * MdiClient.cs: Implement ActiveMdiChild in Form.
33203
33204 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
33205
33206         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
33207
33208 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
33209
33210         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
33211           be found
33212
33213 2005-09-30  Jackson Harper  <jackson@ximian.com>
33214
33215         * ListBox.cs: Don't do a full refresh unless some data has
33216         actually changed.
33217
33218 2005-09-30  Jackson Harper  <jackson@ximian.com>
33219
33220         * TreeView.cs: Make sure that the checkboxes size is factored in
33221         even when not visible.
33222
33223 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
33224
33225         * FileDialog.cs: Fix Jordi's build break
33226
33227 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
33228
33229         * FileDialog.cs: 
33230                 - Use standard the Windows colours for the combobox as espected
33231                 - Dispose objects that use resouces when no longer need them
33232
33233 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
33234
33235         * X11DesktopColors.cs: Initial incomplete implementation
33236         * XplatUIX11.cs: Added call to initialize X11DesktopColors
33237
33238 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
33239
33240         * Theme.cs: 
33241           - Switched Theme color names to match the names defined in 
33242             System.Drawing.KnownColors. Life's hard enough, no need to make 
33243             it harder.
33244           - Added setters to all theme color properties so themes can set
33245             their color schemes. The setters also propagate the color changes
33246             to System.Drawing.KnownColors via reflection
33247         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
33248           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
33249           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
33250           use the new, more logical theme color names
33251         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
33252           post-NT colors
33253         * ThemeWin32Classic.cs:
33254           - Removed code to set the old classic Windows colors. Instead it
33255             now relies on the colors returned by System.Drawing.KnownColors
33256             which will be either modern static colors (Unix) or colors
33257             read from the user's configuration (Win32)
33258           - Updated to use the new, more logical theme color names
33259           - Switched DataGrid drawing code to use only Theme colors instead of
33260             a mix of System.Drawing.KnownColors and Theme colors
33261           - DrawFrameControl(): Removed code that fills the button area, the
33262             fill would overwrite any previous fill done by a control. This
33263             fixes bug #75338 
33264           - Added DrawReversibleRectangle() stub
33265         * ScrollableControl.cs: Set visible state to false when scrollbars
33266           are removed (pdn fix)
33267         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
33268           DrawReversibleRectangle() method to allow drawing primitive 
33269           'rubber bands'
33270         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
33271
33272 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33273
33274         * ImageList.cs: Add(Icon): Create handle.
33275
33276 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
33277
33278         * ListView.cs:
33279         * ThemeWin32Classic.cs:
33280                 - Fixes detail mode
33281                 - Sets clippings
33282                 - Issues with drawing
33283
33284 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33285
33286         * ImageList.cs: Moved RecreateHandle back to ImageList as event
33287           source has to be the ImageList.
33288
33289 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33290
33291         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
33292
33293 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33294
33295         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
33296
33297 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33298
33299         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
33300
33301 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
33302         * GridItem.cs: Fixed TODOs
33303         * GridItemCollection.cs: Added ICollection interface
33304
33305 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
33306
33307         * ImageList.cs: Resize icons when needed.
33308
33309 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
33310
33311         * ListViewItem.cs
33312                 - Fixes GetBounds and returns on screen rects
33313         * ListView.cs:
33314                 - Fixes vertical and horzintal scrolling of items
33315         * ThemeWin32Classic.cs:
33316                 - Fixes drawing
33317                 
33318 2005-09-29  Raja R Harinath  <harinath@gmail.com>
33319
33320         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
33321
33322 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
33323
33324         * ImageList.cs: Added comments about handle creation. Moved Handle,
33325           HandleCreated and OnRecreateHandle implementations to ImageCollection.
33326           Handle is created in Add methods.
33327
33328 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
33329          
33330         * DataGridDrawingLogic.cs: 
33331                 - Takes rows into account on Colum calculations
33332                 - Returns the column when clickig
33333         * DataGrid.cs:
33334                 - Fixes default HitTestInfo values
33335                 - Fixes HitTestInfo.ToString
33336                 - Fixes ResetBackColor          
33337         
33338 2005-09-28  Jackson Harper  <jackson@ximian.com>
33339
33340         * MdiChildContext.cs: Obey rules for fixed sized windows (no
33341         sizing or cursor changes). Also added some temp code to draw the
33342         titlebars text (Makes dev a little easier).
33343
33344 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
33345
33346         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
33347
33348 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
33349          
33350         * ListBox.cs: Fixes bug 76253
33351
33352 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
33353
33354         * ImageList.cs: Added comments about the current implementation. Added
33355           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
33356           Format32bppArgb to preserve transparency and can use Graphics.FromImage
33357           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
33358           with Bitmap.LockBits for better performance. Revised the whole file to
33359           match MS.NET behaviour and provide better performance. Non-public
33360           interface members are calling public members even when they throw
33361           NotSupportedException for better maintainability. Moved ColorDepth,
33362           ImageSize, ImageStream and TransparentColor implementations to
33363           ImageCollection for better performance as these properties are not used
33364           by ImageList.
33365         * ImageListStreamer.cs: Added a new internal constructor that takes an
33366           ImageList.ImageCollection and serializes Images based on
33367           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
33368           match ImageList property name.
33369
33370 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
33371
33372         * ListBox.cs: Fixes IndexFromPoint for last item
33373
33374 2005-09-27  Jackson Harper  <jackson@ximian.com>
33375
33376         * Form.cs: Set the position of new mdi children correctly.
33377
33378 2005-09-27  Jackson Harper  <jackson@ximian.com>
33379
33380         * MdiClient.cs: New mdi children need to be added to the back of
33381         the controls collection so the zorder is set correctly. Also add a
33382         count of all the child windows that have been created.
33383
33384 2005-09-27  Jackson Harper  <jackson@ximian.com>
33385
33386         * Form.cs (CreateParams): Setup MDI forms correctly.
33387
33388 2005-09-27  Jackson Harper  <jackson@ximian.com>
33389
33390         * MdiChildContext.cs:
33391         * MonthCalendar.cs:
33392         * UpDownBase.cs:
33393         * ListBox.cs:
33394         * ListView.cs:
33395         * TextBoxBase.cs:
33396         * TreeView.cs:
33397         * ScrollableControl.cs:
33398         * ComboBox.cs: Add implicit controls using the new implict control
33399         functionality in ControlCollection. Also try to block multiple
33400         control add in a suspend/resume layout to save some cycles.
33401         
33402 2005-09-27  Jackson Harper  <jackson@ximian.com>
33403
33404         * Control.cs: Add functionality to the controls collection to add
33405         'implicit controls' these are controls that are created by the
33406         containing control but should not be exposed to the user. Such as
33407         scrollbars in the treeview.
33408         * Form.cs: The list var of the ControlsCollection is no longer
33409         available because of the potential of implicit controls getting
33410         ignored by someone accessing the list directly.
33411
33412 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
33413
33414         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
33415           loose it's parent. (Fixed bug introduced in r49103 when we added
33416           setting the child parent to null on Remove)
33417
33418 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
33419
33420         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
33421         * Splitter.cs: Added missing attributes for BorderStyle property.
33422         * TextBoxBase.cs: Marked Calculate* methods internal.
33423         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
33424         MS.NET.
33425
33426 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
33427          
33428         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
33429
33430 2005-09-25  Jackson Harper  <jackson@ximian.com>
33431
33432         * TreeView.cs: Update the node bounds correctly regardless of
33433         whether the node is visible.
33434
33435 2005-09-25  Jackson Harper  <jackson@ximian.com>
33436
33437         * ImageList.cs: Don't dispose the image after it is added to the
33438         image list. Only reformat images that need to be resized.
33439
33440 2005-09-25  Jackson Harper  <jackson@ximian.com>
33441
33442         * ImageList.cs: Don't set the format when changing the image.
33443
33444 2005-09-25  Jackson Harper  <jackson@ximian.com>
33445
33446         * TreeView.cs: We can't just assume the node has a font. Use the
33447         treeviews font if no node font is available.
33448
33449 2005-09-25  Jackson Harper  <jackson@ximian.com>
33450
33451         * TreeView.cs: Allow the scrollbars to be reset with negative
33452         values.
33453         - Don't add scrollbars to negative sized windows.
33454
33455 2005-09-23  Jackson Harper  <jackson@ximian.com>
33456
33457         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
33458         old Mono.Posix. Also remove some stray code that shouldn't have
33459         been committed.
33460
33461 2005-09-23  Jackson Harper  <jackson@ximian.com>
33462
33463         * TreeView.cs: Attempt at proper sizing of the horizontal
33464         scrollbar. Also don't resize the scrollbars unless they are
33465         visible.
33466
33467 2005-09-23  Jackson Harper  <jackson@ximian.com>
33468
33469         * TreeView.cs: We don't need to expand the invalid area when the
33470         selection changes, as this is all drawn in the node's bounding
33471         box. The area needs to be expanded (previous typo was contracting
33472         it) when the focus rect moves.
33473
33474 2005-09-23  Jackson Harper  <jackson@ximian.com>
33475
33476         * TreeView.cs: Display the selection box under the correct
33477         circumstances. We were rendering white text with no selection box
33478         before.
33479
33480 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
33481
33482         * TextControl.cs(Split): Now updates selection start/end if it points 
33483           into a line that's being split. Fixes a FIXME and bug #75258
33484
33485 2005-09-23  Jackson Harper  <jackson@ximian.com>
33486
33487         * Binding.cs:
33488         * ListControl.cs: Don't use the path when retrieving binding
33489         managers from the binding context. My bat sense tells me that the
33490         path is only used on insertion.
33491
33492 2005-09-22  Jackson Harper  <jackson@ximian.com>
33493
33494         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
33495
33496 2005-09-22  Jackson Harper  <jackson@ximian.com>
33497
33498         * Splitter.cs: There are special cursors used for splitting.
33499         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
33500
33501 2005-09-22  Jackson Harper  <jackson@ximian.com>
33502
33503         * Splitter.cs: Change the cursor appropriately when the splitter
33504         is moused over, so the user actually knows there is a splitter
33505         there.
33506
33507 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
33508
33509        * Label.cs : Fix ToString method to give same output as MS.NET
33510
33511 2005-09-22  Jackson Harper  <jackson@ximian.com>
33512
33513         * TreeView.cs: Create the scrollbars when the handle is created
33514         and add them right away, just make them invisble. Also account for
33515         the window being shrunk vertically to the point that the vert
33516         scrollbar needs to be added.
33517         - Remove some 0.5 adjustments to get around anti aliasing issues.
33518         
33519 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
33520          
33521         * MainMenu.cs: Fixes default value
33522         * MenuItem.cs: Fixes default value
33523
33524 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
33525
33526         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
33527
33528 2005-09-21  Jackson Harper  <jackson@ximian.com>
33529
33530         * Control.cs: Don't try to set the border style on the window if
33531         it hasn't been created. When the window is created the border
33532         style will be used.
33533
33534 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
33535
33536         * Control.cs (Update): Don't call XplatUI if we don't have a
33537           window handle yet
33538
33539 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
33540
33541         * ContainerControl.cs: Instead of throwing an exception, print
33542           a one-time warning about Validate not being implemented
33543         * XplatUIWin32.cs: Removed debug output
33544
33545 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
33546
33547         * Control.cs: Only set XplatUI background if we expect the windowing
33548           system to handle the background. This stops controls that draw their
33549           own background from flickering
33550
33551         * XplatUIX11.cs: Support custom visuals and colormaps for window 
33552           creation. This allows, amongst other things, using MWF X11 windows 
33553           with OpenGL.
33554
33555 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
33556
33557         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
33558           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
33559           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
33560           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
33561           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
33562           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
33563           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
33564           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
33565           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
33566           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
33567           GridColumnStylesCollection.cs, 
33568           IDataGridColumnStyleEditingNotificationService.cs,
33569           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
33570           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
33571           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
33572           TreeNodeCollection.cs, AmbientProperties.cs, 
33573           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
33574           DataObject.cs, ErrorProvider.cs, Splitter.cs,
33575           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
33576           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
33577           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
33578           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
33579           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
33580           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
33581           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
33582           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
33583           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
33584           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
33585           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
33586           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
33587           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
33588           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
33589           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
33590           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
33591           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
33592           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
33593           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
33594           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
33595           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
33596           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
33597           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
33598           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
33599           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
33600           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
33601           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
33602           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
33603           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
33604           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
33605           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
33606           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
33607           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
33608           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
33609           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
33610
33611 2005-09-21  Jackson Harper  <jackson@ximian.com>
33612
33613         * TreeNode.cs: Call Before/After Expand not Collapse when
33614         expanding.
33615
33616 2005-09-20  Jackson Harper  <jackson@ximian.com>
33617         
33618         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
33619
33620 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
33621          
33622         * ListViewItem.cs:
33623                 - Fixes bug 76120
33624                 - Fixes proper storing of subitems
33625                 - Fixes not updated items
33626
33627 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
33628
33629         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
33630           things if our window handle isn't created yet. Also disabled 
33631           debug for TextBoxBase
33632
33633 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
33634
33635         * MenuAPI.cs: Remove filtering of events to allow menu usage
33636
33637 2005-09-20  Miguel de Icaza  <miguel@novell.com>
33638
33639         * Cursor.cs: Allow null to be passed to Cursor.Current.
33640
33641 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
33642
33643         * ThemeWin32Classic.cs:
33644           - Change some private methods/fields to protected virtual so that 
33645             they can be accessed and overriden in derived classes
33646           - First refactoring of some methods. Derived themes now don't 
33647             need to duplicate the complete code from ThemeWin32Classic
33648         * ThemeNice.cs:
33649           - Added nice StatusBar
33650           - Derive from ThemeWin32Classic and not Theme
33651           - Removed duplicate ThemeWin32Classic code
33652
33653 2005-09-20  Miguel de Icaza  <miguel@novell.com>
33654
33655         * Control.cs (ControlCollection.Add): If the value null is passed
33656         the control is ignored. 
33657
33658         Optimize this loop.
33659
33660 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
33661
33662         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
33663           PostQuitMessage state.
33664         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
33665
33666 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
33667
33668         * Application.cs: Our constructor will never get called, move 
33669           initialization to fields; fixes bug #75933
33670
33671 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
33672
33673         * FileDialog.cs :
33674                 - Allow files to be selected properly using file name
33675                 combo box.
33676                 - Add ability to change diretory (absolute / relative)
33677                 using file name combo box.
33678
33679 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
33680          
33681         * ListBox.cs: 
33682                 - Fixes Multicolumn listboxes item wrong calculations
33683                 - Allows to click when only one item is in the listbox
33684                 - Fixes crash when no items using keyboard navigation
33685
33686 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
33687
33688         * ComboBox.cs: Reverted almost everything from the latest patch which
33689           broke ComboBox
33690
33691 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
33692         
33693         * ToolTip.cs:
33694                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
33695         * ComboBox.cs:
33696                 - When DropDownStyle is Simple, it does not show scrollbar 
33697                 to the last item of the list.
33698                 - When DropDownStyle is Simple, it crashed when the list was 
33699                 scrolled down with the down cursor key.
33700                 - Fixed a bug that when DropDownStyle is DropDownList, the 
33701                 selected item was not shown.
33702                 - The position of the selected item was not preserved when 
33703                 the next dropdown happened.
33704         * ThemeWin32Classic.cs:
33705                 - Items were wrapped at the right end.
33706         * CheckedListBox.cs:
33707                 - Fixed Add method
33708         * ListBox.cs:
33709                 - Items should be fully shown.
33710                 - When resizing and vertical scrollbar disappeared, the item 
33711                 of index 0 should be on the top of the list.
33712                 - GetItemRectangle should consider the size of ver. scrollbar
33713         * StatusBar.cs:
33714                 - SizingGrip area should not be allocated when it is not 
33715                 displayed.
33716                 - Now it reflects MinWidth of the containing panel and 
33717                 fixed a crash that happens when its width becomes so small.
33718
33719 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
33720
33721         * CheckedListBox.cs: Fixes bug 76028
33722         * ListBox.cs: Fixes bug 76028
33723
33724 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
33725
33726         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
33727         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
33728
33729 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
33730
33731         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
33732
33733 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
33734
33735         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
33736
33737 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
33738
33739         * IRootGridEntry.cs: Added
33740         * PropertyGridCommands.cs: Added
33741         * PropertiesTab.cs: Added missing methods and property
33742         * PropertyGridView.cs: Made class internal
33743         * PropertyGridTextBox.cs: Made class internal
33744
33745 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33746
33747         * MimeIcon.cs: Try to check some other environment variables
33748           if "DESKTOP_SESSION" returns "default"
33749
33750 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33751
33752         * ThemeNice.cs: Corrected background colors (e.g. menus)
33753         * ColorDialog.cs: Use correct background colors for controls
33754
33755 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
33756
33757         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
33758
33759 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
33760
33761         * RichTextBox.cs: Added initial implementation
33762         * lang.cs: Removed. Was accidentally checked in long time ago
33763         * TODO: Removed. Contents were obsolete
33764
33765 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
33766                                                                                 
33767         * PropertiesTab.cs : Added
33768
33769 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
33770                                                                                 
33771         * PropertyGrid.cs : Update
33772         * PropertyGridView.cs : Update
33773         * System.Windows.Forms.resx : Added images and strings
33774
33775 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
33776
33777         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
33778  
33779 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
33780
33781         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
33782           a busy loop right after the Ungrab the X11 display is otherwise 
33783           blocked
33784
33785 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
33786
33787         * ThemeWin32Classic.cs: Optimise the use of clipping
33788
33789 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
33790
33791         * DataGrid.cs: fixes recursion bug
33792
33793 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
33794
33795         * ThemeNice.cs: 
33796           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
33797           - Cleanup
33798
33799 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
33800
33801         * ThemeNice.cs: Draw nice ProgressBars
33802
33803 2005-09-01  Miguel de Icaza  <miguel@novell.com>
33804
33805         * VScrollBar.cs: Another buglet found by Aaron's tool. 
33806
33807         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
33808         bug finder.
33809
33810 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
33811
33812         * ThemeNice.cs:
33813           - Added nicer menu drawing
33814           - Updated DrawTab
33815           - some refactoring
33816
33817 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
33818
33819         * CreateParams.cs (ToString): Made output match MS
33820         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
33821             handle is already created (to avoid forcing window creation)
33822         * XplatUIX11.cs: Set window text to caption after creating window,
33823           in case Text was set before window was created
33824         * Form.cs: Use this.Text instead of a static string as caption
33825
33826 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
33827
33828         * NotifyIcon.cs: Don't set the window to visible; this screws
33829           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
33830           OnPaint without a bitmap)
33831         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
33832           happen very often anyway; we could add the check to the WM_PAINT 
33833           event generation code
33834
33835 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
33836
33837         * NotifyIcon.cs: Fill the icon area with a background color, to 
33838           avoid 'residue' when transparent icons are drawn
33839         * XplatUIX11.cs:
33840           - Handle whole_window == client_window when destroying windows
33841           - SystrayAdd(): Set client_window to whole_window value to
33842             get mouse and other events passed to NotifyIcon
33843
33844 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
33845
33846         * Form.cs: Set proper default for Opacity property
33847         * NotifyIcon.cs:
33848           - ShowSystray(): Don't bother creating telling the OS
33849             about the systray item if no icon is provided
33850           - Now handles WM_NCPAINT message to deal with whole/client window
33851             split
33852           - Create window as visible to not get caught by Expose optimization
33853         * Hwnd.cs: Removed debug message
33854         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
33855           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
33856             PaintEventStart/End to use new client argument
33857         * TextBoxBase.cs:
33858           - Commented out debug messages
33859           - Switched PaintEventStart/End to use new client argument
33860         * XplatUI.cs: Added client window bool to PaintEventStart()/
33861           PaintEventEnd() calls, to support drawing in non-client areas
33862         * XplatUIDriver.cs: 
33863           - Added client window bool to PaintEventStart()/PaintEventEnd() 
33864             calls, to support drawing in non-client areas
33865           - Added conditional compile to allow using MWF BeginInvoke 
33866             on MS runtime
33867         * XplatUIX11.cs:
33868           - Added some conditional debug output
33869           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
33870             whole/client window split
33871           - Implemented handling of client argument to PaintEventStart()/End()
33872         * Control.cs:
33873           - Throw exception if BeginInvoke() is called and the window handle
33874             or one of the window's parent handles is not created
33875           - Added conditional compile to allow using MWF BeginInvoke on
33876             MS runtime
33877           - get_Parent(): Only sets parent if handle is created. This avoids
33878             forcing window handle creation when parent is set.
33879           - Now fires Layout and Parent changed events in proper order
33880           - Switched to use Handle instead of window.Handle for Z-Order setting,
33881             the get_Parent() patch above causes us to possibly get null for 'window'
33882           - Implemented handling of client argument to PaintEventStart()/End()
33883           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
33884             default handling)
33885           - Now sends a Refresh() to all child windows when Refresh() is called
33886
33887 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
33888
33889         * Form.cs: Added (non-functional) Opacity property
33890         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
33891
33892 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
33893         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
33894           use export MONO_THEME=nice to activate it.
33895           Currently supported controls:
33896           - Button
33897           - ComboBox
33898           - ScrollBar
33899           - TabControl (TabAlignment.Top only, other will follow)
33900         * ThemeEngine.cs: Add theme nice
33901         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
33902           if enabled
33903
33904 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
33905
33906         * Splitter.cs: Resize docked control and its neighbor.
33907
33908 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
33909         -- Making Windows with Menus layout correctly --
33910         * Form.cs : The first leg of the fix
33911                 Menu setter - adjust Client Size as needed to make space for the menu
33912                 SetClientSizeCore - doesn't call base version to be able to pass the 
33913                         menu handle to XplatUI.CalculateWindowRect
33914         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
33915         * XplatUIX11.cs: The critical second leg of the fix
33916                 GetWindowPos needs to use a recalculated client_rect
33917                 so that resizing the window doesn't break layout of child controls. 
33918                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
33919                 Lots of \t\n killed
33920
33921 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
33922
33923         * Label.cs: Now properly recalculates width and height on Font and Text
33924           changes if AutoSize is set
33925
33926 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
33927         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
33928
33929 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
33930
33931         * ImageList.cs: Makes ToString method compatible with MS
33932
33933 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
33934
33935         * MenuAPI.cs: fixes bug 75716
33936
33937 2005-08-11 Umadevi S <sumadevi@novell.com>
33938         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
33939
33940 2005-08-11 Umadevi S <sumadevi@novell.com>
33941         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
33942
33943 2005-08-10  Umadevi S <sumadevi@novell.com>
33944         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
33945
33946 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
33947
33948         * Menu.cs: fixes bug 75700
33949         * MenuAPI.cs: fixes navigation issues
33950
33951 2005-08-09  Umadevi S <sumadevi@novell.com>
33952         * CheckedListBox.cs - simple fix for GetItemChecked.
33953
33954 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
33955
33956         * ComboBox.cs: Serveral fixes
33957         * ListBox.cs: Serveral fixes
33958
33959 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
33960
33961         * ComboBox.cs: Fixes FindString methods and GetItemHeight
33962         * ListBox.cs: Fixes FindString methods
33963
33964 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
33965
33966         * DataGrid.cs: fixes bugs exposed by new tests
33967
33968 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
33969
33970         * Mime.cs: Compile Mono assembly references only if compiling
33971           with Mono (Allows to build with VS.Net again)
33972
33973 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
33974
33975         * Control.cs (PaintControlBackground): Draw background image
33976         corrrectly.
33977         (CheckForIllegalCrossThreadCalls): Stubbed.
33978         
33979         * Form.cs (OnCreateControl): Center when should be centered.
33980         
33981         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
33982
33983 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
33984
33985         * Binding.cs: Binding to properties should be case unsensitive
33986
33987 2005-07-18 vlindos@nucleusys.com
33988
33989         * DataGrid.cs: fixes setmember order
33990
33991 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
33992
33993         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
33994         * FileDialog.cs: FileDialog is now resizable and uses the new
33995           MimeIconEngine
33996
33997 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
33998
33999         * DataGridTextBoxColumn.cs: default value
34000         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
34001         * GridTableStylesCollection.cs: fixes checking MappingName
34002         * DataGridDrawingLogic.cs: fixes drawing logic issues
34003         * DataSourceHelper.cs: rewritten to make compatible with more data sources
34004         * DataGrid.cs: fixes    
34005
34006 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
34007
34008         * MimeGenerated.cs: Use case sensitive comparer for
34009           NameValueCollections
34010
34011 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
34012
34013         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
34014         * ThemeWin32Classic.cs: bug fixes, code refactoring
34015         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
34016         * DataGrid.cs: bug fixes, code refactoring
34017         * DataGridTextBox.cs: bug fixes, code refactoring
34018         * DataGridColumnStyle.cs:  bug fixes, code refactoring
34019         * Theme.cs:  bug fixes, code refactoring
34020
34021 2005-07-01  Peter Bartok  <pbartok@novell.com> 
34022
34023         * TextControl.cs: Quick fix for the reported crash on ColorDialog
34024           and other text box usage
34025
34026 2005-07-01  Jackson Harper  <jackson@ximian.com>
34027
34028         * TabControl.cs: Make sure the bottom of the tab covers the pages
34029         border.
34030
34031 2005-06-30  Peter Bartok  <pbartok@novell.com> 
34032
34033         * Form.cs (ShowDialog): Assign owner of the dialog
34034         * TextBoxBase.cs: Always refresh caret size when deleting, caret
34035           might have been moved to a tag with different height
34036
34037 2005-06-30  Jackson Harper  <jackson@ximian.com>
34038
34039         * Form.cs: Don't create an infinite loop when setting focus
34040         * MenuItem.cs: Don't dirty the parents if we don't have any
34041
34042 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
34043
34044         * LibSupport.cs: Rename
34045
34046 2005-06-29  Peter Bartok  <pbartok@novell.com>
34047
34048         * TextBoxBase.cs: Re-align caret after deleting a character
34049         * TextControl.cs:
34050           - DeleteChars(): Ensure that tag covers the provided position
34051           - StreamLine(): Drop reference for dropped tag
34052
34053 2005-06-29  Peter Bartok  <pbartok@novell.com> 
34054
34055         * TextControl.cs: 
34056           - Selections now work properly, anchoring at the initial location
34057             and properly extending in either direction (SetSelectionToCaret(),
34058             SetSelectionStart() and SetSelectionEnd())
34059           - No longer redraws the whole control on selection change, now
34060             calculates delta between previous and new selection and only
34061             invalidates/redraws that area
34062           - Fixed FindPos() math off-by-one errors
34063           - Changed DeleteChars() to verify the provided tag covers the
34064             provided position, selections may have a tag that doesn't cover
34065             the position if the selection is at a tag border
34066           - Fixed off-by-one errors in DeleteChars()
34067           - Added missing streamlining check in DeleteChars() to remove
34068             zero-length tags
34069           - Implemented Invalidate() method, now properly calculates exposures
34070             between two given lines/positions
34071           - Implemented SetSelection()
34072           - Obsoleted and removed FixupSelection()
34073           - Improved RecalculateDocument() logic, removing code duplication
34074
34075 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
34076
34077         * LibSupport.cs: changes to match different input/output arguments.
34078
34079 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
34080
34081         * LibSupport.cs: added libsupport.so init routine.
34082
34083 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
34084         
34085         * ControlBindingsCollection.cs
34086                 - Throws an exception on null datasource when adding
34087                 - Checks for duplicated bindings when adding
34088
34089 2005-06-28  Jackson Harper  <jackson@ximian.com>
34090
34091         * TreeView.cs (OnKeyDown): Support left and right properly
34092         (navigates as well as expanding and collapsing.
34093         - Add support for Multiply, this expands all the selected nodes
34094         children.
34095         - Fix some tabbing.
34096
34097 2005-06-28  Jackson Harper  <jackson@ximian.com>
34098
34099         * TreeView.cs: Implement keyboard navigation, currently supports,
34100         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
34101         support for toggling checkboxes with the space bar.
34102
34103 2005-06-28  Jackson Harper  <jackson@ximian.com>
34104
34105         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
34106         tree.
34107
34108 2005-06-28  Jackson Harper  <jackson@ximian.com>
34109
34110         * TreeView.cs: Add missing event.
34111
34112 2005-06-27  Peter Bartok  <pbartok@novell.com> 
34113
34114         * TextControl.cs:
34115           - Made line ending size configurable (now allows for counting 
34116             lineendings as \n or \r\n)
34117           - Added margin to viewport to keep caret visible on right side
34118           - Fixed translation routines for line/pos to documentpos to consider
34119             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
34120           - Fixed some line-endings to be unix style
34121           - Fixed Document.FormatText to perform it's calculations 1-based
34122           - Added descriptions for a few methods that might otherwise get 
34123             used wrong
34124           - Added NOTE section with some basic conventions to remember at 
34125             the top of the file
34126           - Major fixup for RichTextBox selection drawing:
34127             * Fixed crashes when multiple tags on a single line were selected
34128             * fixed selection box drawing not overlaying text
34129             * fixed bogus offset calculation for tags not starting at index 1
34130             * Switched behaviour from using multiple Substrings of a 
34131               StringBuilder.ToString() to using multiple 
34132               StringBuilder.ToString(start, length) statements, hoping this is
34133               faster (kept original version commented out in the code, in case
34134               original version was faster)
34135         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
34136           alignment != Left
34137         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
34138           call it as well
34139
34140 2005-06-27  Jackson Harper  <jackson@ximian.com>
34141
34142         * TabControl.cs: Move to the left and right with the arrow
34143         keys. These keys don't cycle beyond first and last like
34144         tab. Refresh all the tabs when scrolling them to the left or
34145         right.
34146
34147 2005-06-27  Jackson Harper  <jackson@ximian.com>
34148
34149         * TabControl.cs:
34150           - ToString: Added method
34151           - CreateParams: Remove TODO and comment
34152           - OnKeyDown: Cycle through bounds properly.
34153           - SelectedIndex: Scroll to the right or left if we need to
34154           display the newly selected tab.
34155
34156 2005-06-23  Jackson Harper  <jackson@ximian.com>
34157
34158         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
34159         set.
34160
34161 2005-06-23  Jackson Harper  <jackson@ximian.com>
34162
34163         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
34164         CTRL-SHIFT-TAB, and HOME, END are there any others?
34165
34166 2005-06-23  Jackson Harper  <jackson@ximian.com>
34167
34168         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
34169
34170 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
34171         
34172         * DataGridTextBoxColumn.cs: fixes and enhancements
34173         * ThemeWin32Classic.cs: fixes and enhancements
34174         * DataGridBoolColumn.cs:  fixes and enhancements
34175         * DataGridDrawingLogic.cs:  fixes and enhancements
34176         * CurrencyManager.cs: fixes and enhancements
34177         * DataGrid.cs: fixes and enhancements
34178         * DataGridColumnStyle.cs:  fixes and enhancements
34179
34180 2005-06-22  Jackson Harper  <jackson@ximian.com>
34181
34182         * TabControl.cs: Add some missing methods that just call into the
34183         base. Make the TabPageCollection's IList interface behave in the
34184         same manner as the MS implementation.
34185
34186 2005-06-22  Peter Bartok  <pbartok@novell.com> 
34187
34188         * TextControl.cs: Added sanity check
34189         * TextBoxBase.cs: 
34190           - Fixed wrapping behaviour, don't set wrap on single line controls
34191             (this fixes the breakage of colordialog introduced in an earlier
34192              checkin)
34193           - Added rudimentary support for autoscrolling right-aligned controls
34194             (still needs fixing, also, center alignment scroll is missing)
34195
34196 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
34197         
34198         * ScrollBar.cs: Fixes thumbpos on Maximum values
34199
34200 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
34201         
34202         * PropertyGridView.cs: Pass context information to UITypeEditors 
34203
34204 2005-06-21  Peter Bartok  <pbartok@novell.com> 
34205
34206         * TextBoxBase.cs:
34207           - Now calling PositionCaret with absolute space coordinates
34208           - Enabled vertical scrolling
34209           - Better tracking of scrollbar changes, tied into WidthChange
34210             event
34211           - Improved cursor tracking
34212           - Removed debug output
34213         * TextControl.cs:
34214           - PositionCaret coordinates are now works in absolute space, not 
34215             the canvas
34216           - Improved tracking of document size
34217           - Added events for width and height changes
34218
34219 2005-06-21  Peter Bartok  <pbartok@novell.com>
34220
34221         * Form.cs: Set focus to active control when form is activated
34222         * TextControl.cs: 
34223           - Added word-wrap functionality to RecalculateLine() 
34224           - Added some short function descriptions for VS.Net to aid in
34225             writing dependent controls
34226           - Added Caret property, returning the current coords of the caret
34227           - Added ViewPortWidth and ViewPortHeight properties
34228           - Added Wrap property
34229           - Added CaretMoved event
34230           - Removed some old debug code
34231           - Split() can now create soft splits
34232           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
34233           - Added method to format existing text
34234           - Fixed size/alignment calculations to use viewport
34235           - RecalculateDocument now can handle changing line-numbers while
34236             calculating lines
34237
34238         * TextBox.cs:
34239           - Added some wrap logic, we don't wrap if alignment is not left
34240           - Added casts for scrollbar var, base class switched types to
34241             also support RichTextBoxA
34242           - Implemented handling of scrollbar visibility flags
34243
34244         * TextBoxBase.cs:
34245           - Switched scrollbars type to RichTextBoxScrollBars to support
34246             RichTextBox
34247           - Added tracking of canvas width/height
34248           - Switched scrollbars to be not selectable (to keep focus on text)
34249           - Added central CalculateDocument() method to handle all redraw
34250             requirements
34251           - Added ReadOnly support
34252           - Added WordWrap support
34253           - Fixed handling of Enter key (we now treat it as a DialogKey)
34254           - Fixed caret positioning when h or v scroll is not zero
34255           - Fixed placing/generation of vertical scrollbar
34256           - Added CalculateScrollBars() method to allow updating scrollbar
34257             limits and visibility
34258           - Fixed handling of horizontal scroll
34259           - Added handling of vertical scroll
34260           - Implemented auto-'jump' when caret moves to close to a left or
34261             right border and there is text to be scrolled into view (currently
34262             there's the potential for a stack overflow, until a bug in
34263             scrollbar is fixed)
34264
34265 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
34266         
34267         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
34268
34269 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
34270
34271         * Mime.cs:
34272         - added inodes.
34273         - return application/x-zerosize for files with size zero
34274           (if no extension pattern matches).
34275         - check matches collection for strings too.
34276         - return only the first mime type if the name value
34277           collection has more than one mime type.
34278
34279 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
34280         
34281         * PropertyGrid.cs: Cleaned up some TODOs
34282         * PropertyGridView.cs: Added support for UITypeEditors
34283
34284 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
34285         
34286         * DataGrid.cs: clears cached value
34287
34288 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
34289
34290         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
34291         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
34292         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
34293         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
34294         
34295 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
34296
34297         * ThemeWin32Classic.cs: fixes colour
34298
34299 2005-06-15  Peter Bartok  <pbartok@novell.com>
34300
34301         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
34302         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
34303         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
34304         * Control.cs: Added some MWFCategory and MWFDescription attributes
34305         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
34306
34307 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
34308
34309         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
34310         usage
34311
34312 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
34313
34314         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
34315         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
34316         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
34317         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
34318         * DataGrid.cs: default datagrid settings for Default Styles, fixes
34319         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
34320
34321 2005-06-13  Jackson Harper  <jackson@ximian.com>
34322
34323         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
34324         isn't printed when the user enables dropping. (X11 does accept
34325         drops).
34326         
34327 2005-06-13  Jackson Harper  <jackson@ximian.com>
34328
34329         * TreeView.cs: Remove some TODOS.
34330
34331 2005-06-13  Jackson Harper  <jackson@ximian.com>
34332
34333         * Form.cs: Hook into the mdi framework.
34334         * MdiClient.cs: Use the base control collections add method so
34335         parents get setup correctly. Set the default back colour and dock
34336         style.
34337         * MdiChildContext.cs: New class, this bad actor handles an
34338         instance of an MDI window. Right now there is only basic
34339         support. You can drag, close, and resize windows. Minimize and
34340         Maximize are partially implemented.
34341
34342 2005-06-13  Jackson Harper  <jackson@ximian.com>
34343
34344         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
34345         freaky when both vals are negative. NOTE: There are probably other
34346         places in XplatUIX11 that this needs to be done.
34347
34348 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
34349
34350         * DataGrid.cs: implement missing methods, move KeyboardNavigation
34351         * DataGridColumnStyle.cs: fixes signature
34352
34353 2005-06-12  Jackson Harper  <jackson@ximian.com>
34354
34355         * XplatUIX11.cs: Use sizing cursors similar to the ones on
34356         windows.
34357
34358 2005-06-11  Jackson Harper  <jackson@ximian.com>
34359
34360         * StatusBarPanel.cs: Signature cleanups. Implement
34361         BeginInit/EndInit.
34362
34363 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
34364
34365         * DataGridTextBoxColumn.cs: Honors aligment
34366         * GridColumnStylesCollection.cs: Contains is case unsensitive
34367         * GridTableStylesCollection.cs: several fixes
34368         * DataGridTableStyle.cs: default column creation
34369         * DataGridDrawingLogic.cs: fixes
34370         * CurrencyManager.cs: ListName property
34371         * DataGrid.cs: multiple styles support
34372         * DataGridColumnStyle.cs: fixes
34373         
34374
34375 2005-06-10  Peter Bartok  <pbartok@novell.com>
34376
34377         * Control.cs(Select): Moved SetFocus call to avoid potential
34378           loops if controls change the active control when getting focus
34379         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
34380           the up/down buttons
34381
34382 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
34383
34384         * ImageListConverter.cs: Implemented
34385
34386 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
34387
34388         * MonthCalendar.cs: Wired in NumericUpDown control for year
34389
34390 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
34391
34392         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
34393           DoubleClick events, since they are not meant to be fired.
34394
34395 2005-06-09  Peter Bartok  <pbartok@novell.com>
34396
34397         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
34398           Jonathan's standalone controls into MWF, implemented missing
34399           events, attributes and methods; added xxxAccessible classes
34400         * AccessibleObject.cs: Made fields internal so other classes
34401           can change them if needed
34402
34403 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
34404
34405         * UpDownBase.cs: Complete implementation
34406         * NumericUpDown.cs: Complete implementation
34407         * DomainUpDown.cs: Complete implementation
34408
34409 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
34410
34411         * DataGridTextBoxColumn.cs: drawing fixes
34412         * DataGridCell.cs: fixes ToString method to match MSNet
34413         * DataGridTableStyle.cs: fixes
34414         * DataGridBoolColumn.cs: fixes, drawing
34415         * DataGridDrawingLogic.cs: fixes, new methods
34416         * DataGridTextBox.cs: Keyboard and fixes
34417         * DataGrid.cs:
34418                 - Keyboard navigation
34419                 - Scrolling fixes
34420                 - Row selection (single, multiple, deletion, etc)
34421                 - Lots of fixes
34422         
34423 2005-06-07  Jackson Harper  <jackson@ximian.com>
34424
34425         * ThemeWin32Classic.cs: Clear the background area when drawing
34426         buttons.
34427
34428 2005-06-06  Peter Bartok  <pbartok@novell.com>
34429
34430         * ImageListStreamer.cs: Fixed signature for GetData
34431         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
34432         * ComboBox.cs:
34433           - Added missing ChildAccessibleObject class
34434           - Added missing OnXXXFocus overrides, switched to using those
34435             instead of the event handler
34436         * Control.cs:
34437           - Added Parent property for ControlAccessibleObject
34438           - Fixed signatures
34439           - Fixed attributes
34440           - Added ResetBindings()
34441         * ListBindingConverter.cs: Implemented some methods
34442         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
34443         * ImageList.cs: Implemented basic handle scheme, removed TODOs
34444         * ContainerControl.cs: Fixed signature, now subscribing to the
34445           ControlRemoved event instead of overriding the handler, LAMESPEC
34446         * CurrencyManager.cs: Added missing attribute
34447         * MonthCalendar.cs: Added missing properties
34448
34449 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
34450
34451         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
34452         
34453 2005-06-06  Gaurav Vaish and Ankit Jain
34454
34455         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
34456         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
34457         
34458 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
34459
34460         * Control.cs: fixes CreateParams Width / Height.
34461
34462 2005-06-05  Peter Bartok  <pbartok@novell.com>
34463
34464         * Win32DnD.cs: Removed compilation warnings
34465
34466 2005-06-05  Peter Bartok  <pbartok@novell.com>
34467
34468         * Control.cs (CreateParams): Since we don't know if one of the
34469           properties we use is overridden, lets make sure if we fail accessing
34470           we continue with a backup plan
34471
34472 2005-06-05  Peter Bartok  <pbartok@novell.com>
34473
34474         * Win32DnD.cs:
34475           - Removed debug output
34476           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
34477             struct
34478           - Plugged resource leak
34479         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
34480           MS size
34481
34482 2005-06-05  Peter Bartok  <pbartok@novell.com>
34483
34484         * XplatUIWin32.cs: Removed DnD code
34485         * Win32DnD.cs: Implemented drop source and drop target functionality
34486
34487 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
34488
34489         * UpDownBase.cs: remove duplicate addition of event, enable some code
34490         that was commented out.
34491         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
34492         Validate input when a key is pressed. It works fine now for every
34493         combination of Hexadecimal. Only missing some drawing love when sharing
34494         space with other controls.
34495
34496 2005-06-04  Peter Bartok  <pbartok@novell.com>
34497
34498         * Control.cs:
34499           - We need to pass a window for DragDrop, so enable callback events
34500           - Added DnD callback events when being a DragSource
34501         * XplatUI.cs (StartDrag): Added window handle argument
34502         * XplatUIDriver.cs (StartDrag): Added window handle argument
34503         * QueryContinueDragEventArgs: Made fields internally accessible so
34504           drivers can set them
34505         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
34506           can set them
34507
34508 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
34509
34510         * DataGridTextBoxColumn.cs: column text editing
34511         * DataGridTableStyle.cs: Respect columns styles created by the user
34512         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
34513         * DataGridBoolColumn.cs: bool column editing
34514         * DataGrid.cs: fixes to scrolling, properties, etc
34515         * DataGridTextBox.cs: handle keyboard
34516         * DataGridColumnStyle.cs: fixes
34517
34518 2005-06-02  Jackson Harper  <jackson@ximian.com>
34519
34520         * ImageListStreamer.cs: Somewhat broken implementation of
34521         GetObjectData. The RLE needs some work to match MS properly.
34522
34523 2005-06-02  Jackson Harper  <jackson@ximian.com>
34524
34525         * X11Dnd.cs: Attempting to keep at least one file in MWF
34526         monostyled.
34527
34528 2005-06-02  Peter Bartok  <pbartok@novell.com>
34529
34530         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
34531           that way
34532
34533 2005-06-02  Peter Bartok  <pbartok@novell.com>
34534
34535         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
34536         * XplatUI.cs: Added DoDragDrop() method
34537         * XplatUIDriver.cs: Added DoDragDrop() method
34538
34539 2005-06-02  Jackson Harper  <jackson@ximian.com>
34540
34541         * Splitter.cs: Implement BorderStyle.
34542
34543 2005-06-02  Jackson Harper  <jackson@ximian.com>
34544
34545         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
34546         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
34547         X11 using XDND.
34548
34549 2005-06-02  Peter Bartok  <pbartok@novell.com>
34550
34551         * DataObject.cs:
34552           - Added Data setter
34553           - Fixed broken insertion code for SetData, now also
34554             overwrites any existing entry of the same format name
34555         * Hwnd.cs: Added list of pointers that automatically gets
34556           freed when the window is disposed
34557         * XplatUI.cs: Call driver initialization method when loading
34558           a driver
34559         * Control.cs:
34560           - OnDragLeave takes EventArgs, not DragEventArgs
34561           - Added setting of WS_EX_ACCEPTFILES style when dropping is
34562             supported
34563           - Forces style update when drop state changes
34564         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
34565           not perfect since we cannot (yet) call the IDataObject.GetData()
34566           method, we keep getting 0x80004005 error, dunno why)
34567
34568 2005-06-02  Peter Bartok  <pbartok@novell.com>
34569
34570         * DragEventArgs.cs: Make fields internal so we can cache the
34571           object and re-set the fields from XplatUI
34572
34573 2005-06-02  Jackson Harper  <jackson@ximian.com>
34574
34575         * Control.cs: Add some internal methods so the DnD subsystem can
34576         raise DnD events. Also call into the driver when AllowDrop is set.
34577         * XplatUI.cs:
34578         * XplatUIDriver.cs: New method for setting whether or not a window
34579         is allowed to accept drag and drop messages.
34580                 
34581 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
34582         
34583         * ScrollBar.cs: Make sure that values sent in Scroll events
34584         are always between Maximum and Minimum.
34585
34586 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
34587
34588         * Menu.cs: Call MenuChanged when menuitem visibility has been
34589         changed.
34590         * MenuItem.cs: Rebuild menu when item is (not) visible.
34591         * MainMenu.cs: MainMenu has special MenuChanged.
34592         * Theme.cs: Caption and FrameBorderSize are not fixed.
34593         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
34594         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
34595         * XplatUIX11.cs,
34596         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
34597         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
34598
34599 2005-05-30  Jackson Harper  <jackson@ximian.com>
34600
34601         * DataFormat.cs: We can't statically initialize this stuff because
34602         it calls into the xplatui and could create a loop. So we lazy init
34603         it.
34604
34605 2005-05-28  Jackson Harper  <jackson@ximian.com>
34606
34607         * Control.cs: Proper implementation of Product(Name/Version).
34608
34609 2005-05-27  Jackson Harper  <jackson@ximian.com>
34610
34611         * DataObject.cs: Dont crash if no data is found.
34612
34613 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
34614         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
34615                 as per status page, guessing it should be set to true
34616
34617 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
34618
34619         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
34620         * DataGridTableStyle.cs: set proper formatting text, def header text
34621         * ThemeWin32Classic.cs: new themable paramaters
34622         * DataGridBoolColumn.cs: paint check box, get data, fixes
34623         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
34624         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
34625         * DataGridColumnStyle.cs: fixes
34626         * Theme.cs: new themable paramaters
34627                 
34628 2005-05-26  Peter Bartok  <pbartok@novell.com>
34629
34630         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
34631
34632 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34633         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
34634
34635 2005-05-24  Peter Bartok  <pbartok@novell.com>
34636
34637         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
34638           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
34639           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
34640           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
34641           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
34642           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
34643           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
34644           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
34645           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
34646           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
34647           missing attributes, etc
34648         * DataGridPreferredColumnWidthTypeConverter.cs: Added
34649
34650 2005-05-24  Peter Bartok  <pbartok@novell.com>
34651
34652         * Help.cs: Added, implemented trivial functions, throws up MessageBox
34653           when user tries to get help
34654         * DataObject.cs, DataFormats.cs, LinkArea.cs,
34655           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
34656           to suppress warnings
34657         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
34658           avoid unreachable code warning
34659
34660 2005-05-20  Peter Bartok  <pbartok@novell.com>
34661
34662         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
34663
34664 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34665
34666         * DataGridTextBoxColumn.cs: Basic painting methods
34667         * DataGridTableStyle.cs: Set table style in the column
34668         * ThemeWin32Classic.cs: Use Theme for colors
34669         * DataGridDrawingLogic.cs: Implement more drawing
34670         * DataGrid.cs: drawing, theming, enhacements, fixes
34671         * DataGridColumnStyle.cs: fixes, drawing
34672         * Theme.cs: theming for Datagrid
34673
34674 2005-05-20  Peter Bartok  <pbartok@novell.com>
34675
34676         * Cursor.cs: Implemented GetObjectData() method
34677
34678 2005-05-20  Peter Bartok  <pbartok@novell.com>
34679
34680         * Cursors.cs: Added setting of cursor name
34681         * Cursor.cs:
34682           - Implemented constructors
34683           - Implemented Draw and DrawStretched
34684           - Implemented Current property
34685           - Implemented == and != operators
34686           - Implemented Dispose()
34687           - Implemented ToString
34688           - Added missing attributes
34689         * XplatUIX11.cs:
34690           - Added missing reset for OverrideCursor when DoEvents is called
34691           - Fixed creation of cursor, logic was wrong
34692         * XplatUIWin32.cs:
34693           - Added missing reset for OverrideCursor when DoEvents is called
34694           - Fixed creation of cursor, bit arrays were swapped
34695         * Clipboard.cs: Removed obsolete MonoTODO attribute
34696
34697 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34698
34699         * ComboBox.cs: fixes OnSelectedItemChanged
34700         * ControlBindingsCollection.cs: fixes item range check
34701
34702 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
34703
34704         * UpDownBase.cs:
34705                 - Calc preferred height properly
34706                 - Implement missing properties
34707                 
34708         * NumericUpDown.cs: Implement missing events
34709
34710 2005-05-19  Jackson Harper  <jackson@ximian.com>
34711
34712         * TabControl.cs: New method that resizes the tab pages before
34713         redrawing them. This as needed as the control is double buffered
34714         and sizing will not be recalculated unless ResizeTabPages is
34715         called.
34716         * TabPage.cs: Set base.Text instead of Text in the constructor so
34717         that UpdateOwner does not get called. Use the new Redraw method of
34718         TabControl instead of Refresh so the sizing is recalculated.
34719         * ThemeWin32Classic.cs: Draw the text for button tabs.
34720
34721 2005-05-19  Jackson Harper  <jackson@ximian.com>
34722
34723         * Control.cs: Paint control background images. Fix typo where
34724         PaintControlBackground was not getting called correctly.
34725
34726 2005-05-19  Peter Bartok  <pbartok@novell.com>
34727
34728         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
34729           I can investigate, apparently I broke FileDialog
34730
34731 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
34732
34733         * AxHost.cs: Some simple properties.
34734         * Control.cs: window must be accessible after ctor.
34735         * Form.cs: Added TransparencyKey property.
34736         * TextBoxBase.cs: Implemented Clear. Text property can be null.
34737         * XplatUIWin32.cs: SetBorderStyle implemented.
34738
34739 2005-05-18  Peter Bartok  <pbartok@novell.com>
34740
34741         * DataObject.cs: Entries are not global but particular to the
34742           DataObject, now it behaves that way
34743         * XplatUIWin32.cs: Implemented Clipboard methods
34744         * Clipboard.cs: Implemented
34745         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
34746         * XplatUIOSX.cs: Updated to final clipboard prototypes
34747         * XplatUIX11.cs: Implemented Clipboard methods
34748         * XplatUIDriver.cs: Updated to final clipboard prototypes
34749         * XplatUIStructs.cs:
34750           - Added BITMAPINFOHEADER struct
34751           - Added ClipboardFormats enum
34752         * X11Structs.cs:
34753           - Added ClipboardStruct
34754           - Added Atom enum items for clipboard types
34755           - Fixed atom types for Selection event structures
34756         * DataFormats.cs:
34757           - Added internal properties and methods for drivers to enumerate
34758             all known formats
34759           - Switched initialization method to allow drivers to assign their
34760             own IDs even for the MS predefined clipboard IDs
34761         * XplatUI.cs: Updated to final clipboard interface
34762
34763 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34764         * PropertyGridView.cs: Fixed compiler warnings.
34765
34766 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
34767         * PropertyGrid.cs: Added some event calls
34768         * PropertyGridView.cs: Change drawing code to use double buffering
34769         * PropertyGridTextBox.cs: Changed Text property name
34770         * GridItem.cs: Added Bounds property.
34771         * GridEntry.cs: Added Bounds property.
34772
34773 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
34774
34775         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
34776         since GetType() may not return the correct type if the object is
34777         a remoting proxy.
34778
34779 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
34780
34781         * TreeNodeCollection.cs: fixes get/set item ranges
34782         
34783 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
34784
34785         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
34786                 
34787 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
34788
34789         * ComboBox.cs: Fix item range comparation
34790         * ListView.cs: Fix item range comparation
34791
34792 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
34793
34794         * FontDialog.cs:
34795           - Clear example panel when OnPaint is called
34796           - Better solution for displaying the example panel text
34797           - Select default indexes in the ListBoxes
34798
34799 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
34800
34801         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
34802
34803 2005-05-11  Peter Bartok  <pbartok@novell.com>
34804
34805         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
34806         * SelectionRangeConverter.cs: Implemented
34807         * PropertyGrid.cs: Fixed attribute value
34808         * Control.cs:
34809           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
34810           - Added Sebastien Pouliot's CAS Stack Propagation fixes
34811         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
34812           that's common to all drivers. First methods to go there are
34813           Sebastien Pouliot's CAS Stack Propagation helper methods
34814         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
34815           Sebastien Pouliot for CAS Stack Propagation
34816
34817 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
34818
34819         * OSXStructs.cs:
34820           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
34821
34822 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
34823
34824         * DataGridTextBoxColumn.cs: fixed some members
34825         * GridColumnStylesCollection.cs: indexed column is case insensitive
34826         * DataGridTableStyle.cs: fixes
34827         * ThemeWin32Classic.cs: add new theme parameter
34828         * Theme.cs: add new theme parameter
34829         * DataGridDrawingLogic.cs: Datagrid's drawing logic
34830         * DataGrid.cs: fixes, new internal properties, etc.
34831         * DataGridColumnStyle.cs: allows to set grid value
34832         *
34833
34834 2005-05-10  Peter Bartok  <pbartok@novell.com>
34835
34836         * AccessibleObject.cs:
34837           - Removed MonoTODO attribute on help, method is correct
34838           - Fixed Bounds property
34839         * AxHost.cs: Moved MonoTODO
34840         * ButtonBase.cs: Now setting AccessibleObject properties
34841         * RadioButton.cs: Setting proper AccessibleObject role
34842         * CheckBox.cs: Setting proper AccessibleObject role
34843         * ControlBindingsCollection.cs: Added properties, methods and attributes
34844         * DataFormats.cs: Fixed awkward internal API, and changed to enable
34845           userdefined DataFormats.Format items as well
34846         * ListControl.cs: Removed data_member from the public eye
34847         * OpenFileDialog.cs:
34848           - Made class sealed
34849           - Added missing attributes
34850         * SaveFileDialog.cs: Added missing attributes
34851         * ImageListStreamer.cs: Fixed code that caused warnings
34852         * LinkLabel.cs: Removed unreachable code
34853         * TreeView.cs: Fixed code that caused warnings
34854         * PropertyGridView.cs: Fixed code that caused warnings
34855         * GridColumnStylesCollection.cs: Added missing attributes
34856         * GridTableStylesCollection: Added missing attribute
34857         * PropertyManager: Added .ctor
34858         * SecurityIDType: Added
34859         * DataObject.cs: Implemented class
34860         * LinkArea.cs: Added missing attribute
34861
34862 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
34863
34864         * RadioButton.cs: call base method to allow to fire OnClick event
34865         * UpDownBase.cs: OnMouseUp call base method
34866         * CheckedListBox.cs: call base method before returning
34867         * TrackBar.cs: call base method before returning
34868         
34869
34870 2005-05-10  Peter Bartok  <pbartok@novell.com>
34871
34872         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
34873           for messages
34874
34875 2005-05-10  Peter Bartok  <pbartok@novell.com>
34876
34877         * DataFormats.cs: Implemented
34878         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
34879           XplatUIX11.cs: Added Clipboard APIs
34880         * XplatUIWin32.cs: Implemented Clipboard APIs
34881         * FolderBrowserDialog.cs: Added missing event, attributes
34882
34883 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
34884
34885         * CheckBox.cs: call base method to allow to fire OnClick event
34886
34887 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
34888
34889         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
34890
34891 2005-05-06  Peter Bartok  <pbartok@novell.com>
34892
34893         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
34894         * Screen.cs: Implemented
34895         * HelpNavigator.cs: Added
34896         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
34897           property
34898         * HelpProvider.cs: Implemented all we can do until we have a CHM
34899           help library (which means that "What's This" does work now)
34900
34901 2005-05-06  Jackson Harper  <jackson@ximian.com>
34902
34903         * XplatUIX11.cs: Fix waking up the main loop.
34904                 
34905 2005-05-05  Peter Bartok  <pbartok@novell.com>
34906
34907         * XplatUI.cs: Updated revision
34908         * Form.cs: Removed enless loop
34909         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
34910         * Label.cs (OnPaint): Added call to base.OnPaint()
34911         * ToolTip.cs: Made ToolTipWindow reusable for other controls
34912         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
34913         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
34914         * AxHost.cs: Added
34915         * ButtonBase.cs: Moved base.OnPaint() call to end of method
34916         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
34917           to ToolTip.ToolTipWindow for drawing and size methods; this allows
34918           reuse of ToolTipWindow by other controls
34919         * SizeGrip.cs: Moved base.OnPaint() call to end of method
34920         * XplatUIX11.cs: Now clipping drawing area (experimental)
34921         * PictureBox.cs: Moved base.OnPaint() call to end of method
34922         * Theme.cs: Fixed ToolTip abstracts to match new format
34923         * ErrorProvider.cs: Implemented
34924
34925 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
34926
34927         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
34928         * LinkLabel.cs:
34929                 - Adds cursors
34930                 - Handles focus
34931                 - Implements LinkBehavior
34932                 - Fixes many issues
34933
34934 2005-05-03  Jackson Harper  <jackson@ximian.com>
34935
34936         * ListView.cs: Calculate the scrollbar positioning on resize and
34937         paint, so they get put in the correct place.
34938
34939 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
34940
34941         * ColorDialogs.cs: The small color panels are now handled by
34942           SmallColorControl. This fixes drawing of the focus rectangle
34943           and adds a 3D border.
34944
34945 2005-05-03  Peter Bartok  <pbartok@novell.com>
34946
34947         * Control.cs: Modified version of Jonathan Chamber's fix for
34948           double-buffering
34949
34950 2005-05-03  Jackson Harper  <jackson@ximian.com>
34951
34952         * ListView.cs: Remove redraw variable. Control now handles whether
34953         or not a redraw needs to be done, and will only raise the paint
34954         event if redrawing is needed.
34955
34956 2005-05-03  Jackson Harper  <jackson@ximian.com>
34957
34958         * Splitter.cs: No decorations for the splitter form. Cache the
34959         hatch brush.
34960
34961 2005-05-03  Jackson Harper  <jackson@ximian.com>
34962
34963         * TreeView.cs: Use dashed lines to connect nodes. Use the
34964         ControlPaint method for drawing the focus rect instead of doing
34965         that in treeview.
34966
34967 2005-05-02  Peter Bartok  <pbartok@novell.com>
34968
34969         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
34970
34971 2005-04-29  Jackson Harper  <jackson@ximian.com>
34972
34973         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
34974         entire image buffer. Just clear the clipping rectangle.
34975
34976 2005-04-29  Jackson Harper  <jackson@ximian.com>
34977
34978         * ThemeWin32Classic.cs: Don't draw list view items that are
34979         outside the clipping rectangle.
34980
34981 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
34982
34983         * ListBox.cs: added horizontal item scroll
34984
34985 2005-04-29  Jackson Harper  <jackson@ximian.com>
34986
34987         * ThemeWin32Classic.cs: Remove some old debug code that was
34988         causing flicker with the new double buffering code.
34989
34990 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
34991
34992         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
34993         behave like combobox and comboboxlist (still not sure if this is
34994         correct though).
34995
34996 2005-04-28  Jackson Harper  <jackson@ximian.com>
34997
34998         * ThemeWin32Classic.cs: Don't fill the middle of progress
34999         bars. This fills areas outside of the clip bounds that don't need
35000         to be filled.
35001
35002 2005-04-28  Jackson Harper  <jackson@ximian.com>
35003
35004         * Control.cs: Don't expose functionality to touch the image buffers.
35005         * ProgressBar.cs:
35006         * ListView.cs: We do not need to (and no longer can) manipulate
35007         the image buffers directly. All of this is handled by Control.
35008
35009 2005-04-28  Peter Bartok  <pbartok@novell.com>
35010
35011         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
35012           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
35013           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
35014
35015 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
35016
35017         * Combobox:
35018                 - Adjust control's height for non-simple comboboxes (bug fix)
35019                 - Remove dead code
35020         * MenuAPI.cs: remove unused var
35021         * ScrollBar.cs: remove unsed var
35022                  
35023         * ListBox.cs: unselect items when clearing
35024
35025 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
35026
35027         * ListControl.cs: honors OnPositionChanged and default Selected Item
35028         * ListBox.cs: unselect items when clearing
35029
35030 2005-04-27  Jackson Harper  <jackson@ximian.com>
35031
35032         * X11Keyboard.cs: Initialize a default keyboard and give a warning
35033         if a "correct" keyboard is not found. This will make us not crash,
35034         but might give some users bad keyboard layouts...seems to be the
35035         same thing rewind does.
35036
35037 2005-04-27  Jackson Harper  <jackson@ximian.com>
35038
35039         * BindingManagerBase.cs: Attach the current/position changed
35040         handlers to their respective events.
35041
35042 2005-04-27  Jackson Harper  <jackson@ximian.com>
35043
35044         * Control.cs: Make sure that the first WM_PAINT does a full draw,
35045         not just a blit.
35046         * ThemeWin32Classic.cs: Don't fill the background for picture
35047         boxes. This could overright user drawing.
35048         * ComboBox.cs: Just fill the clipping rect not the entire client
35049         rect when drawing the background. This prevents pieces of the
35050         image buffer from getting overwritten and is theoretically faster.
35051
35052 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
35053
35054         * ComboBox.cs: Databinding support fixes, fire missing events
35055         * ListControl.cs: implement missing methods and properties, fixes
35056         * ThemeWin32Classic.cs: Databiding support on Drawing
35057         * CheckedListBox.cs: Databinding support fixes, fire missing events
35058         * ListBox.cs: Databinding support fixes, fire missing events
35059         
35060 2005-04-25  Peter Bartok  <pbartok@novell.com>
35061
35062         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
35063
35064 2005-04-25  Jackson Harper  <jackson@ximian.com>
35065
35066         * TreeView.cs: Use the horizontal scrollbars height not width when
35067         determining how much of the client area is available.
35068
35069 2005-04-25  Jackson Harper  <jackson@ximian.com>
35070
35071         * Control.cs: Double buffering is handled differently now. As per
35072         the spec, the extra buffer is created in the WM_PAINT message and
35073         passed down to the control's drawing code.
35074         * GroupBox.cs:
35075         * Label.cs:
35076         * CheckBox.cs:
35077         * ProgressBar.cs:
35078         * RadioButton.cs:
35079         * ColorDialog.cs:
35080         * ComboBox.cs:
35081         * PropertyGridView.cs:
35082         * UpDownBase.cs:
35083         * MessageBox.cs:
35084         * MenuAPI.cs:
35085         * ListView.cs:
35086         * ButtonBase.cs:
35087         * SizeGrip.cs:
35088         * ScrollBar.cs:
35089         * ListBox.cs:
35090         * TrackBar.cs:
35091         * ToolBar.cs:
35092         * PictureBox.cs:
35093         * DateTimePicker.cs:
35094         * StatusBar.cs:
35095         * TreeView.cs: Update to new double buffering system.
35096         * MonthCalendar.cs: Uncomment block, as Capture is now
35097         working. Update to new double buffering
35098         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
35099         * PaintEventArgs.cs: New internal method allows us to set the
35100         graphics object. This is used for double buffering.
35101         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
35102         rectangle. The internal paint_area var has been removed from
35103         StatusBar. The clipping rect should be used instead.
35104         * Theme.cs: Give the PictureBox drawing method a clipping rect.
35105         * TabPage.cs: The RefreshTabs method was removed, so just call the
35106         tab controls Refresh method now.
35107         * TabControl.cs: Update to new double buffering. Make sure the
35108         handle is created before sizing the tab pages, otherwise we will
35109         get stuck in a loop.
35110
35111 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
35112
35113         * LinkLabel.cs: Fix typo, bug #74719; patch
35114           from Borja Sanchez Zamorano
35115
35116 2005-04-22  Jackson Harper  <jackson@ximian.com>
35117
35118         * TreeNode.cs: Implement Handle stuff.
35119         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
35120
35121 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
35122
35123         * DataGridTextBoxColumn.cs: call base constructors, fixes
35124         * GridColumnStylesCollection.cs: missing events, methods, and functionality
35125         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
35126         * DataGridTableStyle.cs: implements create default column styles
35127         * DataGridBoolColumn.cs: which types can handle
35128         * DataGrid.cs: missing methods, fixes, new functionality
35129         * DataGridColumnStyle.cs: fixes
35130
35131 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
35132         * FolderBrowserDialog.cs:
35133         - Use a thread to fill the TreeView
35134         - Adjusted some sizes
35135
35136 2005-04-19  Peter Bartok  <pbartok@novell.com>
35137
35138         * LinkLabel.cs: (Re-)create the pieces when setting the Text
35139           property. Fixes #74360.
35140
35141 2005-04-19  Jackson Harper  <jackson@ximian.com>
35142
35143         * XEventQueue.cs: Lock when getting the lockqueue size.
35144         * PictureBox.cs: Call base OnPaint
35145         
35146 2005-04-19  Peter Bartok  <pbartok@novell.com>
35147
35148         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
35149           messages were no longer being processed (this broke BeginInvoke)
35150
35151           
35152 2005-04-18  Jackson Harper  <jackson@ximian.com>
35153
35154         * TreeView.cs: buglet that caused node images to get drawn
35155         regardless of whether or not they were in the clipping rectangle.
35156
35157 2005-04-18  Jackson Harper  <jackson@ximian.com>
35158
35159         * CurrencyManager.cs: There are four rules for GetItemProperties:
35160         - If the type is an array use the element type of the array
35161         - If the type is a typed list, use the type
35162         - If the list contains an Item property that is not an object, use
35163         that property
35164         - use the first element of the list if there are any elements in
35165         the list.
35166         
35167 2005-04-17  Jackson Harper  <jackson@ximian.oom>
35168
35169         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
35170         click. This handles offsets for scrolling properly and reduces
35171         memory. Also fixed GetNode to not offset now that TopNode works
35172         properly.
35173         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
35174         
35175 2005-04-17  Jackson Harper  <jackson@ximian.com>
35176
35177         * CursorConverter.cs: Initial implementation.
35178
35179 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
35180
35181         * ListControl.cs: work towards complex data binding support on ListControl
35182         * CurrencyManager.cs: work towards complex data binding support on ListControl
35183         * ListBox.cs: work towards complex data binding support on ListControl
35184
35185
35186 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
35187
35188         * GridTableStylesCollection.cs: fixes name and constructor
35189         * DataGridTableStyle.cs: fixes
35190         * DataGridBoolColumn.cs: fixes names and constructors
35191         * DataGrid.cs: define methods and properties. Some init implementations
35192         * DataGridCell.cs: define methods and properties. Some init implementations
35193         * GridTablesFactory.cs: Define methods and properties
35194
35195 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
35196
35197         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
35198         graphics port changes.  We still want the coordinates in global screen
35199         coordinates.
35200
35201 2005-04-14  Jackson Harper  <jackson@ximian.com>
35202
35203         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
35204         check plus minus or checkbox clicks unless those features are enabled.
35205
35206 2005-04-14  Jackson Harper  <jackson@ximian.com>
35207
35208         * TreeView.cs: Add methods for setting the top and bottom visible
35209         nodes. TreeNode::EnsureVisible uses these methods.
35210         * TreeNode.cs: Implement EnsureVisible
35211
35212 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
35213
35214         * Form.cs: Pospone menu assignation if the window has not been created yet
35215         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
35216         size and position
35217
35218 2005-04-12  Jackson Harper  <jackson@ximian.com>
35219
35220         * TreeView.cs: Set the TopNode properly when scrolling
35221         occurs. This has the added benifit of reducing the amount of
35222         walking that needs to be done when drawing. Also removed an old
35223         misleading TODO.
35224         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
35225         
35226 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
35227
35228         * Timer.cs: fixes interval setting when the timer is already enabled
35229         
35230 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
35231
35232         * FolderBrowserDialog.cs: First approach
35233
35234 2005-04-09  Peter Bartok  <pbartok@novell.com>
35235
35236         * FolderBrowserDialog: Added
35237
35238 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
35239
35240         * LinkLabel.cs: move drawing code into the theme
35241         * ThemeWin32Classic.cs: drawing code and painting background bugfix
35242         * Theme.cs: define DrawLinkLabel method
35243
35244 2005-04-05  Jackson Harper  <jackson@ximian.com>
35245
35246         * BindingContext.cs: Use weak references so these bad actors don't
35247         stay alive longer then they need to.
35248
35249 2005-04-05  Jackson Harper  <jackson@ximian.com>
35250
35251         * ListControl.cs: Basic implementation of complex databinding.
35252         * ComboBox.cs:
35253         * ListBox.cs: Add calls to ListControl databinding methods.
35254
35255 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
35256
35257         * FileDialog.cs:
35258           - Don't change PopupButtonState to Normal when the
35259             PopupButton gets pressed several times.
35260           - Renamed ButtonPanel to PopupButtonPanel
35261
35262 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
35263
35264         * ColorDialog.cs: Use cached objects instead of creating them
35265         * LinkLabel.cs: Use cached objects instead of creating them
35266         * Splitter.cs: Use cached objects instead of creating them
35267         * FontDialog.cs: Use cached objects instead of creating them
35268         * PropertyGridView.cs: Use cached objects instead of creating them
35269         * MessageBox.cs: Use cached objects instead of creating them
35270         * FileDialog.cs: Use cached objects instead of creating them
35271         * ThemeWin32Classic.cs: Use cached objects instead of creating them
35272         * TreeView.cs: Use cached objects instead of creating them
35273         
35274 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
35275
35276         * Control.cs: use Equals to compare the font since no == op
35277         * ScrollBar.cs: use Equals to compare the font since no == op
35278
35279 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
35280
35281         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
35282
35283 2005-04-01  Jackson Harper  <jackson@ximian.com>
35284
35285         * Binding.cs: Implement IsBinding.
35286         * BindingManagerBase.cs:
35287         * PropertyManager.cs:
35288         * CurrencyManager.cs: Add IsSuspended property.
35289
35290 2005-04-01  Jackson Harper  <jackson@ximian.com>
35291
35292         * Binding.cs: Had some IsAssignableFrom calls backwards.
35293
35294 2005-04-01  Jackson Harper  <jackson@ximian.com>
35295
35296         * Binding.cs: Handle null data members when pulling data.
35297         * PropertyManager.cs: Handle the data member being a property that
35298         does not exist.
35299
35300 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
35301
35302         * DataGridTextBoxColumn.cs: fixes signature
35303         * DataGrid.cs: calls right constructor
35304
35305 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
35306
35307         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
35308         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
35309         * GridTableStylesCollection.cs: implements GridTableStylesCollection
35310         * DataGridTableStyle.cs: implements DataGridTableStyle
35311         * DataGridBoolColumn.cs: implements DataGridBoolColumn
35312         * DataGridTextBox.cs: implements DataGridTextBox
35313         * DataGridColumnStyle.cs: implements DataGridColumnStyle
35314
35315 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
35316
35317         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
35318
35319 2005-03-29  Peter Bartok  <pbartok@novell.com>
35320
35321         * Application.cs:
35322           - Properly implemented CompanyName property
35323           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
35324             returns a path that includes CompanyName, ProductName and
35325             Version (fixes bug #70330)
35326
35327 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
35328
35329         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
35330           fixes bug #72588.
35331
35332 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
35333
35334         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
35335         
35336           - Added ReadOnly CheckBox
35337           - Further refactoring: moved some code from Open-/SaveFileDialog
35338             to FileDialog
35339
35340 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
35341
35342         * OpenFileDialog.cs: Fixed CheckFileExists
35343         * FileDialog.cs:
35344           Moved FileView and DirComboBox outside FileDialog class.
35345           They can now be used outside FileDialog
35346
35347 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
35348
35349         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
35350         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
35351
35352 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
35353
35354         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
35355           - Added missing CreatePrompt property in SaveDialog
35356           - Overall SaveDialog handling should be better now
35357           - Added non standard ShowHiddenFiles property
35358           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
35359           - Added InitialDirectory and RestoreDirectory support
35360
35361 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
35362
35363         * FileDialog.cs: Made dirComboBox usable
35364
35365 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
35366
35367         * FileDialog.cs: Added Filter support (case sensitiv)
35368
35369 2005-03-24  Jackson Harper  <jackson@ximian.com>
35370
35371         * TabControl.cs: Need a couple more pixels for the lines.
35372
35373 2005-03-23  Jackson Harper  <jackson@ximian.com>
35374
35375         * TabControl.cs: Give the tab page focus when it is selected.
35376
35377 2005-03-23  Jackson Harper  <jackson@ximian.com>
35378
35379         * TabControl.cs: Account for the drawing of tabs borders when
35380         invalidating. If the slider was clicked dont do click detection on
35381         the tabs.
35382
35383 2005-03-23  Jackson Harper  <jackson@ximian.com>
35384
35385         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
35386
35387 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
35388
35389         * CategoryGridEntry.cs: Added
35390         * GridItem.cs: Added helper properties
35391         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
35392         * GridEntry.cs: Updated code for collection
35393         * PropertyGrid.cs: Cleaned up some formatting
35394         * PropertyGridView.cs: Added drop down functionality for enums.
35395         * GridItemCollection.cs: Added enumerator logic
35396         * PropertyGridEntry.cs: Added
35397
35398 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
35399
35400         * FileDialog.cs:
35401           - Removed unnecessary commented code
35402           - Fixed handling for entering the filename manually in the combobox
35403
35404 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
35405
35406         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
35407
35408 2005-03-18  Peter Bartok  <pbartok@novell.com>
35409
35410         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
35411           them being touching the border
35412
35413 2005-03-18  Peter Bartok  <pbartok@novell.com>
35414
35415         * TextControl.cs: Quick hack to center text better
35416
35417 2005-03-18  Peter Bartok  <pbartok@novell.com>
35418
35419         * ControlPaint.cs:
35420           - Don't throw NotImplemented exceptions, just print a notice once
35421             instead (requested by Miguel). This makes running existing SWF
35422             apps a bit easier
35423         * Control.cs:
35424           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
35425           - Added context menu trigger on right click
35426         * Panel.cs: Trigger invalidate on resize
35427         * StatusBar.cs:
35428           - Removed old double-buffer drawing
35429           - Added ResizeRedraw style to force proper update of statusbar
35430         * ListView.cs:
35431           - Removed debug output
35432         * ThemeWin32Classic.cs:
35433           - Fixed drawing of status bar, now draws Text property if there
35434             are no defined panels
35435
35436 2005-03-18  Jackson Harper  <jackson@ximian.com>
35437
35438         * ImageList.cs: When the image stream is set pull all the images
35439         from it.
35440         * ImageListStreamer.cs: Implement reading image list streams.
35441
35442 2005-03-18  Peter Bartok  <pbartok@novell.com>
35443
35444         * ThemeWin32Classic.cs (DrawPictureBox):
35445           - Fixed calculations for centered drawing
35446           - Fixed drawing for normal mode, not scaling the image on normal
35447
35448 2005-03-18  Peter Bartok  <pbartok@novell.com>
35449
35450         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
35451           textbox
35452         * FileDialog.cs:
35453           - Made Open/Save button the accept button for FileDialog
35454           - Tied the cancel button to the IButtonControl cancel button
35455           - Save/Open now properly builds the pathname
35456           - Now handles user-entered text
35457           - Preventing crash on right-click if no item is selected
35458           - Fixed Text property, now uses contents of textbox
35459           - Fixed SelectedText property, now just returns the text part that
35460             is selected in the text box
35461
35462 2005-03-18  Jackson Harper  <jackson@ximian.com>
35463
35464         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
35465         rect, make sure to de-adjust the interior rect after drawing the
35466         tab text.
35467
35468 2005-03-18  Peter Bartok  <pbartok@novell.com>
35469
35470         * MenuAPI.cs: Remove menu *before* executing selected action to
35471           prevent the menu from 'hanging around'
35472           
35473 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
35474
35475         * XplatUIOSX.cs: Implemented WorkingArea property
35476
35477 2005-03-17  Peter Bartok  <pbartok@novell.com>
35478
35479         * XplatUIX11.cs: Fixed menu coord calculations
35480         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
35481           for calculating offsets
35482
35483 2005-03-17  Peter Bartok  <pbartok@novell.com>
35484
35485         * Hwnd.cs: Do not consider menu presence for default client
35486           rectangle location/size
35487         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
35488           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
35489           translation functions
35490         * FileDialog.cs: Fixed (what I presume is a) typo
35491
35492 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
35493
35494         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
35495           X access (avoids X-Async errors)
35496
35497 2005-03-16  Jackson Harper  <jackson@ximian.com>
35498
35499         * TabControl.cs: Raise the SelectedIndexChanged event.
35500
35501 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
35502
35503         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
35504           - Removed vertical ToolBar and replaced it with a custom panel
35505             (desktop and home button already work)
35506           - Added Help button (some controls get resized or relocated then)
35507           - Draw correct text depending on Open or Save.
35508           - Fixed some typos...
35509
35510 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
35511
35512         * ScrollBar.cs:
35513           - Only change Maximum and Minimum when need it (bug fix)
35514
35515 2005-03-15  Peter Bartok  <pbartok@novell.com>
35516
35517         * Form.cs: Use Handle for icon, to trigger creation if
35518           the window does not yet exist
35519         * Control.cs:
35520           - CanSelect: Slight performance improvement
35521           - Focus(): Preventing possible recursion
35522           - Invalidate(): Removed ControlStyle based clear flag setting
35523           - WM_PAINT: fixed logic for calling OnPaintBackground
35524           - WM_ERASEBKGND: Fixed logic, added call to new driver method
35525             EraseWindowBackground if the control doesn't paint background
35526         * XplatUIWin32.cs:
35527           - Moved EraseWindowBackground() method to internal methods
35528           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
35529             is sent via SendMessage on BeginPaint call on Win32
35530         * XplatUIX11.cs:
35531           - Added EraseWindowBackground() method
35532           - No longer sends WM_ERASEBKGND on .Expose, but on call to
35533             PaintEventStart, which more closely matches Win32 behaviour
35534           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
35535           - Fixed SetFocus() to properly deal with client and whole windows
35536         * Hwnd.cs: Added ErasePending property
35537         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
35538         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
35539
35540 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
35541
35542         * XplatUIOSX.cs:
35543           - Fix hard loop when timers exist.
35544           - Fix bugs with middle and right click for 3 button mice.
35545
35546 2005-03-11  Peter Bartok  <pbartok@novell.com>
35547
35548         * XplatUIX11.cs:
35549           - get_WorkingArea: Need to call X directly, GetWindowPos only
35550             returns cached data now
35551           - Added sanity check to GetWindowPos hwnd usage
35552
35553 2005-03-11  Jackson Harper  <jackson@ximian.com>
35554
35555         * BindingManagerBase.cs: This method isn't used anymore as
35556         PullData now updates the data in the control.
35557
35558 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
35559
35560         * Form.cs: fixes menu drawing on X11
35561         * MenuAPI.cs:  fixes menu drawing on X11
35562
35563 2005-03-11  Peter Bartok  <pbartok@novell.com>
35564
35565         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
35566           from Jonathan Gilbert; should fix bug #73606
35567         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
35568           in Screen coordinates. Thanks, Jordi.
35569         * Form.cs: Added missing attribute
35570
35571 2005-03-11  Peter Bartok  <pbartok@novell.com>
35572
35573         * Form.cs:
35574           - Rudimentary Mdi support
35575           - Removed outdated FormParent code
35576           - Implemented lots of missing properties and methods, still missing
35577             transparency support
35578           - Added missing attributes
35579           - Implemented support for MaximumBounds
35580           - Added firing of various events
35581         * XplatUI.cs: Added SetIcon() method
35582         * XplatUIDriver.cs: Added SetIcon() abstract
35583         * XplatUIOSX.cs: Stubbed out SetIcon() method
35584         * XplatUIX11.cs:
35585           - Implemented SetIcon() support
35586           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
35587           - Switched to unix line endings
35588         * XplatUIWin32.cs:
35589           - Made POINT internal so for can access it as part of MINMAX
35590           - Implemented SetIcon() support
35591           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
35592             native Mdi support again, might have to go managed)
35593         * Control.cs: Now fires the StyleChanged event
35594         * MdiClient.cs: Added; still mostly empty
35595
35596 2005-03-10  Peter Bartok  <pbartok@novell.com>
35597
35598         * SaveFileDialog.cs: Added emtpy file
35599
35600 2005-03-08  Peter Bartok  <pbartok@novell.com>
35601
35602         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
35603           in turn triggers OnCreateContro) when creating a handle for the
35604           first time.
35605         * TextControl.cs: Fixed endless loop in certain cases when
35606           replacing the current selection
35607
35608 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
35609
35610         * ScrollBar.cs:
35611           - Honors NewValue changes in Scroll events allowing apps to change it
35612           - Adds First and Last Scroll events
35613           - Fixes Thumb events
35614
35615 2005-03-07  Peter Bartok  <pbartok@novell.com>
35616
35617         * Hwnd.cs: Added DefaultClientRectangle property
35618         * XplatUI.cs: Now using the X11 driver Where() method, which provides
35619           more detailed debug information
35620         * XplatUIX11.cs:
35621           - Fixed size-change feedback loop, where we would pull an old size
35622             off the queue and mistakenly change our window's size to an
35623             earlier value
35624           - Now compressing ConfigureNotify events, to reduce looping and
35625             redraw issues
35626         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
35627           is called
35628
35629 2005-03-07  Jackson Harper  <jackson@ximian.com>
35630
35631         * Binding.cs: Push data pushes from data -> property. Check if the
35632         property is readonly when attempting to set it.
35633
35634 2005-03-07  Jackson Harper  <jackson@ximian.com>
35635
35636         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
35637         instead of IsSubclassOf. Pulling data now sets the value on the
35638         control.
35639         * PropertyManager.cs:
35640         * CurrencyManager.cs: Just need to pull data when updating now,
35641         because PullData will set the value on the control.
35642
35643 2005-03-04  Jackson Harper  <jackson@ximian.com>
35644
35645         * Binding.cs: Implement data type parsing and converting on pulled
35646         data. TODO: Are there more ways the data can be converted?
35647
35648 2005-03-04  Jackson Harper  <jackson@ximian.com>
35649
35650         * Binding.cs: Support <Property>IsNull checks. Also bind to the
35651         controls Validating method so we can repull the data when the
35652         control loses focus.
35653
35654 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
35655
35656         * ColumnHeader.cs:
35657           - Fixes null string format
35658           
35659         * ListView.cs:
35660           - Adds enum type checks
35661           - Fixes redrawing and recalc need after changing some properties
35662           - Fixes on focus_item set after the event
35663           - Fixes adding columns after the control has been created
35664           
35665         * ThemeWin32Classic.cs:
35666           - Fixes CheckBox focus rectangle
35667           - Fixes ColumnHeader drawing
35668
35669
35670 2005-03-03  Jackson Harper  <jackson@ximian.com>
35671
35672         * Binding.cs: Bind to <Property>Changed events so we can detect
35673         when properties are changed and update the data.
35674
35675 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
35676
35677         * ImageList.cs:
35678           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
35679           - Fixes ImageList constructor with ImageList container
35680           - Fixes image scaling (wrong parameters at DrawImage)
35681
35682 2005-02-02  Jackson Harper  <jackson@ximian.com>
35683
35684         * Binding.cs: Make property searches case-insensitive. Eliminate
35685         some duplicated code.
35686
35687 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
35688
35689         * ComboBox.cs:
35690                 - Handle focus event
35691                 - Fix scrollbar events
35692                 - Discard highlighted item if remove it
35693                 - Fixes SelectedItem with strings
35694
35695 2005-03-01  Peter Bartok  <pbartok@novell.com>
35696
35697         * Control.cs:
35698           - Fixed Visible property, now follows (once again) parent chain
35699             to return false if any control in the chain is visible=false
35700           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
35701           - Fixed several places where is_visible instead of Visible was used
35702           - Implemented FIXME related to focus selection when setting focused
35703             control to be invisible
35704
35705         * XplatUIWin32.cs: Now using proper method to find out if window is
35706           visible. Thanks to Jordi for pointing it out
35707
35708 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
35709
35710         * ComboBox.cs: show/hide scrollbar instead of creating it
35711
35712 2005-02-27  Jackson Harper  <jackson@ximian.com>
35713
35714         * CurrencyManager.cs: Add PositionChanged stuff.
35715
35716 2005-02-27  Peter Bartok  <pbartok@novell.com>
35717
35718         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
35719         * XplatUIOSX.cs: Added GetMenuOrigin() stub
35720         * XplatUIWin32.cs: Implemented GetMenuOrigin()
35721         * XplatUIX11.cs:
35722           - Implemented GetMenuDC()
35723           - Implemented GetMenuOrigin()
35724           - Implemented ReleaseMenuDC()
35725           - Implemented generation of WM_NCPAINT message
35726           - Implemented generation and handling of WM_NCCALCSIZE message
35727         * Form.cs: Added debug helper message for Jordi's menu work
35728         * Hwnd.cs:
35729           - Modified ClientRect property; added setter, fixed getter to handle
35730             setting of ClientRect
35731           - Added MenuOrigin property
35732
35733 2005-02-26  Peter Bartok  <pbartok@novell.com>
35734
35735         * XplatUIX11.cs:
35736           - Destroys the caret if a window that's being destroyed contains it
35737           - Ignores expose events coming from the X11 queue for windows that
35738             already are destroyed
35739           - Now uses the proper variable for handling DestroyNotify, before we
35740             marked the wrong window as destroyed
35741           - Improved/added some debug output
35742
35743 2005-02-26  Peter Bartok  <pbartok@novell.com>
35744
35745         * X11Keyboard.cs: Fixes to work on 64bit systems
35746
35747 2005-02-26  Peter Bartok  <pbartok@novell.com>
35748
35749         * Control.cs:
35750           - Now calling OnHandleDestroyed from DestroyHandle()
35751             instead of Dispose()
35752           - Removed bogus call to controls.Remove() from DestroyHandle()
35753
35754 2005-02-26  Peter Bartok  <pbartok@novell.com>
35755
35756         * Control.cs: Properly destroy child windows when our handle is
35757           destroyed
35758
35759 2005-02-25  Peter Bartok  <pbartok@novell.com>
35760
35761         * XplatUI.cs:
35762           - Added 'DriverDebug' define to allow tracing XplatUI API calls
35763           - Alphabetized Static Methods and Subclasses
35764
35765         * XplatUIX11.cs:
35766           - Added XException class to allow custom handling of X11 exceptions
35767           - Created custom X11 error handler, tied into XException class
35768           - Added support for MONO_XEXCEPTIONS env var to allow the user
35769             to either throw an exception on X errors or continue running
35770             after displaying the error
35771           - Added handling of DestroyNotify message
35772           - Added handler for CreateNotify message (still disabled)
35773           - Improved (tried to at least) Where method to provide file and lineno
35774         * X11Structs.cs:
35775           - Added XErrorHandler delegate
35776           - Added XRequest enumeration (to suppor translation of errors)
35777
35778 2005-02-25  Jackson Harper  <jackson@ximian.com>
35779
35780         * PropertyManager.cs: Implement editing features
35781         * CurrencyManager.cs:
35782         * Binding.cs: First attempt at UpdateIsBinding
35783         * BindingManagerBase.cs: Call UpdateIsBinding before
35784         pushing/pulling data.
35785
35786 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
35787
35788         * MenuAPI.cs: Respect disabled items
35789         * ThemeWin32Classic.cs
35790                 - Caches ImageAttributes creation for DrawImageDisabled
35791                 - Fixes vertical menu line drawing
35792                 - Draws disabled arrows in disable menu items
35793
35794 2005-02-24  Peter Bartok  <pbartok@novell.com>
35795
35796         * Hwnd.cs:
35797           - Added UserData property to allow associating arbitrary objects
35798             with the handle
35799           - Fixed leak; now removing Hwnd references from static windows array
35800         * XplatUIWin32.cs:
35801           - Fixed Graphics leak in PaintEventEnd
35802           - Removed usage of HandleData, switched over to Hwnd class
35803         * HandleData.cs: Removed, obsoleted by Hwnd.cs
35804
35805 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
35806
35807         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
35808         * ScrollBar.cs: Fixes bug
35809         * TrackBar.cs: removes death code, clipping, mimize refreshes,
35810          keyboard navigation enhancements
35811
35812 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
35813
35814         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
35815         * GroupBox.cs: Add control styles
35816         * Label.cs: Add control styles
35817         * UpDownBase.cs: Add control styles
35818         * ListBox.cs: Add control styles
35819         * XplatUIWin32.cs: Fixes wrong parameter order
35820
35821
35822 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
35823
35824         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
35825
35826 2005-02-23  Jackson Harper  <jackson@ximian.com>
35827
35828         * PropertyManager.cs: Implement property binding. This doesn't
35829         seem to work yet though as (I think) there are some bugs in
35830         System.ComponentModel.PropertyDescriptor.
35831         * BindingContext.cs: Use new PropertyManager constructor.
35832
35833 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
35834
35835         * ProgressBar.cs: use clip region in ProgressBar
35836         * ThemeWin32Classic.cs: use clip region in ProgressBar
35837
35838 2004-02-22  Jackson Harper  <jackson@ximian.com>
35839
35840         * BindingsCollection.cs: Remove some debug code.
35841
35842 2005-02-22  Jackson Harper  <jackson@ximian.com>
35843
35844         * BindingContext.cs:
35845         * ControlBindingsCollection.cs:
35846         * CurrencyManager.cs:
35847         * Binding.cs:
35848         * BindingManagerBase.cs: Initial implementation
35849         * BindingsCollection.cs: Add an internal contains method that the
35850         BindingManagerBase uses to ensure bindings aren't added twice to
35851         the collection.
35852         * PropertyManager.cs: Stubbed out.
35853         * Control.cs:
35854         * ContainerControl.cs: Hook up databinding
35855         
35856 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
35857
35858         * XplatUIOSX.cs:
35859           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
35860           Fixed Invalidate/Update chain.
35861           Fixed tons of other minor bugs (this is almost a complete rewrite).
35862
35863 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
35864
35865         * ComboBox.cs: do subcontrol creation when the control is created
35866
35867 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35868
35869         * Label.cs: fixes image drawing (image and imagelist)
35870         * ThemeWin32Classic.cs: cache brushes
35871         
35872 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35873
35874         * Form.cs: Move menu drawing code to Theme class
35875         * ComboBox.cs: Move ComboBox drawing code to Theme class
35876         * MenuItem.cs: Move menu drawing code to Theme class
35877         * MenuAPI.cs: Move menu drawing code to Theme class
35878         * ThemeWin32Classic.cs: New methods
35879         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
35880         * ListBox.cs: Move Listbox drawing code to Theme class
35881         * Theme.cs: New methods
35882
35883 2005-02-20  Peter Bartok  <pbartok@novell.com>
35884
35885         * Control.cs:
35886           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
35887             only process mnemonics on those)
35888           - Fixed event sequence for key handling; first calling
35889             ProcessKeyEventArgs now
35890         * TextBoxBase.cs:
35891           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
35892             for processing non-character keys
35893           - Fixed WM_CHAR to generate proper event sequence before processing
35894         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
35895           generation
35896
35897 2005-02-19  Peter Bartok  <pbartok@novell.com>
35898
35899         * UserControl.cs: Added TextChanged event; added attributes
35900         * SizeGrip.cs: Implemented resizing and optional display of grip
35901         * Form.cs: Fixed attribute
35902         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
35903           Changed meaning of ScrollWindow bool argument; instead of the
35904           clear attribute (which will be true usually anyway), it gives the
35905           option of moving child controls as well.
35906         * XplatUIX11.cs:
35907           - Changed to match new ScrollWindow argument
35908           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
35909             now handles the implicit parent window a WM puts around us
35910         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
35911           to work)
35912         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
35913         * TreeView.cs: Adjusted to new ScrollWindow arguments
35914
35915 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
35916
35917         * Form.cs: Menu integration with non-client area
35918         * MenuItem.cs: Menu integration with non-client area
35919         * MenuAPI.cs: Menu integration with non-client area
35920
35921 2005-02-18  Peter Bartok  <pbartok@novell.com>
35922
35923         * MethodInvoker.cs: Added
35924         * MdiLayout.cs: Added
35925         * SendKeys.cs: Started implementation
35926         * ErrorIconAlignment.cs: Added
35927
35928 2005-02-18  Peter Bartok  <pbartok@novell.com>
35929
35930         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
35931         * Form.cs: Added handling for Menu-related Non-client messages
35932
35933 2005-02-17  Peter Bartok  <pbartok@novell.com>
35934
35935         * UpDownBase.cs: Fixed typo, compilation errors
35936         * DomainUpDown.cs: Fixed attribute value
35937
35938 2005-02-16  Miguel de Icaza  <miguel@novell.com>
35939
35940         * UpDownBase.cs: Attach entry events.
35941         Propagate events.
35942         Add ForeColor property, Focused, InterceptArrowKeys (interception
35943         does not work yet).
35944
35945 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
35946
35947         * Form.cs:
35948                 - Redraw non client are on Setmenu
35949                 - Calc proper menu starting point
35950
35951 2005-02-17  Peter Bartok  <pbartok@novell.com>
35952
35953         * Application.cs: Fixed message_filter check
35954
35955 2005-02-17  Peter Bartok  <pbartok@novell.com>
35956
35957         * Application.cs: Now calls registered message filters
35958         * DockStyle.cs: Fixed attribute
35959         * Form.cs: Fixed attribute
35960         * Menu.cs: Fixed attribute
35961         * ToolTip.cs: Fixed attribute
35962         * TreeNode.cs: Added missing attributes and arranged in regions
35963         * PropertyGrid.cs: Fixed signatures
35964         * TreeNodeCollection.cs: Added attributes
35965         * Splitter.cs: Added missing attributes; arranged into regions
35966         * TabPage.cs: Added missing attributes; arranged into regions
35967         * TextBoxBase.cs: Added missing attributes
35968         * TextBox.cs: Added missing attributes
35969         * ArrangeDirection.cs: Added missing attributes
35970         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
35971         * ToolBarButton.cs: Fixed attributes
35972         * AnchorStyles.cs: Fixed attribute
35973         * TrackBar.cs: Fixed attributes
35974         * TabControl.cs: Added missing attributes and arranged into regions
35975         * ToolBar.cs: Fixed attribute
35976         * StatusBar.cs: Fixed signature, organized into regions and added
35977           attributes
35978         * StatusBarPanel.cs: Fixed attributes
35979         * ContentsResizedEventArgs.cs: Implemented
35980         * ContentsResizedEventHandler.cs: Implemented
35981         * DateBoldEventArgs.cs: Implemented
35982         * DateBoldEventHandler.cs: Implemented
35983         * UpDownEventArgs.cs: Implemented
35984         * UpDownEventHandler.cs: Implemented
35985         
35986 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
35987
35988         * Form.cs: first Menu NC refactoring
35989         * MenuAPI.cs: first Menu NC refactoring
35990         
35991 2005-02-16  Peter Bartok  <pbartok@novell.com>
35992
35993         * ImeMode.cs: Added missing attributes
35994         * Menu.cs: Fixed attribute
35995         * GroupBox.cs: Fixed attribute
35996         * Label.cs: Fixed attribute
35997         * ColorDialog.cs (RunDialog): Removed TODO attribute
35998         * ComboBox.cs: Fixed attributes
35999         * ListControl.cs: Added missing attributes
36000         * PropertyGrid.cs: Fixed attributes
36001         * Control.cs: Fixed attributes
36002         * ListViewItem.cs: Added TypeConverter attribute
36003         * NotifyIcon.cs: Fixed attributes
36004         * ListView.cs: Fixed attributes
36005         * ButtonBase.cs: Fixed attribute
36006         * ImageList.cs: Added missing attributes
36007         * ContainerControl.cs: Fixed signature
36008         * CheckedListBox.cs: Fixed attribute; added missing attributes
36009         * Panel.cs: Fixed attributes
36010         * PropertyTabChangedEventArgs.cs: Added missing attribute
36011         * PropertyValueChangedEventArgs.cs: Added missing attribute
36012         * Binding.cs: Fixed attribute
36013         * ListViewItemConverter: Implemented ListViewSubItemConverter class
36014         * ListBox.cs: Fixed attribute; added missing attributes;
36015         * ScrollableControl.cs: Added missing attributes
36016         * PictureBox.cs: Added missing attributes; implemented missing property
36017         * DateTimePicker.cs: Added missing attributes
36018         * Theme.cs (ToolWindowCaptionHeight): Fixed type
36019         * MonthCalendar.cs: Fixed attributes
36020         * StatusBarPanel.cs: Added missing attributes
36021         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
36022
36023 2005-02-16  Peter Bartok  <pbartok@novell.com>
36024
36025         * TextBoxBase.cs: The previous method to enforce height yet remember
36026           the requested high was less than ideal, this is an attempt to do
36027           it better.
36028         * Control.cs: Added comment about possible problem
36029         * Copyright: Updated format
36030         * GridItemType.cs: Fixed swapped values
36031
36032 2005-02-15  Jackson Harper  <jackson@ximian.com>
36033
36034         * BaseCollection.cs: Use property so we never access an
36035         uninitialized list. Also initialize the list in the property.
36036
36037 2005-02-15  Peter Bartok  <pbartok@novell.com>
36038
36039         * GroupBox.cs (ProcessMnemonic): Implemented
36040         * Label.cs (ProcessMnemonic): Implemented
36041         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
36042           hotkeys
36043
36044 2005-02-15  Peter Bartok  <pbartok@novell.com>
36045
36046         * RadioButton.cs (ProcessMnemonic): Implemented
36047         * CheckBox.cs (ProcessMnemonic): Implemented
36048         * Control.cs:
36049           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
36050             handling
36051           - Added internal method to allow calling ProcessMnemonic from other
36052             controls
36053         * ContainerControl.cs:
36054           - Started support for handling validation chain handling
36055           - Implemented ProcessMnemonic support
36056           - Added Select() call to Active, to make sure the active control
36057             receives focus
36058         * Form.cs: Setting toplevel flag for Forms (this was lost in the
36059           FormParent rewrite)
36060         * ThemeWin32Classic.cs:
36061           - DrawCheckBox(): Fixed stringformat to show hotkeys
36062           - DrawRadioButton(): Fixed stringformat to show hotkeys
36063         * CommonDialog.cs: Removed WndProc override, not needed
36064
36065 2005-02-14  Peter Bartok  <pbartok@novell.com>
36066
36067         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
36068           missed those in the rewrite
36069
36070 2005-02-14  Miguel de Icaza  <miguel@novell.com>
36071
36072         * NumericUpDown.cs (Increment, ToString): Add.
36073         (DecimalPlaces): implement.
36074         
36075         Add attributes.
36076         
36077         * UpDownBase.cs: Add the designer attributes.
36078
36079 2005-02-13  Peter Bartok  <pbartok@novell.com>
36080
36081         * Panel.cs: Removed border_style, now in Control
36082         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
36083           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
36084
36085 2005-02-13  Peter Bartok  <pbartok@novell.com>
36086
36087         * MouseButtons.cs: Added missing attributes
36088         * XplatUIStructs.cs: Added enumeration for title styles
36089         * LeftRightAlignment.cs: Added missing attributes
36090         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
36091           it compatible with Graphics.FromHwnd()
36092         * SelectedGridItemChangedEventArgs.cs: Fixed property type
36093         * Keys.cs: Added missing attributes
36094         * SelectionRange.cs: Added missing attributes
36095         * SelectionRangeConverter.cs: Added
36096         * XplatUI.cs:
36097           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
36098             ReleaseMenuDC methods
36099           - Renamed ReleaseWindow to UngrabWindow
36100           - Added proper startup notice to allow version identification
36101         * Form.cs:
36102           - Added missing attributes
36103           - Removed FormParent concept
36104         * Label.cs: Removed border_style field, now in Control
36105         * RadioButton.cs: Now properly selects RadioButton when focus is
36106           received
36107         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
36108         * Control.cs:
36109           - Added missing attributes
36110           - Added borderstyle handling
36111           - Removed FormParent concept support
36112           - Fixed calls to XplatUI to match changed APIs
36113           - Fixed bug that would case us to use disposed Graphics objects
36114           - Removed unneeded internal methods
36115           - PerformLayout(): Fixed to handle DockStyle.Fill properly
36116           - SelectNextControl(): Fixed to properly check common parents
36117         * TextBoxBase.cs: Removed border_style field (now in Control)
36118         * MessageBox.cs:
36119           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
36120             fixed calculations for form size
36121           - Added support for localized strings and icons
36122           - Improved form size calculations, added border
36123         * ListView.cs: Removed border_style field (now in Control)
36124         * X11Structs.cs: Moved several structs from X11 driver here
36125         * X11Keyboard.cs: Changed debug message
36126         * Application.cs: Removed FormParent concept support
36127         * CommonDialog.cs:
36128           - Resetting end_modal flag
36129           - Removed FormParent concept support
36130         * NativeWindow.cs: Removed FormParent concept support
36131         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
36132           Client area and Non-Client whole window to allow support for WM_NC
36133           messages
36134         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
36135           prevent using it until it supports Hwnd as per Geoff Norton's request
36136         * ToolBar.cs: Fixed drawing, was not doing proper drawing
36137         * PictureBox.cs: Removed border_style field, now in Control
36138         * XplatUIWin32.cs: Added new driver methods
36139
36140 2005-02-12  Peter Bartok  <pbartok@novell.com>
36141
36142         * OpacityConverter.cs: Implemented
36143         * Hwnd.cs: Internal class to support drivers that need to emulate
36144           client area/non-client area window behaviour
36145
36146 2005-02-11  Peter Bartok  <pbartok@novell.com>
36147
36148         * KeysConverter.cs: Implemented
36149
36150 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
36151
36152         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
36153         * LinkLabel: Added missing attributes
36154         * MainMenu.cs: fixes ToString
36155         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
36156         * ListBox.cs: fixes event position
36157         * TrackBar.cs: adds missing attributes and events
36158         
36159 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
36160
36161         * MenuItem.cs: Use SystemInformation and bug fixes
36162         * MenuAPI.cs: Use SystemInformation and bug fixes
36163
36164 2005-02-09  Jackson Harper  <jackson@ximian.com>
36165
36166         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
36167         their keystate otherwise things like VK_MENU get stuck "on".
36168
36169 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
36170
36171         * ListBox.cs: Fixes AddRange bug
36172         
36173 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
36174
36175         * ProgressBar.cs
36176                 - Add missing attributes
36177                 - Add missing method
36178                 
36179         * CheckedListBox.cs: Added missing attributes
36180                 - Add missing attributes
36181                 - Remove extra method
36182         
36183         * ComboBox.cs: Added missing attributes
36184         * VScrollBar.cs: Added missing attributes
36185         * ScrollBar.cs:  Added missing attributes
36186         * ListBox.cs: Fixes signature, add missing consts
36187         * LinkArea.cs:   Added missing attributes
36188         
36189
36190 2005-02-08  Peter Bartok  <pbartok@novell.com>
36191
36192         * Menu.cs: Added missing attributes
36193         * MainMenu.cs: Added missing attributes
36194         * GroupBox.cs: Added missing attributes
36195         * Label.cs: Added missing attributes
36196         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
36197         * ColorDialog.cs:
36198           - Added Instance and Options properties
36199           - Added missing attributes
36200         * Cursor.cs: Made Serializable
36201         * NotifyIcon: Added missing attributes
36202         * MenuItem.cs: Added missing attributes
36203         * TextBoxBase.cs: Implemented AppendText() and Select() methods
36204         * Panel.cs: Added Missing attributes
36205         * MonthCalendar.cs: Fixed CreateParams
36206
36207 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
36208         
36209         * LinkLabel.cs:
36210                 - Fixes signature
36211                 - Fixes issues with links
36212                 - Adds the class attributes
36213
36214 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
36215         
36216         * ComboBox.cs:
36217                 - Fixes button when no items available in dropdown
36218                 - Fixes repainting problems
36219                 - Adds the class attributes
36220                 
36221 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
36222
36223         * XplatUIOSX.cs: Detect the menu bar and title bar height from
36224         the current theme.  Cache these on startup.
36225
36226 2005-02-07  Jackson Harper  <jackson@ximian.com>
36227
36228         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
36229         the scrollbar buttons when they are depressed.
36230
36231 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
36232
36233         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
36234         Get the display size from the main displayid.  We currently dont
36235         support multiple display configurations.
36236
36237 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
36238
36239         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
36240
36241 2005-02-07  Miguel de Icaza  <miguel@novell.com>
36242
36243         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
36244
36245 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
36246
36247         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
36248
36249 2005-02-04  Jackson Harper  <jackson@ximian.com>
36250
36251         * ThemeWin32Classic.cs: Respect the clipping rect when
36252         drawing. Only fill the intersection of clips and rects so there
36253         isn't a lot of large fills.
36254         * ScrollBar.cs: Pass the correct clipping rect to the theme
36255         engine. Remove some debug code.
36256
36257 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
36258         
36259         * DateTimePicker.cs:
36260                 - Fixed crash on DateTime.Parse, use Constructor instead
36261
36262 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
36263         
36264         * MenuItem.cs:
36265         * MenuAPI.cs:
36266                 - Owner draw support (MeasureItem and DrawItem)
36267
36268 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
36269         
36270         *  Menu.cs:
36271                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
36272                 - Fixes MenuItems.Add range
36273         * MenuItem.cs:
36274                 - MergeMenu and Clone and CloneMenu functions
36275
36276 2005-02-03  Jackson Harper  <jackson@ximian.com>
36277
36278         * ScrollBar.cs: Make abstract
36279         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
36280         is abstract.
36281
36282 2005-02-03  Jackson Harper  <jackson@ximian.com>
36283
36284         * ScrollBar.cs: First part of my scrollbar fixups. This removes
36285         all the unneeded refreshes and uses invalidates with properly
36286         computed rects.
36287
36288 2005-02-03  Peter Bartok  <pbartok@novell.com>
36289
36290         * ComponentModel.cs: Added
36291         * IDataGridEditingService.cs: Added
36292         * Timer.cs: Added missing attributes
36293         * ToolTip.cs: Added missing attributes
36294
36295 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
36296
36297         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
36298
36299 2005-02-03  Peter Bartok  <pbartok@novell.com>
36300
36301         * ListBox.cs: Added missing attributes
36302
36303 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
36304         
36305         * ListBox.cs:
36306                 - Fixes font height after font change
36307                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
36308                 
36309 2005-02-02  Peter Bartok  <pbartok@novell.com>
36310
36311         * HandleData.cs: Introduced static methods to allow class
36312           to be more self-contained and track it's own HandleData objects
36313         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
36314           HandleData to use new static methods
36315
36316 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
36317
36318         * Combobox.cs:
36319                 - Fixes default size and PreferredHeight
36320                 - Missing events
36321                 - ObjectCollection.Insert implementation
36322                 
36323         * ListControl.cs
36324                 - Fixes signature
36325         * ListBox.cs:
36326                 - Several fixes
36327                 - ObjectCollection.Insert implementation
36328                 - No selection after clean
36329                 - Small fixes
36330
36331 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
36332
36333         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
36334
36335 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
36336
36337         * Combobox.cs:
36338                 - Caches ItemHeight calculation for OwnerDrawVariable
36339                 - Handles dropdown properly
36340                 - Fixes several minor bugs
36341
36342 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
36343
36344         * ListBox.cs:
36345                 - Fixes 71946 and 71950
36346                 - Fixes changing Multicolumn on the fly
36347                 - Fixes keyboard navigation on Multicolumn listboxes
36348
36349 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36350         
36351         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
36352         crash reporter log.
36353
36354 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36355
36356         * XplatUIOSX.cs: Allow applications to actually exit.
36357
36358 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
36359
36360         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
36361         their parent at creation time rather than lazily later.  Fixes a major
36362         regression we were experiencing.
36363
36364 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
36365
36366         * ThemeWin32Classic.cs: more date time picker painting fixes
36367         * DateTimePicker.cs: more monthcalendar drop down fixes
36368         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
36369
36370 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
36371
36372         * ScrollBar.cs:
36373                 - When moving the thumb going outside the control should stop the moving
36374                 - Adds the firing of missing events
36375                 - Fixes no button show if Size is not specified
36376                 - End / Home keys for keyboard navigation
36377
36378 2005-01-30  Peter Bartok  <pbartok@novell.com>
36379
36380         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
36381           sanity check to prevent theoretical loop
36382         * XplatUIWin32.cs (SetVisible): Removed debug output
36383         * XplatUIX11.cs (SystrayChange): Added sanity check
36384         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
36385         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
36386           behaviour, valid until the X11 client window rewrite is done
36387         * TextBox.cs (ctor): Setting proper default foreground and background
36388           colors
36389
36390 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
36391
36392         * Theme: Added DrawDateTimePicker to interface
36393         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
36394         * DateTimePicker.cs: Created (still needs keys and painting code)
36395         * DateTimePickerFormat.cs: added
36396         * MonthCalendar.cs: fixed CreateParams for popup window mode
36397           
36398 2005-01-29  Peter Bartok  <pbartok@novell.com>
36399
36400         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
36401           this should also the calculations for ligher/darker
36402         * Theme.cs: Fixed defaults for ScrollBar widths/heights
36403
36404 2005-01-29  Peter Bartok  <pbartok@novell.com>
36405
36406         * ArrangeDirection.cs: Added
36407         * ArrangeStartingPositon.cs: Added
36408         * SystemInformation.cs: Implemented
36409         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
36410           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
36411           used by SystemInformation class
36412         * X11Strucs.cs: Added XSizeHints structure
36413         * MenuAPI.cs:
36414           - Fixed CreateParams to make sure the menu window is always visible
36415           - TrackPopupMenu: Added check to make sure we don't draw the
36416             menu offscreen
36417
36418 2005-01-29  Peter Bartok  <pbartok@novell.com>
36419
36420         * HandleData.cs: Added method for altering invalid area
36421         * TextBoxBase.cs: Implemented TextLength
36422
36423 2005-01-28  Peter Bartok  <pbartok@novell.com>
36424
36425         * XplatUIX11.cs: Improvement over last patch, not sending
36426           the WM_PAINT directly anymore, instead we scroll any pending
36427           exposed areas and let the system pick out the WM_PAINT later
36428
36429 2005-01-28  Peter Bartok  <pbartok@novell.com>
36430
36431         * SWF.csproj: Deleted, no longer used. Instead,
36432           Managed.Windows.Forms/SWF.csproj should be used
36433         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
36434           directly, to avoid a potential race condition with the next
36435           scroll
36436
36437 2005-01-28  Peter Bartok  <pbartok@novell.com>
36438
36439         * XplatUI.cs: Made class internal
36440
36441 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
36442
36443         * CheckedListBox.cs:
36444                 - Draw focus
36445                 - Fixed Drawing
36446                 - Missing methods and events
36447
36448 2005-01-27  Peter Bartok  <pbartok@novell.com>
36449
36450         * Application.cs (Run): Don't use form if we don't have one
36451
36452 2005-01-27  Peter Bartok  <pbartok@novell.com>
36453
36454         * TextBoxBase.cs (get_Lines): Fixed index off by one error
36455
36456 2005-01-27  Peter Bartok  <pbartok@novell.com>
36457
36458         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
36459         * GridItem.cs: Added; Patch by Jonathan S. Chambers
36460         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
36461         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
36462         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
36463         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
36464         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36465         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
36466         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36467         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36468         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
36469         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
36470
36471 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
36472
36473         * Combobox.cs:
36474                 - Draw focus on Simple Combobox
36475                 - Fixes drawing issues
36476                 - fixes 71834
36477
36478 2005-01-27  Peter Bartok  <pbartok@novell.com>
36479
36480         * Form.cs:
36481           - Place window in default location, instead of hardcoded 0/0
36482           - Send initial LocationChanged event
36483         * Control.cs:
36484           - UpdateBounds after creation to find out where the WM placed us
36485           - Make sure that if the ParentForm changes location the Form
36486             is notified
36487         * XplatUIX11.cs: XGetGeometry will not return the coords relative
36488             to the root, but to whatever the WM placed around us.
36489             Translate to root coordinates before returning toplevel
36490             coordinates
36491         * XplatUIWin32.cs: Removed debug output
36492         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
36493           flag to GetWindowPos, to allow translation of coordinates on X11
36494
36495 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
36496
36497         * ListBox.cs: connect LostFocus Event
36498
36499 2005-01-27  Peter Bartok  <pbartok@novell.com>
36500
36501         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
36502           XplatUIX11.cs: Extended the Systray API
36503         * Form.cs: Removed debug output
36504         * Application.cs: Fixed focus assignment, always need to call
36505           XplatUI.Activate() since Form.Activate() has rules that may
36506           prevent activation
36507         * NotifyIcon.cs: Should be complete now
36508         * ToolTip.cs: Worked around possible timer bug
36509
36510 2005-01-27  Jackson Harper  <jackson@ximian.com>
36511
36512         * TabControl.cs:
36513         - Only invalidate the effected tabs when the
36514         selected index changes. This reduces drawing and gets rid of some
36515         flicker.
36516         - Only refresh if the tabs need to be shifted, otherwise only
36517         invalidate the slider button.
36518         - On windows the tabs are not filled to right if the slider is
36519         visible.
36520         
36521 2005-01-27  Jackson Harper  <jackson@ximian.com>
36522
36523         * TabControl.cs: Only refresh on mouseup if we are showing the
36524         slider. Also only invalidate the button whose state has changed.
36525
36526 2005-01-26  Peter Bartok  <pbartok@novell.com>
36527
36528         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
36529         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
36530           and SystrayRemove() methods
36531         * XplatUIOSX.cs: Stubbed Systray methods
36532         * XplatUIX11.cs:
36533           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
36534             methods
36535           - Fixed broken XChangeProperty calls (marshalling messed up things)
36536         * X11Structs.cs: Added enums and structs required for Size hinting
36537         * NotifyIcon.cs: Added & implemented
36538
36539 2005-01-26  Jackson Harper  <jackson@ximian.com>
36540
36541         * TabControl.cs: Space vertically layed out tabs properly.
36542
36543 2005-01-26  Peter Bartok  <pbartok@novell.com>
36544
36545         * Form.cs (CreateClientParams): Always set the location to 0,0
36546           since we're a child window.
36547
36548         * Control.cs (SetVisibleCore): Always explicitly setting the location
36549           of a toplevel window, apparently X11 doesn't like to move windows
36550           while they're not mapped.
36551
36552 2005-01-26  Jackson Harper  <jackson@ximian.com>
36553
36554         * TabControl.cs: Implement FillToRight size mode with vertically
36555         rendered tabs.
36556
36557 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
36558
36559         * ControlPaint.cs, ThemeWin32Classic.cs
36560                 - Fixes DrawFocusRectangle
36561
36562 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
36563
36564         * MenuAPI.cs:
36565                 - MenuBar tracking only starts when item is first clicked
36566                 - Fixes menu hidding for multiple subitems
36567                 - Unselect item in MenuBar when item Executed
36568                 - Fixes bug 71495
36569
36570 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
36571
36572         * ListControl.cs:
36573                 - IsInputKey for ListBox
36574         * ListBox.cs:
36575                 - Focus item
36576                 - Shift and Control item selection
36577                 - Implement SelectionMode.MultiExtended
36578                 - Fixes RightToLeft
36579         * ComboBox.cs:
36580                 - IsInputKey implemented
36581                 - Do not generate OnTextChangedEdit on internal txt changes
36582                 
36583 2005-01-23  Peter Bartok  <pbartok@novell.com>
36584
36585         * AccessibleObject.cs: Partially implemented Select()
36586         * MonthCalendar.cs: Added missing attributes and events
36587         * Form.cs: Fixed CreateParams behaviour, now controls derived from
36588           form can properly override CreateParams.
36589         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
36590           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
36591           Control performs Invalidate & Update
36592         * NativeWindow (CreateHandle): Added special handling for Form
36593           and Form.FormParent classes to allow overriding of From.CreateParams
36594         * Control.cs:
36595           - ControlNativeWindow: Renamed 'control' variable to more intuitive
36596             name 'owner'
36597           - ControlNativeWindow: Added Owner property
36598           - Removed usage of Refresh() on property changes, changed into
36599             Invalidate(), we need to wait until the queue is processed for
36600             updates, direct calls might cause problems if not all vars for
36601             Paint are initialized
36602           - Added call to UpdateStyles() when creating the window, to set any
36603             styles that CreateWindow might have ignored.
36604           - Added support for Form CreateParent overrides to UpdateStyles()
36605         * MessageBox.cs: Removed no longer needed FormParent override stuff,
36606           CreateParams are now properly overridable
36607         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
36608           CreateParams are now properly overridable
36609
36610 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
36611
36612         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
36613         OnTextBoxChanged.
36614
36615         Capture LostFocus and OnTextBoxChanged.  The later introduces a
36616         recursive invocation that I have not figured out yet.
36617
36618         Reset the timer when not using (it was accumulating).
36619
36620
36621         (OnTextBoxChanged): Set UserEdit to true here to track whether the
36622         user has made changes that require validation.
36623
36624         Reset changing to avoid loops.
36625
36626 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
36627
36628         * NumericUpDown.cs: Display value at startup.
36629
36630         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
36631         ValidateEditText.
36632
36633         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
36634         filled in.  Added some basic parsing of text.
36635
36636         Still missing the OnXXX method overrides, and figuring out the
36637         events that must be emitted.
36638
36639         * UpDownBase.cs: Handle UserEdit on the Text property.
36640         
36641 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
36642
36643         * ComboBox.cs:
36644           - Fixes IntegralHeight
36645           - ToString method
36646
36647 2005-01-21  Jackson Harper  <jackson@ximian.com>
36648
36649         * TabControl.cs: Set the SelectedIndex property when SelectedTab
36650         is set so that the page visibility is updated and the tabs are
36651         sized correctly.
36652
36653 2005-01-21  Jackson Harper  <jackson@ximian.com>
36654
36655         * TabControl.cs: Use cliping rectangle for blitting. Give the
36656         theme the clipping rect so we can do clipping while
36657         drawing. Remove some debug code.
36658
36659 2005-01-21  Jackson Harper  <jackson@ximian.com>
36660
36661         * TabPage.cs: Add a new method so tab pages can force the tab
36662         control to recalculate the tab page sizes.
36663         * TabControl.cs: UpdateOwner needs to make the tab control recalc
36664         sizes.
36665
36666 2005-01-20  Jackson Harper  <jackson@ximian.com>
36667
36668         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
36669
36670 2005-01-20  Jackson Harper  <jackson@ximian.com>
36671
36672         * TreeView.cs: Set the bounds for nodes properly. They were
36673         getting screwed up when checkboxes were not enabled, but images
36674         were.
36675
36676 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
36677
36678         * ListBox.cs:
36679                 - Owner draw support
36680                 - Fixes
36681                 
36682 2005-01-20  Jackson Harper  <jackson@ximian.com>
36683
36684         * XplatUIStructs.cs: More misc keys
36685         * X11Keyboard.cs: Ignore some control keys.
36686
36687 2005-01-20  Jackson Harper  <jackson@ximian.com>
36688
36689         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
36690         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
36691
36692 2005-01-19  Peter Bartok  <pbartok@novell.com>
36693
36694         * Control.cs: Un-selecting the control when it is loosing focus
36695
36696 2005-01-19  Jackson Harper  <jackson@ximian.com>
36697
36698         * TreeView.cs: Hook up to the text controls leave event so we can
36699         end editing when the users clicks outside the text box.
36700         
36701 2005-01-19  Jackson Harper  <jackson@ximian.com>
36702
36703         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
36704         get set in the conversion array.
36705
36706 2005-01-19  Peter Bartok  <pbartok@novell.com>
36707
36708         * Application.cs (ModalRun): Added a call to CreateControl to ensure
36709           focus is properly set
36710         * Button.cs:
36711           - Added missing attributes
36712           - removed styles, those are already set in the base class
36713         * ButtonBase.cs:
36714           - Added missing attributes
36715           - Added clip window styles
36716         * CheckBox.cs: Added missing attributes
36717         * CommonDialog.cs:
36718           - FormParentWindow.CreateParams: Added required clip styles
36719         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
36720           also filters modifier keys
36721         * MessageBox.cs:
36722           - Added assignment of Accept and Cancel button to enable Enter
36723             and Esc keys in MessageBox dialogs
36724           - FormParentWindow.CreateParams: Added required clip styles
36725         * RadioButton.cs: Added missing attributes
36726         * TextControl.cs: No longer draws selection if control does not
36727           have focus
36728         * TextBoxBase.cs:
36729           - Now draws simple rectangle around test area to make it obvious
36730             there's a control. This is a hack until we properly support borders
36731           - A few simple fixes to support selections better, now erases selected
36732             text when typing, and resets selection when using movement keys
36733
36734 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
36735
36736         * UpDownBase.cs: Added some new properties.
36737
36738         * DomainUpDown.cs: Implement a lot to get my test working.
36739
36740 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36741
36742         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
36743
36744 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36745
36746         * OSXStructs (WindowAttributes): Fixed csc complaints
36747
36748 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36749
36750         * XplayUIOSX.cs:
36751           OSXStructs.cs: Initial refactor to move enums and consts into
36752           OSXStructs and use them in the driver for greater readability.
36753
36754 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
36755
36756         * XplatUIOSX.cs: Initial support for Standard Cursors.
36757         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
36758
36759 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
36760
36761         * ComboBox.cs: ability to change style when the ctrl is already
36762         created, missing methods and events, bug fixes, signature fixes
36763
36764 2005-01-19  Peter Bartok  <pbartok@novell.com>
36765
36766         * Cursors.cs (ctor): Added ctor to fix signature
36767
36768 2005-01-18  Peter Bartok  <pbartok@novell.com>
36769
36770         * Button.cs: Implemented DoubleClick event
36771         * ButtonBase.cs:
36772           - Fixed keyboard handling to behave like MS, where the press of
36773             Spacebar is equivalent to a mousedown, and the key release is
36774             equivalent to mouseup. Now a spacebar push will give the same
36775             visual feedback like a mouse click.
36776           - Added missing attributes
36777           - Added ImeModeChanged event
36778           - Added support for generating DoubleClick event for derived classes
36779         * CheckBox.cs:
36780           - Implemented DoubleClick event
36781           - Added missing attributes
36782         * CommonDialog.cs: Added missing attribute
36783         * ContextMenu.cs: Added missing attributes
36784         * RadioButton.cs:
36785           - AutoChecked buttons do not allow to be unselected when clicked
36786             (otherwise we might end up with no selected buttons in a group)
36787           - Added missing attributes
36788           - Implemented DoubleClickEvent
36789         * ThreadExceptionDialog.cs: Enabled TextBox code
36790
36791 2005-01-18  Peter Bartok  <pbartok@novell.com>
36792
36793         * Form.cs: Removed debug output
36794         * Button.cs: Added support for DoubleClick method
36795
36796 2005-01-18  Peter Bartok  <pbartok@novell.com>
36797
36798         * Form.cs:
36799           - Added method to parent window that allows triggering size
36800             calculations when a menu is added/removed
36801           - set_Menu: Cleaned up mess from early days of Form and Control,
36802             now properly triggers a recalc when a menu is added/removed
36803           - Added case to select form itself as focused form if no child
36804             controls exist
36805           - Added PerformLayout call when showing dialog, to ensure properly
36806             placed controls
36807         * Control.cs:
36808           - Select(): Made internal so Form can access it
36809           - Focus(): Only call Xplat layer if required (avoids loop), and sets
36810             status
36811         * Application.cs (Run): Removed hack and calls PerformLayout instead
36812           to trigger calculation when Form becomes visible
36813
36814 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
36815
36816         * ComboBox.cs: fixes for ownerdraw
36817
36818 2005-01-18  Peter Bartok  <pbartok@novell.com>
36819
36820         * TextControl.cs:
36821           - Sentinel is no longer static, each Document gets it's own, this
36822             avoids locking or alternatively overwrite problems when more
36823             than one text control is used simultaneously.
36824           - Switched to use Hilight and HilightText brushes for text selection
36825
36826         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
36827
36828 2005-01-18  Peter Bartok  <pbartok@novell.com>
36829
36830         * Control.cs:
36831           - Hooked up the following events:
36832                 o ControlAdded
36833                 o ControlRemoved
36834                 o HandleDestroyed
36835                 o ImeModeChanged
36836                 o ParentChanged
36837                 o TabStopChanged
36838                 o Invalidated
36839                 o SystemColorsChanged
36840                 o ParentFontChanged
36841                 o Move
36842           - Removed debug output
36843           - Added a call to the current theme's ResetDefaults when a color change
36844             is detected
36845         * Form.cs: Now setting the proper ImeMode
36846         * Theme.cs: Defined a method to force recreation of cached resources
36847           and rereading of system defaults (ResetDefaults())
36848         * ThemeWin32Classic.cs: Added ResetDefaults() stub
36849
36850 2005-01-17  Peter Bartok  <pbartok@novell.com>
36851
36852         * Control.cs: Added missing attributes
36853
36854 2005-01-17  Jackson Harper  <jackson@ximian.com>
36855
36856         * TreeNode.cs: Implement editing. Add missing properties selected
36857         and visible.
36858         * TreeView.cs: Implement node editing. Also some fixes to use
36859         Invalidate (invalid area) instead of Refresh when selecting.
36860
36861 2005-01-17  Peter Bartok  <pbartok@novell.com>
36862
36863         * Control.cs:
36864           - Implemented InvokeGotFocus() method
36865           - Implemented InvokeLostFocus() method
36866           - Implemented InvokePaint() method
36867           - Implemented InvokePaintBackground() method
36868           - Implemented InvokeClick() method
36869           - Implemented FindForm() method
36870           - Implemented RectangleToClient() method
36871           - Implemented ClientToRectangle() method
36872           - Implemented ResetBackColor() method
36873           - Implemented ResetCursor() method
36874           - Implemented ResetFont() method
36875           - Implemented ResteForeColor() method
36876           - Implemented ResetImeMode() method
36877           - Implemented ResetLeftToRight() method
36878           - Implemented ResetText() method
36879           - Implemented Scale() methods
36880           - Implemented ScaleCore() method
36881           - Implemented Update() method
36882           - Removed unused variables
36883           - Stubbed AccessibilityNotifyClients and
36884             ControlAccessibleObject.NotifyClients() methods (dunno what to do
36885             with those yet)
36886           - Now setting proper default for RightToLeft property
36887           - Fixed bug in SetClientSizeCore that would cause windows to get
36888             really big
36889           - Now sending Click/DoubleClick events
36890           - Now selecting controls when left mouse button is clicked on
36891             selectable control
36892         * AccessibleEvents.cs: Added
36893         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
36894         * XplatUIOSX.cs: Stubbed UpdateWindow() method
36895         * XplatUIWin32.cs: Implemented UpdateWindow() method
36896         * XplatUIX11.cs: Implemented UpdateWindow() method
36897         * Form.cs: Removed stray semicolon causing CS0162 warning
36898         * ThemeWin32Classic.cs: Fixed unused variable warnings
36899         * ScrollableControl.cs: Now calls base method for ScaleCore
36900         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
36901           style to avoid interference with internal click handler (which is
36902           different than standard Control click handling)
36903         * RadioButton.cs:
36904           - Now unchecks all sibling radio buttons when control is
36905             selected (Fixes #68756)
36906           - Removed internal tabstop variable, using the one inherited from
36907             Control
36908
36909 2005-01-17  Jackson Harper  <jackson@ximian.com>
36910
36911         * NavigateEventArgs.cs: Fix base type.
36912         * LinkLabel.cs: Sig fix
36913         
36914 2005-01-17  Jackson Harper  <jackson@ximian.com>
36915
36916         * TreeView.cs: Only invalidate the effected nodes bounds when
36917         selecting nodes.
36918
36919 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
36920
36921         * XplatUIWin32.cs: fixes Win32 marshaling
36922         * XplatUIX11.cs: fixes method signature
36923
36924 2005-01-17  Peter Bartok  <pbartok@novell.com>
36925
36926         * XplatUIX11.cs: Clean up resources when we no longer need them
36927
36928 2005-01-17  Peter Bartok  <pbartok@novell.com>
36929
36930         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
36931           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
36932           and DestroyCursor() methods.
36933         * Cursor.cs: Partially implemented, now supports standard cursors;
36934           still contains some debug code
36935         * Cursors.cs: Implemented class
36936         * Control.cs:
36937           - WndProc(): Added handling of WM_SETCURSOR message, setting the
36938             appropriate cursor
36939           - Implemented Cursor property
36940           - Replaced break; with return; more straightforwar and possibly
36941             faster
36942           - Now properly setting the result for WM_HELP
36943         * X11Structs.cs: Added CursorFontShape enum
36944         * XplatUIStructs.cs:
36945           - Added StdCursor enum (to support DefineStdCursor() method)
36946           - Added HitTest enum (to support sending WM_SETCURSOR message)
36947         * XplatUIX11.cs:
36948           - Now sends the WM_SETCURSOR message
36949           - Implemented new cursor methods
36950         * XplatUIOSX.cs: Stubbed new cursor methods
36951         * XplatUIWin32.cs:
36952           - Implemented new cursor methods
36953           - Added GetSystemMetrics function and associated enumeration
36954
36955 2005-01-15  Peter Bartok  <pbartok@novell.com>
36956
36957         * Control.cs:
36958           - WndProc(): Now handles EnableNotifyMessage
36959           - SelectNextControl(): Fixed bug where if no child or sibling
36960             controls exist we looped endlessly
36961
36962 2005-01-14  Jackson Harper  <jackson@ximian.com>
36963
36964         * TreeView.cs: Recalculate the tab pages when a new one is added
36965         so that the proper bounding rects are created.
36966
36967 2005-01-14  Jackson Harper  <jackson@ximian.com>
36968
36969         * TreeView.cs: Draw a gray box instead of a grip in the lower
36970         right hand corner when there are both horizontal and vertical
36971         scroll bars.
36972
36973 2005-01-14  Jackson Harper  <jackson@ximian.com>
36974
36975         * Control.cs: When erasing backgrounds use FromHwnd instead of
36976         FromHdc when there is a NULL wparam. This occurs on the X driver.
36977         * XplatUIX11.cs: Set the wparam to NULL.
36978
36979 2005-01-13  Jackson Harper  <jackson@ximian.com>
36980
36981         * PictureBox.cs: Implement missing methods (except ToString, need
36982         to test that on windows) and events. When visibility is changed we
36983         need to redraw the image because the buffers are killed. When size
36984         is changed refresh if the sizemode needs it.
36985
36986 2005-01-13  Peter Bartok  <pbartok@novell.com>
36987
36988         * Control.cs (SelectNextControl): Was using wrong method to select
36989           a control
36990
36991 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
36992
36993         * ComboBox.cs: fixes dropstyle
36994
36995 2005-01-13  Peter Bartok  <pbartok@novell.com>
36996
36997         * Form.cs:
36998           - Implemented Select() override
36999           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
37000           - Now sets keyboard focus on startup
37001         * Control.cs (SelectNextControl): Now properly handles directed=true
37002         * TextBoxBase.cs:
37003           - WndProc: Now passes tab key on to base if AcceptTabChar=false
37004           - Added (really bad) focus rectangle (mostly for testing)
37005         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
37006           to enforce redraw on focus changes
37007         * ContainerControl.cs:
37008           - Fixed detection of Shift-Tab key presses
37009           - Fixed traversal with arrow keys
37010         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
37011           gonna keep this or if it's complete yet
37012         
37013 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
37014
37015         * ComboBox.cs: missing properties, fixes
37016
37017 2005-01-13  Peter Bartok  <pbartok@novell.com>
37018
37019         * Panel.cs (ctor): Setting Selectable window style to off
37020         * Splitter.cs (ctor): Setting Selectable window style to off
37021         * GroupBox.cs (ctor): Setting Selectable window style to off
37022         * Label.cs (ctor): Setting Selectable window style to off
37023
37024 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
37025
37026         * UpDownBase.cs (InitTimer): If the timer has been already
37027         created, enable it.
37028
37029         Use a TextBox instead of a Label.
37030
37031 2005-01-12  Jackson Harper  <jackson@ximian.com>
37032
37033         * TreeView.cs: Refresh the tree after sorting the nodes. Always
37034         draw the connecting node lines (when ShowLines is true).
37035         * TreeNode.cs: The nodes index can now be updated. This is used
37036         when a node collection is sorted.
37037         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
37038         insert or an existing unsorted node collection can be sorted.
37039         
37040 2005-01-12  Peter Bartok  <pbartok@novell.com>
37041
37042         * ContainerControl.cs: Implemented ProcessDialogKeys()
37043
37044 2005-01-12  Peter Bartok  <pbartok@novell.com>
37045
37046         * Control.cs:
37047           - Implemented SelectNextControl() method
37048           - Several focus related bug fixes
37049           - Fixed Docking calculations to match MS documentation and
37050             behaviour
37051
37052 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
37053
37054         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
37055         bug fixes
37056
37057 2005-01-12  Peter Bartok  <pbartok@novell.com>
37058
37059         * Control.cs:
37060           - Fixed broken Contains() method
37061           - Implemented GetNextControl() method. Finally. This is the pre-
37062             requisite for focus handling.
37063
37064 2005-01-12  Peter Bartok  <pbartok@novell.com>
37065
37066         * OSXStrucs.cs: Added
37067
37068 2005-01-12  Peter Bartok  <pbartok@novell.com>
37069
37070         * XplatUIWin32.cs:
37071           - Removed PeekMessageFlags
37072           - Implemented SetWindowStyle() method
37073         * XplatUIStructs.cs: Added PeekMessageFlags
37074         * X11Structs: Added missing border_width field to XWindowChanges struct
37075         * XplatUIX11.cs:
37076           - PeekMessage: Now throws exception if flags which are not yet
37077             supported are passed
37078           - Implemented SetWindowStyle() method
37079           - Fixed SetZOrder to handle AfterHwnd properly
37080         * XplatUI.cs: Added SetWindowStyle() method
37081         * XplatUIDriver.cs: Added SetWindowStyle() abstract
37082         * Control.cs:
37083           - Implemented UpdateStyles() method
37084           - Implemented UpdateZOrder() method
37085         * XplatUIOSX.cs: Added SetWindowStyle() stub
37086
37087 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
37088
37089         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
37090         button mouse).
37091
37092
37093 2005-01-11  Jackson Harper  <jackson@ximian.com>
37094
37095         * TreeView.cs: Still need to draw lines to siblings even if out of
37096         the current node is out of the clip.
37097
37098 2005-01-11  Jackson Harper  <jackson@ximian.com>
37099
37100         * TreeView.cs: When setting the hbar/vbar/grip position use
37101         SetBounds so that perform layout is only called once. Also suspend
37102         and resume layout so layout is only done once for all controls.
37103         - Removed some debug fluff
37104         * SizeGrip.cs: Call base implmentation in overriding methods.
37105         - When visibility is changed the drawing buffers are killed so we
37106         need to redraw.
37107
37108 2005-01-11  Jackson Harper  <jackson@ximian.com>
37109
37110         * TreeView.cs: Calculate the open node count while drawing. This
37111         saves us an entire tree traversal for every paint operation. Use
37112         a member var for the open node count so less vars are passed around.
37113
37114 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
37115
37116         * MonthCalendar.cs:
37117         - fixed selection to use mousemove, not mouse polling on timer
37118         * ThemeWin32Classic.cs
37119         - removed redundant unused variable "no_more_content"
37120         
37121 2005-01-11  Peter Bartok  <pbartok@novell.com>
37122
37123         * XplatUIX11.cs (DoEvents): Needs to return when no more events
37124           are pending, so it now calls PeekMessage instead of GetMessage;
37125           implemented a incomplete version of PeekMessage
37126         
37127 2005-01-11  Peter Bartok  <pbartok@novell.com>
37128
37129         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
37130           I18n issues
37131         * TextBoxBase.cs: Added sending of TextChanged event
37132
37133 2005-01-10  Jackson Harper  <jackson@ximian.com>
37134
37135         * TreeView.cs: Try not to draw outside the clipping rectangle on
37136         each node element.
37137
37138 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
37139
37140         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
37141
37142 2005-01-10  Jackson Harper  <jackson@ximian.com>
37143
37144         * TreeView.cs:
37145         - Implement fast scrolling. Now only the newly
37146         exposed nodes are drawn and the old image is moved using the
37147         XplatUI::ScrollWindow method.
37148         - Factor in height of nodes when calculating whether or not the
37149         node is in the clipping rect.
37150
37151 2005-01-10  Jackson Harper  <jackson@ximian.com>
37152
37153         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
37154
37155 2005-01-10  Peter Bartok  <pbartok@novell.com>
37156
37157         * Application.cs: Added temporary hack to resolve all our resize
37158           required issues on startup. This will get fixed properly at
37159           some point in the future
37160
37161 2005-01-10  Jackson Harper  <jackson@ximian.com>
37162
37163         * SizeGrip.cs: New internal class that is used as a sizing
37164         grip control...hence the name.
37165
37166 2005-01-10  Peter Bartok  <pbartok@novell.com>
37167
37168         * Control.cs: Implemented proper TabIndex handling, now assigning
37169           a tabindex when a control is added to a container
37170         * GroupBox.cs (ctor): Now sets the Container style bit, required
37171           for Control.GetNextControl()
37172
37173 2005-01-09  Jackson Harper  <jackson@ximian.com>
37174
37175         * TextBoxBase.cs: Clear window when scrolling (fixes build).
37176
37177 2005-01-09  Peter Bartok <pbartok@novell.com>
37178
37179         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
37180           XplatUIX11.cs: Added ability to control ScrollWindow expose and
37181           an overload for ScrollWindow to allow only scrolling a rectangle
37182
37183 2005-01-09  Peter Bartok <pbartok@novell.com>
37184
37185         * Form.cs:
37186           - Implemented SetDesktopBounds method
37187           - Implemented SetDesktopLocation method
37188
37189 2005-01-08  Jackson Harper  <jackson@ximian.com>
37190
37191         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
37192         the node count has changed, this removes to VScroll::Refresh calls
37193         when drawing.
37194
37195 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
37196
37197         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
37198
37199 2005-01-07  Jackson Harper  <jackson@ximian.com>
37200
37201         * TreeNode.cs: Just update the single node when it is
37202         checked. Don't refresh after toggling, the Expand/Collapse already
37203         handles this.
37204         * TreeView.cs: Respect clipping a little more when drawing. Try
37205         not to redraw things that don't need to be redrawn. Just hide the
37206         scrollbars when they are no longer needed instead of removing
37207         them, so they don't have to be created again and again.
37208         
37209 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
37210
37211         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
37212         coordinates to window space to place the caret properly, FIXED.
37213         Implement GetWindowState & SetWindowState
37214
37215 2005-01-06  Peter Bartok <pbartok@novell.com>
37216
37217         * Form.cs:
37218           - Implemented ClientSize property
37219           - Implemented DesktopBounds property
37220           - Implemented DesktopLocation property
37221           - Implemented IsRestrictedWindow property
37222           - Implemented Size property
37223           - Implemented TopLevel property
37224           - Implemented FormWindowState property
37225         * Control.cs:
37226           - Implemented GetTopLevel() method
37227           - Implemented SetTopLevel() method
37228         * X11Structs.cs (Atom):
37229           - Added AnyPropertyType definition
37230           - Added MapState definiton and updated XWindowAttribute struct
37231         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
37232         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
37233         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
37234         * XplatUIWin32.cs:
37235           - Implemented GetWindowState() and SetWindowState() methods
37236           - Fixed Win32GetWindowLong return type
37237         * XplatUIX11.cs:
37238           - Introduced central function for sending NET_WM messages
37239           - Implemented GetWindowState() and SetWindowState() methods
37240         * TextBoxBase.cs (set_Lines):
37241           - Now uses Foreground color for text added via Text property (Duh!)
37242           - Added code to remember programmatically requested size (fixes
37243             behaviour when Multiline is set after Size)
37244           - Added AutoSize logic
37245
37246 2005-01-06  Jackson Harper  <jackson@ximian.com>
37247
37248         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
37249
37250 2005-01-06  Jackson Harper  <jackson@ximian.com>
37251
37252         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
37253         set to less then 0.
37254
37255 2005-01-06  Jackson Harper  <jackson@ximian.com>
37256
37257         * ScrollableControl.cs: Lazy init the scrollbars.
37258         
37259 2005-01-06  Jackson Harper  <jackson@ximian.com>
37260
37261         * Theme.cs: Speed up getting pens and solid brushes, by using
37262         their ARGB as a hash instead of tostring and not calling Contains.
37263
37264 2005-01-06  Peter Bartok <pbartok@novell.com>
37265
37266         * Form.cs:
37267           - Implemented OnActivated and OnDeactivate event trigger
37268           - Implemented Activate() method
37269           - Fixed ShowDialog() to activate the form that was active before
37270             the dialog was shown
37271         * XplatUIX11.cs:
37272           - Added global active_window var that tracks the currently active
37273             X11 window
37274           - Now always grabs Property changes from the root window to always
37275             catch changes on the active window property
37276           - Added code to PropertyNotify handler to send Active/Inactive
37277             messages when state changes. This puts X11 and Win32 en par on
37278             WM_ACTIVATE notifications (except for double notifications when
37279             the user clicks away from our modal window to another one of our
37280             windows)
37281
37282 2005-01-05  Jackson Harper  <jackson@ximian.com>
37283
37284         * ImageList.cs: Implment ctor
37285
37286 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
37287
37288         * XplatUIOSX.cs: Implement Activate/SetTopmost
37289
37290 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
37291
37292         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
37293
37294 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
37295
37296         * XplatUIOSX.cs: Implement GetActive/SetFocus.
37297
37298 2005-01-05  Peter Bartok <pbartok@novell.com>
37299
37300         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
37301           XplatUIOSX.cs: Added GetActive method to return the currently
37302           active window for the application (or null, if none is active)
37303         * Form.cs:
37304           - Implemented ActiveForm
37305           - Commented out owner assignment for modal dialogs (causes problems
37306             on Win32, since the owner will be disabled)
37307           - Reworked some Active/Focus handling (still incomplete)
37308         * CommonDialog.cs: Commented out owner assignment for modal dialogs
37309           (causes problems on Win32, since the owner will be disabled)
37310         * IWin32Window: Added ComVisible attribute
37311
37312 2005-01-05  Peter Bartok <pbartok@novell.com>
37313
37314         * ToolTip.cs (WndProc): Enable setting focus now that we have the
37315           required XplatUI functions.
37316
37317 2005-01-05  Peter Bartok <pbartok@novell.com>
37318
37319         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
37320           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
37321           to implement focus and activation handling; still incomplete and
37322           with debug output
37323
37324 2005-01-04  Peter Bartok <pbartok@novell.com>
37325
37326         * TextBoxBase.cs: Changed access level for Document property to
37327           match switch to internal for TextControl
37328
37329 2005-01-04  Peter Bartok <pbartok@novell.com>
37330
37331         * AccessibleObject: Added ComVisible attribute
37332
37333 2005-01-04  Jackson Harper  <jackson@ximian.com>
37334
37335         * X11Keyboard.cs: Remove unneeded var.
37336
37337 2005-01-04  Jackson Harper  <jackson@ximian.com>
37338
37339         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
37340         but PAINT.
37341         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
37342         ClientMessage. This makes apps exit cleanly (more often).
37343         
37344 2005-01-04  Jackson Harper  <jackson@ximian.com>
37345
37346         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
37347         handling focus, return correct colors and fonts,
37348         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
37349         handle selection, horizontal scrolling, and mouse interaction.
37350
37351 2005-01-04  Peter Bartok <pbartok@novell.com>
37352
37353         * ICommandExecutor.cs: Added
37354         * IDataGridColumnStyleEditingNotificationService.cs: Added
37355         * IFeatureSupport.cs: Added
37356         * IFileReaderService.cs: Added
37357         * IDataObject.cs: Added ComVisible attribute
37358         * AmbientProperties.cs: Added
37359         * BaseCollection.cs: Added missing attributes
37360         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
37361         * BaseCollection.cs: Added missing attributes
37362         * Binding.cs: Added TypeConverter attribute
37363         * BindingContext.cs: Added DefaultEvent attribute
37364         * BindingsCollection.cs: Added DefaultEvent attribute
37365         * Button.cs: Added DefaultValue attribute
37366         * DragEventArgs.cs: Added ComVisible attribute
37367         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
37368         * KeyEventArgs.cs: Added ComVisible attribute
37369         * KeyPressEventArgs.cs: Added ComVisible attribute
37370         * MouseEventArgs.cs: Added ComVisible attribute
37371         * NavigateEventArgs.cs: Added
37372         * NavigateEventHandler.cs: Added
37373         * FeatureSupport.cs: Added
37374         * OSFeature.cs: Added
37375         * Theme.cs: Added abstract Version property to support OSFeature
37376         * ThemeWin32Classic.cs: Added Version property to
37377           support OSFeature.Themes
37378         * ProgressBar.cs: Removed OnPaintBackground override, not required since
37379           the proper styles to avoid background drawing are set, also doesn't
37380           match MS signature
37381         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
37382         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
37383         * ScrollEventArgs.cs: Added ComVisible attribute
37384         * SplitterEventArgs.cs: Added ComVisible attribute
37385         * AccessibleSelection.cs: Added Flags attribute
37386         * Appearance.cs: Added ComVisible attribute
37387         * Border3DSide.cs: Added ComVisible attribute
37388         * Border3DStyle.cs: Added ComVisible attribute
37389         * BorderStyle.cs: Added ComVisible attribute
37390         * DragAction.cs: Added ComVisible attribute
37391         * ErrorBlinkStyle.cs: Added
37392         * ScrollEventType.cs: Added ComVisible attribute
37393         * AnchorStyles.cs: Added Editor attribute
37394         * DockStyle.cs: Added Editor attribute
37395         * HorizontalAlignment.cs: Added ComVisible attribute
37396         * HelpEventArgs.cs: Added ComVisible attribute
37397         * PaintEventArgs.cs: Added IDisposable
37398
37399 2005-01-04  Peter Bartok <pbartok@novell.com>
37400
37401         * TextControl.cs: Switched Line, LineTag and Document classes to
37402           internal
37403
37404 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
37405
37406         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
37407         Simple mode, fixes, IntegralHeight, etc.
37408
37409 2005-01-04  Peter Bartok <pbartok@novell.com>
37410
37411         * TextBoxBase.cs: Using proper font variable now
37412
37413 2005-01-04  Peter Bartok <pbartok@novell.com>
37414
37415         * Form.cs (ShowDialog): Set parent to owner, if provided
37416         * GroupBox.cs: Removed unused vars
37417         * TextControl.cs:
37418           - Added GetHashCode() for Document and LineTag classes
37419           - Removed unused variables
37420           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
37421             to allow translation between continuous char position and line/pos
37422         * CheckBox.cs: Removed vars that are provided by base class
37423         * RadioButton.cs: Removed vars that are provided by base class, added
37424           new keyword where required
37425         * LinkLabel.cs: Added new keyword where required
37426         * Control.cs (WndProc): Removed unused variable
37427         * TextBoxBase.cs:
37428           - Finished SelectionLength property
37429           - Implemented SelectionStart property
37430           - Implemented Text property
37431           - Removed unused vars
37432         * MessageBox.cs: Added new keyword where required
37433         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
37434           WndProc signature
37435         * MenuAPI.cs: Added new keyword where required
37436         * ButtonBase.cs: Removed vars that are provided by base class, added
37437           new keyword where required
37438         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
37439           argument to double, to allow compiling with csc 2.0 (Atsushi ran
37440           into this)
37441         * Application.cs (Run): Now triggers the ThreadExit event
37442         * CommonDialog.cs: Added new keyword where required; now properly sets
37443           parent (owner) for dialog
37444         * XplatUIX11.cs: Commented out unused vars
37445         * StatusBar.cs: Fixed signature for Text property
37446         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
37447
37448 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
37449
37450         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
37451         TrackBar.cs, MonthCalendar.cs: remove unused vars
37452
37453 2005-01-03  Jackson Harper  <jackson@ximian.com>
37454
37455         * ThemeWin32Classic.cs:
37456         * X11Keyboard.cs: Remove unused vars.
37457
37458 2005-01-03  Peter Bartok  <pbartok@novell.com>
37459
37460         * TextBox.cs:
37461           - set_Text: Tied into TextControl
37462           - set_TextAlignment: Tied into TextControl
37463         * TextControl.cs:
37464           - Added alignment properties and implemented alignment handling
37465             and drawing (still has a bug, not generating proper expose events)
37466           - Added new Line() constructor to allow passing the line alignment
37467           - Fixed selection setting, properly handling end<start now
37468           - Added aligment considerations to RecalculateDocument()
37469         * TextBoxBase.cs:
37470           - Now properly enforces control height for single line controls
37471           - Added support for CharacterCasing
37472           - Added IsInputKey override
37473           - Fixed Keys.Enter logic
37474           - Added SetBoundsCore override
37475           - Fixed mouse selection handling
37476
37477 2005-01-03  Jackson Harper  <jackson@ximian.com>
37478
37479         * TreeView.cs:
37480           - Collapse and uncheck all nodes when CheckBoxes is disabled.
37481           - Checkboxes are always aligned to the bottom of the node,
37482           regardless of item height.
37483           - Use the node bounds to draw the text so we can center it when
37484           the item height is greater then the font height.
37485           - Node::Bounds are only the text part of the node.
37486         * TreeNode.cs: New method to combine collapsing and unchecking all
37487           nodes recursively.
37488
37489 2005-01-02  Jackson Harper  <jackson@ximian.com>
37490
37491         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
37492         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
37493         tree when a check is changed. TODO: Only refresh the checked node.
37494
37495 2004-12-30  Jackson Harper  <jackson@ximian.com>
37496
37497         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
37498         * TreeNode.cs: When collapsing make sure to never collapse the
37499         root node.
37500
37501 2004-12-29  Jackson Harper  <jackson@ximian.com>
37502
37503         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
37504         
37505 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
37506
37507         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
37508
37509 2004-12-28  Peter Bartok  <pbartok@novell.com>
37510
37511         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
37512           not yet assigned
37513
37514 2004-12-28  Peter Bartok  <pbartok@novell.com>
37515
37516         * Control.cs (WndProc): Added WM_HELP handler, now generates
37517           HelpRequested event
37518         * Form.cs: Added HelpButton property and required support code
37519         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
37520
37521 2004-12-28  Peter Bartok  <pbartok@novell.com>
37522
37523         * CommonDialog.cs:
37524           - Made DialogForm.owner variable internal
37525           - Added check to ensure owner form is set before setting
37526             owner properties in CreateParams
37527
37528 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
37529
37530         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
37531           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
37532           GetCursorPos.  Fix major visibility issues.  Rework the windowing
37533           system to support borderless/titleless windows (implements menus).
37534           Fix GetWindowPos.  Implement initial background color support for
37535           views.
37536
37537 2004-12-28  Peter Bartok  <pbartok@novell.com>
37538
37539         * Form.cs (get_CreateParams): Make sure we have an owner before using
37540           the owner variable. Implement proper default if no owner exists
37541
37542 2004-12-28  Peter Bartok  <pbartok@novell.com>
37543
37544         * In preparation for making Managed.Windows.Forms the default build target
37545           for System.Windows.Forms, the following stubbed files were added.
37546           Dialogs are currently being implemented by contributors and are only
37547           short-term place holders.
37548         * ColorDialog.cs: Initial check-in (minmal stub)
37549         * DataGrid.cs: Initial check-in (minimal stub)
37550         * DataGridLineStyle.cs: Initial check-in (minimal stub)
37551         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
37552         * DataGridTableStyle.cs: Initial check-in (minimal stub)
37553         * FontDialog.cs: Initial check-in (minimal stub)
37554         * FileDialog.cs: Initial check-in (minimal stub)
37555         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
37556         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
37557         * OpenFileDialog: Initial check-in (minimal stub)
37558         * IComponentEditorPageSite.cs: Initial check-in
37559         * Splitter.cs: Initial check-in (for Jackson)
37560         * SplitterEventArgs.cs: Initial check-in (for Jackson)
37561         * SplitterEventHandler.cs: Initial check-in (for Jackson)
37562         * TextBox.cs: Initial check-in; still needs some wiring to
37563           TextControl backend
37564         * Form.cs: Implemented ControlBox property
37565         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
37566         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
37567         * TextControl.cs: Added selection functionality; added todo header
37568         * TextBoxBase.cs:
37569           - Implemented Lines property
37570           - Implemented TextHeight property
37571           - Implemented SelectedText property
37572           - Implemented SelectionLength property
37573           - Implemented SelectAll method
37574           - Implemented ToString method
37575           - Removed and cleaned up some debug code
37576           - Implemented (still buggy) mouse text selection
37577
37578 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
37579
37580         * ComboBox.cs: Complete DropDownList implementation, fixes.
37581
37582 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
37583
37584         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
37585         * ComboBoxStyle.cs: ComboBoxStyle enum
37586         * ComboBox.cs: Initial work on ComboBox control
37587
37588 2004-12-21  Peter Bartok  <pbartok@novell.com>
37589
37590         * Control.cs (ctor, CreateParams): Moved setting of is_visible
37591           forward so that anything that creates a window gets the default,
37592           also no longer uses Visible property in CreateParams to avoid
37593           walking up the parent chain and possibly get the wrong visible
37594           status. Fixed IsVisible to no longer walk up to the parent.
37595
37596 2004-12-21  Peter Bartok  <pbartok@novell.com>
37597
37598         * Form.cs (ShowDialog): Unset modality for the proper window
37599  
37600 2004-12-20  Peter Bartok  <pbartok@novell.com>
37601
37602         * CommonDialog.cs: Initial check-in
37603
37604 2004-12-20  Peter Bartok  <pbartok@novell.com>
37605
37606         * Control.cs (Visible): Now uses the parent window instead of the
37607           client area window for the property
37608
37609         * Form.cs
37610           - ShowDialog(): Now uses the proper window for modality
37611           - The default visibility state for the form parent is now false. This
37612             will prevent the user from seeing all the changes to the form and
37613             its controls before the application hits Application.Run()
37614           - Removed some stale commented out code
37615
37616         * NativeWindow.cs:
37617           - Added FindWindow() method to have a method to check for existence
37618             of a window handle
37619           - Added ability to override default exception handling (for example
37620             when debugging with VS.Net; to do this the ExternalExceptionHandler
37621             define must be set
37622           - Removed some useless debug output
37623
37624         * XplatUIX11.cs:
37625           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
37626             not working as expected
37627           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
37628             property to allow switching back to the modal window if focus is
37629             given to another one of our windows (Application Modal)
37630           - Now only sets override_redirect if we create a window
37631             without WS_CAPTION
37632           - Moved EventMask selection before mapping of newly created window
37633             so we can catch the map event as well
37634           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
37635           - Added various Atom related DllImports
37636           - Implemented Exit() method
37637           - .ctor() : No longer shows window if WS_VISIBLE is not defined
37638             in the CreateParams
37639
37640         * MessageBox.cs: Now properly deals with the FormParent window by
37641           providing an override the FormParent CreateParams property to
37642           set as POPUP instead of OVERLAPPED window.
37643
37644 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
37645
37646         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
37647         Minor code cleanup.
37648
37649 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
37650         
37651         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
37652
37653 2004-12-18  Peter Bartok  <pbartok@novell.com>
37654
37655         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
37656           implementing SetModal() method
37657
37658 2004-12-18  Peter Bartok  <pbartok@novell.com>
37659
37660         * X11Structs.cs (XGCValues): Fixed type of function element
37661         * XplatUI.cs: Added ScrollWindow() method
37662         * XplatUIDriver.cs: Added ScrollWindow() abstract
37663         * XplatUIWin32.cs: Implemented ScrollWindow() method
37664         * XplatUIX11.cs: Implemented ScrollWindow() method
37665         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
37666
37667 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37668
37669         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
37670         Some more keyboard support (INCOMPLETE)
37671
37672 2004-12-17  Peter Bartok  <pbartok@novell.com>
37673
37674         * TextControl.cs:
37675         - Added color attribute to line tags.
37676         - Added color argument to all functions dealing with tags
37677         - Added color argument support to various functions
37678         - Fixed miss-calculation of baseline/shift in certain circumstances
37679
37680         * TextBoxBase.cs: Added new color option to test code
37681
37682 2004-12-17  Jackson Harper  <jackson@ximian.com>
37683
37684         * TreeNode.cs:
37685         * MonthCalendar.cs: Signature fixes
37686
37687 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37688
37689         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
37690         keyboard event moved it.  Create a new graphics context for each paint resolves this
37691
37692 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
37693
37694         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
37695         Make caret exist and go blink blink.  Initial keyboard support.
37696         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
37697         works.
37698
37699 2004-12-17  Jackson Harper  <jackson@ximian.com>
37700
37701         * XplatUIStructs.cs: Updated set of virtual keycodes.
37702         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
37703
37704 2004-12-17  Jackson Harper  <jackson@ximian.com>
37705
37706         * XplatUIX11.cs: Prune old keyboard code.
37707
37708 2004-12-17  Jackson Harper  <jackson@ximian.com>
37709
37710         * XplatUIX11.cs: When generating mouse wparams get the modifier
37711         keys from the ModifierKeys property.
37712
37713 2004-12-17  Jackson Harper  <jackson@ximian.com>
37714
37715         * X11Keyboard.cs: Send up/down input when generating
37716         messages. Remove some unused vars.
37717
37718 2004-12-17  Jackson Harper  <jackson@ximian.com>
37719
37720         * TabControl.cs:
37721         * TreeView.cs: get rid of warnings.
37722
37723 2004-12-17  Jackson Harper  <jackson@ximian.com>
37724
37725         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
37726
37727 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
37728
37729         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
37730           CheckedListBox.cs: Implementation
37731
37732 2004-12-17  Peter Bartok  <pbartok@novell.com>
37733
37734         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
37735
37736 2004-12-16  Peter Bartok  <pbartok@novell.com>
37737
37738         * TextControl.cs:
37739           - InsertCharAtCaret(): Fixed start pos fixup
37740           - CaretLine_get: No longer derives the line from the tag, the tag
37741             could be stale if lines in the document have been added or deleted
37742           - RebalanceAfterDelete(): Fixed bug in balancing code
37743           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
37744           - Line.Streamline(): Now can also elminate leading empty tags
37745           - DumpTree(): Added a few more tests and prevented exception on
37746             uninitialized data
37747           - Added Debug section for Combining lines
37748           - Delete(): Now copies all remaining properties of a line
37749           
37750         * TextBoxBase.cs:
37751           - Left mousebutton now sets the caret (and middle button still acts
37752             as formatting tester, which must go away soon)
37753           - Added Debug section for Deleting/Combining lines
37754           - Fixed calculations for UpdateView after Combining lines
37755
37756 2004-12-16  Peter Bartok  <pbartok@novell.com>
37757
37758         * TextControl.cs: Now properly aligns text on a baseline, using the
37759           new XplatUI.GetFontMetrics() method. Simplified several calculations
37760         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
37761           defined
37762
37763 2004-12-16  Peter Bartok  <pbartok@novell.com>
37764
37765         * XplatUI.cs: Added GetFontMetrics() method
37766         * XplatUIDriver.cs: Added GetFontMetrics() abstract
37767         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
37768           into libgdiplus, our private GetFontMetrics function
37769         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
37770         * XplatUIWin32.cs: Implemented GetFontMetrics() method
37771
37772 2004-12-16  Jackson Harper  <jackson@ximain.com>
37773
37774         * XplatUIStruct.cs: Add enum for dead keys
37775         * X11Keyboard.cs: Map and unmap dead keys.
37776
37777 2004-12-16  Jackson Harper  <jackson@ximian.com>
37778
37779         * X11Keyboard.cs: Detect and use the num lock mask.
37780
37781 2004-12-16  Peter Bartok  <pbartok@novell.com>
37782
37783         * Control.cs (CreateGraphics): Added check to make sure the
37784           handle of the window exists before calling Graphics.FromHwnd()
37785
37786 2004-12-16  Peter Bartok  <pbartok@novell.com>
37787
37788         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
37789           contains a lot of code that's not supposed to be there for the
37790           real thing, but required for developing/testing the textbox
37791           backend.
37792
37793 2004-12-16  Peter Bartok  <pbartok@novell.com>
37794
37795         * TextControl.cs:
37796         - Fixed Streamline method
37797         - Added FindTag method to Line
37798         - Added DumpTree method for debugging
37799         - Added DecrementLines() method for deleting lines
37800         - Fixed UpdateView to update the cursor to end-of-line on single-line
37801           updates
37802         - Added PositionCaret() method
37803         - Fixed MoveCaret(LineDown) to move into the last line, too
37804         - Added InsertChar overload
37805         - Fixed InsertChar tag offset calculations
37806         - Added DeleteChar() method
37807         - Added Combine() method for folding lines
37808         - Fixed Delete() method, no longer allocates wasted Line object and
37809           now copies all properties when swapping nodes
37810         - Delete() method now updates document line counter
37811
37812 2004-12-15  Jackson Harper  <jackson@ximian.com>
37813
37814         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
37815         * X11Keyboard.cs: Expose the currently selected modifier keys
37816         through a property.
37817
37818 2004-12-15  Peter Bartok  <pbartok@novell.com>
37819
37820         * TextControl.cs: Initial check-in. Still incomplete
37821
37822 2004-12-15  Jackson Harper  <jackson@ximian.com>
37823
37824         * TreeNode.cs:
37825         * TreeView.cs: Fix build on csc (second time today ;-))
37826
37827 2004-12-15  Jackson Harper  <jackson@ximian.com>
37828
37829         * TreeView.cs: Store the treenodes plus/minus box bounds when it
37830         is calculated and use this for click testing.
37831         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
37832
37833 2004-12-15  Jackson Harper  <jackson@ximian.com>
37834
37835         * TreeView.cs: Pass the nodes image index to the image list when
37836         drawing that image.
37837
37838 2004-12-15  Jackson Harper  <jackson@ximian.com>
37839
37840         * X11Keyboard.cs: Set messages hwnd.
37841         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
37842         post_message calls.
37843
37844 2004-12-15  Jackson Harper  <jackson@ximian.com>
37845
37846         * X11Keyboard.cs: Fix to compile with csc.
37847         
37848 2004-12-15  Jackson Harper  <jackson@ximian.com>
37849
37850         * X11Structs.cs: Add key mask values
37851         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
37852         * X11Keyboard.cs: New file - Extrapolates and interpolates key
37853         down/up foo into WM_CHAR foo
37854         * KeyboardLayouts.cs: Common keyboard layouts
37855         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
37856         post messages into the main queue.
37857
37858 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
37859
37860         * Button.cs: implement ProcessMnemonic
37861         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
37862           brushes everytime
37863         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
37864         * ButtonBase.cs: Show HotkeyPrefix (not the &)
37865
37866 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
37867         
37868         * MonthCalendar.cs: Implemented click-hold for next/previous month
37869           and date selection
37870           
37871 2004-12-11  Peter Bartok  <pbartok@novell.com>
37872
37873         * X11Structs.cs:
37874           - Added XKeyboardState (moved from XplatUIX11.cs)
37875           - Added XCreateGC related enums and structures
37876           - Added GXFunction for XSetFunction
37877
37878         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
37879
37880         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
37881           CaretVisible() calls
37882
37883         * ToolTip.cs: Added code to prevent stealing focus from app windows
37884
37885         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
37886           DestroyCaret, SetCaretPos and CaretVisible)
37887
37888         * XplatUIX11.cs:
37889           - Added implementation for caret functions
37890           - Moved hover variables into a struct, to make it a bit easier
37891             on the eyes and to debug
37892           - Removed XKeyboardState (moved to XplatUIX11.cs)
37893           - Moved Keyboard properties into the properties region
37894
37895         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
37896           call to get a graphics context for our control
37897
37898         * XplatUIOSX.cs: Added empty overrides for the new caret functions
37899
37900         * TreeView.cs: Fixed bug. No matter what color was set it would always
37901           return SystemColors.Window
37902
37903         * XplatUIWin32.cs: Implemented caret overrides
37904
37905 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
37906
37907         * ListBox.cs: fire events, implement missing methods and properties,
37908         sorting.
37909
37910 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
37911
37912         * MonthCalendar.cs: invalidation bug fixing
37913         * ThemeWin32Classic.cs: paint fixing
37914
37915 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
37916
37917         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
37918         prepare the CGContextRef there now.
37919
37920 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
37921
37922         * MonthCalendar.cs:
37923           - optimisationL only invalidate areas that have changed
37924         * ThemeWin32Classic.cs:
37925           - only paint parts that intersect with clip_area
37926
37927 2004-12-09  Peter Bartok  <pbartok@novell.com>
37928
37929         * Application.cs: Undid changes from r37004 which cause problems
37930         on X11
37931
37932 2004-12-09  Ravindra  <rkumar@novell.com>
37933
37934         * ToolBar.cs: Added support for displaying ContextMenu
37935         attached to a button on ToolBar.
37936         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
37937         property.
37938
37939 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
37940
37941         * Label.cs: autosize works in text change and removes unnecessary
37942         invalidate
37943
37944 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
37945
37946         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
37947         remove warnings
37948
37949 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
37950
37951         * XplatUIOSX.cs: Added mouse move/click/grab support
37952         Remove some debugging WriteLines not needed anymore.
37953         Add window resizing/positioning.
37954         Fix visibility on reparenting.
37955
37956 2004-12-08  Peter Bartok  <pbartok@novell.com>
37957
37958         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
37959
37960 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
37961
37962         * XplatUIOSX.cs: Initial checkin
37963         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
37964
37965 2004-12-03  Ravindra <rkumar@novell.com>
37966
37967         * ListView.cs: Added some keybindings and fixed scrolling.
37968         ScrollBars listen to ValueChanged event instead of Scroll
37969         Event. This would let us take care of all changes being
37970         done in the scrollbars' values programmatically or manually.
37971         * ListView.cs (CanMultiselect): Added a check for shift key.
37972         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
37973         * ListViewItem.cs (Clone): Fixed. We need to make a copy
37974         of ListViewSubItemCollection as well.
37975
37976 2004-12-06  Peter Bartok <pbartok@novell.com>
37977
37978         * Control.cs (Parent): Added check and exception to prevent
37979         circular parenting
37980
37981 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
37982
37983         * ListBox.cs: implemented clipping, selection single and multiple,
37984         bug fixing
37985
37986 2004-12-03  Ravindra <rkumar@novell.com>
37987
37988         * ListView.cs (ListView_KeyDown):
37989         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
37990         when CTRL key is pressed.
37991         * ListViewItem.cs (Selected): Fixed setting the property.
37992
37993 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
37994
37995         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
37996
37997         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
37998         MinimizeBox, ShowInTaskbar, TopMost properties.
37999
38000         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
38001         will be implemented).
38002
38003 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
38004
38005         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
38006
38007         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
38008         tests.
38009         
38010         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
38011         
38012         * TreeView.cs: BackColor is Colors.Window.
38013
38014 2004-12-01  Jackson Harper  <jackson@ximian.com>
38015
38016         * TreeView.cs: When resizing the tree if the user is making it
38017         smaller we don't get expose events, so we need to handle adding
38018         the horizontal scrollbar in the size changed handler as well as
38019         the expose handler.
38020
38021 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
38022
38023         * DrawItemState.cs: fixes wrong enum values
38024
38025 2004-12-01  Jackson Harper  <jackson@ximian.com>
38026
38027         * TreeView.cs: Resize the hbar as well as the vbar on resize.
38028
38029 2004-12-01  Jackson Harper  <jackson@ximian.com>
38030
38031         * NodeLabelEditEventArgs.cs:
38032         * NodeLabelEditEventHandler.cs:
38033         * OpenTreeNodeEnumerator.cs:
38034         * TreeNode.cs:
38035         * TreeNodeCollection.cs:
38036         * TreeView.cs:
38037         * TreeViewAction.cs:
38038         * TreeViewCancelEventArgs.cs:
38039         * TreeViewCancelEventHandler.cs:
38040         * TreeViewEventArgs.cs:
38041         * TreeViewEventHandler.cs: Initial implementation.
38042
38043 2004-12-01  Ravindra <rkumar@novell.com>
38044
38045         * ListView.cs (CalculateListView): Fixed scrolling related
38046         calculations. Also, removed some debug statements from other
38047         places.
38048         * ListViewItem.cs: Changed access to 'selected' instance variable
38049         from private to internal.
38050         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
38051
38052 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
38053
38054         * ThemeWin32Classic.cs: remove cache of brush and pens for
38055         specific controls and use the global system, fixes scrollbutton
38056         bugs (for small sizes, disabled, etc)
38057         
38058         * ScrollBar.cs: does not show the thumb for very small controls
38059         (as MS) and allow smaller buttons that the regular size
38060
38061 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
38062
38063         * UpDownBase.cs: Add abstract methods for the interface.
38064         Add new virtual methods (need to be hooked up to TextEntry when it
38065         exists).
38066         Add override methods for most features.
38067         Computes the size, forces the height of the text entry.
38068
38069         * NumericUpDown.cs: Put here the current testing code.
38070
38071         * Set eol-style property on all files that do not have mixed line
38072         endings, to minimize the future problems.  There are still a few
38073         files with mixed endings, and someone should choose whether they
38074         want to move it or not.
38075
38076 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
38077
38078         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
38079         System.Colors
38080         
38081 2004-11-30  Ravindra <rkumar@novell.com>
38082
38083         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
38084         drawing and replaced use of SystemColors by theme colors.
38085         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
38086         * ListView.cs (ListViewItemCollection.Add): Throw exception when
38087         same ListViewItem is being added more than once.
38088
38089 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
38090
38091         * MonthCalendar.cs:
38092           - ControlStyles love to make the control not flicker
38093           
38094 2004-11-30  Peter Bartok  <pbartok@novell.com>
38095
38096         * CharacterCasing.cs: Added
38097
38098 2004-11-29  Peter Bartok  <pbartok@novell.com>
38099
38100         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
38101           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
38102           I am removing these files as they conflict with already completed
38103           work. While it is fantastic to get contributions to MWF, I
38104           respectfully ask that everyone please coordinate their contributions
38105           through mono-winforms-list or #mono-winforms at this time. We're
38106           explicitly avoiding stubbing and don't want controls that don't have
38107           their basic functionality implemented in svn. Please also see
38108           http://www.mono-project.com/contributing/winforms.html
38109
38110
38111 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
38112
38113         * Application.cs (ModalRun): Don't hang after exit.
38114
38115         * Theme.cs: New TreeViewDefaultSize property.
38116
38117         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
38118         with less hardcoded SystemColors constant.
38119         Implemented TreeViewDefaultSize.
38120
38121         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
38122         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
38123
38124
38125 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
38126
38127         * MonthCalendar.cs:
38128           - Fix NextMonthDate and PrevMonthDate click moving calendar
38129
38130 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
38131
38132         * MonthCalendar.cs:
38133           - Fix usage of ScrollChange Property when scrolling months
38134
38135 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
38136
38137         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
38138          - Fixes menu destroying
38139          - Support adding and removing items on already created menus
38140
38141 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
38142
38143         * MonthCalendar.cs:
38144           - Re-worked all bolded dates handling to match win32
38145         * ThemeWin32Classic.cs:
38146           - Fixed rendering with bolded dates
38147
38148 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
38149
38150         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
38151         - Horizontal scroolbar
38152         - Multicolumn
38153         - Fixes
38154
38155
38156 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
38157
38158         * MonthCalendar.cs:
38159           - Fix Usage of MaxSelectionCount from SelectionRange
38160           - Fixed Shift + Cursor Selection
38161           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
38162           - Fixed normal cursor selection to be compat with win32
38163           - Fixed Shift + Mouse Click selection
38164
38165 2004-11-24  Peter Bartok <pbartok@novell.com>
38166
38167         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
38168         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
38169         * XplatUIX11.cs:
38170           - CreatedKeyBoardMsg now updates keystate with Alt key
38171           - Added workaround for timer crash to CheckTimers, Jackson will
38172             develop a proper fix and check in later
38173           - Implemented DispatchMessage
38174           - Removed calling the native window proc from GetMessage (call
38175             now moved to DispatchMessage)
38176
38177         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
38178           the keydata (Fixes bug #69831)
38179
38180         * XplatUIWin32.cs:
38181           - (DispatchMessage): Switched to return IntPtr
38182           - Added DllImport for SetFocus
38183
38184 2004-11-24  Ravindra <rkumar@novell.com>
38185
38186         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
38187         background drawing.
38188         * ListViewItem.cs: Fixed various properties, calculations
38189         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
38190         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
38191         and some internal properties. Fixed MouseDown handler and Paint
38192         method.
38193
38194 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
38195
38196         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
38197
38198 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
38199
38200         * ContainerControl.cs: correct accidental check in of local changes
38201
38202 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
38203
38204         * ThemeWin32Classic.cs:
38205                 - Fixed Drawing Last month in grid (sometimes not showing)
38206         * MonthCalendar.cs:
38207                 - Fixed title width calculation bug (makeing title small)
38208
38209 2004-11-23  Peter Bartok <pbartok@novell.com>
38210
38211         * XplatUIX11.cs:
38212           - Added generation of WM_MOUSEHOVER event
38213           - Added missing assignment of async_method atom
38214           - Fixed WM_ERASEBKGND; now only redraws the exposed area
38215
38216 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
38217
38218         * ThemeWin32Classic.cs:
38219                 - Fixed Drawing of today circle when showtodaycircle not set
38220                 - fixed drawing of first and last month in the grid (gay dates)
38221         * MonthCalendar.cs:
38222                 - Fixed Drawing of today circle
38223                 - Fixed drawing of grady dates
38224                 - Fixed HitTest for today link when ShowToday set to false
38225                 - Fixed DefaultSize to obey ShowToday
38226
38227 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
38228
38229         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
38230         * System.Windows.Forms/Theme.cs
38231         * MonthCalendar.cs: added for MonthCalendar
38232         * SelectionRange.cs: added for MonthCalendar
38233         * Day.cs: added for MonthCalendar: added for MonthCalendar
38234         * DateRangeEventArgs.cs: added for MonthCalendar
38235         * DateRangeEventHandler.cs: added for MonthCalendar
38236
38237 2004-11-22  Ravindra <rkumar@novell.com>
38238
38239         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
38240         property.
38241
38242 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
38243
38244         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
38245         event handler.
38246         
38247         * NumericUpDown.cs: Added new implementation.
38248         * UpDownBase.cs: Added new implementation.
38249
38250         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
38251         implementations.
38252         
38253         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
38254         implementations.
38255
38256         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
38257         methods.
38258
38259 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
38260
38261         * Timer.cs  (Dispose): Should call the base dispose when
38262         overriding.
38263
38264 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
38265
38266         * ScrollBar.cs: updates thumb position when max, min or increment
38267         is changed
38268
38269 2004-11-21  Ravindra <rkumar@novell.com>
38270
38271         * ListView.cs: Implemented item selection, activation and
38272         column header style. Fixed properties to do a redraw, if
38273         required. Added support for MouseHover, DoubleClick, KeyDown
38274         and KeyUp event handling and some minor fixes.
38275         * ListViewItem.cs: Fixed constructor.
38276         * ThemeWin32Classic.cs: Improved drawing for ListView.
38277
38278 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
38279
38280         * ThemeWin32Classic.cs: initial listbox drawing code
38281         * DrawMode.cs: new enumerator
38282         * ListControl.cs: stubbed class
38283         * ListBox.cs: initial implementation
38284         * Theme.cs: new methods definitions
38285         * SelectionMode.cs: new enumerator
38286
38287 2004-11-17  Peter Bartok  <pbartok@novell.com>
38288
38289         * XplatUIWin32.cs: Added double-click events to the class style
38290         * Control.cs (WndProc):
38291           - Added handling of click-count to MouseDown/ MouseUp events.
38292           - Added handling of middle and right mouse buttons
38293           - Removed old debug code
38294
38295 2004-11-17  Jackson Harper  <jackson@ximian.com>
38296
38297         * XplatUIX11.cs: Use the new Mono.Unix namespace.
38298
38299 2004-11-17  Ravindra <rkumar@novell.com>
38300
38301         * ListView.cs: Added event handling for MouseMove/Up/Down.
38302         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
38303         * ThemeWin32Classic.cs: We need to clear the graphics context and
38304         draw column header in a proper state.
38305
38306
38307 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
38308
38309         *  Menu.cs: fixes signature
38310
38311 2004-11-16  Peter Bartok  <pbartok@novell.com>
38312
38313         * XplatUIX11.cs (GetMessage): Implemented generation of
38314           double click mouse messages
38315
38316 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
38317
38318         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
38319         not by menu
38320
38321 2004-11-11  Peter Bartok  <pbartok@novell.com>
38322
38323         * HandleData.cs: Added Visible property
38324         * XplatUIX11.cs (IsVisible): Now uses Visible property from
38325           HandleData
38326         * XplatUIX11.cs: Removed old debug leftovers
38327         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
38328         * Control.cs (WndProc): Removed old debug leftovers,
38329           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
38330           needed WM_SIZE handling
38331
38332 2004-11-11  Jackson Harper  <jackson@ximian.com>
38333
38334         * OwnerDrawPropertyBag.cs:
38335         * TreeViewImageIndexConverter.cs: Initial implementation
38336
38337 2004-11-10  Jackson Harper  <jackson@ximian.com>
38338
38339         * ThemeWin32Classic.cs:
38340         * TabControl.cs: instead of moving tabs by the slider pos just
38341         start drawing at the tab that is offset by the slider. This way
38342         scrolling always moves by exactly one tab.
38343
38344 2004-11-10  Jackson Harper  <jackson@ximian.com>
38345
38346         * TabControl.cs: You can only scroll left when the slider has
38347         already ben moved right.
38348         
38349 2004-11-10  Jackson Harper  <jackson@ximian.com>
38350
38351         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
38352         the clip area.
38353         
38354 2004-11-10  Jackson Harper  <jackson@ximian.com>
38355
38356         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
38357         clip area.
38358         
38359 2004-11-09  Jackson Harper  <jackson@ximian.com>
38360
38361         * TabControl.cs (CalcXPos): New helper method so we can determine
38362         the proper place to start drawing vertical tabs.
38363         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
38364         
38365 2004-11-09  Jackson Harper  <jackson@ximian.com>
38366
38367         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
38368         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
38369         and Bottom, left and right are illegal values for this and
38370         multiline is enabled when the alignment is set to left or right.
38371         (DrawTab): Each alignment block should draw the text itself now
38372         because Left requires special love. Also add rendering for Left
38373         aligned tabs.
38374         
38375 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
38376
38377         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
38378         does not destroy the windows, removes debugging messages
38379
38380 2004-11-09  jba  <jba-mono@optusnet.com.au>
38381
38382         * ThemeWin32Classic.cs
38383         (DrawButtonBase): Fix verticle text rect clipping in windows
38384         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
38385         rendering and incorrect text rect clipping
38386         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
38387         rendering and incorrect text rect clipping
38388         
38389 2004-11-08  Jackson Harper  <jackson@ximian.com>
38390
38391         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
38392         bottom when they are bottom aligned so the bottoms of the tabs get
38393         displayed.
38394         * TabControl.cs (DropRow): Move rows up instead of down when the
38395         tab control is bottom aligned.
38396
38397 2004-11-08 13:59  pbartok
38398
38399         * XplatUIX11.cs:
38400           - Added handling for various window styles
38401           - Added handling for popup windows
38402           - Added SetTopmost handling
38403
38404 2004-11-08 13:55  pbartok
38405
38406         * XplatUIWin32.cs:
38407           - Added argument to SetTopmost method
38408           - Fixed broken ClientToScreen function
38409
38410 2004-11-08 13:53  pbartok
38411
38412         * XplatUIStructs.cs:
38413           - Added missing WS_EX styles
38414
38415 2004-11-08 13:53  pbartok
38416
38417         * XplatUI.cs, XplatUIDriver.cs:
38418           - Added argument to SetTopmost
38419
38420 2004-11-08 13:52  pbartok
38421
38422         * X11Structs.cs:
38423           - Added XSetWindowAttributes structure
38424           - Improved XWindowAttributes structure
38425           - Added SetWindowValuemask enum
38426           - Added window creation arguments enum
38427           - Added gravity enum
38428           - Added Motif hints structure
38429           - Added various Motif flags and enums
38430           - Added PropertyMode enum for property functions
38431
38432 2004-11-08 13:50  pbartok
38433
38434         * Form.cs:
38435           - Fixed arguments for updated SetTopmost method
38436
38437 2004-11-08 13:49  pbartok
38438
38439         * ToolTip.cs:
38440           - Fixed arguments for updated SetTopmost function
38441           - Fixed usage of PointToClient
38442
38443 2004-11-08 13:44  pbartok
38444
38445         * MenuAPI.cs:
38446           - Added Clipping of children and siblings
38447
38448 2004-11-08 13:41  pbartok
38449
38450         * MainMenu.cs:
38451           - Removed SetMenuBarWindow call. We do this in Form.cs
38452
38453 2004-11-08 13:40  jackson
38454
38455         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
38456           scrolling jimmi in the correct location with bottom aligned tabs
38457
38458 2004-11-08 13:36  pbartok
38459
38460         * ContainerControl.cs:
38461           - Implemented BindingContext
38462           - Implemented ParentForm
38463
38464 2004-11-08 12:46  jackson
38465
38466         * TabControl.cs: Put bottom rendered tabs in the right location
38467
38468 2004-11-08 07:15  jordi
38469
38470         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
38471           removes dead code
38472
38473 2004-11-05 17:30  jackson
38474
38475         * TabControl.cs: When selected tabs are expanded make sure they
38476           don't go beyond the edges of the tab control
38477
38478 2004-11-05 14:57  jackson
38479
38480         * TabControl.cs: Reset show_slider so if the control is resized to
38481           a size where it is no longer needed it's not displayed anymore
38482
38483 2004-11-05 13:16  jackson
38484
38485         * TabControl.cs: Make tab pages non visible when added to the
38486           control
38487
38488 2004-11-05 12:42  jackson
38489
38490         * TabControl.cs: Implement SizeMode.FillToRight
38491
38492 2004-11-05 12:16  jackson
38493
38494         * Control.cs: Do not call CreateHandle if the handle is already
38495           created
38496
38497 2004-11-05 11:46  jackson
38498
38499         * TabControl.cs: Remove superflous call to CalcTabRows
38500
38501 2004-11-05 09:07  jackson
38502
38503         * XplatUIX11.cs: Update for Mono.Posix changes
38504
38505 2004-11-05 07:00  ravindra
38506
38507         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
38508           scrolling.
38509
38510 2004-11-04 22:47  jba
38511
38512         * ThemeWin32Classic.cs:
38513           - Fix Button rendering for FlatStyle = Flat or Popup
38514           - Fix RadioButton and CheckBox rendering when Appearance = Button
38515             (normal and flatstyle).
38516           - Correct outer rectangle color when drawing focus rectangle
38517           - Adjust button bounds to be 1 px smaller when focused
38518           - Make button not draw sunken 3d border when pushed (windows compat)
38519           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
38520           - Offset the text in RadioButton and Checkbox when being rendered as
38521           a button.
38522           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
38523           radiobuttons
38524           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
38525           - Fixed disabled text rendering for normally rendered radiobuttons
38526
38527 2004-11-04 10:26  jackson
38528
38529         * TabControl.cs: Recalculate tab rows when resizing
38530
38531 2004-11-04 07:47  jordi
38532
38533         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
38534           collection completion, drawing issues, missing features
38535
38536 2004-11-04 05:03  ravindra
38537
38538         * ScrollBar.cs:
38539                 - We need to recalculate the Thumb area when
38540                 LargeChange/maximum/minimum values are changed.
38541           - We set the 'pos' in UpdatePos() method to minimum, if it's less
38542                 than minimum. This is required to handle the case if large_change is
38543                 more than max, and use LargeChange property instead of large_change
38544                 variable.
38545           - We return max+1 when large_change is more than max, like MS does.
38546
38547 2004-11-04 04:29  ravindra
38548
38549         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
38550                 - Changed default value signatures (prefixed all with ListView).
38551                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
38552                 ListView.
38553           - Fixed calculations for ListViewItem and implemented Clone()
38554           method.
38555
38556 2004-11-04 04:26  ravindra
38557
38558         * Theme.cs, ThemeWin32Classic.cs:
38559                 - Changed default ListView values signatures (prefixed all with
38560                 ListView).
38561           - Fixed default size values for VScrollBar and HScrollBar.
38562                 - Fixed DrawListViewItem method.
38563
38564 2004-11-04 04:05  ravindra
38565
38566         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
38567
38568 2004-11-04 04:04  ravindra
38569
38570         * ImageList.cs: Implemented the missing overload for Draw method.
38571
38572 2004-11-03 19:29  jackson
38573
38574         * TabControl.cs: Handle dropping rows on selection properly
38575
38576 2004-11-03 11:59  jackson
38577
38578         * TabControl.cs: remove debug code
38579
38580 2004-11-03 11:52  jackson
38581
38582         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
38583           the scrolly widgerywoo
38584
38585 2004-11-02 13:52  jackson
38586
38587         * TabControl.cs: Resize the tab pages and tabs when the tab control
38588           is resized
38589
38590 2004-11-02 13:40  jackson
38591
38592         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
38593           selected tab to the bottom
38594
38595 2004-11-02 13:39  jackson
38596
38597         * TabPage.cs: Store the tab pages row
38598
38599 2004-11-02 12:33  jordi
38600
38601         * MenuItem.cs: fixes handle creation
38602
38603 2004-11-02 11:42  jackson
38604
38605         * TabControl.cs: signature fix
38606
38607 2004-11-02 08:56  jackson
38608
38609         * TabControl.cs: Calculate whether the tab is on an edge properly.
38610           Remove top secret debugging code
38611
38612 2004-11-01 19:57  jackson
38613
38614         * TabControl.cs: Add click handling, and proper sizing
38615
38616 2004-11-01 19:47  jackson
38617
38618         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
38619           tab controls
38620
38621 2004-11-01 19:39  jackson
38622
38623         * TabPage.cs: add internal property to store the bounds of a tab
38624           page
38625
38626 2004-10-30 04:23  ravindra
38627
38628         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
38629           values.
38630
38631 2004-10-30 04:21  ravindra
38632
38633         * ListView.cs, ListViewItem.cs: Added support for scrolling and
38634           fixed calculations.
38635
38636 2004-10-30 03:06  pbartok
38637
38638         * XplatUIX11.cs:
38639           - Removed extension of DllImported libs
38640
38641 2004-10-29 09:55  jordi
38642
38643         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
38644           navigation, itemcollection completion, menu fixes
38645
38646 2004-10-27 22:58  pbartok
38647
38648         * XplatUIX11.cs:
38649           - Now throws a nice error message when no X display could be opened
38650
38651 2004-10-26 13:51  jordi
38652
38653         * ListView.cs: removes warning
38654
38655 2004-10-26 03:55  ravindra
38656
38657         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
38658           ThemeWin32Classic.cs: Some formatting for my last checkins.
38659
38660 2004-10-26 03:36  ravindra
38661
38662         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
38663           control and default values.
38664
38665 2004-10-26 03:35  ravindra
38666
38667         * Theme.cs: Added some default values for ListView control.
38668
38669 2004-10-26 03:33  ravindra
38670
38671         * ToolBar.cs: ToolBar should use the user specified button size, if
38672           there is any. Added a size_specified flag for the same.
38673
38674 2004-10-26 03:33  ravindra
38675
38676         * ColumnHeader.cs: Added some internal members and calculations for
38677           ColumnHeader.
38678
38679 2004-10-26 03:32  ravindra
38680
38681         * ListViewItem.cs: Calculations for ListViewItem.
38682
38683 2004-10-26 03:31  ravindra
38684
38685         * ListView.cs: Added some internal members and calculations for
38686           ListView.
38687
38688 2004-10-22 13:31  jordi
38689
38690         * MenuAPI.cs: speedup menus drawing
38691
38692 2004-10-22 13:16  jackson
38693
38694         * XplatUIX11.cs: Make sure to update exposed regions when adding an
38695           expose event
38696
38697 2004-10-22 11:49  jackson
38698
38699         * Control.cs: oops
38700
38701 2004-10-22 11:41  jackson
38702
38703         * Control.cs: Check to see if the window should have its background
38704           repainted by X when drawing.
38705
38706 2004-10-22 11:31  jackson
38707
38708         * XplatUIX11.cs: When invalidating areas only use XClearArea if
38709           clear is true, this way we do not get flicker from X repainting the
38710           background
38711
38712 2004-10-22 11:28  jackson
38713
38714         * XEventQueue.cs: Queue properly
38715
38716 2004-10-21 09:38  jackson
38717
38718         * XEventQueue.cs: Fix access modifier
38719
38720 2004-10-21 09:36  jackson
38721
38722         * XEventQueue.cs: Don't loose messages
38723
38724 2004-10-21 09:22  jackson
38725
38726         * XEventQueue.cs: Don't loose messages
38727
38728 2004-10-20 04:15  jordi
38729
38730         * BootMode.cs: enum need it by SystemInfo
38731
38732 2004-10-19 21:58  pbartok
38733
38734         * XplatUIWin32.cs:
38735           - Small sanity check
38736
38737 2004-10-19 21:56  pbartok
38738
38739         * Form.cs:
38740           - Added private FormParentWindow class which acts as the container
38741             for our form and as the non-client area where menus are drawn
38742           - Added/Moved required tie-ins to Jordi's menus
38743           - Fixed/Implemented the FormStartPosition functionality
38744
38745 2004-10-19 21:52  pbartok
38746
38747         * Control.cs:
38748           - Removed unneeded locals
38749           - Added code to all size and location properties to understand and
38750             deal with the parent container of Form
38751
38752 2004-10-19 21:33  pbartok
38753
38754         * Application.cs:
38755           - Fixed to deal with new Form subclasses for menus
38756
38757 2004-10-19 17:48  jackson
38758
38759         * XEventQueue.cs: commit correct version of file
38760
38761 2004-10-19 16:50  jackson
38762
38763         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
38764
38765 2004-10-19 16:15  jordi
38766
38767         * MenuAPI.cs: MenuBarCalcSize returns the height
38768
38769 2004-10-19 08:31  pbartok
38770
38771         * Control.cs:
38772           - Added missing call to PreProcessMessage before calling OnXXXKey
38773           methods
38774
38775 2004-10-19 00:04  ravindra
38776
38777         * ToolTip.cs: Fixed constructor.
38778
38779 2004-10-18 09:31  jordi
38780
38781         * MenuAPI.cs: menuitems in menubars do not have shortcuts
38782
38783 2004-10-18 09:26  jordi
38784
38785         * MenuItem.cs: fixes MenuItem class signature
38786
38787 2004-10-18 08:56  jordi
38788
38789         * MenuAPI.cs: prevents windows from showing in the taskbar
38790
38791 2004-10-18 00:28  ravindra
38792
38793         * ToolTip.cs: Suppressed a warning message.
38794
38795 2004-10-18 00:27  ravindra
38796
38797         * Control.cs: Default value of visible property must be true.
38798
38799 2004-10-17 23:19  pbartok
38800
38801         * ToolTip.cs:
38802           - Complete implementation
38803
38804 2004-10-17 23:19  pbartok
38805
38806         * XplatUIX11.cs:
38807           - Added EnableWindow method
38808           - Added SetModal stub
38809           - Added generation of WM_ACTIVATE message (still needs testing)
38810           - Added SetTopMost stub
38811           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
38812
38813 2004-10-17 23:17  pbartok
38814
38815         * XplatUIWin32.cs:
38816           - Removed VirtualKeys to XplatUIStructs
38817           - Implemented SetTopMost method
38818           - Implemented EnableWindow method
38819           - Bugfix in ScreenToClient()
38820           - Bugfixes in ClientToScreen()
38821
38822 2004-10-17 22:51  pbartok
38823
38824         * XplatUIStructs.cs:
38825           - Added WS_EX styles to WindowStyles enumeration
38826
38827 2004-10-17 22:50  pbartok
38828
38829         * XplatUI.cs, XplatUIDriver.cs:
38830           - Added method for enabling/disabling windows
38831           - Added method for setting window modality
38832           - Added method for setting topmost window
38833
38834 2004-10-17 22:49  pbartok
38835
38836         * ThemeWin32Classic.cs:
38837           - Added ToolTip drawing code
38838
38839 2004-10-17 22:49  pbartok
38840
38841         * Theme.cs:
38842           - Added ToolTip abstracts
38843
38844 2004-10-17 22:47  pbartok
38845
38846         * Form.cs:
38847           - Fixed Form.ControlCollection to handle owner relations
38848           - Added Owner/OwnedForms handling
38849           - Implemented Z-Ordering for owned forms
38850           - Removed unneeded private overload of ShowDialog
38851           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
38852             so I hope)
38853           - Fixed Close(), had wrong default
38854           - Added firing of OnLoad event
38855           - Added some commented out debug code for Ownership handling
38856
38857 2004-10-17 22:16  pbartok
38858
38859         * Control.cs:
38860           - Fixed/implemented flat list of controls
38861
38862 2004-10-17 22:14  pbartok
38863
38864         * Application.cs:
38865           - Added code to simulate modal dialogs on Win32
38866
38867 2004-10-17 16:11  jordi
38868
38869         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
38870           mouse event
38871
38872 2004-10-17 13:39  jordi
38873
38874         * MenuAPI.cs: menu drawing fixes
38875
38876 2004-10-15 09:10  ravindra
38877
38878         * StructFormat.cs: General Enum.
38879
38880 2004-10-15 09:09  ravindra
38881
38882         * SizeGripStyle.cs: Enum for Form.
38883
38884 2004-10-15 09:08  ravindra
38885
38886         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
38887           in Theme for ListView.
38888
38889 2004-10-15 09:06  ravindra
38890
38891         * ColumnHeader.cs: Flushing some formatting changes.
38892
38893 2004-10-15 09:05  ravindra
38894
38895         * ListViewItem.cs: Implemented GetBounds method and fixed coding
38896           style.
38897
38898 2004-10-15 09:03  ravindra
38899
38900         * ListView.cs: Implemented Paint method and fixed coding style.
38901
38902 2004-10-15 07:34  jordi
38903
38904         * MenuAPI.cs: fix for X11
38905
38906 2004-10-15 07:32  ravindra
38907
38908         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
38909                 - Renamed Paint() method to Draw() for clarity. Also, moved
38910                 DrawImage() to OnPaint().
38911
38912 2004-10-15 07:25  ravindra
38913
38914         * CheckBox.cs, RadioButton.cs:
38915                 - Removed Redraw (), we get it from ButtonBase.
38916                 - Implemented Paint (), to do class specific painting.
38917
38918 2004-10-15 07:16  ravindra
38919
38920         * ButtonBase.cs:
38921                 - Redraw () is not virtual now.
38922                 - Added an internal virtual method Paint (), so that
38923                 derived classes can do their painting on their own.
38924                 - Modified OnPaint () to call Paint ().
38925
38926 2004-10-15 06:43  jordi
38927
38928         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
38929           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
38930
38931 2004-10-15 00:30  ravindra
38932
38933         * MessageBox.cs:
38934                 - MessageBox on windows does not have min/max buttons.
38935                 This change in CreateParams fixes this on Windows. We
38936                 still need to implement this windowstyle behavior in
38937                 our X11 driver.
38938
38939 2004-10-14 05:14  ravindra
38940
38941         * ToolBar.cs:
38942                 - Changed Redraw () to do a Refresh () always.
38943                 - Fixed the MouseMove event handling when mouse is pressed,
38944                 ie drag event handling.
38945                 - Replaced the usage of ToolBarButton.Pressed property to
38946                 ToolBarButton.pressed internal variable.
38947
38948 2004-10-14 05:10  ravindra
38949
38950         * ToolBarButton.cs:
38951                 - Added an internal member 'inside' to handle mouse move
38952                 with mouse pressed ie mouse drag event.
38953                 - Changed 'Pressed' property to return true only when
38954                 'inside' and 'pressed' are both true.
38955                 - Some coding style love.
38956
38957 2004-10-14 00:17  ravindra
38958
38959         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
38960           public method.
38961
38962 2004-10-14 00:15  ravindra
38963
38964         * ButtonBase.cs: Redraw () related improvements.
38965
38966 2004-10-14 00:14  ravindra
38967
38968         * MessageBox.cs: Moved InitFormSize () out of Paint method and
38969           removed unnecessary calls to Button.Show () method.
38970
38971 2004-10-13 17:50  pbartok
38972
38973         * XplatUIX11.cs:
38974           - Formatting fix
38975           - Removed destroying of window until we solve the problem of X
38976             destroying the window before us on shutdown
38977
38978 2004-10-13 16:32  pbartok
38979
38980         * ButtonBase.cs:
38981           - Now Redraws on MouseUp for FlatStyle Flat and Popup
38982
38983 2004-10-13 14:18  pbartok
38984
38985         * XplatUIX11.cs:
38986           - Added code to destroy the X window
38987
38988 2004-10-13 14:18  pbartok
38989
38990         * XplatUIWin32.cs:
38991           - Added code to destroy a window
38992
38993 2004-10-13 14:12  pbartok
38994
38995         * ButtonBase.cs:
38996           - Added the Redraw on Resize that got dropped in the last rev
38997
38998 2004-10-13 09:06  pbartok
38999
39000         * ThemeWin32Classic.cs:
39001           - Path from John BouAntoun:
39002             * Fix check rendering (centre correctly for normal style, offset
39003               correctly for FlatStyle).
39004             * Fix border color usage (use backcolor) for FlatStyle.Popup
39005             * Use checkbox.Capture instead of checkbox.is_pressed when
39006               rendering flatstyle states.
39007
39008 2004-10-12 21:48  pbartok
39009
39010         * ThemeWin32Classic.cs:
39011           - Removed all occurences of SystemColors and replaced them with the
39012             matching theme color
39013
39014 2004-10-12 21:41  pbartok
39015
39016         * ThemeWin32Classic.cs:
39017           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
39018             him using the function for flatstyle drawing
39019           - Changed functions to use the new version of CPDrawBorder3D
39020
39021 2004-10-12 21:15  pbartok
39022
39023         * ControlPaint.cs:
39024           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
39025             match MS documentation. They need to return defined colors if the
39026             passed color matches the configured control color. Thanks to John
39027             BouAntoun for pointing this out.
39028
39029 2004-10-12 20:57  pbartok
39030
39031         * Control.cs:
39032           - Fix from John BouAntoun: Raise ForeColorChanged event when text
39033             color is changed
39034
39035 2004-10-12 20:46  pbartok
39036
39037         * CheckBox.cs:
39038           - Fix from John BouAntoun: Now properly sets the Appearance property
39039
39040 2004-10-12 20:45  pbartok
39041
39042         * ThemeWin32Classic.cs:
39043           - Fixes from John BouAntoun: now handles forecolors and backcolors
39044             for flatstyle rendered controls much better; It also fixes normal
39045             checkbox rendering when pushed or disabled.
39046
39047 2004-10-08 02:50  jordi
39048
39049         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
39050           work
39051
39052 2004-10-07 08:56  jordi
39053
39054         * ThemeWin32Classic.cs: Removes deletion of cached brushes
39055
39056 2004-10-06 03:59  jordi
39057
39058         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
39059           XplatUIWin32.cs: removes warnings from compilation
39060
39061 2004-10-05 12:23  jackson
39062
39063         * RadioButton.cs: Fix ctor
39064
39065 2004-10-05 11:10  pbartok
39066
39067         * MessageBox.cs:
39068           - Partial implementation by Benjamin Dasnois
39069
39070 2004-10-05 10:15  jackson
39071
39072         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
39073           by John BouAntoun
39074
39075 2004-10-05 03:07  ravindra
39076
39077         * ToolBar.cs:
39078                 - Removed a private method, Draw ().
39079                 - Fixed the ButtonDropDown event handling.
39080                 - Fixed MouseMove event handling.
39081
39082 2004-10-05 03:04  ravindra
39083
39084         * ThemeWin32Classic.cs:
39085                 - Added DrawListView method and ListViewDefaultSize property.
39086                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
39087                 - Changed DOS style CRLF to Unix format (dos2unix).
39088
39089 2004-10-05 03:03  ravindra
39090
39091         * Theme.cs:
39092                 - Added DrawListView method and ListViewDefaultSize property.
39093
39094 2004-10-05 02:42  ravindra
39095
39096         * ToolBarButton.cs: Added an internal member dd_pressed to handle
39097           clicks on DropDown arrow.
39098
39099 2004-10-04 22:56  jackson
39100
39101         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
39102           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
39103           Control handle the buffers, derived classes should not have to
39104           CreateBuffers themselves.
39105
39106 2004-10-04 21:20  jackson
39107
39108         * StatusBar.cs: The control handles resizing the buffers now.
39109
39110 2004-10-04 21:18  jackson
39111
39112         * Control.cs: When resizing the buffers should be invalidated. This
39113           should be handled in Control not in derived classes.
39114
39115 2004-10-04 14:45  jackson
39116
39117         * TabPage.cs: oops
39118
39119 2004-10-04 02:14  pbartok
39120
39121         * LeftRightAlignment.cs:
39122           - Initial check-in
39123
39124 2004-10-04 01:09  jordi
39125
39126         * ThemeWin32Classic.cs: fixes right button position causing right
39127           button not showing on horizontal scrollbars
39128
39129 2004-10-02 13:12  pbartok
39130
39131         * XplatUIX11.cs:
39132           - Simplified the Invalidate method by using an X call instead of
39133             generating the expose ourselves
39134           - Added an expose when the window background is changed
39135           - Implemented ClientToScreen method
39136
39137 2004-10-02 13:08  pbartok
39138
39139         * XplatUIWin32.cs:
39140           - Added Win32EnableWindow method (test for implementing modal
39141           dialogs)
39142           - Added ClientToScreen method and imports
39143
39144 2004-10-02 13:07  pbartok
39145
39146         * XplatUI.cs, XplatUIDriver.cs:
39147           - Added ClientToScreen coordinate translation method
39148
39149 2004-10-02 13:06  pbartok
39150
39151         * KeyPressEventArgs.cs:
39152           - Fixed access level for constructor
39153
39154 2004-10-02 13:06  pbartok
39155
39156         * NativeWindow.cs:
39157           - Changed access level for the window_collection hash table
39158
39159 2004-10-02 13:05  pbartok
39160
39161         * Form.cs:
39162           - Added KeyPreview property
39163           - Added Menu property (still incomplete, pending Jordi's menu work)
39164           - Implemented ProcessCmdKey
39165           - Implemented ProcessDialogKey
39166           - Implemented ProcessKeyPreview
39167
39168 2004-10-02 13:02  pbartok
39169
39170         * Control.cs:
39171           - Added private method to get the Control object from the window
39172           handle
39173           - Implemented ContextMenu property
39174           - Implemented PointToScreen
39175           - Implemented PreProcessMessage
39176           - Implemented IsInputChar
39177           - Implemented IsInputKey
39178           - Implemented ProcessCmdKey
39179           - Completed ProcessKeyEventArgs
39180           - Fixed message loop to call the proper chain of functions on key
39181           events
39182           - Implemented ProcessDialogChar
39183           - Implemented ProcessDialogKey
39184           - Implemented ProcessKeyMessage
39185           - Implemented ProcessKeyPreview
39186           - Added RaiseDragEvent stub (MS internal method)
39187           - Added RaiseKeyEvent stub (MS internal method)
39188           - Added RaiseMouseEvent stub (MS Internal method)
39189           - Added RaisePaintEvent stub (MS Internal method)
39190           - Added ResetMouseEventArgs stub (MS Internal method)
39191           - Implemented RtlTranslateAlignment
39192           - Implemented RtlTranslateContent
39193           - Implemented RtlTranslateHorizontal
39194           - Implemented RtlTranslateLeftRight
39195           - Added generation of KeyPress event
39196
39197 2004-10-02 05:57  ravindra
39198
39199         * ListViewItem.cs: Added attributes.
39200
39201 2004-10-02 05:32  ravindra
39202
39203         * ListView.cs: Added attributes.
39204
39205 2004-10-01 11:53  jackson
39206
39207         * Form.cs: Implement the Close method so work on MessageBox can
39208           continue.
39209
39210 2004-09-30 14:06  pbartok
39211
39212         * XplatUIX11.cs:
39213           - Bug fixes
39214
39215 2004-09-30 11:34  jackson
39216
39217         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
39218
39219 2004-09-30 07:26  ravindra
39220
39221         * ListViewItemConverter.cs: Converter for ListViewItem.
39222
39223 2004-09-30 07:26  ravindra
39224
39225         * SortOrder.cs: Enum for ListView control.
39226
39227 2004-09-30 07:25  ravindra
39228
39229         * ColumnHeader.cs: Supporting class for ListView control.
39230
39231 2004-09-30 07:24  ravindra
39232
39233         * ListView.cs, ListViewItem.cs: Initial implementation.
39234
39235 2004-09-30 07:20  ravindra
39236
39237         * ItemActivation.cs: Enum for ListView Control.
39238
39239 2004-09-29 20:29  pbartok
39240
39241         * XplatUIX11.cs:
39242           - Added lookup of pixel value for background color; tries to get a
39243             color 'close' to the requested color, it avoids having to create a
39244             colormap.  Depending on the display this could mean the used color
39245             is slightly off the desired color. Might have to change it to a more
39246             resource intensive colormap approach, but it will work as a
39247           workaround to avoid red screens.
39248
39249 2004-09-29 14:27  jackson
39250
39251         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
39252
39253 2004-09-28 12:44  pbartok
39254
39255         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
39256           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
39257           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
39258           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
39259           TrackBar.cs, VScrollBar.cs:
39260           - Streamlined Theme interfaces:
39261             * Each DrawXXX method for a control now is passed the object for
39262               the control to be drawn in order to allow accessing any state the
39263               theme might require
39264
39265             * ControlPaint methods for the theme now have a CP prefix to avoid
39266               name clashes with the Draw methods for controls
39267
39268             * Every control now retrieves it's DefaultSize from the current
39269             theme
39270
39271 2004-09-28 12:17  jackson
39272
39273         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
39274           drawing
39275
39276 2004-09-24 14:57  jackson
39277
39278         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
39279           Gives us a nice little performance boost.
39280
39281 2004-09-24 12:02  jackson
39282
39283         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
39284           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
39285           Control and supporting classes. Initial checkin
39286
39287 2004-09-23 13:08  jackson
39288
39289         * Form.cs: Temp build fixage
39290
39291 2004-09-23 01:39  ravindra
39292
39293         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
39294           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
39295           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
39296           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
39297           EventHandlers needed by ListView Control.
39298
39299 2004-09-22 14:12  pbartok
39300
39301         * ScrollableControl.cs:
39302           - Implemented DockPadding property
39303           - Implemented AutoScroll property
39304           - Implemented AutoScrollMargin property
39305           - Implemented AutoScrollMinSize property
39306           - Implemented AutoScrollPosition property
39307           - Implemented DisplayRectangle property (still incomplete)
39308           - Implemented CreateParams property
39309           - Implemented HScroll property
39310           - Implemented VScroll property
39311           - Implemented OnVisibleChanged property
39312
39313 2004-09-22 14:09  pbartok
39314
39315         * Form.cs:
39316           - Added Form.ControllCollection class
39317           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
39318             RemoveOwnedForm (still incomplete, missing on-top and common
39319             minimize/maximize behaviour)
39320           - Added StartPosition property (still incomplete, does not use when
39321             creating the form)
39322           - Added ShowDialog() methods (still incomplete, missing forcing the
39323             dialog modal)
39324
39325 2004-09-22 14:05  pbartok
39326
39327         * Application.cs:
39328           - Added message loop for modal dialogs
39329
39330 2004-09-22 14:02  pbartok
39331
39332         * GroupBox.cs:
39333           - Fixed wrong types for events
39334
39335 2004-09-22 14:00  pbartok
39336
39337         * Shortcut.cs, FormWindowState.cs:
39338           - Fixed wrong values
39339
39340 2004-09-22 12:01  jackson
39341
39342         * Control.cs: Text is never null
39343
39344 2004-09-20 22:14  pbartok
39345
39346         * XplatUIWin32.cs:
39347           - Fixed accessibility level for Idle handler
39348
39349 2004-09-20 18:54  jackson
39350
39351         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39352           XplatUIX11.cs: New message loop that uses poll so we don't get a
39353           busy loop
39354
39355 2004-09-17 10:43  pbartok
39356
39357         * ScrollBar.cs:
39358           - Fixed behaviour of arrow buttons. Now properly behaves like
39359             Buttons (and like Microsoft's scrollbar arrow buttons)
39360
39361 2004-09-17 10:14  pbartok
39362
39363         * ScrollBar.cs:
39364           - Added missing release of keyboard/mouse capture
39365
39366 2004-09-17 06:18  jordi
39367
39368         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
39369           Theme.cs: Very early menu support
39370
39371 2004-09-16 17:45  pbartok
39372
39373         * XplatUIWin32.cs:
39374           - Fixed sending a window to the front
39375           - Added overload for SetWindowPos to avoid casting
39376
39377 2004-09-16 17:44  pbartok
39378
39379         * Control.cs:
39380           - Added SendToBack and BringToFront methods
39381
39382 2004-09-16 07:00  ravindra
39383
39384         * Copyright: Added Novell URL.
39385
39386 2004-09-16 07:00  ravindra
39387
39388         * ToolBar.cs: Invalidate should be done before redrawing.
39389
39390 2004-09-15 21:19  ravindra
39391
39392         * ColumnHeaderStyle.cs: Enum for ListView Control.
39393
39394 2004-09-15 21:18  ravindra
39395
39396         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
39397           ListView Control.
39398
39399 2004-09-13 18:26  jackson
39400
39401         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
39402           properly
39403
39404 2004-09-13 18:13  jackson
39405
39406         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
39407           a second thread and post messages into the main threads message
39408           queue. This makes timing much more consistent. Both win2K and XP
39409           have a minimum timer value of 15 milliseconds, so we now do this
39410           too.
39411
39412 2004-09-13 15:18  pbartok
39413
39414         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39415           XplatUIX11.cs:
39416           - Added Z-Ordering methods
39417
39418 2004-09-13 10:56  pbartok
39419
39420         * Form.cs:
39421           - Fixed #region names
39422           - Moved properties and methods into their proper #regions
39423
39424 2004-09-13 10:51  pbartok
39425
39426         * Form.cs:
39427           - Added Accept and CancelButton properties
39428           - Added ProcessDialogKey() method
39429
39430 2004-09-13 08:18  pbartok
39431
39432         * IWindowTarget.cs:
39433           - Initial check-in
39434
39435 2004-09-10 21:50  pbartok
39436
39437         * Control.cs:
39438           - Added DoDragDrop() [incomplete]
39439           - Properly implemented 'Visible' handling
39440           - Added SetVisibleCore()
39441           - Implemented FindChildAtPoint()
39442           - Implemented GetContainerControl()
39443           - Implemented Hide()
39444
39445 2004-09-10 19:28  pbartok
39446
39447         * Control.cs:
39448           - Moved methods into their appropriate #regions
39449           - Reordered methods within regions alphabetically
39450
39451 2004-09-10 18:57  pbartok
39452
39453         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
39454           - Added method to retrieve text from window
39455
39456 2004-09-10 18:56  pbartok
39457
39458         * Control.cs:
39459           - Moved some internal functions into the internal region
39460           - Implemented FontHeight
39461           - Implemented RenderRightToLeft
39462           - Implemented ResizeRedraw
39463           - Implemented ShowFocusCues
39464           - Implemented ShowKeyboardCues
39465           - Implemented FromChildHandle
39466           - Implemented FromHandle
39467           - Implemented IsMnemonic
39468           - Implemented ReflectMessage
39469           - All public and protected Static Methods are now complete
39470
39471 2004-09-10 16:54  pbartok
39472
39473         * Control.cs:
39474           - Implemented remaining missing public instance properties
39475           - Alphabetized some out of order properties
39476
39477 2004-09-10 05:51  ravindra
39478
39479         * PictureBox.cs: Added a check for null image.
39480
39481 2004-09-10 00:59  jordi
39482
39483         * GroupBox.cs: remove cvs tag
39484
39485 2004-09-09 05:25  ravindra
39486
39487         * ToolBar.cs: Make redraw accessible from ToolBarButton.
39488
39489 2004-09-09 05:23  ravindra
39490
39491         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
39492           parent redraw.
39493
39494 2004-09-09 02:28  pbartok
39495
39496         * ThemeWin32Classic.cs:
39497           - Improve disabled string look
39498
39499 2004-09-09 01:15  jordi
39500
39501         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
39502           args and handler
39503
39504 2004-09-08 23:56  ravindra
39505
39506         * ItemBoundsPortion.cs: It's enum, not a class!
39507
39508 2004-09-08 23:47  ravindra
39509
39510         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
39511           Enums for Form.
39512
39513 2004-09-08 21:13  ravindra
39514
39515         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
39516           ListView control.
39517
39518 2004-09-08 21:03  ravindra
39519
39520         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
39521           avoid crash.
39522
39523 2004-09-08 21:01  ravindra
39524
39525         * ScrollableControl.cs: Removed unreachable code.
39526
39527 2004-09-08 06:45  jordi
39528
39529         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
39530
39531 2004-09-08 01:00  jackson
39532
39533         * XplatUIX11.cs: Only run the timers when updating the message
39534           queue. This effectively gives X messages a higher priority then
39535           timer messages. Timers still need love though
39536
39537 2004-09-07 14:01  jackson
39538
39539         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
39540           this for us and the handle is no longer valid.
39541
39542 2004-09-07 13:59  jackson
39543
39544         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
39545           loop that manages to not crash. TODO: Add poll and cleanup timers
39546
39547 2004-09-07 11:12  jordi
39548
39549         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
39550
39551 2004-09-07 03:40  jordi
39552
39553         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
39554           fixes, methods, multiple links
39555
39556 2004-09-06 06:55  jordi
39557
39558         * Control.cs: Caches ClientRectangle rectangle value
39559
39560 2004-09-05 02:03  jordi
39561
39562         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
39563           certain situations
39564
39565 2004-09-04 11:10  jordi
39566
39567         * Label.cs: Refresh when font changed
39568
39569 2004-09-02 16:24  pbartok
39570
39571         * Control.cs:
39572           - Added sanity check to creation of double buffer bitmap
39573
39574 2004-09-02 16:24  pbartok
39575
39576         * ButtonBase.cs:
39577           - Fixed selection of text color
39578           - Fixed handling of resize event; now properly recreates double
39579             buffering bitmap
39580           - Added missing assignment of TextAlignment
39581           - Added proper default for TextAlignment
39582
39583 2004-09-02 14:26  pbartok
39584
39585         * RadioButton.cs:
39586           - Added missing RadioButton.RadioButtonAccessibleObject class
39587
39588 2004-09-02 14:26  pbartok
39589
39590         * Control.cs:
39591           - Added missing Control.ControlAccessibleObject class
39592           - Started to implement Select()ion mechanisms, still very incomplete
39593
39594 2004-09-02 14:25  pbartok
39595
39596         * AccessibleObject.cs:
39597           - Added missing methods
39598
39599 2004-09-02 14:23  pbartok
39600
39601         * AccessibleNavigation.cs, AccessibleSelection.cs:
39602           - Initial check-in
39603
39604 2004-09-02 10:32  jordi
39605
39606         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
39607           pool for pens, brushes, and hatchbruses
39608
39609 2004-09-01 15:30  jackson
39610
39611         * StatusBar.cs: Fix typo
39612
39613 2004-09-01 14:44  pbartok
39614
39615         * RadioButton.cs:
39616           - Fixed state
39617
39618 2004-09-01 14:39  pbartok
39619
39620         * Button.cs, RadioButton.cs:
39621           - Functional initial check-in
39622
39623 2004-09-01 14:01  pbartok
39624
39625         * CheckBox.cs:
39626           - Added missing default
39627           - Added missing region mark
39628
39629 2004-09-01 09:10  jordi
39630
39631         * Label.cs: fixes method signatures, new methods, events, fixes
39632           autosize
39633
39634 2004-09-01 07:19  jordi
39635
39636         * Control.cs: Init string variables with an empty object
39637
39638 2004-09-01 04:20  jordi
39639
39640         * Control.cs: fires OnFontChanged event
39641
39642 2004-08-31 20:07  pbartok
39643
39644         * ButtonBase.cs:
39645           - Enabled display of strings
39646
39647 2004-08-31 20:05  pbartok
39648
39649         * Form.cs:
39650           - Added (partial) implementation of DialogResult; rest needs to be
39651             implemented when the modal loop code is done
39652
39653 2004-08-31 19:55  pbartok
39654
39655         * CheckBox.cs:
39656           - Fixed to match the removal of the needs_redraw concept
39657
39658 2004-08-31 19:55  pbartok
39659
39660         * ButtonBase.cs:
39661           - Removed the rather odd split between 'needs redraw' and redrawing
39662           - Now handles the events that require regeneration (ambient
39663             properties and size)
39664
39665 2004-08-31 19:41  pbartok
39666
39667         * Control.cs:
39668           - Added firing of BackColorChanged event
39669           - Added TopLevelControl property
39670           - Fixed handling of WM_ERASEBKGRND message
39671
39672 2004-08-31 12:49  pbartok
39673
39674         * ButtonBase.cs:
39675           - Removed debug
39676           - Minor fixes
39677
39678 2004-08-31 12:48  pbartok
39679
39680         * CheckBox.cs:
39681           - Finished (famous last words)
39682
39683 2004-08-31 04:35  jordi
39684
39685         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
39686           scrolling bugs, adds new methods
39687
39688 2004-08-30 14:42  pbartok
39689
39690         * CheckBox.cs:
39691           - Implemented CheckBox drawing code
39692
39693 2004-08-30 14:42  pbartok
39694
39695         * ButtonBase.cs:
39696           - Made Redraw() and CheckRedraw() virtual
39697           - Improved mouse up/down/move logic to properly track buttons
39698
39699 2004-08-30 09:44  pbartok
39700
39701         * CheckBox.cs:
39702           - Updated to fix broken build. Not complete yet.
39703
39704 2004-08-30 09:28  pbartok
39705
39706         * CheckState.cs:
39707           - Initial checkin
39708
39709 2004-08-30 09:17  pbartok
39710
39711         * Appearance.cs:
39712           - Initial check-in
39713
39714 2004-08-27 16:12  ravindra
39715
39716         * ToolBarButton.cs: Added TypeConverter attribute.
39717
39718 2004-08-27 16:07  ravindra
39719
39720         * ImageIndexConverter.cs: Implemented.
39721
39722 2004-08-27 14:17  pbartok
39723
39724         * Control.cs:
39725           - Removed unneeded stack vars
39726           - First attempt to fix sizing issues when layout is suspended
39727
39728 2004-08-25 15:35  jordi
39729
39730         * ScrollBar.cs: more fixes to scrollbar
39731
39732 2004-08-25 14:04  ravindra
39733
39734         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
39735           Added the missing divider code and grip for ToolBar Control.
39736
39737 2004-08-25 13:20  pbartok
39738
39739         * Control.cs:
39740           - Control now properly passes the ambient background color to child
39741             controls
39742
39743 2004-08-25 13:20  jordi
39744
39745         * ScrollBar.cs: small bug fix regarding bar position
39746
39747 2004-08-25 12:33  pbartok
39748
39749         * Timer.cs:
39750           - Now only calls SetTimer or KillTimer if the enabled state has
39751           changed
39752
39753 2004-08-25 12:33  pbartok
39754
39755         * XplatUIWin32.cs:
39756           - Fixed timer handling, now seems to work
39757           - Improved error message for window creation
39758
39759 2004-08-25 12:32  pbartok
39760
39761         * Control.cs:
39762           - Fixed generation of MouseUp message
39763
39764 2004-08-25 12:29  jordi
39765
39766         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
39767           and fixes for progressbar
39768
39769 2004-08-24 18:43  ravindra
39770
39771         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
39772           in ToolBar control.
39773
39774 2004-08-24 17:15  pbartok
39775
39776         * Panel.cs:
39777           - Added #region
39778           - Added missing events
39779           - Alphabetized
39780
39781 2004-08-24 17:14  pbartok
39782
39783         * StatusBar.cs, PictureBox.cs:
39784           - Now uses Control's CreateParams
39785
39786 2004-08-24 16:36  pbartok
39787
39788         * XplatUIX11.cs:
39789           - Fixed background color handling
39790           - Fixed sending of enter/leave events on a grab
39791
39792 2004-08-24 16:35  pbartok
39793
39794         * X11Structs.cs:
39795           - Refined definitions for CrossingEvent
39796
39797 2004-08-24 12:37  jordi
39798
39799         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
39800           formmating, methods signature, and adds missing events
39801
39802 2004-08-24 12:24  jordi
39803
39804         * Control.cs: fire OnEnabledChanged event
39805
39806 2004-08-24 11:17  pbartok
39807
39808         * XplatUIWin32.cs:
39809           - Implemented SetTimer() and KillTimer()
39810
39811 2004-08-24 11:16  pbartok
39812
39813         * XplatUIX11.cs:
39814           - Now uses Remove instead of Add to kill the timer
39815
39816 2004-08-24 10:16  jackson
39817
39818         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
39819           picture boxes in the theme now. Draw picture box borders and obey
39820           sizing modes
39821
39822 2004-08-24 05:49  jackson
39823
39824         * Timer.cs: Remove top secret debugging code
39825
39826 2004-08-24 05:34  jackson
39827
39828         * PictureBox.cs: Temp hack to make picture boxes draw their full
39829           image
39830
39831 2004-08-24 05:29  jackson
39832
39833         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
39834           XplatUIX11.cs: Move timers to the driver level. On X they are
39835           queued by the driver and checked on idle.
39836
39837 2004-08-24 01:07  jackson
39838
39839         * XplatUIX11.cs: Use a queue for async messages instead of passing
39840           them as ClientMessages since that was totally broken. Also simply
39841           check for events and return an idle message if none are found. This
39842           gives us an idle handler, and prevents deadlocking when no messages
39843           are in the queue.
39844
39845 2004-08-23 18:19  ravindra
39846
39847         * XplatUIWin32.cs: Removed the unwanted destructor.
39848
39849 2004-08-23 17:27  pbartok
39850
39851         * ButtonBase.cs:
39852           - Finishing touches. Works now, just needs some optimizations.
39853
39854 2004-08-23 16:53  jordi
39855
39856         * ScrollBar.cs: small fix
39857
39858 2004-08-23 16:45  pbartok
39859
39860         * Application.cs:
39861           - Removed debug output
39862           - Simplifications
39863
39864 2004-08-23 16:43  jordi
39865
39866         * ScrollBar.cs: [no log message]
39867
39868 2004-08-23 16:10  pbartok
39869
39870         * Form.cs:
39871           - Fixed handling of WM_CLOSE message
39872           - Removed debug output
39873
39874 2004-08-23 16:09  pbartok
39875
39876         * Application.cs:
39877           - Added handling of Idle event
39878           - Added handling of form closing
39879           - Fixed reporting of MessageLoop property
39880           - Removed some unneeded code, should provide a bit of a speedup
39881
39882 2004-08-23 15:22  pbartok
39883
39884         * Control.cs:
39885           - Added InitLayout() method
39886           - Added code to properly perform layout when Anchor or Dock property
39887             is changed
39888           - Changed 'interpretation' of ResumeLayout. MS seems to have a
39889             LAMESPEC, tried to do it in a way that makes sense
39890
39891 2004-08-23 14:10  jordi
39892
39893         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
39894           properties and methods
39895
39896 2004-08-23 13:55  pbartok
39897
39898         * Control.cs:
39899           - Properly fixed Jordi's last fix
39900           - Now uses Cursor's Position property instead of calling XplatUI
39901           directly
39902
39903 2004-08-23 13:44  jordi
39904
39905         * PaintEventHandler.cs: Adding missing attribute
39906
39907 2004-08-23 13:39  pbartok
39908
39909         * Cursor.cs:
39910           - Implemented Position property
39911
39912 2004-08-23 13:39  pbartok
39913
39914         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
39915           - Added method to move mouse cursor
39916
39917 2004-08-23 13:39  pbartok
39918
39919         * XplatUIX11.cs:
39920           - Fixed setting of background color
39921           - Added method to move mouse cursor
39922
39923 2004-08-23 13:16  jordi
39924
39925         * Control.cs: avoids null exception
39926
39927 2004-08-22 17:46  jackson
39928
39929         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
39930           PictureBox
39931
39932 2004-08-22 17:40  jackson
39933
39934         * XplatUIX11.cs: Add some missing locks
39935
39936 2004-08-22 15:10  pbartok
39937
39938         * Control.cs, Form.cs:
39939           - Removed OverlappedWindow style from Control, instead it's default
39940             now is child
39941           - Made form windows OverlappedWindow by default
39942
39943 2004-08-22 13:34  jackson
39944
39945         * ScrollBar.cs: Update the position through the Value property so
39946           the OnValueChanged event is raised.
39947
39948 2004-08-22 12:04  pbartok
39949
39950         * SWF.csproj:
39951           - Added Cursor.cs and UserControl.cs
39952
39953 2004-08-22 12:03  pbartok
39954
39955         * Cursor.cs:
39956           - Started implementation, not usable yet
39957
39958 2004-08-22 12:00  pbartok
39959
39960         * UserControl.cs:
39961           - Implemented UserControl (complete)
39962
39963 2004-08-21 19:20  ravindra
39964
39965         * ToolBar.cs: Correcting the formatting mess of VS.NET.
39966
39967 2004-08-21 18:49  ravindra
39968
39969         * ToolBar.cs: Probably this completes the missing attributes in
39970           toolbar control.
39971
39972 2004-08-21 18:03  ravindra
39973
39974         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
39975           Fixed toolbar control signatures.
39976
39977 2004-08-21 16:32  pbartok
39978
39979         * LinkLabel.cs:
39980           - Signature Fixes
39981
39982 2004-08-21 16:30  pbartok
39983
39984         * Label.cs:
39985           - Signature fixes
39986
39987 2004-08-21 16:19  pbartok
39988
39989         * Control.cs, Label.cs:
39990           - Signature fixes
39991
39992 2004-08-21 15:57  pbartok
39993
39994         * ButtonBase.cs:
39995           - Added loads of debug output for development
39996           - Fixed typo in method name
39997
39998 2004-08-21 15:52  pbartok
39999
40000         * ToolBarButtonClickEventArgs.cs:
40001           - Added missing base class
40002
40003 2004-08-21 14:53  pbartok
40004
40005         * Control.cs:
40006           - Updated to match new GrabWindow signature
40007
40008 2004-08-21 14:51  pbartok
40009
40010         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40011           - Added method to get default display size
40012
40013 2004-08-21 14:23  pbartok
40014
40015         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40016           - Added method to query current grab state
40017           - Added argument to allow confining a grab to a window
40018
40019 2004-08-21 14:22  pbartok
40020
40021         * Keys.cs:
40022           - Added [Flags] attribute so that modifiers can be used in bitwise
40023           ops
40024
40025 2004-08-21 14:21  pbartok
40026
40027         * TrackBar.cs, ScrollBar.cs:
40028           - Replaced direct XplatUI calls with their Control counterpart
40029
40030 2004-08-21 13:32  pbartok
40031
40032         * Control.cs:
40033           - Implemented Created property
40034
40035 2004-08-21 13:28  pbartok
40036
40037         * Control.cs:
40038           - Implemented ContainsFocus
40039
40040 2004-08-21 13:26  pbartok
40041
40042         * Control.cs:
40043           - Implemented CausesValidation
40044
40045 2004-08-21 13:21  pbartok
40046
40047         * Control.cs:
40048           - Implemented CanFocus
40049           - Implemented CanSelect
40050           - Implemented Capture
40051
40052 2004-08-21 12:35  pbartok
40053
40054         * XplatUIWin32.cs:
40055           - Fixed bug with Async message handling
40056           - Implemented getting the ModifierKeys
40057
40058 2004-08-21 12:32  jackson
40059
40060         * AsyncMethodResult.cs: Make sure we have the mutex before we
40061           release it. Fixes BeginInvoke on windows
40062
40063 2004-08-21 11:31  pbartok
40064
40065         * XplatUIWin32.cs, XplatUIX11.cs:
40066           - Drivers now return proper mouse state
40067
40068 2004-08-21 10:54  jackson
40069
40070         * Control.cs: Implement EndInvoke
40071
40072 2004-08-21 10:48  jackson
40073
40074         * Timer.cs: Remove unneeded finalizer
40075
40076 2004-08-20 19:52  ravindra
40077
40078         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
40079           in mouse event handling in the ToolBar control.
40080
40081 2004-08-20 19:50  ravindra
40082
40083         * ImageList.cs: Changed draw method to use the arguments passed in
40084           to draw the image.
40085
40086 2004-08-20 18:58  pbartok
40087
40088         * XplatUIStructs.cs:
40089           - Added private message for async communication
40090
40091 2004-08-20 17:38  ravindra
40092
40093         * Control.cs: Made RightToLeft property virtual and removed a
40094           Console.WriteLine.
40095
40096 2004-08-20 14:39  jordi
40097
40098         * ThemeGtk.cs: use style_attach
40099
40100 2004-08-20 14:39  pbartok
40101
40102         * XplatUIWin32.cs:
40103           - Added jackson's Async code from X11 to Win32
40104
40105 2004-08-20 14:09  pbartok
40106
40107         * SWF.csproj:
40108           - Added all new files
40109
40110 2004-08-20 14:09  pbartok
40111
40112         * Control.cs:
40113           - Added call to set window background color
40114
40115 2004-08-20 14:03  pbartok
40116
40117         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
40118           - Added method for setting the window background
40119
40120 2004-08-20 14:02  pbartok
40121
40122         * XplatUIWin32.cs:
40123           - Added method for setting the background color
40124           - Added handling for erasing the window background
40125
40126 2004-08-20 13:45  jordi
40127
40128         * TrackBar.cs: fixes timer, new properties and methods
40129
40130 2004-08-20 13:34  jackson
40131
40132         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
40133           correct thread
40134
40135 2004-08-20 13:22  jackson
40136
40137         * Timer.cs: Timer Tick events are now handed through Controls Async
40138           mechanism so the callbacks are executed in the same thread as X
40139
40140 2004-08-20 13:19  jackson
40141
40142         * XplatUIDriver.cs: Expose functionality to send async messages
40143           through the driver
40144
40145 2004-08-20 13:18  jackson
40146
40147         * Control.cs: Implement Begininvoke
40148
40149 2004-08-20 13:14  jackson
40150
40151         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
40152           messages through the driver
40153
40154 2004-08-20 13:12  jackson
40155
40156         * XplatUIX11.cs: Lock before all X operations. Also added Async
40157           method functionality through XSendEvent
40158
40159 2004-08-20 13:11  jackson
40160
40161         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
40162           This will screw up on 64 bit systems)
40163
40164 2004-08-20 13:10  jackson
40165
40166         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
40167           Async messages through X/Win32
40168
40169 2004-08-19 19:39  pbartok
40170
40171         * XplatUIX11.cs:
40172           - Updated code to match new HandleData.DeviceContext type
40173
40174 2004-08-19 19:38  pbartok
40175
40176         * HandleData.cs:
40177           - Made DeviceContext a generic object to allow usage from various
40178           drivers
40179           - Added support for queueing Windows messages
40180
40181 2004-08-19 19:37  pbartok
40182
40183         * XplatUIWin32.cs:
40184           - Added generation of MouseEnter, MouseLeave and MouseHover events
40185           - Added cleanup on EndPaint
40186
40187 2004-08-19 19:17  pbartok
40188
40189         * Control.cs:
40190           - Added handling of WM_MOUSEHOVER
40191           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
40192           code
40193
40194 2004-08-19 18:55  jordi
40195
40196         * ThemeGtk.cs: fixes button order
40197
40198 2004-08-19 18:12  jordi
40199
40200         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
40201
40202 2004-08-19 17:09  pbartok
40203
40204         * Control.cs:
40205           - Added Right property
40206           - Added RightToLeft property
40207
40208 2004-08-19 16:27  jordi
40209
40210         * ThemeGtk.cs: experimental GTK theme support
40211
40212 2004-08-19 16:26  jordi
40213
40214         * ITheme.cs, Theme.cs: move themes from an interface to a class
40215
40216 2004-08-19 16:25  jordi
40217
40218         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
40219           theme enhancaments
40220
40221 2004-08-19 16:04  pbartok
40222
40223         * XplatUIX11.cs:
40224           - Added colormap basics
40225           - Added a way to re-initialize with a different display handle
40226           - Fixed setting of the window background color
40227           - Added various X11 imports related to colors and colormaps
40228
40229 2004-08-19 15:51  pbartok
40230
40231         * X11Structs.cs:
40232           - Removed packing hints (Paolo suggested this a while back)
40233           - fixed colormap type
40234           - Added default Atom types
40235           - Added Screen and color structs and enums
40236
40237 2004-08-19 15:39  pbartok
40238
40239         * ImageList.cs:
40240           - Added missing Draw() method
40241           - Added missing RecreateHandle event
40242
40243 2004-08-19 15:30  pbartok
40244
40245         * Form.cs:
40246           - Added handling of WM_CLOSE
40247
40248 2004-08-18 13:16  jordi
40249
40250         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
40251           a table
40252
40253 2004-08-18 09:56  jordi
40254
40255         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
40256
40257 2004-08-17 15:31  ravindra
40258
40259         * SWF.csproj: Updated project.
40260
40261 2004-08-17 15:25  pbartok
40262
40263         * Control.cs:
40264           - Drawing improvement; don't call UpdateBounds if we are not visible
40265             (or have been minimized)
40266
40267 2004-08-17 15:24  pbartok
40268
40269         * XplatUIWin32.cs:
40270           - Finished IsVisible
40271           - Added Win32GetWindowPlacement
40272
40273 2004-08-17 15:08  jackson
40274
40275         * Panel.cs: Initial checkin of the Panel
40276
40277 2004-08-17 14:25  pbartok
40278
40279         * Control.cs:
40280           - Fixed broken handling of default window sizes
40281
40282 2004-08-17 13:29  jackson
40283
40284         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
40285           has a large startup time.
40286
40287 2004-08-17 10:25  jackson
40288
40289         * HandleData.cs: union areas properly
40290
40291 2004-08-17 10:12  jackson
40292
40293         * HandleData.cs: union areas properly
40294
40295 2004-08-16 20:00  ravindra
40296
40297         * ToolBar.cs, ToolBarButton.cs: Added attributes.
40298
40299 2004-08-16 18:48  ravindra
40300
40301         * ToolBar.cs: Added attributes.
40302
40303 2004-08-16 17:17  ravindra
40304
40305         * SWF.csproj: Updated project.
40306
40307 2004-08-16 17:16  jackson
40308
40309         * XplatUIX11.cs: Check for more expose events before sending a
40310           WM_PAINT so they can all be grouped together. This makes dragging a
40311           window across another window redraw in a sane way.
40312
40313 2004-08-16 15:47  pbartok
40314
40315         * Control.cs:
40316           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
40317             support OnMouseEnter/Leave()
40318           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
40319             exposure handling
40320
40321 2004-08-16 15:46  pbartok
40322
40323         * XplatUIStructs.cs, XplatUIX11.cs:
40324           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
40325           OnMouseEnter/Leave()
40326
40327 2004-08-16 15:34  jackson
40328
40329         * XplatUIX11.cs: Group multiple expose events in HandleData, make
40330           sure messages get the message field set to WM_NULL if they are not
40331           handled.
40332
40333 2004-08-16 15:24  jackson
40334
40335         * HandleData.cs: HandleData is used for storing message information
40336           for window handles
40337
40338 2004-08-15 17:23  ravindra
40339
40340         * ColorDepth.cs: Added attribute.
40341
40342 2004-08-15 17:23  ravindra
40343
40344         * SWF.csproj: Updated project for ToolBar Control.
40345
40346 2004-08-15 17:20  ravindra
40347
40348         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
40349           control and also dos2unix format.
40350
40351 2004-08-15 17:13  ravindra
40352
40353         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
40354           ToolBarButtonClickEventArgs.cs,
40355           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
40356           ToolBarTextAlign.cs: First Implementation of ToolBar control.
40357
40358 2004-08-15 15:31  pbartok
40359
40360         * ButtonBase.cs:
40361           - First (mostly) working version
40362
40363 2004-08-13 16:15  pbartok
40364
40365         * Control.cs:
40366           - Fixed Anchor default
40367
40368 2004-08-13 15:43  pbartok
40369
40370         * Control.cs:
40371           - Changed GetCursorPos signature
40372
40373 2004-08-13 15:42  pbartok
40374
40375         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
40376           - Changed signature for GetCursorPos
40377
40378 2004-08-13 15:25  pbartok
40379
40380         * XplatUIX11.cs:
40381           - Cleanup
40382           - Fixed resizing/exposure handling
40383
40384 2004-08-13 15:22  jordi
40385
40386         * ThemeWin32Classic.cs: removes redundant code and fixes issues
40387           with tickposition
40388
40389 2004-08-13 14:55  jordi
40390
40391         * TrackBar.cs: change from wndproc to events
40392
40393 2004-08-13 13:00  jordi
40394
40395         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40396           XplatUIX11.cs: implements PointToClient (ScreenToClient)
40397
40398 2004-08-13 12:53  pbartok
40399
40400         * XplatUIWin32.cs:
40401           - Changed GetWindowPos to also provide client area size
40402           - Fixed broken prototypes for several win32 functions
40403
40404 2004-08-13 12:53  pbartok
40405
40406         * XplatUI.cs, XplatUIDriver.cs:
40407           - Changed GetWindowPos to also provide client area size
40408
40409 2004-08-13 12:52  pbartok
40410
40411         * XplatUIX11.cs:
40412           - Added generation of WM_POSCHANGED
40413           - Changed GetWindowPos to also provide client area size
40414
40415 2004-08-13 12:52  pbartok
40416
40417         * Control.cs:
40418           - Added Dispose() and destructor
40419           - Fixed resizing and bounds calculation
40420           - Fixed Layout
40421           - Added memory savings for invisible windows
40422
40423 2004-08-13 12:46  jordi
40424
40425         * TrackBar.cs: adds timer and grap window
40426
40427 2004-08-13 10:25  jackson
40428
40429         * Timer.cs: SWF Timer
40430
40431 2004-08-12 16:59  pbartok
40432
40433         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40434           - Implemented method to get current mouse position
40435
40436 2004-08-12 14:29  jordi
40437
40438         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
40439           enhancement, fix mouse problems, highli thumb, etc
40440
40441 2004-08-12 13:31  pbartok
40442
40443         * Control.cs:
40444           - Fixed Anchoring bugs
40445
40446 2004-08-12 13:01  jackson
40447
40448         * StatusBar.cs: Don't forget things
40449
40450 2004-08-12 12:54  jackson
40451
40452         * ThemeWin32Classic.cs: Handle owner draw status bars
40453
40454 2004-08-12 12:54  jackson
40455
40456         * StatusBar.cs: Implement missing properties, events, and methods.
40457           Handle mouse clicking
40458
40459 2004-08-12 10:19  jackson
40460
40461         * StatusBarPanelClickEventArgs.cs,
40462           StatusBarPanelClickEventHandler.cs: Classes for handling status
40463           bar panel click events
40464
40465 2004-08-12 10:10  jackson
40466
40467         * Control.cs: Add missing properties
40468
40469 2004-08-12 09:46  pbartok
40470
40471         * BindingsManagerBase.cs:
40472           - Name changed to BindingManagerBase.cs
40473
40474 2004-08-12 09:25  jordi
40475
40476         * ScrollableControl.cs: calls ctrlbase instead of exeception
40477
40478 2004-08-11 16:28  pbartok
40479
40480         * InputLanguageChangingEventArgs.cs:
40481           - Never check in before compiling. Fixes the last check-in
40482
40483 2004-08-11 16:26  pbartok
40484
40485         * InputLanguageChangingEventArgs.cs:
40486           - More signature fixes
40487
40488 2004-08-11 16:20  pbartok
40489
40490         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
40491           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
40492           ImageListStreamer.cs, InputLanguage.cs,
40493           InputLanguageChangedEventArgs.cs,
40494           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
40495           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
40496           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
40497           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40498           - Signature fixes
40499
40500 2004-08-11 16:16  pbartok
40501
40502         * Application.cs:
40503           - Fixed Signature
40504           - Added .Net 1.1 method
40505
40506 2004-08-11 15:25  pbartok
40507
40508         * SWF.csproj:
40509           - Fixed BindingManagerBase.cs filename
40510
40511 2004-08-11 15:22  pbartok
40512
40513         * BindingManagerBase.cs:
40514           - Was checked in with wrong filename
40515
40516 2004-08-11 14:50  pbartok
40517
40518         * SWF.csproj:
40519           - Updated
40520
40521 2004-08-11 13:41  jordi
40522
40523         * XplatUIWin32.cs: Fixes ClientRect
40524
40525 2004-08-11 13:19  pbartok
40526
40527         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40528           XplatUIX11.cs:
40529           - We had SetWindowPos and MoveWindow to set window positions and
40530             size, removed MoveWindow. We have GetWindowPos, so it made sense to
40531             keep SetWindowPos as matching counterpart
40532           - Added some X11 sanity checking
40533
40534 2004-08-11 12:59  pbartok
40535
40536         * Control.cs:
40537           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
40538             (It seems that SetBounds is just a front for SetBoundsCore and
40539              SetBoundsCore updates the underlying window system and
40540              UpdateBounds is responsible for updating the variables associated
40541              with the Control and sending the events)
40542           - Major cleanup of Size handling; we now have two sizes, client_size
40543             and bounds. Bounds defines the window with decorations, client_size
40544             without them.
40545
40546 2004-08-11 12:55  pbartok
40547
40548         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40549           - Added method to calculate difference between decorated window and
40550             raw client area
40551
40552 2004-08-11 12:54  pbartok
40553
40554         * Label.cs:
40555           - Forcing redraw on resize
40556
40557 2004-08-11 11:43  pbartok
40558
40559         * ImageList.cs:
40560           - Removed disposing of the actual images when the list is disposed
40561
40562 2004-08-11 09:13  pbartok
40563
40564         * Control.cs:
40565           - Now properly reparents windows
40566
40567 2004-08-11 08:37  pbartok
40568
40569         * Control.cs:
40570           - Duh!
40571
40572 2004-08-11 07:47  pbartok
40573
40574         * Control.cs:
40575           - Rewrote the collection stuff. Might not be as fast now, not
40576             keeping the number of children around and accessible directly, but
40577             it's more straightforward
40578
40579 2004-08-11 07:44  pbartok
40580
40581         * AccessibleObject.cs:
40582           - Fixed to match ControlCollection rewrite
40583
40584 2004-08-11 07:43  pbartok
40585
40586         * ImageList.cs:
40587           - Added missing creation of the collection list
40588
40589 2004-08-10 20:08  jackson
40590
40591         * StatusBar.cs: Get the paint message from WndProc
40592
40593 2004-08-10 19:31  jackson
40594
40595         * ThemeWin32Classic.cs: Create Brushes as little as possible
40596
40597 2004-08-10 19:20  jackson
40598
40599         * UICues.cs: Add Flags attribute
40600
40601 2004-08-10 19:19  jackson
40602
40603         * StatusBarPanel.cs: Signature cleanup
40604
40605 2004-08-10 19:10  jackson
40606
40607         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
40608           Initial implementation of status bar item drawing
40609
40610 2004-08-10 17:27  jordi
40611
40612         * TrackBar.cs: add missing methods, properties, and restructure to
40613           hide extra ones
40614
40615 2004-08-10 16:24  jackson
40616
40617         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
40618           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
40619           attribute
40620
40621 2004-08-10 13:21  jordi
40622
40623         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
40624           enhancements and standarize on win colors defaults
40625
40626 2004-08-10 12:52  jackson
40627
40628         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
40629           ThemeWin32Classic.cs: Implement DrawItem functionality
40630
40631 2004-08-10 12:47  jordi
40632
40633         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
40634
40635 2004-08-10 12:32  jordi
40636
40637         * Control.cs: throw ontextchange event
40638
40639 2004-08-10 11:43  pbartok
40640
40641         * Control.cs:
40642           - Added more to the still unfinished Dock/Anchor layout code
40643
40644 2004-08-10 11:39  pbartok
40645
40646         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
40647           - Added GetWindowPos method
40648
40649 2004-08-10 11:36  pbartok
40650
40651         * XplatUIWin32.cs:
40652           - Implemented several methods
40653
40654 2004-08-10 09:47  jackson
40655
40656         * TrackBar.cs: Allow control to handle buffering
40657
40658 2004-08-10 09:41  jackson
40659
40660         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
40661
40662 2004-08-10 09:24  jackson
40663
40664         * Label.cs, LinkLabel.cs: Let Control handle buffering.
40665
40666 2004-08-10 09:09  jackson
40667
40668         * StatusBar.cs: Let Control handle all the buffering.
40669
40670 2004-08-10 09:08  jackson
40671
40672         * Control.cs: Control will now handle the buffering code, so each
40673           control does not have to implement this.
40674
40675 2004-08-10 08:34  jackson
40676
40677         * XplatUIDriver.cs: Use default colors from the theme
40678
40679 2004-08-09 17:12  pbartok
40680
40681         * ImageList.cs:
40682           - Fixed several bugs Ravindra pointed out
40683
40684 2004-08-09 16:11  pbartok
40685
40686         * Control.cs:
40687           - Added incomplete dock layout code
40688           - Added support for mouse wheel
40689
40690 2004-08-09 16:09  pbartok
40691
40692         * XplatUIX11.cs:
40693           - Added handling for middle and right mousebutton
40694           - Added handling for mouse wheel
40695           - Added handling for key state and mouse state and position
40696           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
40697           messages
40698
40699 2004-08-09 15:40  jackson
40700
40701         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
40702           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
40703           checkin
40704
40705 2004-08-09 15:37  jackson
40706
40707         * StatusBar.cs: Initial implementation of StatusBar
40708
40709 2004-08-09 15:36  jackson
40710
40711         * ITheme.cs: Add support for drawing status bar and getting status
40712           bar item sizes
40713
40714 2004-08-09 15:35  pbartok
40715
40716         * MouseButtons.cs:
40717           - Fixed values
40718
40719 2004-08-09 15:34  jackson
40720
40721         * ThemeWin32Classic.cs: Add support for drawing status bar and get
40722           status bar item sizes
40723
40724 2004-08-09 15:21  jackson
40725
40726         * ThemeWin32Classic.cs: Use known colors for default control
40727           colours
40728
40729 2004-08-09 15:12  jackson
40730
40731         * ThemeWin32Classic.cs: Make the default font static, it is static
40732           in control so this doesn't change functionality and creating fonts
40733           is sloooooow.
40734
40735 2004-08-09 14:56  pbartok
40736
40737         * X11Structs.cs:
40738           - Added GrabMode enum
40739
40740 2004-08-09 14:55  pbartok
40741
40742         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40743           - Removed Run method, was only required for initial development
40744
40745 2004-08-09 14:51  pbartok
40746
40747         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
40748           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
40749           capture
40750
40751 2004-08-09 13:48  pbartok
40752
40753         * XplatUIX11.cs:
40754           - Fixed default sizing for child windows
40755
40756 2004-08-09 12:56  pbartok
40757
40758         * XplatUIX11.cs:
40759           - Added generation of WM_DESTROY message
40760           - Added handling of window manager induced shutdown
40761
40762 2004-08-09 11:31  jackson
40763
40764         * ThemeWin32Classic.cs: New names for control properties
40765
40766 2004-08-09 11:25  jackson
40767
40768         * Control.cs: Use new color names
40769
40770 2004-08-09 11:02  jackson
40771
40772         * XplatUI.cs: Get default window properties from the theme
40773
40774 2004-08-09 11:01  jackson
40775
40776         * ITheme.cs: The theme engine now controls default window
40777           properties
40778
40779 2004-08-09 11:00  jackson
40780
40781         * ThemeWin32Classic.cs: Add default window color properties
40782
40783 2004-08-09 10:17  jackson
40784
40785         * ThemeWin32Classic.cs: Use correct default back color
40786
40787 2004-08-09 10:05  jackson
40788
40789         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
40790           the theme now.
40791
40792 2004-08-09 09:56  jackson
40793
40794         * XplatUI.cs: Remove defaults, these are handled by the theme now.
40795
40796 2004-08-09 09:54  jackson
40797
40798         * Control.cs: Get default properties from the theme.
40799
40800 2004-08-09 09:53  jackson
40801
40802         * ITheme.cs: Themes now handle default control properties
40803
40804 2004-08-09 09:53  jackson
40805
40806         * ThemeWin32Classic.cs: Themes now handle default control
40807           properties so coloring will be consistent
40808
40809 2004-08-08 16:54  jordi
40810
40811         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
40812
40813 2004-08-08 15:08  jordi
40814
40815         * XplatUIX11.cs: fixes keyboard crash
40816
40817 2004-08-08 13:47  jordi
40818
40819         * Label.cs: add cvs header info
40820
40821 2004-08-08 12:09  jackson
40822
40823         * ThemeWin32Classic.cs: Add pen_buttonface
40824
40825 2004-08-08 11:52  jordi
40826
40827         * Label.cs, LinkLabel.cs: [no log message]
40828
40829 2004-08-08 11:34  jordi
40830
40831         * ThemeWin32Classic.cs: Use Windows Standard Colours
40832
40833 2004-08-07 17:32  jordi
40834
40835         * TrackBar.cs: throw exceptions of invalid enums values
40836
40837 2004-08-07 17:31  jordi
40838
40839         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
40840           draw method name
40841
40842 2004-08-07 16:56  jackson
40843
40844         * HorizontalAlignment.cs: Initial checkin
40845
40846 2004-08-07 13:16  jordi
40847
40848         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
40849           methods
40850
40851 2004-08-07 13:05  jordi
40852
40853         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
40854           GetSysColor defines
40855
40856 2004-08-06 18:01  pbartok
40857
40858         * ThemeWin32Classic.cs:
40859           - Fixed some rounding issues with float/int
40860
40861 2004-08-06 18:00  jackson
40862
40863         * DockStyle.cs, AnchorStyles.cs:
40864
40865                   Add flags and serializable attributes.
40866
40867 2004-08-06 17:46  pbartok
40868
40869         * XplatUIX11.cs:
40870           - Implemented GetParent
40871
40872 2004-08-06 17:18  pbartok
40873
40874         * TrackBar.cs:
40875           - Fixed some rounding issues with float/int
40876
40877 2004-08-06 17:17  pbartok
40878
40879         * X11Structs.cs, XplatUIX11.cs:
40880           - Fixed Refresh and Invalidate
40881
40882 2004-08-06 15:30  pbartok
40883
40884         * Control.cs, X11Structs.cs, XplatUIX11.cs:
40885           - Fixed recursive loop when resizing
40886           - Improved/fixed redrawing on expose messages
40887
40888 2004-08-06 09:53  jordi
40889
40890         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
40891           keyboard navigation
40892
40893 2004-08-06 08:02  pbartok
40894
40895         * X11Structs.cs, XplatUIX11.cs:
40896           - Fixed reparenting
40897           - Fixed window border creation
40898
40899 2004-08-05 15:38  pbartok
40900
40901         * XplatUIX11.cs:
40902           - Attempted fix for reparenting problems
40903
40904 2004-08-04 15:14  pbartok
40905
40906         * Control.cs:
40907           - Fixed Invalidation bug (calculated wrong client area)
40908           - Added ClientSize setter
40909
40910 2004-08-04 15:13  pbartok
40911
40912         * Form.cs:
40913           - Added AutoScale properties
40914
40915 2004-08-04 15:13  pbartok
40916
40917         * SWF.csproj:
40918           - Added latest files
40919
40920 2004-08-04 14:11  pbartok
40921
40922         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
40923           XplatUIX11.cs:
40924           - Added Invalidate handling
40925
40926 2004-08-03 17:09  jordi
40927
40928         * XplatUIDriver.cs: fixes spelling mistake
40929
40930 2004-07-27 09:53  jordi
40931
40932         * TrackBar.cs: fixes trackbar events, def classname, methods
40933           signature
40934
40935 2004-07-27 09:29  jordi
40936
40937         * ScrollBar.cs: fixes scrollbar events
40938
40939 2004-07-27 04:38  jordi
40940
40941         * Control.cs: changes to be able to run winforms samples
40942
40943 2004-07-26 11:42  jordi
40944
40945         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
40946           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
40947
40948 2004-07-26 05:41  jordi
40949
40950         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
40951           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
40952           implementation
40953
40954 2004-07-22 09:22  jordi
40955
40956         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
40957           check link overlapping, implement events, and fixes
40958
40959 2004-07-21 10:28  jordi
40960
40961         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
40962
40963 2004-07-21 10:19  jordi
40964
40965         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
40966           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
40967           LinkLabelLinkClickedEventArgs.cs,
40968           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
40969           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
40970           implementation
40971
40972 2004-07-19 13:09  jordi
40973
40974         * Control.cs, Label.cs: label control re-written: added missing
40975           functionlity, events, and properties
40976
40977 2004-07-19 10:49  jordi
40978
40979         * Control.cs: fixes SetBounds logic
40980
40981 2004-07-19 01:29  jordi
40982
40983         * Control.cs: Call RefreshWindow only if the window has created
40984
40985 2004-07-15 14:05  pbartok
40986
40987         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
40988           - Implemented ImageList and ImageList.ImageCollection classes
40989           - Added ColorDepth enumeration
40990           - Updated SWF VS.Net project
40991
40992 2004-07-15 11:06  jordi
40993
40994         * XplatUIStructs.cs: added MsgButons enum
40995
40996 2004-07-15 11:03  jordi
40997
40998         * Control.cs: added basic mouse handeling events
40999
41000 2004-07-15 03:38  jordi
41001
41002         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
41003           Vertical TrackBar control implementation
41004
41005 2004-07-13 09:33  jordi
41006
41007         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
41008
41009 2004-07-13 09:31  jordi
41010
41011         * Control.cs, Form.cs: commit: new properties and fixes form size
41012           problems
41013
41014 2004-07-09 14:13  miguel
41015
41016         * ProgressBar.cs: Spelling
41017
41018 2004-07-09 11:25  pbartok
41019
41020         * ProgressBar.cs:
41021           - Removed usage of Rectangle for drawing. Miguel pointed out it's
41022           faster
41023
41024 2004-07-09 11:17  miguel
41025
41026         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
41027
41028                 * ProgressBar.cs: Fixed spelling for `block'
41029
41030                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
41031                 style guidelines.
41032
41033                 Avoid using the += on rect.X, that exposed a bug in the compiler.
41034
41035 2004-07-08 23:21  pbartok
41036
41037         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
41038           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
41039           BaseCollection.cs, Binding.cs, BindingContext.cs,
41040           BindingMemberInfo.cs, BindingsCollection.cs,
41041           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
41042           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
41043           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
41044           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
41045           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
41046           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
41047           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
41048           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
41049           FrameStyle.cs, GiveFeedbackEventArgs.cs,
41050           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
41051           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
41052           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
41053           InputLanguageChangedEventArgs.cs,
41054           InputLanguageChangedEventHandler.cs,
41055           InputLanguageChangingEventArgs.cs,
41056           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
41057           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
41058           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
41059           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
41060           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
41061           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
41062           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
41063           QueryAccessibilityHelpEventArgs.cs,
41064           QueryAccessibilityHelpEventHandler.cs,
41065           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
41066           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
41067           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
41068           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
41069           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
41070           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
41071           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
41072           XplatUIX11.cs, lang.cs:
41073           - Initial check-in
41074